感谢支持
我们一直在努力

RedHat Linux 5 性能测试及监控

Linux的压力测试软件

工具:Ab

一般这个压力测试工具是在你安装httpd系统包的时候已经是自带的,我们可以通过

rpm –ql httpd |less

这个指令来查看自己的软件包里面是否存在这样的一个包

/usr/bin/ab

Ab [option][http[s] //hostname [:port]/path

-c并发请求量是在我们执行一次ab的时候,同时一个发送并发连接请求的数量,apache最大的连接请求达不到3000个,而每秒的数量越多,表示它的处理能力是越强的。

-n请求数量是当你执行benchmarking的时候一共有多少次的请求

例:ab –c 100 –n 1000 http://www.abc.com/测试的时候一定是测试的是主站点,测试的是你也可以通过查看进程来看一下运行ps aux |grep http

图1

负载测试

工具 :http-load

测试工具:http_load-12mar2006.tar.tar需要源代码安装

tar    –xvf        http_load-12mar2006.tar.tar

mv http_load-12mar2006        /usr/local/src/

cd  /usr/local/src/

cd  /http_load-12mar2006/

图2

make

make install

mkdir –pv    /usr/local/man/man1      创建多级子目录 v表示详细的信息

make install

图3

负载测试是一款工具,而我们源码安装是安装在/usr/local/目录下的,而我们只需要查看bin和sbin这两个目录就可以,普通账号可执行的普通二进制工具bin目录和管理员可以执行的会放到sbin里面

http-load [option]url_file(普通的文本文件,这个文件里面包含你需要测试的网站地址)

-f请求多少次

-p并发数量

-s时间限制在多长时间内必须完成

-r指定的速率

状态代码有三位数字组成,第一个数字定义了响应的类别,且有五种可能取值:

1xx:指示信息–表示请求已接收,继续处理

2xx:成功–表示请求已被成功接收、理解、接受

3xx:重定向–要完成请求必须进行更进一步的操作

4xx:客户端错误–请求有语法错误或请求无法实现

5xx:服务器端错误–服务器未能实现合法的请求

常见状态代码、状态描述、说明:

200 OK//客户端请求成功

400 Bad Request//客户端请求有语法错误,不能被服务器所理解

401 Unauthorized //请求未经授权,这个状态代码必须和WWW-Authenticate报头域一起使用

403 Forbidden//服务器收到请求,但是拒绝提供服务

404 Not Found//请求资源不存在,eg:输入了错误的URL

500 Internal Server Error //服务器发生不可预期的错误

503 Server Unavailable//服务器当前不能处理客户端的请求,一段时间后可能恢复正常

eg:HTTP/1.1 200 OK (CRLF)

更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2013-09/89889p2.htm

apache 的日志监控
1.处理单个日志。统计每一天各篇文章的访问量(http://www.ruanyifeng.com)。
代码: 
awk ‘$9 == 200 {print $7}’ www-01.log | grep -i ‘^/blog/2011/.*\.html$’ | sort | uniq -c | sed ‘s/^ *//g’ > www-01.log.result
它用管道连接了5个命令,每一个都很简单,我们依次来看:
(1)awk ‘$9 == 200 {print $7}’ www-01.log
awk命令默认用空格,将每一行文本分割成若干个字段。仔细数一下,我们需要的只是第7个字段,即http请求的网址,{print $7}表示将第7个字段输出,结果就是:/blog/2009/11/an_autobiography_of_yang_xianyi.html
(2)grep -i ‘^/blog/2011/.*\.html$’
在输出的所有记录的第7个字段之中,并不是每一条记录都需要统计的。根据我的文章的命名特点,它们的网址应该都以”/blog/2011/”开头,以”.html”结尾。所以,我用一个正则表达式”^/blog/2011/.*\.html$”,找出这些记录。参数i表示不区分大小写。
(3)sort
这时,所有需要统计的记录应该都列出来了,但是它们的次序是杂乱的。接着,使用sort命令,不过目的不是为了排序,而是把相同的网址排列在一起,为后面使用uniq命令创造条件。
(4)uniq –c
uniq的作用是过滤重复的记录,只保留一行。c参数的作用,是在每行的开头添加该记录的出现次数。
(5)sed ‘s/^ *//g’ > www-01.log.result
上一步uniq命令添加的访问次数,是有前导空格的。也就是说,在上例的32、32、30之前有一连串空格,为了后续操作的方便,这里把前导空格删去。sed命令是一个处理行文本的编辑器,’s/^ *//g’是一个正则表达式(^和*之间有一个空格),表示将行首的连续空格替换为空(即删除)。接着,将排序结果重定向到文件www-01.result。单个日志分析就完成了。

另外可以从网上下载一些工具,也可以实现统计
例如:webalizer            awstat
apache 日志分析工具webalizer网址www.webalizer.org

Webalizer特性
1. 为是用C写的程序,所以其具有很高的运行效率。在主频为200Mhz的机器上,webalizer每秒钟可以分析10000条记录,所以分析一个40M大小的日志文件只需要15秒。
2. webalizer支持标准的一般日志文件格式(Common Logfile Format);除此之外,也支持几种组合日志格式(Combined Logfile Format)的变种,从而可以统计客户情况以及客户操作系统类型。并且现在webalizer已经可以支持wu-ftpd xferlog日志格式以及squid日志文件格式了。
3. 支持命令行配置以及配置文件。
4. 可以支持多种语言,也可以自己进行本地化工作。
5. 支持多种平台,比如UNIX、linux、NT, OS/2 和 MacOS等。
Webalizer安装
1.从webalizer的官方站点下载webalizer,当前的最新版本是2.23-05。
2.首先解开源代码包:
tar      -xvzf      webalizer-2.01-06-src.tgz
3.在生成的目录中有个lang目录,该目录中保存了各种语言文件,但是只有繁体中文版本,可以自己转换成简体,或者自己重新翻译一下。
4.然后进入生成的目录:
图4
执行./configure
–sysconfdir=/etc                          配置脚本存放位置
–with-geodb=<path>                  是否结合地理位置显示
make –with-language=chinese
5.编译成功后,会产生一个webalizer可执行文件,可以将其拷贝到/usr/sbin/目录下:
cp  webalizer  /usr/sbin/

然后就可以开始配置webalizer了。
配置:
上面说过,可以通过命令行配置webalizer,也可以通过配置文件进行配置,在本文中我们将介绍使用命令行参数进行配置,需要了解配置文件使用方法的朋友可以参考README文件,里面有很详细的介绍。
可以执行webalizer –h得到所有命令行参数:
Usage: webalizer [options] [log file]
-h = 打印帮助信息
-v -V = 打印版本信息
-d = 打印附加调试信息
-F type = 日志格式类型. type= (clf | ftp | squid)
-i = 忽略历史文件
-p = 保留状态 (递增模式)
-q = 忽略消息信息
-Q = 忽略所有信息
-Y = 忽略国家图形
-G = 忽略小时统计图形
-H = 忽略小时统计信息
-L = 忽略彩色图例
-l num = 在图形中使用数字背景线
-m num = 访问超时 (seconds)
-T = 打印时间信息
-c file = 指定配置文件
-n name = 使用的主机名
-o dir = 结果输出目录
-t name = 指定报告题目上的主机名
-a name = 隐藏用户代理名称
-r name = 隐藏访问链接
-s name = 隐藏客户
-u name = 隐藏URL
-x name = 使用文件扩展名
-P name = 页面类型扩展名
-I name = index别名
-A num = 显示前几名客户类型
-C num = 显示前几名国家
-R num = 显示前几名链接
-S num = 显示前几名客户
-U num = 显示前几名URLs
-e num = 显示前几名访问页面
-E num = 显示前几名不存在的页面
-X = 隐藏个别用户
-D name = 使用dns缓存文件
-N num = DNS 进程数 (0=禁用dns)
假设,web服务器主机名为www.test.com,统计站点域名为www.test.com,访问日志为/var/log/httpd/access_log, 我们将webalizer分析结果输出到/var/www/html/log下面。
则我们可以建立以下脚本/etc/rc.d/webalizer:
#!/bin/sh
run=/usr/sbin/webalizer
$run -F clf -p -n ” ” -t “www.test.com” -o /var/www/html/log /var/log/httpd/access_log
说明:
-F clf 指明我们的web日志格式为标准的一般日志文件格式(Common Logfile Format)
-p 指定使用递增模式,这就是说每作一次分析后,webalizer会生产一个历史文件,这样下一次分析时就可以不分析已经处理过的部分。这样我们就可以在短时间内转换我们的日志文件,而不用担心访问量太大时日志文件无限增大了。
-n ““指定服务器主机名为空,这样输出结果会美观一些。
-o “www.test.com”指定输出结果标题.
/var/log/httpd/access_log:指定日志文件
然后在/etc/crontab中加入:
01 1 * * * root /etc/rc.d/webalizer
即每天凌晨1点执行该脚本。
然后运行/etc/rc.d/init.d/crond reload重载入crond服务。
测试:
执行以下命令:
# /etc/rc.d/webalizer
然后在浏览器中访问http://www.test.com/log/就可以看到webalizer的分析结果了。
注意:如果您使用了中文语言文件,但是您的linux不支持中文,则在产生的图片中文字可能为乱码
直接用网页的形式执行:www.abc.com/log
图5


 
监控
Snmp        Cact1            nagios

LoadModule status_module modules/mod_status.so  状态输出
ExtendedStatus on需要把这个选项打开
图6

执行:http://www.abc.com/server-stat
图7

更多RedHat相关信息见RedHat 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=10

赞(0) 打赏
转载请注明出处:服务器评测 » RedHat Linux 5 性能测试及监控
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