Linux压力测试工具

时间:2021-04-25 20:17:47

1 http_load:http://www.oschina.net/p/http_load

命令行输入man http_load 或者 http_load -h可以看到工具的使用方式:

参数说明:

-parallel   简写-p :含义是并发的用户进程数。
-fetches   简写-f :含义是总计的访问次数
-rate        简写-r :含义是每秒的访问频率
-seconds  简写-s :含义是总计的访问时间
urls.txt :  是需要进行压力测试的文件,文件里面记录的是需要进行测试的url地址

使用方式说明:

http_load -parallel 100 -fetches 10000 urls.txt

#100个并发执行10000次

http_load -parallel 100 -seconds 3600 urls.txt

#100个并发执行1小时

http_load -rate 100 -fetches 10000 urls.txt

#每秒100个请求频率,请求10000次

http_load -rate 100 -seconds 3600 urls.txt

#每秒100个请求频率执行1小时

结果分析:

49 fetches, 2 max parallel, 289884 bytes, in 10.0148 seconds
5916 mean bytes/connection
4.89274 fetches/sec, 28945.5 bytes/sec
msecs/connect: 28.8932 mean, 44.243 max, 24.488 min
msecs/first-response: 63.5362 mean, 81.624 max, 57.803 min
HTTP response codes:
code 200 -- 49

1.49 fetches, 2 max parallel, 289884 bytes, in 10.0148 seconds
说明在上面的测试中运行了49个请求,最大的并发进程数是2,总计传输的数据是289884bytes,运行的时间是10.0148秒

2.5916 mean bytes/connection
说明每一连接平均传输的数据量289884/49=5916

3.4.89274 fetches/sec, 28945.5 bytes/sec
说明每秒的响应请求个数为4.89274,每秒传递的数据为28945.5 bytes/sec

4.msecs/connect: 28.8932 mean, 44.243 max, 24.488 min
说明每次连接的平均响应时间是28.8932 msecs(毫秒),最大的响应时间44.243 msecs,最小的响应时间24.488 msecs

5.msecs/first-response: 63.5362 mean, 81.624 max, 57.803 min

6、HTTP response codes: code 200 -- 49
说明打开响应页面的类型,如果403的类型过多,那可能要注意是否系统遇到了瓶颈。
特殊说明:这里,我们一般会关注到的指标是fetches/sec(每秒处理的请求数量)、msecs/connect(每次连接处理的时间)
他们分别对应的常用性能指标参数
Qpt-每秒响应用户数和response time,每次连接响应用户的时间。
测试的结果主要也是看这两个值。当然仅有这两个指标并不能完成对性能的分析,我们还需要对服务器的cpu、men进行分析,才能得出结论

错误信息:byte count wrong
http_load在处理时会去关注每次访问同一个URL返回结果(即字节数)是否一致,若不一致就会抛出byte count wrong
所以动态页面可以忽略这个错误信息。

使用ps -ef | grep http_load | wc -l可以看出只有一个http_load进程,说明在执行并发的时候并没有产生相应的子进程去执行并发,始终只有一个进程

2 webbench

WebBench是有名的网站压力测试工具,由Lionbridge公司开发,最多可以模拟3万个并发连接去测试网站的负载能力。
Webbech能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况。webBech的标准测试可以向我们展示服务器的 两项 内容:每秒钟相应请求数和每秒钟传输数据量。webbench不但能具有便准静态页面的测试能力,还能对动态页面(ASP,PHP,JAVA,CGI)进 行测试的能力。还有就是他支持对含有SSL的安全网站例如电子商务网站进行静态或动态的性能测试。

1).下载webbench文件

直接网上下载webbench文件或wget命令下载:

wget http://home.tiscali.cz/cz210552/distfiles/webbench-1.5.tar.gz

2).解压要编译的文件

tarzxvf webbench-1.5.tar.gz

3).编译源代码和安装文件

cd webbench-1.5
vim Makefile (自定义安装路径,PREFIX?= /usr/local)
make&& make install

4).webbench-c 500 -t 30 http://www.baidu.com/index.php

参数说明:-c表示并发数,-t表示时间(秒)

测试结果:

Webbench - Simple Web Benchmark 1.5
Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://www.baidu.com/index.php
100 clients, running 60 sec.

Speed=600 pages/min, 592821 bytes/sec.
Requests: 624 susceed, 0 failed.

每秒钟传输数据量:592821 bytes/sec每秒钟相应请求数:600/60= 10 pages/sec

使用ps -ef | grep webbench | wc -l可以看出只有500个webbench进程,说明在执行并发的时候产生了相应的子进程去执行并发

3 ab
ab是apache自带的一款功能强大的测试工具,安装了apache一般就自带了,输入man ab就可以查看到具体的使用方式.

参数众多,一般我们用到的是-n 和-c
例如:
ab -c 1000 -n 100 http://www.baidu.com/index.php

这个表示同时处理1000个请求并运行100次index.php文件

使用ps -ef | grep ab | wc -l可以看出只有1000个webbench进程,说明在执行并发的时候产生了相应的子进程去执行并发