设为首页 收藏本站
查看: 1162|回复: 0

[经验分享] CentOS 6.x 开启Nginx和Php-fpm状态统计

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2017-2-27 09:58:25 | 显示全部楼层 |阅读模式
Nginx和PHP-FPM都在安装的时候创建了一个状态页,用于统计Nginx和PHP-FPM的相关状态信息。下面介绍一下如何开启Nginx和PHP-FPM的状态统计,以及介绍各参数的含义。


(一)开启Nginx的状态统计以及各参数详解

在/etc/nginx/conf.d/(根据自己的Nginx路径)中创建nginx_status.conf,并添加如下内容:
1
2
3
4
5
6
7
8
9
10
11
12
   
[iyunv@iZ256vh2adfZ conf.d]# cat nginx_status.conf
server {
    listen  80;
    server_name 127.0.0.1;
    location /nginx_status
    {
        stub_status on;
        access_log off;
        #allow 127.0.0.1;
        #deny all;
    }
}

重启Nginx:
1
2
3
4
5
   
[iyunv@iZ256vh2adfZ vhost]# /etc/init.d/nginx restart
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful
Stopping nginx:                                            [  OK  ]
Starting nginx:                                            [  OK  ]

测试:
1
2
3
4
5
   
[iyunv@iZ256vh2adfZ conf.d]# curl 127.0.0.1:80/nginx_status
Active connections: 4
server accepts handled requests
8 8 12
Reading: 0 Writing: 1 Waiting: 3

(二)开启PHP-FPM的状态统计以及各参数详解

开启php-fpm.conf开用php-fpm状态功能:

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;

    }

}


重启Nginx、PHP-FPM。


测试:


[iyunv@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 – 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,缓慢请求的数量


nginx、php-fpm状态页可以通过带参数实现个性化,可以带参数json、xml、html并且前面三个参数可以分别和full做一个组合,下面以php-fpm status为例:

(1)json格式:

[iyunv@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格式:

[iyunv@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格式:

[iyunv@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格式:

[iyunv@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 – 进程PID,可以单独kill这个进程.
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 - 上一个请求使用的内存





运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-347778-1-1.html 上篇帖子: flask uwsgi nginx 下篇帖子: nginx主要功能 统计
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表