分类:
2012-04-25 16:31:26
ab
是Apache超文本传输协议(HTTP)的性能测试工具。其设计意图是描绘当前所安装的Apache的执行性能,主要是显示你安装的Apache每秒可以处理多少个请求。
程序中有各种静态声明的固定长度的缓冲区。另外,对命令行参数、服务器的响应头和其他外部输入的解析也很简单,这可能会有不良后果。 没有完整实现HTTP/1.x ;仅接受某些"预想"的响应格式。 常用选项: ab -n -c 另附上一实例:ab [ -A auth-username:password ] [ -c concurrency ] [ -C cookie-name=value ] [ -d ] [ -e csv-file ] [ -g gnuplot-file ] [ -h ] [ -H custom-header ] [ -i ] [ -k ] [ -n requests ] [ -p POST-file ] [ -P proxy-auth-username:password ] [ -q ] [ -s ] [ -S ] [ -t timelimit ] [ -T content-type ] [ -v verbosity] [ -V ] [ -w ] [ -x
-attributes ] [ -X proxy[:port] ] [ -y
-attributes ] [ -z -attributes ] [http://]hostname[:port]/path
-A auth-username:password
:
"隔开,并将被以base64编码形式发送。无论服务器是否需要(即是否发送了401认证需求代码),此字符串都会被发送。
-c concurrency
-C cookie-name=value
Cookie:
"头行。其典型形式是 name=value
的一个参数对。此参数可以重复。
-d
-e csv-file
-g gnuplot-file
-h
-H custom-header
"Accept-Encoding: zip/zop;8bit"
)。
-i
HEAD
请求,而不是GET
。
-k
-n requests
-p POST-file
-P proxy-auth-username:password
:
"隔开,并将被以base64编码形式发送。无论服务器是否需要(即是否发送了407代理认证需求代码),此字符串都会被发送。
-q
ab
每处理大约10%或者100个请求时,会在stderr
输出一个进度计数。此 -q
标记可以屏蔽这些信息。
-s
ab -h
会告诉你)使用了SSL的受保护的https
,而不是http
协议的时候。此功能是实验性的,最好不要用。
-S
-t timelimit
-n 50000
"。它可以使对服务器的测试限制在一个固定的总时间以内。默认时,没有时间限制。
-T content-type
-v verbosity
4
或更大值会显示头信息,3
或更大值可以显示响应代码(404,200等),2
或更大值可以显示警告和其他信息。
-V
-w
-x
-attributes
属性的字符串。此属性被填入
这里 > 。
-X proxy[:port]
-y
-attributes
属性的字符串。
-z
-attributes
属性的字符串。
strstr()
的频繁使用可能会带来性能问题,即你可能是在测试ab
而不是服务器的性能。
全部请求数 -c 并发数 测试url
Concurrency Level: 50 #并发数
Time taken for tests: 92.76140 seconds #全部请求完成耗时
Complete requests: 10000 #全部请求数
Failed requests: 1974 #失败的请求
(Connect: 0, Length: 1974, Exceptions: 0)
Write errors: 0
Total transferred: 827019400 bytes #总传输大小
HTML transferred: 825219400 bytes
Requests per second: 108.61 [#/sec] (mean) #每秒请求数(平均)
Time per request: 460.381 [ms] (mean) #每次并发请求时间(所有并发)
Time per request: 9.208 [ms] (mean, across all concurrent requests) #每一请求时间(并发平均)
Transfer rate: 8771.39 [Kbytes/sec] received #传输速率
以下结果时间每次有所偏差,均取相对平均值。
下面是我的从机ubuntu环境下的测试结果,在主机CentOS那台机器上 测试时候性能差比较明显。但最好还是能有第三台外部机器来测。