Web压测工具之Webbench和http_load

时间:2023-12-16 11:52:20

Webbench简介

是知名的网站压力测试工具,能测试处在相同硬件上,不同服务的性能以及不同硬件上同一个服务的运行状况。

webbench的标准测试可以向我们展示服务器的两项内容:每秒钟相应请求数和每秒钟传输数据量。

Webbench最多可以模拟3万个并发连接去测试网站的负载能力

# 1.特点中规中矩,比较稳定
# 2.可以设置并发数和运行测试时间
# 3.可以对php,jsp等网页进行测试 # 综合来说,功能一般,但是胜在稳定,可以对页面进行测试并直接显示每秒响应数和流量

部署

# 安装依赖编辑器
yum install -y gcc ctags make
wget http://www.ha97.com/code/webbench-1.5.tar.gz
tar zxvf webbench-1.5.tar.gz
cd webbench-1.5
make && make install

使用案例

前面必须带http,最后面必须带/

-c指定并发,-t运行几秒,不确定每秒访问多少

webbench -c 2000 -t 2 http://192.168.2.38/

#请求页面为xxx
Benchmarking: GET http://192.168.2.38/ #并发2000,运行5秒
2000 clients, running 2 sec. #每分钟访问页面数量,每分钟字节数
Speed=409349 pages/min, 5757768 bytes/sec. #请求13645次,失败0
Requests: 13645 susceed, 0 failed.

Http_load简介

http_load以并行复用的方式运行,用以测试Web服务器的吞吐量与负载。但是它不同于大多数压力测试工具,其可以以一个单一的进程运行,这样就不会把客户机搞死,还可以测试HTTPS类的网站请求

# 1 . 它是读取文件方式来测试,文件中可以填写多个URL
# 2 . 可以设置1000并发,执行100次
# 3 . 可以设置100个并发,执行一小时
# 4 . 可以设置每秒100个请求,请求1000次
# 5 . 可以设置每秒100个请求,执行一小时 # 适合一个网站多个页面,长久的测试,看访问压力。但因为是单线程的,导致不能并发去访问

部署

yum -y install gcc cmake
# 然后创建存放说明的文件夹,否则编译报错
mkdir /usr/local/man
wget http://www.acme.com/software/http_load/http_load-12mar2006.tar.gz
tar -xzvf http_load-12mar2006.tar.gz
cd http_load-12mar2006
make && make install

使用案例

# 首先创建url文件
vim url.txt
echo "http://192.168.2.38/" >> url.txt
# 2000并发,总数为1万
http_load -p 2000 -f 10000 url.txt # 测试中运行了1000个请求,最大的并发进程数是270(自己设置的,但差不少),总计传输的数据是6.12e+06 bytes,运行的时间是2.74116秒
10000 fetches, 270 max parallel, 6.12e+06 bytes, in 2.74116 seconds # 每个连接平均传输的数据量
612 mean bytes/connection # 说明每秒的响应请求数为3648,每秒传递的数据为2.23263e+06 bytes
3648.09 fetches/sec, 2.23263e+06 bytes/sec # 每次连接的平均响应时间是11.4839毫秒,最大响应时间1007.84,最小响应时间0.104
msecs/connect: 11.4839 mean, 1007.84 max, 0.104 min # 说明每个请求的平均响应时间是13.4338毫秒,最大233.393,最小1.238
msecs/first-response: 13.4338 mean, 233.393 max, 1.238 min # 说明打开响应页面的类型,如果403的类型过多,那可能要注意是否系统遇到了瓶颈。当前1000个都返回200
HTTP response codes:
code 200 -- 10000
参数
# 命令格式:http_load  -p 并发访问进程数  -s 访问时间  需要访问的URL文件
# 参数其实可以*组合,参数之间的选择并没有什么限制。 # 比如你写成http_load -parallel 5 -seconds 300 urls.txt也是可以的。我们把参数给大家简单说明一下。 # -parallel 简写-p :含义是并发的用户进程数。
# -fetches 简写-f :含义是总计的访问次数
# -rate 简写-r :含义是每秒的访问频率,最大1000
# -seconds简写-s :含义是总计的访问时间