技术开发 频道

使用Siege进行WEB压力测试

  【IT168 技术文档】

  虽然Apache自带一个压力测试工具ab,但是ab的功能太简单了,无法模拟真实的web访问,所以我们要用到更加强大的web压力测试工具——Siege(英文原意:围攻)。

  首先,进行安装:

  wgetftp://ftp.joedog.org/pub/siege/siege-latest.tar.gz

  tar zxvf siege-latest.tar.gz

  cd siege-2.67

  ./configure

  make && make install

  安装完成后,就可以开始进行压力测试了

  修改siege配置

  vi ~/.siegerc

  调整:

  verbose = false

  concurrent = 50

  delay = 1

  internet = true

  benchmark = true

  siege参数介绍:

  * -cNUM

  设置并发的用户(连接)数量,比如-c10,设置并发10个连接。默认的连接数量可以到~/.siegerc中查看,指令为concurrent = x,前面咱们已经调整了默认并发连接为50。

  * -rNUM

  (repetitions),重复数量,即每个连接发出的请求数量,设置这个的话,就不需要设置-t了。对应.siegerc配置文件中的reps = x指令

  * -tNUM

  (time),持续时间,即测试持续时间,在NUM时间后结束,单位默认为分,比如-t10,那么测试时间为10分钟,-t10s,则测试时间为10秒钟。对应.siegerc中的指令为time = x指令

  * -b

  (benchmark),基准测试,如果设置这个参数的话,那么delay时间为0。在.siegerc中咱们修改为默认开启。

  * -f url.txt

  (file),这是url列表文件。对应.siegerc配置文件中的file = x指令

  测试结果分析:

  [root@bbs ~]# siege -c 500 -r 50 -f shunz.net.url

  ** SIEGE 2.67

  ** Preparing 500 concurrent users for battle.

  The server is now under siege.. done.

  Transactions: 25000 hits

  Availability: 100.00 %

  Elapsed time: 65.52 secs

  Data transferred: 83.65 MB

  Response time: 0.57 secs

  Transaction rate: 381.56 trans/sec

  Throughput: 1.28 MB/sec

  Concurrency: 216.02

  Successful transactions: 21707

  Failed transactions: 0

  Longest transaction: 5.83

  Shortest transaction: 0.00

  上面是用500并发重复测试50次shunz.net.url里的url列表的结果,下面一条一条地分析测试结果:

  Transactions: 25000 hits  意思是总共完成了25000次测试

  Availability: 100.00 %  测试的有效性100%

  Elapsed time: 65.52 secs  用时65.52秒

  Data transferred: 83.65 MB  传输了83.65MB数据

  Response time: 0.57 secs  响应时间

  Transaction rate: 381.56 trans/sec  每秒传输381.56次

  Throughput: 1.28 MB/sec  数据吞吐量每秒1.28MB

  Concurrency: 216.02  实际并发访问

  Successful transactions: 21707  成功的传输

  Failed transactions: 0  失败的传输

  Longest transaction: 5.83  每次传输所花最长时间

  Shortest transaction: 0.00  每次传输所花最短时间

  另外,提醒一句,如果你的WEB服务器用的是Apache,请不要将并发数设为大于200。

0
相关文章