Apache服务器性能监控

1、使用自带mod_status模块监控

1)加载mod_status.so 模块

在httpd.conf中打开LoadModule status_module modules/mod_status.so

2)修改httpd.conf配置文件增加(删注释#)如下内容:

<Location /server-status>
    SetHandler server-status
    Order deny,allow
    Deny from all
    Allow from all
</Location>
ExtendedStatus On

<location /server-status>:server-status这个名字可以修改。
Deny from:表示禁止的访问地址;nothing 表示没有禁止访问的地址 。
Allow from:表示允许的地址访问;all 表示所有的地址都可以访问。
ExtendedStatus On:显示其他信息,包括子httpd进程的应答信息。
Order deny,allow:优先级顺序,deny---拒绝,allow--允许。

重启apache服务器后在浏览器中访问:http://serverip/server-status 或 http://serverip/server-status?refresh=N(刷新时间) 或 http://serverip/server-status/auto(简单的状态表格)
   

重要指标:  

  • Total Accesses:到目前为止apache接收的联机数量
  • Total kBytes:接收的总的字节数
  • Uptime:服务器运行的总时间(单位:s)
  • CPULoad:当前由apache服务器消耗的CPU
  • ReqPerSec:平均每秒请求数,也就是命中率HPS
  • BytesPerSec:平均每秒发送的字节数
  • BytesPerReq:平均每个请求发送的字节数
  • BusyWorkers:提供服务的线程数,正在工作数
  • IdleWorkers:空闲的线程数

2、使用自带mod_info模块监控

 相对于mod_status模块提供的服务器状态信息,mod_info主要提供服务器的配置信息,并且不能动态更新

修改httpd.conf配置文件增加(删注释#)如下内容:

<Location /server-info>
  SetHandler server-info
  Order deny,allow
  Deny from all
  Allow from all
</Location>

重启apache服务器后在浏览器中访问:http://serverip/server-info,可以使用如下查询参数:

?config  显示apache配置文件

?<module-name>  显示模块相关信息

?list   显示所有使用中的模块列表

?server   显示基本的服务器信息

?hooks   显示每个模块所属的钩子列表

另外,mod_info模块还提供了AddModuleInfo指令来为server-info显示的模块增加额外的定制信息。

apache自带的mod_status和mod_info模块提供的监控功能比较弱,而且还可能会带来有安全方面的问题,所以一般建议取消这些模块功能,使用第三方工具来进行监控。

3、第三方工具监控

zabbix:基于PHP脚本的分布式系统监控以及网络监视功能的企业级解决方案,也能监控apache服务器。

Nagios:监视系统运行状态和网络信息的监视系统,和zabbix一样也提供基于Web的管理页面

4、LR监控apache服务器

      开启mod_status模块功能,在LR的controller中找到apache资源图双击并右键添加度量,如下图:

     添加apache服务器IP地址、选择系统平台、添加需要监控的计数器即可进行监控了。

                              

可能或存在Apache版本提供的计数器与LR默认计数器不一致的问题,就需要通过修改LR安装目录下\dat\monitors下的apache.cfg配置文件来解决。

5、利用apachetop工具监控apache日志

apachetop以类似top命令的方式实时显示apache的访问日志的统计信息,安装apachetop工具后,运行如下命令即可:

apachetop -f /usr/local/apache2/logs/access_log (apache日志文件目录)

6、其他实用监控命令

1)用ps来看httpd进程数

ps aux | grep httpd | wc -l

2)用netstat来看当前的连接数

netstat -ant | grep ":80" | wc -l

3) 实时检测httpd连接数

watch -n 1 -d  "pgrep httpd | wc -l"

4)计算httpd进程占用内存的平均数

ps aux|grep -v grep|awk ‘/httpd/{sum+=$6}; END{print sum/n}’

5)查看Apache的并发请求数及期TCP连接状态

netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

返回结果示例:
LAST_ACK 5
SYN_RECV 30
ESTABLISHED 1597
FIN_WAIT1 51
FIN_WAIT2 504
TIME_WAIT 1057

• 其中的SYN_RECV表示正在等待处理的请求数;ESTABLISHED表示正常数据传输状态;TIME_WAIT表示处理完毕,等待超时结束的请求数.

   状态:描述
• CLOSED:无连接是活动的
• LISTEN:服务器在等待进入呼叫
• SYN_RECV:一个连接请求已经到达,等待确认
• SYN_SENT:应用已经开始,打开一个连接
• ESTABLISHED:正常数据传输状态
• FIN_WAIT1:应用说它已经完成
• FIN_WAIT2:另一边已同意释放
• ITMED_WAIT:等待所有分组死掉
• CLOSING:两边同时尝试关闭
• TIME_WAIT:另一边已初始化一个释放
• LAST_ACK:等待所有分组死掉

