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 forwww.test.comServer Version: Apache/2.2.16mod_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"狀態,很可能是這些進程計算時間太長或程序有死循環,可以對程序進行改進。
新聞熱點
疑難解答