性能测试系统学习教程之status模块监控,status模块是为服务器管理来获取服务器性能的相关信息,这些信息将以一个HTML页面的方式来显示,该页面以比较简单的阅读方式来显示当前服务器的统计信息,并且还可以自动刷新的方式来实时显示这些统计信息。
使用status模块监控apache服务器的步骤如下:
1、开启status模块
Apache服务器中的httpd配置文件中有很多可被调用的模块,主要包括以下模块:
# LoadModule foo_module modules/mod_foo.so
LoadModule access_module modules/mod_access.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_module modules/mod_auth.so
#LoadModule auth_anon_module modules/mod_auth_anon.so
#LoadModule auth_dbm_module modules/mod_auth_dbm.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule autoindex_module modules/mod_autoindex.so
#LoadModule cern_meta_module modules/mod_cern_meta.so
LoadModule cgi_module modules/mod_cgi.so
#LoadModule dav_module modules/mod_dav.so
#LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule dir_module modules/mod_dir.so
LoadModule env_module modules/mod_env.so
#LoadModule expires_module modules/mod_expires.so
#LoadModule file_cache_module modules/mod_file_cache.so
#LoadModule headers_module modules/mod_headers.so
LoadModule imap_module modules/mod_imap.so
LoadModule include_module modules/mod_include.so
#LoadModule info_module modules/mod_info.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
#LoadModule mime_magic_module modules/mod_mime_magic.so
#LoadModule proxy_module modules/mod_proxy.so
#LoadModule proxy_connect_module modules/mod_proxy_connect.so
#LoadModule proxy_http_module modules/mod_proxy_http.so
#LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule negotiation_module modules/mod_negotiation.so
#LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
#LoadModule speling_module modules/mod_speling.so
LoadModule status_module modules/mod_status.so
#LoadModule unique_id_module modules/mod_unique_id.so
LoadModule userdir_module modules/mod_userdir.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule ssl_module modules/mod_ssl.so
前面有“#”号的代码,表示该代码被注释不生效,如果需要该行代码生效,那么需要将前面的“#”号取消。监控Apache的状态需要启动LoadModule status_module modules/mod_status.so模块。
2、设置扩展日志信息
设置扩展日志信息的命令如下:
语法:
ExtendedStatus On|Off
默认值:
ExtendedStatus Off
这个功能仅在apache 1.3.2或更高版本才可以使用。
在httpd.conf配置文件中添加这行代码即可。
默认情况下,只能看到以下一些基本信息,如图10-1所示。
图10-1 基本信息
如果需要显示所有的状态信息,需要将ExtendedStatus的值设置为On,该选项的缺省值为Off,所以正常情况下只能看到如图10-1所示的基本信息,在监控过程中需要将该选项的值设置为On,以便显示Apache服务器所有的状态信息。
3、设置SeeRequestTail
该指令是使用设置显示请求的前63个字符还是显示最后63个字符。
语法:
SeeRequestTail On|Off
默认值:
SeeRequestTail Off
这个功能仅在apache 2.2.7或更高版本才可以使用。
在httpd.conf配置文件中添加这行代码即可。
4、设置访问status权限
服务器的状态信息是通常“server-status”中的“handler”调用,server-status的代码如下:
SetHandler server-status
Order deny,allow
Deny from all
Allow from all
Deny from:表示禁止的访问地址;
Allow from:表示允许的地址访问;
注意:在监控之前一定要启动“server-status”模块,否则SetHandler无法读到服务器的状态信息,进而导致监控失败。
5、启用监控
现在可以通过使用Web浏览器访问页面来访问服务器统计信息,http://your.server.name/server-status。
测试是否可以正确的显示Apache服务器的状态信息,如果正确,则会显示如图10-2所示的详细信息。
图10-2 详细信息
6、状态信息自动更新
关于显示详细状态还有两个参数:
?refresh=N:设置每N秒后动态刷新一次详细信息(?refresh=5表示每5秒钟刷新一次),如果不设置具体的时间间隔(如?refresh),那么缺省值为每1秒钟动态刷新一次详细信息。
?auto:表示服务器处于访问状态下的动态态信息;
其语法格式为http://your.server.name/server-status?refresh=N
如http://localhost/server-status?auto&refresh=5表示每5秒动态刷新一次详细信息,结果如图10-3所示。
图10-3 详细动态信息
Total Accesses:到目前为此Apache接收的联机数量及传输的数据量;
To kBytes:接收的总的字节数;
Uptime:服务器运行的总时间(单位秒);
ReqPerSec:平均每秒请求数;
BytesPerSec:平均每秒发送的字节数;
BytesPerReq:平均每个请求发送的字节数;
BusyWorkers:正在工作数;
IdleWorkers:空闲工作数;
BusyWorkers加IdleWorkers的和为服务所允许的同时工作的线程数,配置文件中同时允许的最多线程中的设置项为ThreadsPerChild,其缺少值为250。即ThreadsPerChild=BusyWorkers+IdleWorkers。
只输入http://IP/server-status,则只显示相关的统计信息,而非动态信息,信息内容如下:
Apache Server Status for localhost
Server Version: Apache/2.0.59 (Win32) mod_ssl/2.0.59 OpenSSL/0.9.8e PHP/5.2.5
Server Built: Jul 21 2006 08:48:52
Current Time: Thursday, 29-Nov-2012 19:41:08 中国标准时间
Restart Time: Thursday, 29-Nov-2012 18:53:47 中国标准时间
Parent Server Generation: 0
Server uptime: 47 minutes 21 seconds
Total accesses: 626 - Total Traffic: 1.3 MB
.22 requests/sec - 468 B/second - 2124 B/request
1 requests currently being processed, 249 idle workers
________________________________________________________________
________________________________________________________________
________________________________________________________________
_________________________________________________________W......
................................................................................................................................
................................................................................................................................
................................................................................................................................
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
表示当前所有线程在处理请求时所处于的状态。线程处理主要的状态包括以下几种:
"_":表示等待连接
"S":表示连接开始,可以发送请求
"R":表示读请求的状态
"W":表示服务器正响应回复数据的状态
"K":表示保持长连接状态
"D":表示域名解析状态
"C":表示连接正在关闭
"L":表示正在退出
"G":表示退出完成
"I":表示空闲的线程
".":表示当前线程没的打开slot
统计部分内容信息含义依次为:到目前为止Apache接收的联机数量及传输的数据量、已发送的总的字节数、平均每秒请求数、平均每秒发送的字节数、平均每个请求发送的字节数、当前正在请求的线程数、空闲的结程数。
关于M列的状态主要包括以下几种:
_:等待连结中。
S:启动中。
R:正在读取要求。
W:正在送出回应。
K:处于保持联机的状态。
D:正在查找DNS。
C:正在关闭连结。
L:正在写入记录文件。
G:进入正常结束程序中。
I:处理闲置。
.:尚无此程序。
关于请求表格中各列的含义见表10-1。
表10-1 各列含义
HTTP详细的请求信息如下:
Srv PID Acc M CPU SS Req Conn Child Slot Client Protocol VHost Request
0-2 6880 0/148/148 _ 356.50 0 1786 0.0 0.95 0.95 192.168.40.134 http/1.1 192.168.40.129:80 POST /ecshop3/user.php HTTP/1.1
0-2 6880 0/153/153 W 353.67 1 0 0.0 0.98 0.98 192.168.40.134 http/1.1 192.168.40.129:80 POST /ecshop3/user.php HTTP/1.1
0-2 6880 0/150/150 W 351.29 1 0 0.0 0.98 0.98 192.168.40.134 http/1.1 192.168.40.129:80 POST /ecshop3/user.php HTTP/1.1
0-2 6880 0/154/154 W 353.97 3 0 0.0 0.96 0.96 192.168.40.134 http/1.1 192.168.40.129:80 POST /ecshop3/user.php HTTP/1.1
0-2 6880 0/164/164 W 354.19 0 0 0.0 1.06 1.06 192.168.40.134 http/1.1 192.168.40.129:80 POST /ecshop3/user.php HTTP/1.1
0-2 6880 0/162/162 W 355.96 0 0 0.0 1.03 1.03 192.168.40.134 http/1.1 192.168.40.129:80 POST /ecshop3/user.php HTTP/1.1
0-2 6880 0/154/154 _ 356.59 0 1890 0.0 0.98 0.98 192.168.40.134 http/1.1 192.168.40.129:80 POST /ecshop3/user.php HTTP/1.1
各选项的含义:
Srv:表示子进程
PID:子进程的进程号
Acc:表示连接数量、子进程、slot
M:表示当前请求所处的状态
CPU:表示CPU使用情况
SS:表示当前一共有多少请求
Req:表示一共发的请求数
Conn:表示当前连接传输的字节数
Child:表示每个进程传输的字节数
Slot:表示当前slot一共传输了多少字节数
本章节主要讲解了关于“性能测试系统学习教程之status模块监控”的内容,大家喜欢的话记得每天来这里和小编一起学习涨薪技能。