Достигнуто pm.max_children, выделено много сокетов, процессор не используется

Достигнуто pm.max_children, выделено много сокетов, процессор не используется

Проблема

У меня есть сервер, который достигает pm.max_children (200) без пика использования ЦП. Нет сетевого трафика (МБ исходящий / МБ входящий), но чрезвычайно большое количество выделенных сокетов, которые не закрываются.

Процессор: 16 ядер ОЗУ: 64 ГБ

Снимки с моей системы мониторинга Prometheus.

Сетевой трафик, посмотрите на дыру

введите описание изображения здесь

Ни один сокет не достигает точки TCP_tw, они застревают на TCP_alloc

введите описание изображения здесь

Огромный всплеск использования розеток

введите описание изображения здесь

Чтобы смягчить эту проблему, мне приходится вручную перезапускать php-fpm. В противном случае он полностью зависает для новых подключений.

Загрузка процессора, она резко падает

введите описание изображения здесь

Обновлять

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

В настоящее время я настраиваю экспортер Mysql, чтобы посмотреть, смогу ли я найти больше.

Связанный контент