Раздел даёт информацию о настройке и содержании страницы статуса менеджера процессов FPM. Смотрите также описание функции fpm_get_status().
Страницу статуса FPM включают установкой параметра конфигурации pm.status_path в конфигурации пула FPM.
По соображениям безопасности доступ к странице статуса FPM разрешают только для внутренних запросов или доверенных IP-адресов, поскольку страница раскрывает URL-адрес запроса и информацию о доступных ресурсах.
В настройках веб-сервера потребуется разрешить прямые запросы по пути страницы статуса —
в обход поиска файлов веб-сервером и без передачи управления обработкой запроса PHP-скриптам.
Пример конфигурации для связки Apache + FPM, если менеджер процессов слушает сокет Unix-домена
и для директивы pm.status_path установили значение /fpm-status,
выглядит так:
<LocationMatch "/fpm-status"> Require local ProxyPass "unix:/var/run/php-fpm.sock|fcgi://localhost/" </LocationMatch>
После перезагрузки или перезапуска FPM и веб-сервера страница статуса станет доступна из браузера; при настройке ограничения по IP-адресу страница откроется, только если запрос поступит с разрешённого адреса.
Формат вывода страницы статуса изменяют путём добавления к адресу аргумента из следующего списка:
htmljsonopenmetricsxml
Дополнительная информация также возвращается с параметром запроса full.
Примеры URL-адресов страниц состояния:
https://localhost/fpm-status —
Краткий вывод в текстовом формате по умолчанию
https://localhost/fpm-status?full —
Полный вывод в текстовом формате по умолчанию
https://localhost/fpm-status?json —
Краткий вывод в формате JSON
https://localhost/fpm-status?html&full —
Полный вывод в формате HTML
В данных вывода в форматах JSON и XML значения даты и времени выводятся в формате метки времени UNIX,
иначе они выводятся в формате, который даёт следующий пример даты:
"03/Jun/2021:07:21:46 +0100".
| Параметр | Описание |
|---|---|
| pool | Имя пула процессов FPM. |
| proccess manager | Тип менеджера процесса — static (статический), dynamic (динамический) или ondemand (по требованию). |
| start time | Дата и время последнего запуска пула процессов. |
| start since | Время в секундах с момента последнего запуска пула процессов. |
| accepted conn | Общее количество принятых соединений. |
| listen queue | Количество запросов (backlog), ожидающих свободного процесса. |
| max listen queue | Максимальное количество запросов в очереди на прослушивание в любой момент времени. |
| listen queue len | Максимально допустимый размер очереди прослушивания. |
| idle processes | Количество процессов, которые в настоящее время простаивают (ожидают запросов). |
| active processes | Количество процессов, которые в настоящее время обрабатывают запросы. |
| total processes | Текущее общее количество процессов. |
| max active processes | Максимальное количество одновременно активных процессов. |
| max children reached |
Было ли достигнуто максимальное количество процессов? Если да, то отображаемое значение
будет больше или равно 1, иначе значение будет равно 0.
|
| slow requests |
Общее количество запросов, которые достигли настроенного
request_slowlog_timeout.
|
| memory peak | Пиковое значение объёма памяти, которую PHP выделил с момента запуска FPM-менеджера процессов. |
| Параметр | Описание |
|---|---|
| pid | Системный PID-идентификатор процесса. |
| state | Состояние процесса — Idle, Running, … |
| start time | Дата и время начала процесса. |
| start since | Количество секунд с момента начала процесса. |
| requests | Общее количество обслуженных запросов. |
| request duration | Общее время в микросекундах, затраченное на обслуживание последнего запроса. |
| request method | HTTP-метод запроса, который процесс обслужил последним. |
| request uri |
URI запроса, который процесс обслужил последним; в рамках шаблона Front Controller — с единой точкой входа —
веб-сервер перенаправляет вызовы в главный скрипт, поэтому поле содержит только значение /index.php.
|
| content length | Длина тела запроса, в байтах, последнего запроса. |
| user | HTTP-пользователь (PHP_AUTH_USER) последнего запроса. |
| script |
Полный путь к скрипту, который выполнил последний запрос. Это будет
'-', если не применимо (например, запросы страницы состояния).
|
| last request cpu | Процент занятого центральным процессором времени при выполнении последнего запроса. Это значение будет равно 0, если процесс не в состоянии Idle, потому что вычисление проводится после окончания обработки запроса. Значение может превысить 100 %, потому что метрика покажет, какой процент от общего времени работы процессора занял последний запрос, — в расчёте менеджер учтёт процессы на каждом ядре, тогда как 100 % — это значение только для одного ядра. |
| last request memory | Максимальный объем памяти, который потребил последний запрос. Это значение будет равно 0, если процесс не простаивает, поскольку вычисление проводится после окончания обработки запроса. |
Замечание: Все значения специфичны для пула и сбрасываются при перезапуске менеджера FPM.
Замечание: Данные вывода в формате стандарта OpenMetrics используют различные типы параметров, чтобы лучше соответствовать формату OpenMetrics. Параметры и описания их значений включаются в данные вывода формата OpenMetrics.
| Версия | Описание |
|---|---|
| 8.1.0 | Добавлен формат OpenMetrics. |