1. 启用 php-fpm 状态功能
修改 php-fpm.conf 文件,如果没有则创建此文件. 在文件夹: php/etc 目录下创建.
pm.status_path=/status
listen = 9000 #此处是监听 status 的端口, 可以自定义, 要跟等会在 nginx 中配置的一致.
2. nginx配置
在要监控的主机里添加上 locaction.
location ~^/(status|ping)$
{
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000; #对应 php-fpm 里的配置
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
}
3. 重启 nginx 和php-fpm
service nginx restart
service php-fpm restart
**4. 打开 status 页面 **
在浏览器里打开或者用 curl 命令打开都可以 http://127.0.0.1/status
//如果你的 nginx 默认端口是80的话
pool: www
process manager: dynamic
start time: 10/Nov/2015:16:36:48 +0800
start since: 1859
accepted conn: 3
listen queue: 0
max listen queue: 0
listen queue len: 128
idle processes: 19
active processes: 1
total processes: 20
max active processes: 1
max children reached: 0
slow requests: 0
5. php-fpm status 详解
pool – fpm池子名称,大多数为www
process manager – 进程管理方式,值:static, dynamic or ondemand. dynamic
start time – 启动日期,如果reload了php-fpm,时间会更新
start since – 运行时长
accepted conn – 当前池子接受的请求数
listen queue – 请求等待队列,如果这个值不为0,那么要增加FPM的进程数量
max listen queue – 请求等待队列最高的数量
listen queue len – socket等待队列长度
idle processes – 空闲进程数量
active processes – 活跃进程数量
total processes – 总进程数量
max active processes – 最大的活跃进程数量(FPM启动开始算)
max children reached - 大道进程最大数量限制的次数,如果这个数量不为0,那说明你的最大进程数量太小了,请改大一点。
slow requests – 启用了php-fpm slow-log,缓慢请求的数量
**6. php-fpm 其他参数 **
php-fpm状态页比较个性化的一个地方是它可以带参数,可以带参数json、xml、html并且前面三个参数可以分别和full做一个组合。
http://127.0.0.1/status?html
http://127.0.0.1/status?xml
http://127.0.0.1/status?json
http://127.0.0.1/status?full
full详解:
pid – 进程PID,可以单独kill这个进程. You can use this PID to kill a long running process.
state – 当前进程的状态 (Idle, Running, …)
start time – 进程启动的日期
start since – 当前进程运行时长
requests – 当前进程处理了多少个请求
request duration – 请求时长(微妙)
request method – 请求方法 (GET, POST, …)
request URI – 请求URI
content length – 请求内容长度 (仅用于 POST)
user – 用户 (PHP_AUTH_USER) (or ‘-’ 如果没设置)
script – PHP脚本 (or ‘-’ if not set)
last request cpu – 最后一个请求CPU使用率。
last request memorythe - 上一个请求使用的内存