ab(
apache bench
)是apache下的一个工具,主要
用于对web站点做压力测试,
实验结果:
- [dev@web ~]$ ab -c 20 -n 50000 http://192.168.1.210/
- This is ApacheBench, Version 2.3 <$Revision: 655654 $>
- Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
- Licensed to The Apache Software Foundation, http://www.apache.org/
- Benchmarking 192.168.1.210 (be patient)
- Completed 5000 requests
- Completed 10000 requests
- Completed 15000 requests
- Completed 20000 requests
- Completed 25000 requests
- Completed 30000 requests
- Completed 35000 requests
- Completed 40000 requests
- Completed 45000 requests
- Completed 50000 requests
- Finished 50000 requests
- Server Software: nginx/1.6.2
- Server Hostname: 192.168.1.210
- Server Port: 80
- Document Path: /
- Document Length: 41005 bytes # 请求的页面大小
- Concurrency Level: 20 # 并发量
- Time taken for tests: 1180.733 seconds # 测试总共耗时
- Complete requests: 50000 # 完成的请求
- Failed requests: 0 # 失败的请求
- Write errors: 0 # 错误
- Total transferred: 2067550000 bytes # 总共传输数据量
- HTML transferred: 2050250000 bytes
- Requests per second: 42.35 [#/sec] (mean) # 每秒钟的请求量。(仅仅是测试页面的响应速度)
- Time per request: 472.293 [ms] (mean) # 等于 Time taken for tests/(complete requests/concurrency level) 即平均请求等待时间(用户等待的时间)
- Time per request: 23.615 [ms] (mean, across all concurrent requests) # 等于 Time taken for tests/Complete requests 即服务器平均请求响应时间 在并发量为1时 用户等待时间相同
- Transfer rate: 1710.03 [Kbytes/sec] received # 平均每秒多少K,即带宽速率
- Connection Times (ms)
- min mean[+/-sd] median max
- Connect: 0 1 18.5 0 1001
- Processing: 38 471 534.1 155 9269
- Waiting: 37 456 524.6 147 9259
- Total: 40 472 534.5 155 9269
- Percentage of the requests served within a certain time (ms)
- 50% 155
- 66% 571
- 75% 783
- 80% 871
- 90% 1211
- 95% 1603
- 98% 1839
- 99% 2003
- 100% 9269 (longest request)
ab的参数中文说明
通过上面的用法介绍可以得知,ab的使用方法就是输入如下DOS命令:
ab [可选的参数选项] 需要进行压力测试的url
此外,我们再根据上面的用法介绍界面来详细了解每个参数选项的作用。
-
-n
- 即requests,用于指定压力测试总共的执行次数。 -c
- 即concurrency,用于指定 的并发数。 -t
- 即timelimit,等待响应的最大时间(单位:秒)。 -b
- 即windowsize,TCP发送/接收的缓冲大小(单位:字节)。 -p
-
即postfile,发送POST请求时需要上传的文件,此外还必须设置
-T
参数。
-u
-
即putfile,发送PUT请求时需要上传的文件,此外还必须设置
-T
参数。
-T
-
即content-type,用于设置Content-Type请求头信息,例如:
application/x-www-form-urlencoded
,默认值为text/plain
。
-v
- 即verbosity,指定打印帮助信息的冗余级别。 -w
- 以HTML表格形式打印结果。 -i
- 使用HEAD请求代替GET请求。 -x
- 插入字符串作为table标签的属性。 -y
- 插入字符串作为tr标签的属性。 -z
- 插入字符串作为td标签的属性。 -C
- 添加cookie信息,例如:"Apache=1234"(可以重复该参数选项以添加多个)。 -H
- 添加任意的请求头,例如:"Accept-Encoding: gzip",请求头将会添加在现有的多个请求头之后(可以重复该参数选项以添加多个)。 -A
- 添加一个基本的网络认证信息,用户名和密码之间用英文冒号隔开。 -P
- 添加一个基本的代理认证信息,用户名和密码之间用英文冒号隔开。 -X
- 指定使用的 和端口号,例如:"126.10.10.3:88"。 -V
- 打印版本号并退出。 -k
- 使用HTTP的KeepAlive特性。 -k
- 使用HTTP的KeepAlive特性。 -d
- 不显示百分比。 -S
- 不显示预估和警告信息。 -g
- 输出结果信息到gnuplot格式的文件中。 -e
- 输出结果信息到CSV格式的文件中。 -r
- 指定接收到错误信息时不退出程序。 -h
-
显示用法信息,其实就是
ab -help
。
虽然ab可以配置的参数选项比较多,但是,一般情况下我们只需要使用形如ab -n 数字 -c 数字 url路径
的命令即可。