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

Настройки PHP [pm.max_children, pm.start_servers, pm.min_spare_servers и pm.max_spare_servers]

В процессе переноса веб-сайта с общего сервера GoDaddy на экземпляр EC2. Управление трафиком, который в часы пик в обычный день составляет около 300 активных посетителей, было, мягко говоря, проблематично. Загрузка моего процессора медленно растет и в конечном итоге достигает 100%, в результате чего сайт практически не работает. Я пытался решить проблемы из моих журналов ошибок и задавался вопросом, может ли быть более серьезная проблема, которую нужно решить.

Посмотрев на журнал ошибок Apache, я увеличил MaxClients [prefork (256) / worker (300) / serverlimit (256)] ==> (500/500/500).

Посмотрев журнал ошибок PHP, я увеличил [pm.max_children (50) / pm.start_servers (5) / pm.min_spare_servers (5) / pm.max_spare_servers (35)] ==> (100, 10, 10, 70)

Даже с этими числами у меня по-прежнему появляются предупреждения: [23-февраля-2014 04:34:47] ПРЕДУПРЕЖДЕНИЕ: [pool www] кажется занятым (вам может потребоваться увеличить pm.start_servers или pm.min / max_spare_servers), порождение 32 детей, 7 неработающих, всего 83 ребенка

Искусственное увеличение этих цифр не является долгосрочным решением. Любые идеи?

Во-первых, установлен ли у вас кеш-код операции PHP? Если у вас его нет, вам следует установить его, это должно снизить нагрузку. APC - самый используемый.

Если это не помогает, вам следует проанализировать ваше приложение / базу данных PHP поближе, чтобы увидеть, какая часть из них настолько тяжелая, что вызывает высокую нагрузку. Вы не предоставили никакой информации о программном обеспечении, которое вы используете на своем веб-сайте, поэтому дать какой-либо подробный совет сложно.