web压力测试软件Siege的正确用法

近来想研究一下常见的压力测试软件,对比一下,是选择其中哪一个最合适使用,从压力测试的准确性和功能二方面对比.近来就开始放狗来查相关的资料.

在使用 Siege 时,参加网上的文件,包括 东东 的,发现大家好象对 Siege 有错误的认识.大家使用 Siege 打出的压力,每秒的处理数量和真实的处理数据分别大太…还有人解释讲,默认 Apache  设置之关有关,所以不能打到很高的压力,只能打出每秒处理 200 多个请求.

我刚开始测试时,也发现这个问题…很奇怪.因为我拿了几种压力测试软件来对比,别的压力测试软件,可以打到 6k/s 的量,发现只有这个 Siege 打的最慢,才 200/s.这个当然不正常.就认真看了看 Siege  的参数.

1.Siege 默认参数进行压力测试

下面这是我默认参照别人打出来的压力:

我使用的命令参数如下,并发 200 , 重复 150 次,打 3W 压力:

 siege -c 200 -r 150 -f /root/4k.list

得出的结果如下,慢到不行:

Transactions:                  30000 hits
Availability:                 100.00 %
Elapsed time:                  89.42 secs
Data transferred:             117.19 MB
Response time:                  0.00 secs
Transaction rate:             335.50 trans/sec
Throughput:                     1.31 MB/sec
Concurrency:                    0.70
Successful transactions:       30000
Failed transactions:               0
Longest transaction:            0.14
Shortest transaction:           0.00

 

2. Siege 分析和了解

后来只能认真的看看 Siege 的参数.来学习怎么样使用,发现了几个不错的参数和为什么这么慢.因为每次打完后都要延时一下 .

  -d, --delay=NUM         Time DELAY, random delay between 1 and num designed
                          to simulate human activity. Default value is 3

我们常用的参数:

-c 200   并发200个用户
-r 150      重复循环150次
-f 4k.list     任务的URL列表

其它实用参数:

-i  随机 URL ,默认是从列表的上面到下面来打压力
-b 进行压力测试,不进行延时

-t  持续时间,即测试持续时间,在NUM时间后结束,单位默认为分

 

3.Siege 修正参数进行压力测试

这样打出的压力当然不真实.我不是做功能测试,我是做压力测试.所以重新选择参数,打一样的压力.

siege -c 200 -r 150 -f /root/4k.list  -i -b

这次输出看起来相当不错了.

Transactions:                  30000 hits
Availability:                 100.00 %
Elapsed time:                  12.73 secs
Data transferred:             117.19 MB
Response time:                  0.08 secs
Transaction rate:            2356.64 trans/sec
Throughput:                     9.21 MB/sec
Concurrency:                  176.86
Successful transactions:       30000
Failed transactions:               0
Longest transaction:            0.60
Shortest transaction:           0.00

from http://www.php-oa.com/2010/06/25/siege.html

发表评论?

0 条评论。

发表评论