实用命令行工具详解(二)—siege
web开发免不了性能测试,经常需要模拟高并发的场景,siege和apache ab都是不错的选择,siege可以从你选择的预置列表中请求随机的URL。所以siege可用于仿真用户请求负载,而ab则不能。但不要使用siege来执行最高性能基准调校测试,这方面ab就准确很多。siege看名字就很霸气,暴力群殴,哥喜欢。
Siege是Linux系统下的一个测试工具,完全使用C语言实现,可以对HTTP和FTP服务器进行负载和性能测试。设计用于评估WEB应用在压力下的承受能力。可以根据配置对一个WEB站点进行多用户的并发访问,记录每个用户所有请求过程的相应时间,并在一定数量的并发访问下重复进行。
用法举例:
1.模拟500个用户,重复50次请求
siege -c 500 -r 50 -f url.txt
说明:-c是并发量,-r是重复次数。url.txt就是一个文本文件,每行都是一个url,它会从里面随机访问的。
url.txt内容: http://baidu.com/
2.模拟500个用户连续请求10分钟
siege -c 500 -t10M -u http://baidu.com
表示对http://baidu.com/这个站点使用500个用户并发访问,持续10分钟进行测试,注意:”-t10M”之间没有空格
3.Siege来重现对一台服务器的日志记录
$ cut-d ' '-f7 /logs/access.log > urls.txt $ siege -c 1 -b -f urls.txt
结果说明:
** SIEGE 2.70
** Preparing 10 concurrent users for battle.
The server is now under siege.. .
Transactions: 200 hits //完成200次处理
Availability: 100.00 % //100.00 % 成功率
Elapsed time: 16.24 secs //总共使用16.24s
Data transferred: 2.03 MB //共数据传输 2.03 MB
Response time: 0.01 secs //响应时间,显示网络连接的速度
Transaction rate: 12.32 trans/sec //平均每秒完成 12.32次处理,也就是QPS
Throughput: 0.12 MB/sec //平均每秒传送数据
Concurrency: 0.13 //实际最高并发连接数
Successful transactions: 200 //成功处理次数
Failed transactions: 0 //失败处理次数
Longest transaction: 0.03 //请求响应最长时间
Shortest transaction: 0.00 //请求响应最短时间
参数详解:
-C,或-config 在屏幕上打印显示出当前的配置,配置是包括在他的配置文件$HOME/.siegerc中,可以编辑里面的参数,这样每次siege 都会按照它运行.
-v 运行时能看到详细的运行信息
-c n,或-concurrent=n 模拟有n个用户在同时访问,n不要设得太大,因为越大,siege 消耗本地机器的资源越多
-i,-internet 随机访问urls.txt中的url列表项,以此模拟真实的访问情况(随机性),当urls.txt存在是有效
-d n,-delay=n hit每个url之间的延迟,在0-n之间
-r n,-reps=n 重复运行测试n次,不能与 -t同时存在
-t n,-time=n 持续运行siege ‘n’秒(如10S),分钟(10M),小时(10H)
-l 运行结束,将统计数据保存到日志文件中siege .log,一般位于/usr/local/var/siege .log中,也可在.siegerc中自定义
-R SIEGERC,-rc=SIEGERC 指定用特定的siege 配置文件来运行,默认的为$HOME/.siegerc
-f FILE, -file=FILE 指定用特定的urls文件运行siege ,默认为urls.txt,位于siege 安装目录下的etc/urls.txt
-u URL,-url=URL 测试指定的一个URL,对它进行”siege “,此选项会忽略有关urls文件的设定
urls.txt文件:是很多行待测试URL的列表以换行符断开,格式为:
[protocol://]host.domain.com[:port][path/to/file]
建议继续学习:
- vim几个小技巧(批量替换,列编辑) (阅读:35923)
- ps - 按进程消耗内存多少排序 (阅读:11249)
- 100个常用的linux命令 (阅读:10128)
- 每个程序员都应该知道的8个Linux命令 (阅读:9410)
- 最受欢迎的10个 Linux 单行命令 (阅读:8841)
- Linux date 命令获取某日期的前一天 (阅读:8461)
- find命令的一点注意事项 (阅读:8167)
- ps 命令常见用法 (阅读:7891)
- Linux常用系统信息查看命令 (阅读:7341)
- Linux 常见高危操作 (阅读:7036)
扫一扫订阅我的微信号:IT技术博客大学习
- 作者:Eric 来源: JavaRanger - 专注JAVA高性能程序开发、JVM、Mysql优化、算法
- 标签: siege 命令
- 发布时间:2014-11-30 23:26:11
- [54] IOS安全–浅谈关于IOS加固的几种方法
- [54] android 开发入门
- [52] Oracle MTS模式下 进程地址与会话信
- [52] 图书馆的世界纪录
- [51] Go Reflect 性能
- [50] 如何拿下简短的域名
- [48] 【社会化设计】自我(self)部分――欢迎区
- [48] 读书笔记-壹百度:百度十年千倍的29条法则
- [38] 程序员技术练级攻略
- [31] 视觉调整-设计师 vs. 逻辑