ApacheBench(ab)测试工具介绍 - 备忘与学习

   ApacheBench是Apache附带的一个小工具,可以做http服务器的压力测试,可以同时模拟多个并发请求,该工具是安装apache时默认安装的,在apache/bin目录下面。如果要使用该工具,需要已安装apache,apache的安装在此不做说明。
   该工具可以给网站做压力测试,测试网站的请求处理速度,并发请求瓶颈等。

    命令格式:
    ab [options][http://]hostname[:port]/path

    参数介绍:
    -n   requests    Number of requests to perform
    做一次测试所发送的请求数,默认是1次请求
    -c   concurrency  Number of multiple requests tomake
    每次请求的并发数
    -t   timelimit   Seconds to max. wait for responses
    测试所进行的最大秒数,,可以将一次测试控制在等待多少秒内,默认没有时间限制
    -p   postfile    File containing data to POST
    测试请求包含的post数据
    -T   content-type Content-type header for POSTing
    POST数据需要声明的Content-type头信息
    -vverbosity    Howmuch troubleshooting info to print
    打印的信息的长度, 4或更大值会显示头信息,3或更大值可以显示响应代码(404, 200等), 2或更大值可以显示警告和其他信息。 -V显示版本号并退出
   -w             Print out results in HTML tables
    以HTML表格的形式输出测试结果
   -i             Use HEAD instead of GET
    用HEAD请求代替GET
    -x   attributes   String to insert astable attributes
    table表格的属性
    -y   attributes   String to insert astr attributes
    表格中tr的属性
    -z   attributes   String to insert astd or th attributes
    表格中td/th的属性
    -C   attribute    Addcookie, eg. 'Apache=1234. (repeatable)
    对请求附加cookie设置,格式是name=value,该命令可重复设置多个cookie
    -H   attribute    AddArbitrary header line, eg. 'Accept-Encoding: gzip' Inserted afterall normal header lines. (repeatable)
    设置head的参数,例如接收的压缩格式为gzip
    -A   attribute    AddBasic WWW Authentication, the attributes are a colon separatedusername and password.
    -P   attribute    AddBasic Proxy Authentication, the attributes are a colon separatedusername and password.
    -X   proxy:port   Proxyserver and portnumber to use
   -V             Print version number and exit
   -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)
   该工具有很多参数,这里水平有限,有些自己也没用过,不做说明,基本我们常用的命令已经给出了解释。

   启动该工具的方式,开始->运行->cmd,进入dos模式,然后进入到apache\bin目录。

   我们以google.com作为测试对象,来具体分析一下返回的结果。
    执行命令:ab -n100 -c 10 http://www.google.com/
   此命令为向google.com发送100次请求,并且每次请求附带10个并发请求
    返回结果:
ServerSoftware:       gws
谷歌所用的网站服务器基于apache开发且对谷歌程序优化版
ServerHostname:       www.google.com
ServerPort:           80

DocumentPath:         /
DocumentLength:       376 bytes

ConcurrencyLevel:     10
并发数为10
Time taken for tests:   5.609seconds
整个测试所花费的时间 5.609秒
Completerequests:     100
请求完成数100
Failedrequests:       0
Writeerrors:          0
Non-2xxresponses:     100
Totaltransferred:     92755 bytes
HTMLtransferred:      37600 bytes
Requests persecond:    17.83[#/sec] (mean)
每秒处理的请求数
Time perrequest:      560.938 [ms] (mean)
每次请求的平均处理时间(毫秒)
Time perrequest:      56.094 [ms] (mean, across all concurrent requests)
每次请求中处理每个并发所用的时间
Transferrate:         16.15 [Kbytes/sec] received

//-----------------------
Connection Times (ms)
             min  mean[+/-sd]median   max
Connect:      47  55  7.8    63     63
连接时间 最小为47毫秒 最大为63毫秒平均连接时间约为55毫秒
Processing:   63  475 88.7   500    516
处理时间 最小为63毫秒 最大为516毫秒平均处理时间约为516毫秒
Waiting:      47  286136.7   281    516
等待时间
Total:       109  530 88.9   547    563
时间总计
WARNING: The median and mean for the initial connection time arenot within a no
rmal deviation
初始连接时间的平均值不在正常的偏差范围内
       These results are probably not that reliable.
-------------------------//以上为本次测试的分析结果,个人不清楚具体的计算过程
Percentage of the requests served within a certain time (ms)
 50%    547
 66%    563
 75%    563
 80%    563
 90%    563
 95%    563
 98%    563
 99%    563
 100%   563 (longest request)
   50%的用户请求处理时间小于547毫秒,66%的的用户请求处理时间小于563毫秒,其他的以此类推,最长的请求处理时间不超过563毫秒
    由于对于并发请求,cpu实际上并不是同时处理的,而是按照每个请求获得的时间片逐个轮转处理的,所以基本上第一个Timeper request时间约等于第二个Time per request时间乘以并发请求数
在本例中 560.938≈56.094*10


你可能感兴趣的:(ApacheBench(ab)测试工具介绍 - 备忘与学习)