Назад | Перейти на главную страницу

Apache + php-fpm + mysql слишком медленный на мощном сервере

Я пытаюсь протестировать загрузку приложения LAMP, которое моя команда разработала и развернула на AWS ubuntu 14.04, используя jmeter. Мы используем AWS CDN для обслуживания статических файлов, mysql и apache находятся на одном хосте.

Когда что-то делает только один пользователь, время отклика нормальное, от 2 до 5 секунд в зависимости от страницы.

Моя цель - заставить его одновременно реагировать на запросы 500 подключенных пользователей.

Я начал с меньшего количества пользователей, используя модуль mod_php и prefork на t2.small (1vCPU, 2 Gb RAM), и меня удовлетворило всего 40 подключенных пользователей. Как только будет 100, он сильно тормозит с временем отклика +20 с.

Я попробовал использовать php-fpm и модуль событий после использования некоторых ресурсов SO. Производительность была лучше, но остается медленной; +15 за любую отдельную страницу. Решил обновить сервер до M4.2xlarge (8vCPU, 32 Gb RAM). Для 100 подключенных пользователей он работает нормально, и я доволен, но это дорого, и я хочу найти лучшую производительность, используя наиболее подходящие спецификации сервера.

В любом случае, я попытался протестировать этот M4.2xlarge с 330 подключенными пользователями, которые одновременно выполняли какие-то действия, и он стал слишком медленным, + 15 ~ + 20 с на страницу. Пытался настроить конфигурацию событий и процесс fpm безуспешно (в большинстве случаев у меня + 90℅ ЦП, но не используется достаточно ОЗУ, поэтому я думаю, что у нас где-то есть предел).

Я чувствую себя так близко, но не могу. Я дополню свой вопрос любым файлом, журналом или выходом, который вы попросите.

Я думаю, ты мог бы установить nginx для кеширования и обратного прокси-сервера запросов к apache и Cloudfront. Я сделал это некоторое время назад. И решите мою проблему с задержкой.

Моя настройка: EC2 + RDS + Cloudfront / S3

Я настраиваю свой EC2 с nginx кэширование и проксирование запроса статических файлов на облачный интерфейс, который указывает на сегмент на S3. И запросы chaching и proxying, которые необходимо запускать на стороне сервера для apache. И установил мою службу базы данных на RDS.

Это решает мою проблему и уменьшило задержку до миллисекунд.