启用php-fpm状态详解
php-fpm和nginx一样内建了一个状态页,对于想了解php-fpm的状态以及监控php-fpm非常有帮助。为了后续的zabbix监控,我们需要先了解php-fpm状态页是怎么回事。
1. 启用php-fpm状态功能
1
2
|
# cat /usr/local/php-5.5.10/etc/php-fpm.conf | grep status_path
pm
.
status_path
=
/
status
|
默认情况下为/status,当然也可以改成其他的,例如/ttlsa_status等等。
2. nginx配置
在默认主机里面加上location或者你希望能访问到的主机里面。
1
2
3
4
5
6
7
8
9
10
|
server
{
listen
*
:
80
default_server
;
server
_name
_
;
location
~
^
/
(
status
|
ping
)
$
{
include
fastcgi_params
;
fastcgi
_pass
127.0.0.1
:
9000
;
fastcgi_param
SCRIPT
_FILENAME
$
fastcgi_script_name
;
}
}
|
3. 重启nginx/php-fpm
请依照你的环境重启你的nginx和php-fpm
1
2
|
# service nginx restart
# service php-fpm restart
|
4. 打开status页面
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
# curl http://www.ttlsa.com/status
pool
:
www
process
manager
:
dynamic
start
time
:
14
/
May
/
2014
:
22
:
40
:
15
+
0800
start
since
:
58508
accepted
conn
:
33
listen
queue
:
0
max
listen
queue
:
8
listen
queue
len
:
0
idle
processes
:
2
active
processes
:
1
total
processes
:
3
max
active
processes
:
5
max
children
reached
:
0
slow
requests
:
2091
|
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做一个组合。
6.1 json
1
2
|
# curl http://127.0.0.1/status?json
{
"pool"
:
"www"
,
"process manager"
:
"dynamic"
,
"start time"
:
1400078415
,
"start since"
:
59624
,
"accepted conn"
:
27
,
"listen queue"
:
0
,
"max listen queue"
:
8
,
"listen queue len"
:
0
,
"idle processes"
:
2
,
"active processes"
:
1
,
"total processes"
:
3
,
"max active processes"
:
5
,
"max children reached"
:
0
,
"slow requests"
:
2145
}
|
6.2 xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
# curl http://127.0.0.1/status?xml
<?
xml
version
=
"1.0"
?>
<
status
>
<
pool
>
www
<
/
pool
>
<
process
-
manager
>
dynamic
<
/
process
-
manager
>
<
start
-
time
>
1400078415
<
/
start
-
time
>
<
start
-
since
>
59640
<
/
start
-
since
>
<
accepted
-
conn
>
36
<
/
accepted
-
conn
>
<
listen
-
queue
>
0
<
/
listen
-
queue
>
<
max
-
listen
-
queue
>
8
<
/
max
-
listen
-
queue
>
<
listen
-
queue
-
len
>
0
<
/
listen
-
queue
-
len
>
<
idle
-
processes
>
2
<
/
idle
-
processes
>
<
active
-
processes
>
1
<
/
active
-
processes
>
<
total
-
processes
>
3
<
/
total
-
processes
>
<
max
-
active
-
processes
>
5
<
/
max
-
active
-
processes
>
<
max
-
children
-
reached
>
0
<
/
max
-
children
-
reached
>
<
slow
-
requests
>
2145
<
/
slow
-
requests
>
|
6.3 html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# curl http://127.0.0.1/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
>
14
/
May
/
2014
:
22
:
40
:
15
+
0800
<
/
td
>
<
/
tr
>
<
tr
>
<
th
>
start
since
<
/
th
>
<
td
>
59662
<
/
td
>
<
/
tr
>
<
tr
>
<
th
>
accepted
conn
<
/
th
>
<
td
>
8
<
/
td
>
<
/
tr
>
<
tr
>
<
th
>
listen
queue
<
/
th
>
<
td
>
0
<
/
td
>
<
/
tr
>
<
tr
>
<
th
>
max
listen
queue
<
/
th
>
<
td
>
8
<
/
td
>
<
/
tr
>
<
tr
>
<
th
>
listen
queue
len
<
/
th
>
<
td
>
0
<
/
td
>
<
/
tr
>
<
tr
>
<
th
>
idle
processes
<
/
th
>
<
td
>
2
<
/
td
>
<
/
tr
>
<
tr
>
<
th
>
active
processes
<
/
th
>
<
td
>
1
<
/
td
>
<
/
tr
>
<
tr
>
<
th
>
total
processes
<
/
th
>
<
td
>
3
<
/
td
>
<
/
tr
>
<
tr
>
<
th
>
max
active
processes
<
/
th
>
<
td
>
5
<
/
td
>
<
/
tr
>
<
tr
>
<
th
>
max
children
reached
<
/
th
>
<
td
>
0
<
/
td
>
<
/
tr
>
<
tr
>
<
th
>
slow
requests
<
/
th
>
<
td
>
2147
<
/
td
>
<
/
tr
>
<
/
table
>
<
/
body
>
<
/
html
>
|
6.4 full
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
# curl http://127.0.0.1/status?full
pool
:
www
process
manager
:
dynamic
start
time
:
14
/
May
/
2014
:
22
:
40
:
15
+
0800
start
since
:
59695
accepted
conn
:
1
listen
queue
:
0
max
listen
queue
:
8
listen
queue
len
:
0
idle
processes
:
2
active
processes
:
1
total
processes
:
3
max
active
processes
:
5
max
children
reached
:
0
slow
requests
:
2148
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*
pid
:
29050
state
:
Idle
start
time
:
15
/
May
/
2014
:
15
:
09
:
32
+
0800
start
since
:
338
requests
:
62
request
duration
:
1025585
request
method
:
GET
request
URI
:
/
index
.
php
content
length
:
0
user
:
-
script
:
/
data
/
site
/
www
.
ttlsa
.
com
/
index
.
php
last
request
cpu
:
45.83
last
request
memory
:
24903680
.
.
.
.
.省略几个
PID
.
.
.
.
|
6.5 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 - 上一个请求使用的内存
7. 完成
php-fpm状态页非常使用,使用zabbix或者nagios监控可以考虑使用xml或者默认方式。用web的话,推荐使用html,表格会比较清晰。
成长的对话版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!