yum -y install httpd-tools
-查看允许打开的文件数
ulimit -a
-修改允许打开的文件数
ulimit -n 204800
-1w并发10w请求
ab -c 10000 -n 100000 127.0.0.1
-2w并发10w请求
ab -c 20000 -n 100000 127.0.0.1
---结果
-测试耗时
Time taken for tests: 11.361 seconds
-吞吐量,平均每秒处理请求数
Requests per second: 8801.77 [#/sec] (mean)
-用户最长等待, 时间消耗报表针对请求平均等待时间`Time per request`的细化分析,只是了解
Connection Times (ms)
min mean[+/-sd] median max
Connect: 0 304 884.1 14 7055
Processing: 3 35 65.5 23 11029
Waiting: 0 29 63.4 18 11029
Total: 6 339 902.2 36 11226
-请求时间分布,50%的请求在36毫秒内处理完毕。90%的请求在1077毫秒内处理完毕,最长响应时间为11226毫秒
Percentage of the requests served within a certain time (ms)
50% 36
66% 61
75% 101
80% 171
90% 1077
95% 1197
98% 3160
99% 3235
100% 11226 (longest request)
---提取部分参数稍微总结下:
吞吐量(每秒处理的请求数):8801.77
验证:吞吐量(8801.77) * 测试耗时 (11.361) 约等于10W
用户平均等待时间:1136.135
服务器平均处理时间:0.114
验证:由于服务器并发量为1W,那用户前端响应时间,应该接近服务器平均处理时间 * 1w,0.114*10000=1140,1136.135约等于1140
90%的请求在1077ms内完成,最长的请求耗时11226毫秒。
网络传输速度:6283.01kb
# 登录问题
-对于实际场景中经常需要用的登录问题,如果接口需要验证Cookie ,那么使用-C写到Cookie内容
ab -n 100 -C key=value https://json.im
-或者使用 -H 带 Cookie 自定义多个字段
ab -n 100 -H "Cookie: Key1=Value1; Key2=Value2" http://localhost
-测试接口Header传入token
ab -n 1000 -c 10 -H 'token:abc' https://json.im