Siege:压力模拟/测试工具


最早使用的压力测试工具是apache的ab(apache benchmark),apache ab做重复压力测试不错,但是每次只能测试一个链接,如何测试一组链接(比如从日志中导出的1个小时的日志,做真实压力测试),后来找到了这个:
Siege是一个压力测试和评测工具,设计用于WEB开发这评估应用在压力下的承受能力:可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。



SIEGE is an http regressive testing and benchmarking utility. It was designed to let web developers measure the performance of their code under duress, to see how it will stand up to load on the internet. It lets the user hit a webserver with a configurable number of concurrent simulated users. Those users place the webserver "under siege." The duration of the siege is measured in transactions, the sum of simulated users and the number of times each simulated user repeats the process of hitting the server. Thus 20 concurrent users 50 times is 1000 transactions, the length of the test.

下载/安装
Siege时一个开放源代码项目:http://www.joedog.org

下载:
wget ftp://sid.joedog.org/pub/siege/siege-latest.tar.gz

安装:
%./configure ; make
#make install

siege包含了一组压力测试工具:
SIEGE (1) Siege是一个HTTP压力测试和评测工具.
使用样例:
任务列表:www.chedong.com.url文件
http://www.chedong.com/tech/
http://www.chedong.com/tech/acdsee.html
http://www.chedong.com/tech/ant.html
http://www.chedong.com/tech/apache_install.html
http://www.chedong.com/tech/awstats.html
http://www.chedong.com/tech/cache.html
http://www.chedong.com/tech/click.html
http://www.chedong.com/tech/cms.html
http://www.chedong.com/tech/compress.html
http://www.chedong.com/tech/cvs_card.html
http://www.chedong.com/tech/default.html
http://www.chedong.com/tech/dev.html
http://www.chedong.com/tech/gnu.html
....

siege -c 20 -r 2 -f www.chedong.com.url
参数说明:
-c 20 并发20个用户
-r 2 重复循环2次
-f www.chedong.com.url 任务列表:URL列表

输出样例:

** Siege 2.59
** Preparing 20 concurrent users for battle. 这次“战斗”准备了20个并发用户
The server is now under siege.. done. 服务在“围攻”测试中:
Transactions: 40 hits 完成40次处理
Availability: 100.00 % 成功率
Elapsed time: 7.67 secs 总共用时
Data transferred: 877340 bytes 共数据传输:877340字节
Response time: 1.65 secs 相应用时1.65秒:显示网络连接的速度
Transaction rate: 5.22 trans/sec 平均每秒完成5.22次处理:表示服务器后台处理的速度
Throughput: 114385.92 bytes/sec 平均每秒传送数据:114385.92字节
Concurrency: 8.59 最高并发数 8.59
Successful transactions: 40 成功处理次数
Failed transactions: 0 失败处理次数

注意:由于速度很快,可能会达不到并发速度很高就已经完成。Response time显示的是测试机器和被测试服务器之间网络链接状况。Transaction rate则表示服务器端任务处理的完成速度。

辅助工具:
增量压力测试:


为了方便增量压力测试,siege还包含了一些辅助工具:
bombardment (1)
是一个辅助工具:用于按照增量用户压力测试:
使用样例:
bombardment urlfile.txt 5 3 4 1
初始化URL列表:urlfile.txt
初始化为:5个用户
每次增加:3个用户
运行:4次
每个客户端之间的延迟为:1秒

输出成CSV格式:
siege2csv.pl (1)
siege2csv.pl将bombardment的输出变成CSV格式:
Time Data Transferred Response Time Transaction Rate Throughput Concurrency Code 200 (note that this is horribly broken.)
242 60.22 603064 0.02 4.02 10014.35 0.08
605 59.98 1507660 0.01 10.09 25136.05 0.12
938 59.98 2337496 0.02 15.64 38971.26 0.26
1157 60 2883244 0.04 19.28 48054.07 0.78

参考:
开源测试工具:http://www.opensourcetesting.org/performance.php

压力测试工具:HammerHead 正在试用中

作者:车东 发表于:2004-02-13 20:02 最后更新于:2008-04-12 03:04
版权声明:可以转载,转载时请务必以超链接形式标明文章 的原始出处和作者信息及本版权声明

引用通告

以下是前来引用的链接: Siege:压力模拟/测试工具:

» Siege:压力模拟/测试工具 来自 石头札记
还是转贴了车东兄弟的文章。感觉对静态html站点的测试还是比较有效的。microsoft的application center test (ACT)工具用起来就比较麻烦。不过那个是用来测试动态web程序的,着眼点不一样。作为... [阅读更多细节]

Comments

您好!我该软件进行测试siege -c 300 0-r 1 -f exam.cn.url 后结果为:Transactions: 253 hits
Availability: 100.00 %
Elapsed time: 6.04 secs
Data transferred: 13892230 bytes
Response time: 0.00 secs
Transaction rate: 41.89 trans/sec
Throughput: 2300038.09 bytes/sec
Concurrency: 0.01
Successful transactions: 253
Failed transactions: 0
为什么 Transactions是253 hits
Transactions应该是并发数吧?难道是并发数只能到253吗?
我的apache 已经调成了最大连接1000了,能否尽快答复?

等待回音,,我也设了1000了,怎么只有253呢,是默认的马?

去看一下车冬以前写的文章吧。他以前有写过这样的文章。

253 很正常。很正常。http.conf就算修改成1000000最后并发也不过255 真想做APACHE的大并发量。去找个TAR包。修改一下源码的并发量再编译就OK了。
直接用AB来做压力测试就可以了。

这个东西的响应时间是从发出请求到服务器返回第一条数据的时间么,在配置文件里修改超时时间怎么不起作用,比如把超时设置为5秒,可是超过5秒了还算PASS

siege不支持目前大家普遍使用的cookie标准(RFC 2695),对于domain=.foo.com形式的域会忽略掉cookie。按照他们FAQ的意思,似乎是故意如此的。后来自己hack了代码才暂时可以使用了。

另外对301/302的支持似乎也有问题,如果第一个POST请求过去得到一个302, 它会继续使用POST去发送302带回的新地址,不知是不是bug?

siege 最大用户数就300了吗?有什么办法可以改进吗?


晕,我就要一个并发测试的峰值,循环都不加的,多跑几个么样来统计,计算点击率以及吞吐量呢?比如,500个用户跑一次共要多长时间....
对了,还有siege有没有集合点的概念,如果有怎么设呀

发表一个评论

(如果你此前从未在此 Blog 上发表过评论,则你的评论必须在 Blog 主人验证后才能显示,请你耐心等候。)

相关文章

关于

此页面包含了发表于2004年02月13日 傍晚08时42分的 Blog 上的单篇日记。

此 Blog 的前一篇日记是 最新研究:用户搜索变得越来越复杂(就是搜索时候使用的关键词越来越多啦)

此 Blog 的后一篇日记是 Google基于HillTop算法的更新

更多信息可在 主索引 页和 归档 页看到。

Creative Commons License
此 Blog 中的日记遵循以下授权 Creative Commons(创作共用)授权.
Powered by
Movable Type 3.36