paulwong

Linux 下 Siege 压力测试

Siege(英文意思是围攻)是一个压力测试和评测工具,设计用于WEB开发这评估应用在压力下的承受能力:可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。

说明

ab的主要弱点在于它不能让你模拟一个更加真实的请求分布——例如你想通过设置一个请求的列表来在这些列表之间来回测试,而siege就可以。

安装

siege需要自己从http://www.joedog.org/上自己下载,然后编译:


注意在configure的时候,一定要设置mandir参数,否则当你通过 man siege查看siege帮助的时候会看不到他的manual.
wget http://www.joedog.org/pub/siege/siege-3.0.5.tar.gz
tar -zxf siege-2.67.tar.gz
./configure --prefix=/usr/local/siege --mandir=/usr/local/man
make
# 转到超级用户
make install
安装完成后,运行bin中的siege_config命令来创建.siege文件之后,你可以通过

./siege -C
命令来查看当前配置

最简单的使用命令:

./siege http://localhost/
#用来测试本地主页


参数介绍

-cNUM
设置并发的用户(连接)数量. 默认的连接数量可以到~/.siegerc中查看,指令为concurrent = x。比如-c10,设置并发10个连接

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

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

-b
(benchmark),基准测试,如果设置这个参数的话,那么delay时间为0。man siege中有一句话这样说:

it's not recommanded that you use this option while load testing.

说明基准测试和load testing 是完全不同的,至于有什么不同,可以阅读BenchMarkingVSLoadTestingVSPerformance.

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

其他比较关注的测试方法,比如我想使用Keep-Alive方式进行测试,可以在.siegerc配置文件中进行修改,将connect = close改为 connect = keep-alive
另外您还可以通过-H HEADER参数来设置请求header。


结果说明
Lifting the server siege… done.
Transactions: 3419263 hits //完成419263次处理
Availability: 100.00 % //100.00 % 成功率
Elapsed time: 5999.69 secs //总共用时
Data transferred: 84273.91 MB //共数据传输84273.91 MB
Response time: 0.37 secs //相应用时1.65秒:显示网络连接的速度
Transaction rate: 569.91 trans/sec //均每秒完成 569.91 次处理:表示服务器后
Throughput: 14.05 MB/sec //平均每秒传送数据
Concurrency: 213.42 //实际最高并发数
Successful transactions: 2564081 //成功处理次数
Failed transactions: 11 //失败处理次数
Longest transaction: 29.04 //每次传输所花最长时间
Shortest transaction: 0.00 //每次传输所花最短时间

posted on 2014-02-18 11:06 paulwong 阅读(354) 评论(0)  编辑  收藏 所属分类: 性能优化


只有注册用户登录后才能发表评论。


网站导航: