[转]使用Siege进行WEB压力测试

上一篇 / 下一篇  2011-08-01 17:41:22 / 个人分类:压力测试

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

首先,进行安装:

wget ftp://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 bbs.url
**SIEGE2.67
**Preparing500concurrent usersforbattle.
Theserverisnow under siege..     done.
Transactions:                 25000hits
Availability:               100.00%
Elapsedtime:                 65.52secs
Datatransferred:             83.65MB
Responsetime:                 0.57secs
Transactionrate:           381.56trans/sec
Throughput:                   1.28MB/sec
Concurrency:                 216.02
Successfultransactions:     21707
Failedtransactions:             0
Longesttransaction:           5.83
Shortesttransaction:         0.00

上面是用500并发重复测试50次bbs.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。


TAG:

 

评分:0

我来说两句

Open Toolbar