(声明:本教程仅供本人学习使用,如有人使用该技术触犯法律与本人无关)
(如果有错误,还希望指出。共同进步)
测试命令
-
ab -n [requests_nums] -c [concurrent_nums] [urls]
-n : 在测试会话中所执行的请求个数(默认时,仅执行一个请求) -c : 一次产生的请求个数(默认是一次一个) urls : 请求的网址(注意是带http的完整网址, 不全的话会报错)
【其它部分参数】
-t :测试所进行的最大秒数。其内部隐含值是-n 50000,它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。 -p :包含了需要POST的数据的文件。 -v :设置显示信息的详细程度-4或更大值会显示头信息,3或更大值可以显示响应代码(404,200等),2或更大值可以显示警告和其他信息。 -w : 以HTML表的格式输出结果。默认时,它是白色背景的两列宽度的一张表。 -i :执行HEAD请求,而不是GET。 -x :设置<table>属性的字符串。 -y :设置<tr>属性的字符串。 -z :设置<td>属性的字符串。 -h : 显示使用方法。
主要参数_性能指标
- Requests per second:每秒多少请求,这个是非常重要的参数数值,服务器的吞吐量
- Time per request :用户平均请求等待时间
其余参数详细解析
C:\Users\BXJH>ab -n 100 -c 10 http://www.baidu.com/s
This is ApacheBench, Version 2.3 <$Revision: 1874286 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking www.baidu.com (be patient).....done
# 服务器软件和版本
Server Software:
# 请求的地址/域名
Server Hostname: www.baidu.com
# 请求的端口
Server Port: 80
# 请求的子路径
Document Path: /s
# 页面数据/返回的数据量
Document Length: 263 bytes
# 并发数
Concurrency Level: 10
# 共使用了多少时间
Time taken for tests: 0.838 seconds
# 请求数
Complete requests: 100
# 失败请求数
Failed requests: 7
(Connect: 0, Receive: 0, Length: 7, Exceptions: 0)
Non-2xx responses: 100
# 总共传输字节数,包含http的头信息
Total transferred: 61486 bytes
# html字节数,实际的页面传递字节数
HTML transferred: 26293 bytes
# 每秒多少请求,这个是非常重要的参数数值,服务器的吞吐量
Requests per second: 119.28 [#/sec] (mean)
# 用户平均请求等待时间
Time per request: 83.835 [ms] (mean)
# 服务器平均处理时间,也就是服务器吞吐量的倒数
Time per request: 8.384 [ms] (mean, across all concurrent requests)
# 每秒获取的数据长度
Transfer rate: 71.62 [Kbytes/sec] received
Connection Times (ms)
# 连接的 最小时间 平均值 中值 最大值
min mean[+/-sd] median max
Connect: 4 8 7.2 7 59
# 处理时间
Processing: 10 71 25.2 66 125
# 等待时间
Waiting: 8 54 24.7 53 124
# 合计时间
Total: 18 79 27.3 73 183
# 多少比例的请求在多少s之内返回数据, 如:
Percentage of the requests served within a certain time (ms)
# 50%的请求73ms内返回
50% 73
# 66%的请求在78ms内返回
66% 78
75% 87
80% 113
90% 120
95% 130
98% 131
99% 183
100% 183 (longest request)
总结
附上一个小总结
- 对于windows系统,ab测试的并发数达到 __cpu核数 * 2__的时候,性能最佳