状态页面

此页面提供了有关 FPM 状态页面设置和内容的信息。另请参见 fpm_get_status().

配置

可以通过在 FPM 池配置中设置 pm.status_path 配置参数来启用 FPM 状态页面。

注意

出于安全原因,FPM 状态页面应仅限于内部请求或已知客户端 IP,因为该页面会显示请求 URL 和有关可用资源的信息。

根据 Web 服务器配置,可能需要配置 Web 服务器以允许直接请求到此路径,绕过任何 PHP 脚本。以下是一个 Apache 与 FPM 监听 UDS 且 pm.status_path 设置为 /fpm-status 的配置示例

<LocationMatch "/fpm-status">
 Order Allow,Deny
 Allow from 127.0.0.1
 ProxyPass "unix:/var/run/php-fpm.sock|fcgi://localhost/fpm-status"
</LocationMatch>

重新加载或重新启动 FPM 和 Web 服务器后,状态页面将可以通过浏览器访问(只要请求来自允许的 IP 地址,如果配置了 IP 限制)。

查询参数

可以通过指定以下查询参数之一来更改状态页面输出的格式

  • html
  • json
  • openmetrics
  • xml

还可以使用 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 进程管理器类型 - 静态、动态或按需。
start time 进程池上次启动的日期/时间。
start since 进程池上次启动后经过的时间(秒)。
accepted conn 接受的连接总数。
listen queue 当前正在等待空闲进程的请求(积压)数量。
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 的请求总数。
每个进程信息 - 仅在 full 输出模式下显示
参数 描述
pid 进程的系统 PID。
state 进程的状态 - 空闲、运行、...
start time 进程启动的日期/时间。
start since 进程启动后经过的时间(秒)。
requests 已服务的请求总数。
request duration 为上次请求服务所花费的总时间(微秒)。
request method 上次服务的请求的 HTTP 方法。
request uri 上次服务的请求的 URI(经过 Web 服务器处理后,如果使用前端控制器模式重定向,它可能始终为 /index.php)。
content length 上次请求的请求主体长度(字节)。
user 上次请求的 HTTP 用户 (PHP_AUTH_USER)。
script 上次请求执行的脚本的完整路径。如果不可用(例如状态页面请求),这将是 '-'
last request cpu 上次请求的 %cpu。如果进程不处于空闲状态,这将为 0,因为计算是在请求处理完成后完成的。该值可能会超过 100%,因为指标会告诉您上次请求使用了多少百分比的总 CPU 时间 - 考虑所有内核上的进程,而 100% 仅适用于一个内核。
last request memory 上次请求消耗的最大内存量。如果进程不处于空闲状态,这将为 0,因为计算是在请求处理完成后完成的。

注意:

所有值都特定于池,并在 FPM 重新启动时重置。

注意:

OpenMetrics 格式输出使用不同的参数类型来更好地适应 OpenMetrics 格式。参数及其值的描述包含在 OpenMetrics 格式输出中。

变更日志

版本 描述
8.1.0 添加了 openmetrics 格式。
添加注释

用户贡献的注释 1 个注释

uwe at ohse dot de
1 年前
在其他人误解之前
"request duration 为服务请求花费的总时间(秒)。"

这不是该进程执行的所有请求的总时间,而是由该进程执行的最后一个请求所使用的时间(空闲状态),或者当前请求(所有其他状态)。

并且给出的数字不是秒,而是微秒。

fpm 状态文档一团糟。
To Top