Проблема
У меня есть сервер, который достигает pm.max_children (200) без пика использования ЦП. Нет сетевого трафика (МБ исходящий / МБ входящий), но чрезвычайно большое количество выделенных сокетов, которые не закрываются.
Процессор: 16 ядер ОЗУ: 64 ГБ
Снимки с моей системы мониторинга Prometheus.
Сетевой трафик, посмотрите на дыру
Ни один сокет не достигает точки TCP_tw, они застревают на TCP_alloc
Огромный всплеск использования розеток
Чтобы смягчить эту проблему, мне приходится вручную перезапускать php-fpm. В противном случае он полностью зависает для новых подключений.
Загрузка процессора, она резко падает
Обновлять
Я подозреваю, что это вызвано тем, что таблицы в базе данных блокируются на длительный период времени, из-за чего все соединения, пытающиеся получить доступ к этим данным, ждут, и в итоге все застревает в большой куче соединений.
В настоящее время я настраиваю экспортер Mysql, чтобы посмотреть, смогу ли я найти больше.