本文作者:DurkBlue

谈谈Web服务器性能压力测试工具

DurkBlue 2020-03-16 1833 抢沙发
谈谈Web服务器性能压力测试工具摘要: webbench是Linux下的一个网站压力测试工具,最多可以模拟3万个并发连接去测试网站的负载能力。下载地址可以到google搜,我这里给出一个下载地址:http://soft....

webbench是Linux下的一个网站压力测试工具,最多可以模拟3万个并发连接去测试网站的负载能力。

下载地址可以到google搜,我这里给出一个

下载地址:http://soft.vpser.net/test/webbench/webbench-1.5.tar.gz

安装非常简单


#tar zxvf webbench-1.5.tar.gz

#cd webbench-1.5

#make && make install

会在当前目录生成webbench可执行文件,直接可以使用了

用法:webbench -c 并发数 -t 运行测试时间 URL


例如:

#webbench -c 1000 -t 130 http://xxx.com



 


http_load

基于linux平台的一种性能测工具。以并行复用的方式运行,用以测试web服务器的吞吐量与负载,测试web页面的性能。

优点

1.基于命令行,简单、易于上手

2.小巧轻便,解压缩后不到100k

3.开源,免费

缺点

1.仅适用于web页面的性能测试,不适用于访问数据库

2.测试结果分析有限

3.平台依赖linux


http_load官网: http://www.acme.com/software/http_load/


1. 下载和安装


进入工作目录:#cd /usr/local/


wget http://acme.com/software/http_load/http_load-12mar2006.tar.gz


tar zxvf http_load-12mar2006.tar.gz



进入http_load 目录:#cd http_load-12mar2006

编译和安装


make && make install


如果遇到错误,可以执行安装:yum -y install gcc gcc-c++


2. 参数使用


-fetches 简写-f :含义是总计的访问次数 

-rate 简写-r :含义是每秒的访问频率 

-seconds简写-s :含义是总计的访问时间 

-parallel 简写-p:并发访问的线程数 

urls是一个url 列表,每个url 单独的一行。可以单个页面。


测试:http_load  -parallel  5  -seconds  10  urllist.txt


3. 应用

测试网站每秒所能承受的平均访问量

http_load -parallel 5-fetches 1000urls.txt这段命令行是同时使用5个进程,随机访问urls.txt中的网址列表,总共访问1000次。运行之后的结果:

1000 fetches, 5 max parallel, 6e+06 bytes, in 58.1026 seconds

6000 mean bytes/connection

17.2109 fetches/sec, 103266 bytes/sec

msecs/connect: 0.403263 mean, 68.603 max, 0.194 min

msecs/first-response: 284.133 mean, 5410.13 max, 55.735 min

HTTP response codes:

code 200 — 1000

从上面的运行结果来看,目标网站仅仅能够承受每秒17次访问,不够强壮。

测试网站是否能承受住预期的访问压力

http_load -rate 2-seconds 300urls.txt

在300秒内保持一定的频率访问目标url。


示例:

对接口进行压力测试

http://10.32.22.60/vcsp/appData/news/recommend.do?useType=iPhone&channelId=000000-0&pageSize=20&positionId=255031

为了扩大测试样本,在后面自定义一个参数param=0,加上该参数后不会影响返回数据,只是降低缓存的命中率。

使用java写一个循环生成500个url


public class Demo {
public static void main(String[] args) throws IOException {
FileOutputStream fos = new FileOutputStream("D:/param.txt");
OutputStreamWriter osw = new OutputStreamWriter(fos);
BufferedWriter bw = new BufferedWriter(osw);
for(int i=0; i<500; i++){
bw.write("http://10.32.22.60/vcsp/appData/news/recommend.do?useType=iPhone&
channelId=000000-0&pageSize=20&positionId=255031&param="+i);
bw.newLine();
bw.flush();
}
bw.close();
osw.close();
fos.close();
}
}

在/usr/local目录下创建urls.txt文件,将生产的url粘贴过来。

开始测试啦:


./http_load -parallel 1 -seconds 60 urls.txt


如果在输入命令后报错: ./http_load: unknown protocol -, 说明txt文档中有多余的空行,要将其删除。

这篇文章由DurkBlue发布,转载请注明来处
文章投稿或转载声明

来源:DurkBlue版权归原作者所有,转载请保留出处。本站文章发布于 2020-03-16
温馨提示:文章内容系作者个人观点,不代表DurkBlue博客对其观点赞同或支持。

赞(0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享

发表评论取消回复

快捷回复:
AddoilApplauseBadlaughBombCoffeeFabulousFacepalmFecesFrownHeyhaInsidiousKeepFightingNoProbPigHeadShockedSinistersmileSlapSocialSweatTolaughWatermelonWittyWowYeahYellowdog

评论列表 (暂无评论,1833人围观)参与讨论

还没有评论,来说两句吧...