siege简介
siege工具和ab一样,siege可以模拟web托管文档的用户流量,但是与ab不同的是,siege可以对文本文件中指定的url列表运行负载测试.它还可以在执行其他请求之前让某个请求休眠,从而让你感觉某个用户在转移到web应用程序的下一个文档之前正在读取该文档.
安装siege
yum install -y siege
运行siege
模拟一个负载测试,5个用户在10秒内访问网站www.example.com.需要说明一下,使用siege时的并发被称为事务.因此我们要模拟的测试是使用siege命令让web服务器在10秒的时间内一次满足5个同时发生的事务:
//t参数以秒(S),分钟(M)或小时(H)为单位,并且数字和字母之间没有空格
siege -c 5 -t 10S http://www.example.com/
运行结果
Lifting the server siege... done.
Transactions: 104 hits //已完成的事务总数
Availability: 100.00 % //能够请求web文档的时间
Elapsed time: 9.57 secs //完成测试所需要的总时间
Data transferred: 2.03 MB //响应中数据的总大小(不包括标头数据)(MB为单位)
Response time: 0.45 secs //整个测试过程中的平均响应时间
Transaction rate: 10.87 trans/sec //每秒要满足的事务总数
Throughput: 0.21 MB/sec //处理数据和响应所需的总时间
Concurrency: 4.85 //同时连接的平均数,该数字升高时服务器性能降低
Successful transactions: 104 //整个测试过程中所执行的成功事务总数
Failed transactions: 0 //整个测试过程中遇到的失败的事务总数
Longest transaction: 0.91 //满足一个请求所需要的最长时间
Shortest transaction: 0.08 //满足一个请求所需要的最短时间
分析结果
与ab结果一样,siege工具的记过也分为几个部分,具体来说,结果集的两个部分需要分析
单个请求详细信息
HTTP/1.1 200 0.17 secs: 20440 bytes ==> GET /
HTTP/1.1 200 0.10 secs: 20440 bytes ==> GET /
HTTP/1.1 200 0.15 secs: 20440 bytes ==> GET /
HTTP/1.1 200 0.20 secs: 20440 bytes ==> GET /
HTTP/1.1 200 0.21 secs: 20440 bytes ==> GET /
HTTP/1.1 200 0.08 secs: 20440 bytes ==> GET /
HTTP/1.1 200 0.17 secs: 20440 bytes ==> GET /
HTTP/1.1 200 0.17 secs: 20440 bytes ==> GET /
测试指标即运行的结果部分.
命令详解
-C --config 显示当前配置
-q --quiet 禁止输出过程
-g --get 获取get请求头信息
-c --concurrent-NUM 并发用户数 默认为10
-i --internet 从某个文本文件中随机选择url并请求
-f --file=FILE url文本文件
-b --benchmark 请求之间没有延迟
-t --time-NUM 请求时间
-r --reps=NUM 运行的次数
-R --rc-FILE 在siegerc指定文件
-l --log[=FILE] 记录到文件
-m --mark="text" 用字符串标记日志文件
-d --delay=NUM 时间延迟,随机延迟在每个请求
-H --header="text" 添加请求头
-A --user-agent="text" 设置请求ua表示
-T --content-type="text" 设置请求的Content-Type