在其他人误解之前
"request duration 为服务请求花费的总时间(秒)。"
这不是该进程执行的所有请求的总时间,而是由该进程执行的最后一个请求所使用的时间(空闲状态),或者当前请求(所有其他状态)。
并且给出的数字不是秒,而是微秒。
fpm 状态文档一团糟。
此页面提供了有关 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 的请求总数。 |
参数 | 描述 |
---|---|
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 格式。 |
在其他人误解之前
"request duration 为服务请求花费的总时间(秒)。"
这不是该进程执行的所有请求的总时间,而是由该进程执行的最后一个请求所使用的时间(空闲状态),或者当前请求(所有其他状态)。
并且给出的数字不是秒,而是微秒。
fpm 状态文档一团糟。