CentOS 6.x 开启Nginx和Php-fpm状态统计

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CentOS 6.x 开启Nginx和Php-fpm状态统计相关的知识,希望对你有一定的参考价值。

nginxphp-FPM都在安装的时候创建了一个状态页,用于统计Nginx和PHP-FPM的相关状态信息。下面介绍一下如何开启Nginx和PHP-FPM的状态统计,以及介绍各参数的含义。


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

在/etc/nginx/conf.d/(根据自己的Nginx路径)中创建nginx_status.conf,并添加如下内容:

[[email protected] 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:

[[email protected] 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  ]

测试:

[[email protected] 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。


测试:


[[email protected] 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格式:

[[email protected] 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格式:

[[email protected] 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格式:

[[email protected] 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格式:

[[email protected] 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 - 上一个请求使用的内存


本文出自 “奔跑的蜗牛” 博客,请务必保留此出处http://441274636.blog.51cto.com/5054639/1901135

以上是关于CentOS 6.x 开启Nginx和Php-fpm状态统计的主要内容,如果未能解决你的问题,请参考以下文章

CentOS 6.x 编译安装 Nginx

CentOS 6.9通过yum安装Nginx

centos 6.3x64 nfs开启问题

centos 6.x 7.x 批量添加用户 开启sudo 权限 并设置密匙登录

CentOS 6.8 安装 JDK Tomcat Zookeeper Dubbo Redis RabbitMQ Nginx MySQL Git

Centos nginx开启 gzip