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 for www.test.com

Server Version: Apache/2.2.16  mod_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"状态,很可能是这些进程计算时间太长或程序有死循环,可以对程序进行改进。

通过apache的mod_status 统计占资源的脚本的更多相关文章

  1. 使用 Ansible 统计服务器资源利用率

    使用 Ansible 统计服务器资源利用率: 3 条 shell 脚本实现统计: CPU 利用率统计: top -bn1 | grep load | awk '{printf "CPU Lo ...

  2. ns统计使用资源的SNMP OID

    ns统计使用资源的SNMP OID > add snmp manager 192.168.195.1 > add snmp community public ALL > add sn ...

  3. (转) Nova是如何统计OpenStack资源

    引言 运维的同事常常遇到这么四个问题: Nova 如何统计 OpenStack 计算资源? 为什么 free_ram_mb, free_disk_gb 有时会是负数? 即使 free_ram_mb, ...

  4. Nova 如何统计 OpenStack 资源

    1.云计算的本质在于将硬件资源软件化,以达到快速按需交付的效果,最基本的计算.存储和网络基础元素并没有因此改变.就计算而言,CPU.RAM 和 DISK等依旧是必不可少的核心资源. 从源代码和数据库相 ...

  5. 小白读iOS冗余资源扫描脚本

    随着公司项目的不断功能迭代,项目的体积越来越大,各种瘦身策略迫在眉睫.由于平时使用Linux高级命令和 shell脚本的机会不多,之前学的知识一下子想起来很难.所有趁着这次看脚本,重新温习一下. 本文 ...

  6. iOS项目冗余资源扫描脚本

    iOS项目冗余资源扫描脚本 随着iOS项目的版本不断迭代,app中冗余文件会越来越多,app size也持续增加,是时候需要对app冗余资源进行检测,对app进行瘦身. 使用方法: 1. 运行环境为m ...

  7. Nginx技巧——Nginx/Apache下禁止指定目录运行PHP脚本(转自运维之美)

    网站程序的上传目录通常是不需要PHP执行解释权限,通过限制目录的PHP执行权限可以提网站的安全性,减少被攻击的机率. 下面和大家一起分享下如何在Apache和Nginx禁止上传目录里PHP的执行权限. ...

  8. MySql 简单统计查询消耗时间脚本

    MySql 简单统计查询消耗时间脚本 by:授客 QQ:1033553122 drop procedure if exists selectTime; delimiter; create proced ...

  9. apache如何解决跨域资源访问

    很多时候,大中型网站为了静态资源分布式部署,加快访问速度,减轻主站压力,会把静态资源(例如字体文件.图片等)放在独立服务器或者CDN上,并且使用独立的资源域名(例如res.test.com) 但是在实 ...

随机推荐

  1. CodeForces Round #515 Div.3 B. Heaters

    http://codeforces.com/contest/1066/problem/B Vova's house is an array consisting of nn elements (yea ...

  2. 在smarty模板中使用PHP函数的方法

    在smarty模板中如果要在显示的资料使用php函数时,如果是只有一个参数的函数比如说去空白的trim会写成 sample1 代码如下: <{$colname|trim}> 那如果使用像i ...

  3. 【Luogu】P4172水管局长(LCT)

    题目链接 有个结论是x到y的路径上最长边权值等于最小生成树上最长边权值,于是问题转化为最小生成树. 再考虑把问题反过来,删边变成加边. 于是变成动态维护最小生成树,LCT可以做到. #include& ...

  4. [国家集训队][bzoj2038] 小Z的袜子 [莫队]

    题面: 传送门 思路: 又是一道标准的莫队处理题目,但是这道题需要一点小改动:求个数变成了求概率 我们思考:每次某种颜色从i个增加到i+1个,符合要求的情况多了多少? 原来的总情况数是i*(i-1)/ ...

  5. Hibernate逆向工程生成代码

    编辑此文章,其目的是方便以后根据表生成相应的代码,然而并非所有的代码都是如此.这里的Hibernate 即响应题目的ssh框架中的“h”. 如图所示,点击右上角,在myeclipse之中.再点击Mye ...

  6. Python之面向对象:面向对象基础

    一.面向过程.面向对象对比 1.面向过程 根据业务逻辑从上到下写垒代码 2.函数式思想 将某功能代码封装到函数中,日后便无需重复编写,仅调用函数即可 3.面向对象 对函数进行分类和封装 1.2.3一步 ...

  7. Python之文件操作:经验总结

    1.怎么判断读出来的文件是gbk还是utf-8编码 if content == u'中国'.encode('gbk'):     return 'gbk' elif content == u'中国'. ...

  8. codeforces round375(div.2)题解

    首先吐槽一下这套题...为什么EF全是图论QAQ 过了ABCD四个题...F的并查集死磕了好久... 不过似乎rank还算乐观...(因为ABC都是一次过的QAQ) Problem A: 啥都不想说Q ...

  9. ThreadPool怎样判断子线程全部执行完毕

    原文发布时间为:2010-10-27 -- 来源于本人的百度文章 [由搬家工具导入] 1、先来看看这个 http://hi.baidu.com/handboy/blog/item/160e9697fd ...

  10. RowFilter 对于已获取到的dataset进行过滤

    原文发布时间为:2009-11-12 -- 来源于本人的百度文章 [由搬家工具导入] DataView的属性RowFilter使用方法 p.s. 重点在于DataView是DateTable相关联的一 ...