网站压力测试工具 Webbench

  • 2019 年 10 月 6 日
  • 筆記

Webbench是知名的网站压力测试工具,它是由Lionbridge公司(http://www.lionbridge.com)开发。

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

一、获得webbench

1、下载

官方网站:http://home.tiscali.cz/~cz210552/webbench.html

2、WebBench安装:

[root@docker-04 opt]# yum install -y gcc ctags #先安装编译需要的组件

[root@docker-04 opt]# wget http://www.ha97.com/code/webbench-1.5.tar.gz

[root@docker-04 opt]# tar zxvf webbench-1.5.tar.gz

[root@docker-04 opt]# cd webbench-1.5

[root@docker-04 webbench-1.5]# make -j 4

[root@docker-04 webbench-1.5]# cp webbench /usr/bin

二、使用方法

[root@docker-04 webbench-1.5]# webbench

webbench [option]… URL

-f|–force Don't wait for reply from server.

-r|–reload Send reload request – Pragma: no-cache.

-t|–time <sec> Run benchmark for <sec> seconds. Default 30.

-p|–proxy <server:port> Use proxy server for request.

-c|–clients <n> Run <n> HTTP clients at once. Default one.

-9|–http09 Use HTTP/0.9 style requests.

-1|–http10 Use HTTP/1.0 protocol.

-2|–http11 Use HTTP/1.1 protocol.

–get Use GET request method.

–head Use HEAD request method.

–options Use OPTIONS request method.

–trace Use TRACE request method.

-?|-h|–help This information.

-V|–version Display program version.

三、进行测试

示例1,一般我们只用到-c和-t两个参数,类似下面这样。

[root@docker-04 webbench-1.5]# webbench -c 300 -t 60 http://192.168.88.157/phpinfo.php

-t表示运行测试的时间,如果不指定默认是30秒,-c表示客户端数量,也就是并发数。

示例2,是csdn博客的首页。

[root@docker-04 webbench-1.5]# webbench -c 1000 http://blog.csdn.net/

Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://blog.csdn.net/

1000 clients, running 30 sec.

Speed=86078 pages/min, 665694 bytes/sec.

Requests: 42948 susceed, 91 failed.

示例3,是一个可以下载电影的网站。

[root@docker-04 webbench-1.5]# webbench -c 1000 http://www.80s.com/

Webbench – Simple Web Benchmark 1.5

Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.

Benchmarking: GET http://www.80s.com/

1000 clients, running 30 sec.

Speed=60224 pages/min, 498450 bytes/sec.

Requests: 110 susceed, 30002 failed.

示例4,是我公司的一个网站,用于商户管理,查询交易记录等功能。该网站是java写的,用了struts+spring+hibernate的框架。

[root@docker-04 webbench-1.5]# webbench -c 1000 http://xxx.xxx.xxx.xxx:8080/INNPay/login.jsp

示例5,是我公司一个公众号服务地址。php写的,没有用任何的框架。

[[email protected]]#webbench -c 1000 http://xxx.xxx.xxx/inn_wechat_nofity/mc_login.php

四、结果分析

Pages/min:指的输出页数/分

bytes/sec:是指比特/秒

这两个指标能反应网站的访问速度。susceed和failed表示请求的成功数目和失败数目,失败的原因虽然没有日志但是应该能猜出是get请求得不到200的响应。

在测试的过程中,再通过浏览器访问被测试的网址能感觉到明显的卡顿。

上面的测试使用了相同的参数(1000的并发数目,30秒),但是不能根据测试结果比较网站的性能。因为还有其它因素,比如测试的当前网页有没有涉及到数据库的访问等等。

关于运维学习、分享、交流,笔者开通了微信公众号【运维猫】,感兴趣的朋友可以关注下,欢迎加入,建立属于我们自己的小圈子,一起学运维知识。