Вернуться на предыдущую страницу

При возникновении данной ошибки, необходимо смотреть параметры конфигурационного файла PHP-fpm, если Вы используете nginx+PHP-fpm.

/etc/php/7.3/fpm/pool.d/www.conf

А именно. Обратите внимание на:

pm.max_children = 40    ; 80 / 2
pm.start_servers = 15
pm.min_spare_servers = 15
pm.max_spare_servers = 25

Расчет данных параметров:

Total Max Processes = (Total Ram - (Used Ram + Buffer)) / (Memory per php process)

Всего ОЗУ: 4Гб
Используется ОЗУ: 1000Мб
Буфер безопасности: 400Мб
Память на один дочерний php-fpm процесс (в среднем): 30Мб

Максимально возможное кол-во процессов = (4096 - (1000 + 400)) / 30 = 89
Четное количество: 89 округлили в меньшую сторону до 80

Значение остальных директив можно установить исходя из ожидаемой нагрузки на приложение а также учесть чем еще занимается сервер кроме работы php-fpm (скажем СУБД также требует ресурсов). В случае наличия множества задач на сервере - стоит снизить к-во как начальных / максимальных процессов.

ВНИМАНИЕ! Для себя я выставил max_children - 200, хотя по расчетам их надо ставить меньше. Сервер на данный момент выполняет все стабильно. Наблюдаю...

Мои настройки на данный момент (RAM: 16GB) [2020-05-28]:

pm.max_children = 180;
pm.start_servers = 45
pm.min_spare_servers = 25
pm.max_spare_servers = 55