天下第二博

Tian Xia The Second BO
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Web网站压力及性能测试工具WebBench使用指南

Posted on 2013-01-17 18:32  Nuke'Blog  阅读(309)  评论(0编辑  收藏  举报

Webbench是知名的网站压力方面的测试工具,它是由Lionbridge公司开发。

官方主页:http://home.tiscali.cz/~cz210552/webbench.html

在运维工作中,网站压力及性能测试是一项很重要的工作。比如在一个网站上线之前,能承受多大访问量、在大访问量情况下性能怎样,这些数据指标好坏将会直接 影响用户体验。但是,在压力及性能测试中存在一个共性,那就是压力及性能测试的结果与实际负载结果不会完全相同,就算压力及性能测试工作做的再好,也不能 保证100%和线上性能指标相同。面对这些问题,我们只能尽量去想方设法去模拟。所以,压力及性能测试非常有必要,有了这些数据,我们就能对自己做维护的 平台做到心中有数。

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

  适用于linux操作系统

  1、WebBench安装:

  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

  补充:安装过程中如提示缺少组件请安装,缺少目录,请手动创建。

  2、WebBench使用:

  webbench -c 1000 -t 60 http://192.168.1.188/test.php
  webbench -c 并发数 -t 运行测试时间 URL

  3、测试结果示例:

  #webbench -c 300 -t 60 http://192.168.1.188/test.php
  Webbench – Simple Web Benchmark 1.5
  Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
  Benchmarking: GET http://192.168.80.157/phpinfo.php
  300 clients, running 60 sec.
  Speed=24525 pages/min, 20794612 bytes/sec.
  Requests: 24525 susceed, 0 failed.

  每秒钟响应请求数:24525/60= X pages/sec,每秒钟传输数据量20794612 bytes/sec。

  当并发1000时,已经显示有87个连接failed了,说明超负荷了。

  #webbench -c 1000 -t 60 http://192.168.1.188/test.php
  Webbench – Simple Web Benchmark 1.5
  Copyright (c) Radim Kolar 1997-2004, GPL Open Source Software.
  Benchmarking: GET http://192.168.80.157/phpinfo.php
  1000 clients, running 60 sec.
  Speed=24920 pages/min, 21037312 bytes/sec.
  Requests: 24833 susceed, 87 failed

  补充:

  1、压力及性能测试工作应该放到产品上线之前,而不是上线以后;
  2、测试时并发应当由小逐渐加大,比如并发100时观察一下网站负载是多少、打开页面是否流畅,并发200时又是多少、网站打开缓慢时并发是多少、网站打不开时并发又是多少;
  3、更详细的进行某个页面测试,如电商网站可以着重测试购物车、推广页面等,因为这些页面占整个网站访问量比重较大。

  备注:webbench 做压力及性能测试时,该软件自身也会消耗CPU和内存资源,为了测试准确,建议将 webbench 安装在其他的服务器上,已达到测试数据更加精确。