我们平时使用apache常常了解他的性能只能使用ps aux|grep httpd|wc -l查看有多少个进程,但处理了多少http的请求我们不清楚,进程是不是在工作,还是在等都不是很明白,要了解apache的性能,我们需要使用Apache Server Status的模块来详细了解apache工作的怎么样.下面我还介绍使用cacti来监控它.
对Apache Server Status的启用
对Apache的状态管理的模块是LoadModule status_module modules/mod_status.so,所以这个需要有
然后打开下面的配置
ExtendedStatus On
配置Apache Server Status的权限
<location /server-status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from 60.60.60.60
</location>
打开查看的话就使用http://60.60.60.60/server-status来访问,注意VH的apache要设置在一个VH中,不然你分不清是那个地址来查看看这个信息.但ExtendedStatus不能放在VH中.
上面的链接还可以加个?refresh=N来设置多久自动刷新一次
如下,是我的机器的显示
Apache Server Status for 60.60.60.60
Server Version: Apache/2.2.3 (CentOS)
Server Built: Jan 15 2008 20:33:41
Current Time: Wednesday, 03-Sep-2008 17:17:37 CST
Restart Time: Wednesday, 03-Sep-2008 17:09:44 CST
Parent Server Generation: 9
Server uptime: 7 minutes 53 seconds
Total accesses: 19517 - Total Traffic: 1.4 GB
CPU Usage: u27.78 s2.67 cu0 cs0 - 6.44% CPU load
41.3 requests/sec - 3.0 MB/second - 73.5 kB/request
131 requests currently being processed, 33 idle workers
KKKK_WK.KKKK_KKC_____C_CWKKK_CK_.K_WKK.KK__K_KK.KKK_W_KKCWKKW.K.
KC__KW_KW._KKKKKWCKKK_K.KKCCWKKKW_KW.K.KWC._W.CKKKKK.KKKK_KKC_.K
_K..._K.WC._..KKC._.._..KK__.C..WK.CK.K.WWKCK..KK_.W.K...K..WKCC
..WKKK..K.KK...W.K..W.K.KK..
server-status 的输出中每个字段所代表的意义如下:
字段 说明
Server Version Apache 服务器的版本。
Server Built Apache 服务器编译安装的时间。
Current Time 目前的系统时间。
Restart Time Apache 重新启动的时间。
Parent Server Generation Apache 父程序 (parent process) 的世代编号,就是 httpd 接收到 SIGHUP 而重新启动的次数。
Server uptime Apache 启动后到现在经过的时间。
Total accesses 到目前为此 Apache 接收的联机数量及传输的数据量。
CPU Usage 目前 CPU 的使用情形。
_SWSS.... 所有 Apache process 目前的状态。每一个字符表示一个程序,最多可以显示 256(取决于ServerLimit的设置) 个程序的状态。