分类: LINUX
2011-11-16 15:40:09
本文链接:
近来想研究一下常见的压力测试软件,对比一下,是选择其中哪一个最合适使用,从压力测试的准确性和功能二方面对比。近来就开始放狗来查相关的资料。
在使用 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 |