Apache服务器性能监控的更多相关文章

  1. Zynga 开源其服务器性能监控分析工具 zPerfmon

    流年不利的社交游戏服务商Zynga近日在官方博客宣布开源zPerfmon——该工具负责监控Zynga数以千计的社交游戏服务器.zPerfmon的源代码目前已经上传至Github. 包括Facebook ...

  2. Web服务器性能监控分析与优化

    Web服务器性能监控分析与优化 http://www.docin.com/p-759040698.html

  3. linux 服务器性能监控(一)

    这篇文章主要介绍一些常用的linux服务器性能监控命令,包括命令的常用参数.指标的含义以及一些交互操作. 几个问题 命令本身并不复杂,关键是你对操作系统基础知识的掌握和理解,先来看看下面几个问题: C ...

  4. jmeter使用笔记——脚本录制,JMeter使用plugins插件进行服务器性能监控

    脚本录制: 1.badboy录制 2.代理服务器录制 ①工作台添加HTTP代理服务器 ②设置目标控制器,分组,排除模式,包含模式(使用正则表达式筛选) ③设置浏览器,手动设置代理服务器,localho ...

  5. JMeter使用plugins插件进行服务器性能监控

    JMeter使用plugins插件进行服务器性能监控 性能测试时,我们的关注点有两部分 1 服务本身:并发响应时间 QPS 2 服务器的资源使用情况:cpu memory I/O disk等 JMet ...

  6. 性能测试学习之路 (三)jmeter常见性能指标(相关术语、聚合报告 && 服务器性能监控配置 && 图形结果 && 概要报告)

    1 性能测试目的 性能测试的目的:验证软件系统是否能够达到用户提出的性能指标,同时发现软件系统中存在的性能瓶颈,以优化软件. 最后起到优化系统的目的性能测试包括如下几个方面: 1.评估系统的能力:测试 ...

  7. Jmeter工具使用-分布式架构和服务器性能监控解决方案

    在对项目做大并发性能测试时,常会碰到并发数比较大(比如需要支持10000并发),单台电脑的配置(CPU和内存)可能无法支持,这时可以使用Jmeter提供的分布式测试的功能来搭建分布式并发环境. 一.J ...

  8. Apache服务器性能如何优化

    配置网站,要充分的把系统资源利用出去,榨干系统的一切潜能,让网站速度发挥到极致.Apache,是用户浏览和网站数据的一个中间桥梁.但是在这里,我们虽然做得并不是很多,但是如果心细打理,有些设置也会起到 ...

  9. 服务器性能监控神器nmon使用介绍

    介绍 Nmon (Nigel's Monitor)是由IBM 提供.免费监控 AIX 系统与 Linux 系统资源的工具.该工具可将服务器系统资源耗用情况收集起来并输出一个特定的文件,并可利用 exc ...

随机推荐

  1. 配置nginx+php

    一般这样配置 此时很多教程会教大家这样配置Nginx+PHP: server { listen 80; server_name foo.com; root /path; location / { in ...

  2. [转]MySQL 最基本的SQL语法/语句

    MySQL 最基本的SQL语法/语句,使用mysql的朋友可以参考下.   DDL-数据定义语言(Create,Alter,Drop,DECLARE) DML-数据操纵语言(Select,Delete ...

  3. MVC前台页面做登录验证

    最近接触了一个电商平台的前台页面,需要做一个登录验证,具体情况是:当用户想要看自己的订单.积分等等信息,就需要用户登录之后才能查询,那么在MVC项目中我们应该怎么做这个前台的验证呢? 1.我在Cont ...

  4. 汽车遥控钥匙HCS101/HCS200/HCS201/HCS300芯片解密

    汽车遥控钥匙芯片解密ic解密型号: HCS101 | HCS200 | HCS201 | HCS201T | HCS300 | HCS300T HCS301 | HCS301T | HCS360 |  ...

  5. linq in not in

    class A { public int B { get; set; } public string C { get; set; } } class Program { static void Mai ...

  6. WinServer 2008 远程桌面连接设置

    WinServer 2008 远程桌面连接设置   1.在服务器端启用远程桌面>>计算机--右键--管理 看远程桌面是否已经启用,若未启用则启用它.配置远程桌面,勾选允许任意版本远程桌面的 ...

  7. Tastypie与Backbone交互

    上回玩到Tastypie与jQuery交互,那么现在接着玩玩Tastypie与Backbone.js交互 先把上篇的template文件:D:\project\tastypie\mysite\blog ...

  8. 怎样上传网页到ftp中

    1.下载filezilla软件软件并安装 打开刚刚装好的FileZilla,点击菜单中的"文件"             2.点击站点管理器 3.点击新站点

  9. 【POJ3254】Corn Fields 状压DP第一次

    !!!!!!! 第一次学状压DP,其实就是运用位运算来实现一些比较,挺神奇的.. 为什么要发“!!!”因为!x&y和!(x&y)..感受一下.. #include <iostre ...

  10. vue.js慢速入门(1)

    0.MVVM 什么是MVVM?就是Model-View-ViewModel. ViewModel是Vue.js的核心,它是一个Vue实例. 不太懂也没关系,慢慢就懂了. 1.基础示例 代码: < ...