PHP-FPM может сам показать живую статистику по пулам и воркерам. Для этого нужно посетить страницу
/fpm-statusПример вывода:
pool: www
process manager: dynamic
listen queue: 0
idle processes: 3
active processes: 2
max children reached: 0Что это значит по-человечески:
* listen queue — сколько запросов ждут воркера.
0 — отлично.* idle processes — свободные воркеры. Если всегда
0 — не хватает процессов.* active processes — кто-то реально что-то делает.
* max children reached > 0 — пул упирался в лимит
pm.max_children.* slow requests > 0 — смотри slowlog, код тормозит.
Как включить
В
www.conf (или другом пуле):pm.status_path = /fpm-status
ping.path = /ping
ping.response = pong
В nginx добавь:
location = /fpm-status {
include fastcgi_params;
fastcgi_pass unix:/run/php/php-fpm.sock;
allow 127.0.0.1; deny all;
}Перезапусти FPM и nginx, затем:
curl http://127.0.0.1/fpm-status
Можно и
?full — покажет все процессы с PID, временем работы и запросом. Также можно менять формат вывода статистикиА
/ping пригодится для health-check.📘 Документация: https://www.php.net/manual/en/fpm.status.php
🚀 Пост Guru PHP: @msavin_dev