У меня есть установка NGINX с PHP7.2-FPM, и у меня проблемы с пакетными запросами. Среднее количество активных процессов (детей в минуту) - 15.
У меня такие настройки (48-ядерный сервер):
listen.backlog = 1024
pm.max_children = 1024
pm.start_servers = 16
pm.min_spare_servers = 8
pm.max_spare_servers = 16
pm.max_requests = 5000
Еще я тестировал мин. количество резервных серверов из 256, которые уменьшили, но не разрешили количество Resource temporarily unavailable
. Очевидно, это не установка для производства, и она была сделана просто для того, чтобы посмотреть, сможет ли такое количество рабочих справиться с размером пакетов.
Я также пробовал listen.backlog 65536, но это не имело значения.
Какой путь? Если он поставит запросы в очередь, проблем не будет.
Изменить: я только что заметил, что fpm-status всегда сообщает max listen queue
как 0
Решено увеличением систем net.core.somaxconn
. Кажется, что fpm-status не работает в отношении max listen queue
, всегда отображается 0.