Я знаю, что это будет сложно, но я хочу попробовать маршрут вопросов и ответов.
У меня есть сайт Wordpress, который в настоящее время посещают одновременно 60 000 человек.
Я использую EC2 m3.xlarge
, php/php-fpm 5.5.10
, nginx 1.4.7
, php-apc
.
Для плагина кеширования я использую WP-Super-Cache.
Замечаю очень медленное время отклика, много 502
ошибок, плюс ... У меня в журнале nginx масса таких ошибок:
10319#0: *57132 connect() to unix:/tmp/php5-fpm.sock failed (11: Resource temporarily unavailable) while connecting to upstream
Я не понимаю, что за горлышко бутылки ...
Для моих настроек ... ive в основном исчерпал все мои знания + часы поиска в Google ...
Я не знаю, какие из них слишком высокие или низкие, я попытался настроить их в меру своих возможностей ...
Я даже толком не знаю, как найти проблему. Когда я просматриваю медленный журнал, это просто много случайных вещей, вероятно, потому что все идет медленно ... не только одно.
думаю pm.max_children = 100
слишком мал для 60 тысяч одновременных посетителей. Даже если посетитель нажимает ссылку в среднем только один раз в минуту, вам нужно будет генерировать 1000 просмотров страниц за секунду (60000/60
).
У вас 12 ГБ неиспользуемой памяти - установите например pm.max_children = 500
. Может быть, даже выше - в зависимости от того, сколько оперативной памяти необходимо для генерации среднего запроса. Наблюдайте за использованием ОЗУ и соответствующим образом настройте количество детей.
Некоторые инструменты для мониторинга и построения графиков могут быть полезны для определения узких мест. Мы используем http://munin-monitoring.org/ Munin извлекает статистику из большинства известных сервисов, а также системные показатели, и он работает почти сразу на современных дистрибутивах.
Вы используете 8 nginx worker_processes 8, когда у вас всего 4 ядра? Я бы предложил использовать 3, а затем разрешить оставшееся ядро процессора для других машинных задач.