Web服务器性能/压力测试工具http_load、webbench、ab详解

1、http_load
基于linux平台的一种性能测工具。以并行复用的方式运行,用以测试web服务器的吞吐量与负载,测试web页面的性能。
安装:
目录:#cd /usr/local/
#wget http://www.acme.com/software/http_load/http_load-09Mar2016.tar.gz
#tar -zxvf http_load-12mar2006.tar.gz
#cd http_load-12mar2006
#make && make install
如果报错:“无法创建一般文件‘/usr/local/man/man1’: 没有那个文件或目录”
可先mkdir /usr/local/man 再次make install
使用参数编辑
-fetches 简写-f :含义是总计的访问次数
-rate 简写-r :含义是每秒的访问频率
-seconds简写-s :含义是总计的访问时间
-parallel 简写-p:并发访问的线程数
url是一个url 列表,每个url 单独的一行。可以单个页面。
测试网站每秒所能承受的平均访问量

./http_load -rate 10 -proxy  IP:port -seconds 5 url #可以指定IP压测
测试网站每秒所能承受的平均访问量

http_load1

注意:如果在你测试的时候报这个错误:
./http_load: unknown protocol – URL列表里面没有带有http://开头
./http_load: getaddrinfo www.baidu.com   – Name or service not known 查看你url中的地址后面是否有空格
2、webbench
webbench是Linux下的一个网站压力测试工具,最多可以模拟3万个并发连接去测试网站的负载能力。

下载地址:wget http://home.tiscali.cz/cz210552/distfiles/webbench-1.5.tar.gz
#tar zxvf webbench-1.5.tar.gz
#cd webbench-1.5
#make && make install

用法:
-t : 运行webbench的时间。
-c : 子进程的个数。
-f : 不等待返回结果。
-h : 帮助
webbench -c 并发数 -t 运行webbench的时间 URL
测试:webbench -c 500 -t 30 http://127.0.0.1/test.jpg

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

Benchmarking: GET http://127.0.0.1/test,jpg
500 clients, running 30 sec.

Speed=3230 pages/min, 11614212 bytes/sec.
Requests: 1615 susceed, 0 failed.

分析:每秒钟响应请求数:3230 pages/min,每秒钟传输数据量11614212 bytes/sec.

3、ab全称为:apache bench
ab是apache自带的压力测试工具。ab非常实用,它不仅可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。
下载地址:wget http://httpd.apache.org/
格式: ./ab [options] [http://]hostname[:port]/path
-n 测试会话中所执行的请求个数
-c 一次产生的请求数
-t 测试所进行的最大秒数
-v 设置显示信息的详细程度 – 4或更大值会显示头信息, 3或更大值可以显示响应代码(404, 200等), 2或更大值可以显示警告和其他信息。
-V 显示版本号并退出。
常用的参数 若有其他需要man ab

例:./ab -c 1000 -n 1000 http://127.0.0.1/1.jpg
-n 1000 表示总请求数为1000
-c 10 表示并发用户数为10
http://127.0.0.1/1.jpg 表示这些请求的目标url

吞吐率(Requests per second)
概念:服务器并发处理能力的量化描述,单位是reqs/s,指的是某个并发用户数下单位时间内处理的请求数。某个并发用户数下单位时间内能处理的最大请求数,称之为最大吞吐率。
计算公式:总请求数 / 处理完成这些请求数所花费的时间,即
Request per second = Complete requests / Time taken for tests

并发连接数(The number of concurrent connections)
概念:某个时刻服务器所接受的请求数目,简单的讲,就是一个会话。

并发用户数(The number of concurrent users,Concurrency Level)
概念:要注意区分这个概念和并发连接数之间的区别,一个用户可能同时会产生多个会话,也即连接数。

用户平均请求等待时间(Time per request)
计算公式:处理完成所有请求数所花费的时间/ (总请求数 / 并发用户数),即
Time per request = Time taken for tests /( Complete requests / Concurrency Level)

服务器平均请求等待时间(Time per request: across all concurrent requests)
计算公式:处理完成所有请求数所花费的时间 / 总请求数,即
Time taken for / testsComplete requests
可以看到,它是吞吐率的倒数。
同时,它也=用户平均请求等待时间/并发用户数,即
Time per request / Concurrency Level

原创文章,作者:赛福,如若转载,请注明出处:https://www.safecdn.cn/265.html

本站不销售、不代购、不提供任何支持,仅分享网络信息,请自行辨别,请遵纪守法、文明上网。