在其他人误解之前
"请求持续时间 为服务请求所花费的总秒数"
这不是该进程完成的所有请求的总时间,而是该进程完成的上次请求(空闲状态)或当前请求(所有其他状态)所用的时间。
并且给出的数字不是以秒为单位,而是以微秒为单位。
fpm 状态文档很混乱。
此页面提供有关 FPM 状态页面设置和内容的信息。另见 fpm_get_status()。
可以通过在 FPM 池配置中设置 pm.status_path 配置参数来启用 FPM 状态页面。
出于安全考虑,应将 FPM 状态页面限制为仅内部请求或已知客户端 IP,因为该页面会显示请求 URL 和有关可用资源的信息。
根据 Web 服务器配置,可能需要配置 Web 服务器以允许直接向此路径发出请求,绕过任何 PHP 脚本。使用侦听 UDS 的 FPM 和 pm.status_path
设置为 /fpm-status
的 Apache 配置示例如下所示
<LocationMatch "/fpm-status"> Order Allow,Deny Allow from 127.0.0.1 ProxyPass "unix:/var/run/php-fpm.sock|fcgi://127.0.0.1/fpm-status" </LocationMatch>
重新加载或重新启动 FPM 和 Web 服务器后,状态页面将可从浏览器访问(只要请求来自允许的 IP 地址,如果配置了 IP 限制)。
可以通过指定以下查询参数之一来更改状态页面输出的格式
html
json
openmetrics
xml
还可以使用 full
查询参数返回其他信息。
示例状态页面 URL
https://127.0.0.1/fpm-status
- 默认文本格式的简要输出https://127.0.0.1/fpm-status?full
- 默认文本格式的完整输出https://127.0.0.1/fpm-status?json
- JSON 格式的简要输出https://127.0.0.1/fpm-status?html&full
- HTML 格式的完整输出日期/时间值在 JSON 和 XML 输出中使用 Unix 时间戳格式,否则使用以下示例日期 "03/Jun/2021:07:21:46 +0100"
生成的格式。
参数 | 描述 |
---|---|
pool | FPM 进程池的名称。 |
进程管理器 | 进程管理器类型 - static、dynamic 或 ondemand。 |
启动时间 | 上次启动进程池的日期/时间。 |
启动至今 | 自上次启动进程池以来的秒数。 |
已接受连接 | 已接受连接的总数。 |
监听队列 | 当前正在等待空闲进程的请求数(积压)。 |
最大监听队列 | 在任何时候在监听队列中看到的最大请求数。 |
监听队列长度 | 监听队列允许的最大大小。 |
空闲进程 | 当前空闲(等待请求)的进程数。 |
活动进程 | 当前正在处理请求的进程数。 |
总进程数 | 当前进程总数。 |
最大活动进程 | 并发活动进程的最大数量。 |
已达到最大子进程数 | 是否曾经达到最大进程数?如果是,则显示的值大于或等于 1 ,否则值为 0 。 |
缓慢请求 | 达到已配置的 request_slowlog_timeout 的请求总数。 |
参数 | 描述 |
---|---|
pid | 进程的系统 PID。 |
状态 | 进程的状态 - 空闲、运行…… |
启动时间 | 进程启动的日期/时间。 |
启动至今 | 自进程启动以来的秒数。 |
请求 | 已服务的请求总数。 |
请求持续时间 | 为上次请求服务所花费的总微秒数。 |
请求方法 | 上次服务的请求的 HTTP 方法。 |
请求 URI | 上次服务的请求的 URI(Web 服务器处理后,如果您使用前端控制器模式重定向,它可能始终为 /index.php )。 |
内容长度 | 上次请求的请求正文长度(以字节为单位)。 |
用户 | 上次请求的 HTTP 用户(PHP_AUTH_USER )。 |
脚本 | 上次请求执行的脚本的完整路径。如果不可用(例如状态页面请求),则为 '-' 。 |
上次请求 CPU | 上次请求的 %cpu。如果进程未空闲,则值为 0,因为计算是在请求处理完成后完成的。该值可以超过 100%,因为指标将说明上次请求中使用了总 CPU 时间的百分比 - 考虑所有核心上的进程,而 100% 仅适用于一个核心。 |
上次请求内存 | 上次请求消耗的最大内存量。如果进程未空闲,则值为 0,因为计算是在请求处理完成后完成的。 |
注意:
所有值都是特定于池的,并在 FPM 重新启动时重置。
注意:
OpenMetrics 格式输出使用不同的参数类型以更好地适应 OpenMetrics 格式。其值的参数和说明包含在 OpenMetrics 格式输出中。
版本 | 描述 |
---|---|
8.1.0 | 添加了 openmetrics 格式。 |
在其他人误解之前
"请求持续时间 为服务请求所花费的总秒数"
这不是该进程完成的所有请求的总时间,而是该进程完成的上次请求(空闲状态)或当前请求(所有其他状态)所用的时间。
并且给出的数字不是以秒为单位,而是以微秒为单位。
fpm 状态文档很混乱。
记录在案,如果您不使用 socks(远程 php-fpm),则需要在您的 vhost 中添加以下行
ProxyPassMatch ^/status$ fcgi://[FPM-HOST]:[FPM-PORT]/status