Я здесь в растерянности. У меня несколько десятков серверов с разным объемом трафика. Поскольку со временем трафик увеличивался, некоторые серверы начали давать сбой (ошибки 502/503), и я решил, что это связано с конфигурацией php, которая не изменилась по умолчанию.
Например, я установил конфигурацию в /etc/php/7.0/fpm/pool.d/www.conf
следующим образом, в зависимости от аппаратного обеспечения сервера:
pm.max_children = 70
pm.start_servers = 20
pm.min_spare_servers = 20
pm.max_spare_servers = 35
pm.max_requests = 500
И после этих правок все серверы пошли гладко; больше никаких скачков, никаких ошибок. До сегодняшнего дня я получаю сообщение о простое и /var/log/upstart/php7.0-fpm.log
читает:
[09-Jul-2018 08:51:01] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 18 idle, and 39 total children
[09-Jul-2018 08:52:03] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 8 children, there are 14 idle, and 52 total children
[09-Jul-2018 08:52:04] WARNING: [pool www] seems busy (you may need to increase pm.start_servers, or pm.min/max_spare_servers), spawning 16 children, there are 19 idle, and 58 total children
[09-Jul-2018 08:53:06] WARNING: [pool www] server reached pm.max_children setting (70), consider raising it
По сути, это та же ошибка, что и у меня раньше, но с более высокими числами. Я думаю, что мне не хватает какой-то другой связанной настройки, чтобы сохранить это в рамках, но какой?
Других связанных настроек нет. Либо увеличьте пределы, либо оптимизируйте приложение PHP, либо добавьте больше серверов. В зависимости от трафика / приложения PHP, может быть нормально иметь много рабочих или нет