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文件之后,你可以通过
tar -zxf siege-2.67.tar.gz
./configure --prefix=/usr/ local/siege --mandir=/usr/ local/man
make
# 转到超级用户
make install
./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 //每次传输所花最短时间