ab压测的一些选项
-n requests 全部请求数
-c concurrency 并发数
-t timelimit 最传等待回应时间
-p postfile POST数 据文件
-T content-type POST Content-type
-v verbosity How much troubleshooting info to print
-w Print out results in HTML tables
-i Use HEAD instead of GET
-x attributes String to insert as table attributes
-y attributes String to insert as tr attributes
-z attributes String to insert as td or th attributes
-C attribute 加入cookie, eg. 'Apache=1234. (repeatable)
-H attribute 加入http头, eg. 'Accept-Encoding: gzip'
Inserted after all normal header lines. (repeatable)
-A attribute http验证,分隔传递用户名及密码
-P attribute Add Basic Proxy Authentication, the attributes
are a colon separated username and password.
-X proxy:port 代理服务器
-V 查看ab版本
-k Use HTTP KeepAlive feature
-d Do not show percentiles served table.
-S Do not show confidence estimators and warnings.
-g filename Output collected data to gnuplot format file.
-e filename Output CSV file with percentages served
-h Display usage information (this message)to run in the test本文地址:http://8408.cn/article/1015.html,未经许可,不得转载.
压测命令示例本文地址:http://8408.cn/article/1015.html,未经许可,不得转载.
#压测示例,直接GET压测URL root@test:~# ab -n 1000 -c 10 http://127.0.0.1/api/test-db #压测示例,POST压测URL并带post数据 ab -n 20000 -c 1000 -p post.txt -T application/json http://127.0.0.1. # cat post.txt {"id":1000} #压测POST并带header中的token数据 ab -n 20000 -c 1000 -p post.txt -T application/json -H 'x-token: SDY21=' http://127.0.0.1. # cat post.txt {"id":1000} #响应数据及意义 #并发数 Concurrency Level: 5000 #全部请求完成耗时 Time taken for tests: 24.192 second Complete requests: 10000 Failed requests: 0 Write errors: 0 #总传输大小 Total transferred: 5370172 bytes Total body sent: 2630000 #HTML传输量 HTML transferred: 3880000 bytes #每秒请求数 Requests per second: 413.37 [#/sec] (mean) #每次并发请求时间(所有并发),mean 表示这是一个平均值 Time per request: 12095.762 [ms] (mean) #每一请求时间(并发平均) Time per request: 2.419 [ms] (mean, across all concurrent requests) #传输速率,平均每秒网络上的流量 Transfer rate: 216.78 [Kbytes/sec] received 106.17 kb/s sent 322.95 kb/s total本文地址:http://8408.cn/article/1015.html,未经许可,不得转载.
其它指标都比较好理解,关于最后的两个Time per request指标,手册上的解释:
The first value is calculated with the formula concurrency *timetaken * 1000 / done
while the second value is calculated with the formula timetaken * 1000 / done
网上的解释也是各种各样,不好理解。比如解释为:第一个Time per request代表每个链接上单个请求的平均响应时间,第二个Time per request所有链接合计后单个请求的平均响应时间。
有的甚至是错的。我觉得直接从数值上面就可以发现其意义,比如Time taken for tests为全部请求完成耗时。而第一个Time per request值为2.419即是全部请求完成耗时除以Complete requests得到的值。即服务器在压测时每个请求的用时(实际因为多核并发,这个值比实际上的每个请求用时要小)。而第二个Time per request看数值则是第一个Time per request与Concurrency Level的乘积,可以认为是每次并发(Concurrency Level个请求完成)所用的时间。Tpr1=Tpr2*n本文地址:http://8408.cn/article/1015.html,未经许可,不得转载.
本文地址:http://8408.cn/article/1015.html 未经许可,不得转载. 手机访问本页请扫描右下方二维码.
手机扫码直接打开本页面 |