Nginx和PHP-FPM都在安装的时候创建了一个状态页,用于统计Nginx和PHP-FPM的相关状态信息。下面介绍一下如何开启Nginx和PHP-FPM的状态统计,以及介绍各参数的含义。
在/etc/Nginx/conf.d/(根据自己的Nginx路径)中创建Nginx_status.conf,并添加如下内容:
[root@iZ256vh2adfZconf.d]#catNginx_status.conf server{ listen80; server_name127.0.0.1; location/Nginx_status { stub_statuson; access_logoff; #allow127.0.0.1; #denyall; } }
重启Nginx:
[root@iZ256vh2adfZvhost]#/etc/init.d/Nginxrestart Nginx:theconfigurationfile/usr/local/Nginx/conf/Nginx.confSyntaxisok Nginx:configurationfile/usr/local/Nginx/conf/Nginx.conftestissuccessful StoppingNginx:[OK] StartingNginx:[OK]
测试:
[root@iZ256vh2adfZconf.d]#curl127.0.0.1:80/Nginx_status Activeconnections:4 serveracceptshandledrequests 8812 Reading:0Writing:1Waiting:3
vim PHP-fpm.conf:
pm.status_path=/PHPfpm_status
默认情况下为/status,当然也可以改成/PHP_status等,我这里是改成/PHP_status啦
vim /etc/Nginx/conf.d/PHP_fpm_status.conf
server {
listen 80;
server_name 127.0.0.1;
location /PHP_status {
fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;
#allow x.x.x.x;
access_log off;
#deny all;
}
}
测试:
[root@iZ256vh2adfZ conf.d]# curl http://127.0.0.1/PHP_status
pool: www
process manager: dynamic
start time: 25/Feb/2017:10:27:57 +0800
start since: 7
accepted conn: 1
listen queue: 0
max listen queue: 0
listen queue len: 128
idle processes: 4
active processes: 1
total processes: 5
max active processes: 1
max children reached: 0
slow requests: 0
PHP-FPM status状态详解:
pool�Cfpm池子名称,大多数为www processmanager�C进程管理方式,值:static,dynamicorondemand.dynamic starttime�C启动日期,如果reload了PHP-fpm,时间会更新 startsince�C运行时长 acceptedconn�C当前池子接受的请求数 listenqueue�C请求等待队列,如果这个值不为0,那么要增加FPM的进程数量 maxlistenqueue�C请求等待队列最高的数量 listenqueuelen�Csocket等待队列长度 idleprocesses�C空闲进程数量 activeprocesses�C活跃进程数量 totalprocesses�C总进程数量 maxactiveprocesses�C最大的活跃进程数量(FPM启动开始算) maxchildrenreached-大道进程最大数量限制的次数,如果这个数量不为0,那说明你的最大进程数量太小了,请改大一点。 slowrequests�C启用了PHP-fpmslow-log,缓慢请求的数量
Nginx、PHP-fpm状态页可以通过带参数实现个性化,可以带参数json、xml、html并且前面三个参数可以分别和full做一个组合,下面以PHP-fpm status为例:
(1)json格式:
[root@iZ25fueqyvvZ vhost]# curl http://127.0.0.1/PHP_status?json
{"pool":"www","process manager":"dynamic","start time":1487989605,"start since":3187,"accepted conn":179,"listen queue":0,"max listen queue":0,"listen queue len":128,"idle processes":14,"active processes":1,"total processes":15,"max active processes":5,"max children reached":0}
(2)xml格式:
[root@iZ25fueqyvvZ vhost]# curl http://127.0.0.1/PHP_status?xml
<?xml version="1.0" ?>
<status>
<pool>www</pool>
<process-manager>dynamic</process-manager>
<start-time>1487989605</start-time>
<start-since>3246</start-since>
<accepted-conn>184</accepted-conn>
<listen-queue>0</listen-queue>
<max-listen-queue>0</max-listen-queue>
<listen-queue-len>128</listen-queue-len>
<idle-processes>14</idle-processes>
<active-processes>1</active-processes>
<total-processes>15</total-processes>
<max-active-processes>5</max-active-processes>
<max-children-reached>0</max-children-reached>
(3)html格式:
[root@iZ25fueqyvvZ vhost]# curl http://127.0.0.1/PHP_status?html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><title>PHP-FPM Status Page</title></head>
<body>
<table>
<tr><th>pool</th><td>www</td></tr>
<tr><th>process manager</th><td>dynamic</td></tr>
<tr><th>start time</th><td>25/Feb/2017:10:26:45 +0800</td></tr>
<tr><th>start since</th><td>3272</td></tr>
<tr><th>accepted conn</th><td>186</td></tr>
<tr><th>listen queue</th><td>0</td></tr>
<tr><th>max listen queue</th><td>0</td></tr>
<tr><th>listen queue len</th><td>128</td></tr>
<tr><th>idle processes</th><td>14</td></tr>
<tr><th>active processes</th><td>1</td></tr>
<tr><th>total processes</th><td>15</td></tr>
<tr><th>max active processes</th><td>5</td></tr>
<tr><th>max children reached</th><td>0</td></tr>
</table>
(4)full格式:
[root@iZ25fueqyvvZ vhost]# curl http://127.0.0.1/PHP_status?full
pool: www
process manager: dynamic
start time: 25/Feb/2017:10:26:45 +0800
start since: 3341
accepted conn: 188
listen queue: 0
max listen queue: 0
listen queue len: 128
idle processes: 14
active processes: 1
total processes: 15
max active processes: 5
max children reached: 0
************************
pid: 4496
state: Idle
start time: 25/Feb/2017:10:26:45 +0800
start since: 3341
requests: 13
request duration: 13932
request method: POST
request URI: /managerlogin/index.PHP?ctl=default&act=status
content length: 0
user: -
script: /data/website/index.PHP
last request cpu: 71.78
last request memory: 5767168
此处省略了很多个PID!
full格式详解:
pid�C进程PID,可以单独kill这个进程. state�C当前进程的状态(Idle,Running,…) starttime�C进程启动的日期 startsince�C当前进程运行时长 requests�C当前进程处理了多少个请求 requestduration�C请求时长(微妙) requestmethod�C请求方法(GET,POST,…) requestURI�C请求URI contentlength�C请求内容长度(仅用于POST) user�C用户(PHP_AUTH_USER)(or‘-’如果没设置) script�CPHP脚本(or‘-’ifnotset) lastrequestcpu�C最后一个请求cpu使用率。 lastrequestmemorythe-上一个请求使用的内存