介绍
siege可以对文本文件中指定的URL列表运行负责测试,它还可以执行其他请求之前让某个请求休眠.
注意:使用siege时的并发被称为事务.
安装
yum install siege
语法
siege [options] [URL]
最基本使用eg:5个并发用户在10s内访问网站
siege -c 5 -t10s http://xxxxx/
-c 并发请求
//5个并发用户进行请求
siege -c 5 -t10s http://xxxxx/
-t 请求持续时间s(秒),M(分钟),H(小时)
//持续10秒请求
siege -c 5 -t10s http://xxxxx/
-i -f 随机执行文件中的url
siege在从文本中的执行不是顺序执行而是随机选择进行发送请求,所以假如你配置的请求时间和并发少会出现有url没有请求的情况
#url.txt内容
https://www.baidu.com/
https://test.easypaynet.cn/test/index
然后使用命令siege
siege -c 5 -t10s -i -f ./url.txt
-k 启用keep-alive
siege -c 5 -t60s -k https://xxxxxxxx/test/index
结果分析
** SIEGE 4.0.2
** Preparing 1 concurrent users for battle.
The server is now under siege...
//单个请求详细信息
HTTP/1.1 200 0.00 secs:(完成请求时间) 20 bytes(响应所收到的数据总量,不含标头数据) ==> GET /test/index
HTTP/1.1 200 0.01 secs: 20 bytes ==> GET /test/index
//测试指标
Lifting the server siege...
Transactions: 1 hits //已完成的事务总数
Availability: 100.00 % //能够请求web文档的时间
Elapsed time: 0.14 secs //完成测试所需的总时间
Data transferred: 0.00 MB //响应中数据的总大小(不包含标头数据)
Response time: 0.00 secs //平均响应时间
Transaction rate: 7.14 trans/sec //每秒要满足的事务总数
Throughput: 0.00 MB/sec //处理数据和响应所需的总时间
Concurrency: 0.00 //同时连接的平均数,该数字升高时服务器性能降低
Successful transactions: 1 //执行成功的事务数量
Failed transactions: 0 //失败的事务实例
Longest transaction: 0.00 //满足一个请求所需的最长时间(s:秒)
Shortest transaction: 0.00 //满足一个请求所需的最短时间(s:秒)
比较关键的是:Data transferred部分包含每个请求收到的响应的总大小.Transaction rate帮助我们了解当Web服务器在我们命令指定的负责下运行时可以满足的并发事务数.Longest transaction和Shortest transaction告诉我们一个请求的最短和最长时间
影响基准测试有如下方面
- 地理位置和网络
- 响应大小
- 代码
- 浏览器行为
- web服务器配置