如何监控Apache性能及调整Apache的并发连接数,监控apache


背景:

Apache做分发+静态页面分发,weblogic做应用服务器,linux环境。

最近客户反映新增一批客户端后,经常不能打开应用 页面,通过Apache性能监控页面查看发现,当前的客户端连接数已达到Apache所允许的客户端连接数最大值,于是开始按照此方向解决问题。下面就介绍下如何调整Apache的并发连接数,以及如何配置Apache的性能监控页面,使我们平时能更方便的监控Apache的运行状态。

一、打开Apache的性能监控功能

可能大多数维护人员在维护管理Apache的时候,是使用ps aux|grep httpd|wc -l来查看当前Apache有多少个进程,但是这个命令无法告知我们这些进程是处于工作状态,还是等待状态,当前有多少连接,还剩余多少空闲连接资源等信息。

Apache Server Status的启用

Apache的状态管理的模块是LoadModule status_module modules/mod_status.so,所以这个需要有
可以通过apachectl -l 来查看apache已包含的模块

修改conf/httpd.conf

ExtendedStatus On
<Location /server-status>
SetHandler server-status
Order Deny,Allow
#Deny from all
Allow from all
</Location>
访问:
http://localhost/server-status?auto&refresh=Y
成功。
解释:
http://localhost/server-status?auto&refresh=Y
将表示访问状态页面可以每N秒自动刷新一次;

Deny from表示禁止的访问地址;
Allow from
表示允许的地址访问;

调用接口

http:// your.server.name/server-status,将会生产详细的状态报表,可以在浏览器中直接浏览。

另外可以加下面两种参数:

?refresh=N:设置多久自动刷新一次

?auto:生产机器可以读状态

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个程序的状态。

Scoreboard Key 上述状态的说明。以下为每一个字符符号所表示的意义:

* _:等待连结中。

* S:启动中。

* R:正在读取要求。

* W:正在送出回应。

* K:处于保持联机的状态。

* D:正在查找DNS

* C:正在关闭连结。

* L:正在写入记录文件。

* G:进入正常结束程序中。

* I:处理闲置。

* .:尚无此程序。

Srv 本程序与其父程序的世代编号。

PID 本程序的process id

Acc 分别表示本次联机、本程序所处理的存取次数。

该程序目前的状态。

CPU 该程序所耗用的CPU资源。

SS 距离上次处理要求的时间。

Req 最后一次处理要求所耗费的时间,以千分之一秒为单位。

Conn 本次联机所传送的数据量。

Child 由该子程序所传送的数据量。

Slot 由该Slot所传送的数据量。

Client 客户端的地址。

VHost 属于哪一个虚拟主机或本主机的IP

Request 联机所提出的要求信息。

 

Cacti中进行监控

下载模板和脚本

http://forums.cacti.net/about25227.html&highlight=apachestats

在上面的地址下载一个叫ApacheStats08.zip,中间有二个文件,一个处理脚本php,另一个是xml的文件.

1.其中的ss_apache_stats.php是脚本文件,它是一个php的文件,放到你的cacti/scripts/下面.

2.接下来在cacti界面导入cacti_host_template_webserver_-_apache.xml这个文件

3.你就可以在cacti中加入这些设置.就不细写了,如下

被监测的apache服务器需要向上面一样,打开mod_status功能,记的设置好权限访问,不然任何人都可以见到可不好哦3、访问http://IP:port/server-status监控页面

好了,你应该会看到这样的一大段信息:

K_KWKK_K__KKKCKK___KK____KK_KKKK_KKKK__KK_KKK_KKK__K_K_KKKKKKKC_
K__KKK_KKKKKK_KKKKKK_KKKCKKKKKKKKK_KK__KKKKKKK_KKKK_KKC__K__K__K
_KKKK_KCK_CK_K_K_K_KK__KKKKK_KKKKKKKKKK_KKKK_K_CKKK_K__KK_KKK__K
___KKKK.........................................................
................................................................
关于这些字符的含义,监控页面下是有说明的:

"_" 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

“K”表示已连接的并且正在忙碌的进程,“.”表示空闲的连接点,如果你打开后发现全是K,那么恭喜你,你需要调整下Apache的并发连接数了,下面的内容将对你很有帮助。

二、调整Apache的并发连接数

1、进入到$ApacheHome/conf/extra,打开httpd-mpm.conf文件

找到<IfModule mpm_prefork_module>配置
在第一行添加:
ServerLimit 5000
修改MaxClients值为1500

2、进入到$ApacheHome/conf,打开httpd.conf文件

去掉Include conf/extra/httpd-mpm.conf前的注释符

保存后退出。然后重启Apache,再打开之前的监控页面,是不是发现多了很多的“.....”?好吧,这就说明你的系统还有很多空闲的连接资源可以用。

 

 

相关内容

    暂无相关文章