apache的mod_status
apache的mod_status模块,提供了对apache运行时的一些统计信息,对apache的管理员来说很有意义。
一.加载apache的mod_status模块
各种系统下,加载apache模块的方法不同,以ubuntu linux为例,如果使用在线安装的apache包,加载mod_status方法如下:
a2enmod status
二.配置apache
###apache2.conf###
<Location /visitname>
SetHandler server-status
Order deny,allow
Deny from all
Allow from all
</Location>
###############
三.查看apache状态信息报告页面
重启apache或重新载入apahce配置文件之后,即生效。此时可用 http://yourdomain/visitname访问,查看apache运行信息。
1.<Location /visitname>这里的visitname是可以自己取的名字,可随意修改成你自己想要的字符串,只要在访问URL中使用你取的名字就可以了。
2.http://yourdomain/visitname后面可加两个参数,可一起加
a.页面信息自动更新 http://yourdomain/visitname?refresh=3 [每三秒自动更新一次页面信息]
b.机器可读格式的信息页面 http://yourdomain/visitname?auto
3.打开更多有关apache的状态信息
在apache2.conf中,多加一句配置信息
###apache2.conf###
ExtendedStatus On
##############
四.数据分析
先看apache mod_status的部分统计信息
####################################
Apache Server Status for www.test.com
- Server Version: Apache/2.2.16 mod_ssl/2.2.16 OpenSSL/0.9.8o
- Server Built: Sep 8 2010 12:52:08
- Current Time: Monday, 29-Nov-2010 12:31:14 CST
- Restart Time: Monday, 29-Nov-2010 11:33:33 CST
- Parent Server Generation: 3
- Server uptime: 57 minutes 40 seconds
- Total accesses: 8596 - Total Traffic: 29.2 MB
- CPU Usage: u1.62 s9.43 cu0 cs0 - .319% CPU load
- 2.48 requests/sec - 8.7 kB/second - 3565 B/request
- 111 requests currently being processed, 0 idle workers
Scoreboard Key:
"_
" Waiting for Connection, "S
" Starting up, "R
" Reading Request,
"W
" Sending Reply, "K
" Keepalive (read), "D
" DNS Lookup,
"C
" Closing connection, "L
" Logging, "G
" Gracefully finishing,
"I
" Idle cleanup of worker, ".
" Open slot with no current process
Srv | PID | Acc | M | CPU | SS | Req | Conn | Child | Slot | Client | VHost | Request |
---|---|---|---|---|---|---|---|---|---|---|---|---|
0-3 | 32178 | 0/2/16 | W | 0.05 | 2456 | 0 | 0.0 | 0.00 | 0.02 | 60.28.164.103 | www.test.com | GET /indexTarget.do?channel=1064&content=20444&id=1&number=1000 |
1-3 | 32682 | 0/19/75 | W | 0.02 | 1994 | 0 | 0.0 | 0.08 | 0.22 | 60.28.164.103 | www.test.com | GET /indexTarget.do?channel=1064&content=20040 HTTP/1.0 |
####################################
1.Scoreboard中的每个字符代表一个slot,字符总数代表apache所充许的最大子进程或线程(是进程还是线程这取决于你所使用的apache MPM是什么)数。
我经常参考的数据有两种:
a.如果这些字符中基乎没有"."了,这说明apache配置的MaxClients数量不够用了,要根据你的硬件资源(通常是RAM资源)情况决定是否调大这个数值。
b.如果是"w"字符太多,这说明CPU很繁忙,就绪队列中的进程数很多,这时如果你进入系统,可能会发现系统的负载(load average)很高。这时可以看看统计信息页面,是哪些请求使进程处于"w"状态,很可能是这些进程计算时间太长或程序有死循环,可以对程序进行改进。