sarsgetaway 2010-06-12
最近发现在apache的监控方面,apache2开始自带的apachemod-status其实是个不错的工具,下面摘录并笔记之:
如果是linux的话,可以这样设置:
在httpd.conf中,这样
#includeconf/extra/httpd-info.conf
把注释#去掉,
然后修改httpd-info.conf中
<location/server-status>
SetHandlerserver-status
OrderDeny,Allow
Denyfromalls
Allowfromall
</location>
其中<location/server-status>这里可以修改为你喜欢的名字
于是就可以用http://localhost/server-status看到了
如果是WINDOWS系统的话,可以直接在
httpd.conf中,加载模块:
取消注释LoadModulestatus_modulemodules/mod_status.so,重启APACHE即可。
用http://localhost/server-status??refresh=N即可实现每N秒刷新一次。
找了下,网上有个PHP程序,可以图形化地看到APACHESTATUS的图形状态,叫visualapachestatus,
有兴趣的可以下载来看看
再转一些相关技巧:
在Linux下查看Apache的负载情况,以前也说过,最简单有有效的方式就是查看ApacheServerStatus(如何开启ApacheServerStatus点这里),在没有开启ApacheServerStatus的情况下,或安装的是其他的WebServer,比如Nginx的时候,下面的命令就体现出作用了。
ps-ef|grephttpd|wc-l命令
#ps-ef|grephttpd|wc-l
1388
统计httpd进程数,连个请求会启动一个进程,使用于Apache服务器。
表示Apache能够处理1388个并发请求,这个值Apache可根据负载情况自动调整,我这组服务器中每台的峰值曾达到过2002。
netstat-nat|grep-i“80″|wc-l命令
#netstat-nat|grep-i“80″|wc-l
4341
netstat-an会打印系统当前网络链接状态,而grep-i“80″是用来提取与80端口有关的连接的,wc-l进行连接数统计。
最终返回的数字就是当前所有80端口的请求总数。
netstat-na|grepESTABLISHED|wc-l命令
#netstat-na|grepESTABLISHED|wc-l---------个人测试此命令比较准确
376
netstat-an会打印系统当前网络链接状态,而grepESTABLISHED提取出已建立连接的信息。然后wc-l统计。
最终返回的数字就是当前所有80端口的已建立连接的总数。
netstat-nat||grepESTABLISHED|wc-可查看所有建立连接的详细记录
查看Apache的并发请求数及其TCP连接状态:
Linux命令:
netstat-n|awk'/^tcp/{++S[$NF]}END{for(ainS)printa,S[a]}'
(这条语句是从新浪互动社区事业部新浪互动社区事业部技术总监王老大那儿获得的,非常不错)
返回结果示例:
LAST_ACK5
SYN_RECV30
ESTABLISHED1597
FIN_WAIT151
FIN_WAIT2504
TIME_WAIT1057
其中的SYN_RECV表示正在等待处理的请求数;ESTABLISHED表示正常数据传输状态;TIME_WAIT表示处理
完毕,等待超时结束的请求数。