ab参数说明及web服务器测试

说明:
ab(ApacheBench)可以用来测试web服务器的执行效率。ab包含在apache安装目录bin目录下。ab可以针对某一特定URL模拟出连续的联机请求,同时还可以仿真出同时间点个数相同的联机请求,因而可以利用ab帮助我们在网站开发期间仿真实际上线可能的情况,利用仿真出来的数据做为调整服务器设定或程序的依据。

参数:ab 用法如下

Usage: ab [options] [http[s]://]hostname[:port]/path
Options are:
    -n requests     Number of requests to perform //请求次数
    -c concurrency  Number of multiple requests to make //同一时间发出多少个请求(并行连接)
    -t timelimit    Seconds to max. wait for responses   //等待响应时间
    -p postfile     File containing data to POST
    -T content-type Content-type header for POSTing
    -v verbosity    How much troubleshooting info to print
    -w              Print out results in HTML tables
    -i              Use HEAD instead of GET
    -x attributes   String to insert as table attributes
    -y attributes   String to insert as tr attributes
    -z attributes   String to insert as td or th attributes
    -C attribute    Add cookie, eg. 'Apache=1234. (repeatable)
    -H attribute    Add Arbitrary header line, eg. 'Accept-Encoding: gzip'
                    Inserted after all normal header lines. (repeatable)
    -A attribute    Add Basic WWW Authentication, the attributes  //http验证, 分隔传递用户名及密码
                    are a colon separated username and password.
    -P attribute    Add Basic Proxy Authentication, the attributes
                    are a colon separated username and password.
    -X proxy:port   Proxyserver and port number to use
    -V              Print version number and exit  //查看ab版本
    -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
    -s              Use httpS instead of HTTP (SSL)
    -h              Display usage information (this message)

 
实例:
# ab -n 请求数 -c 并发数 测试 url

# ab -n 100 -c 5 -k http://www.gaingreat.com/42.html  //必须在后方指定相应文件42.html或加上“/”
This is ApacheBench, Version 2.0.40-dev <$Revision: 1.146 $> apache-2.0
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright 2006 The Apache Software Foundation, http://www.apache.org/

Benchmarking www.gaingreat.com (be patient).....done


Server Software:        nginx  //Web服务器引擎
Server Hostname:        www.gaingreat.com  //服务器地址
Server Port:            80  //服务器端口

Document Path:          /42.html  //请求的文件路径
Document Length:        37927 bytes  //文件大小

Concurrency Level:      5  //并发次数
Time taken for tests:   32.732276 seconds  //测试所需时间
Complete requests:      100  //成功请求次数
Failed requests:        73  //失败请求次数
   (Connect: 0, Length: 73, Exceptions: 0)
Write errors:           0  //写入错误
Keep-Alive requests:    0
Total transferred:      3817232 bytes  //测试过程传输字节数
HTML transferred:       3791532 bytes  //HTML内容传输字节数
Requests per second:    3.06 [#/sec] (mean)  //每秒请求数 ( 平均 )
Time per request:       1636.614 [ms] (mean)  //每次并发请求时间 ( 所有并发 )
Time per request:       327.323 [ms] (mean, across all concurrent requests)  //每一请求时间 ( 并发平均 )
Transfer rate:          113.86 [Kbytes/sec] received  //平均传输速率

Connection Times (ms)  //响应时间小、中、大值
              min  mean[+/-sd] median   max
Connect:       16  183 111.5    192     460
Processing:   793 1427 548.2   1296    3839
Waiting:      300  822 485.0    650    3190
Total:        925 1611 512.8   1447    3891
//以下为所有请求的平均速度,如在测试过程中进度到50%时平均响应时间为1447ms,到66%时
平均响应时间为1567ms
Percentage of the requests served within a certain time (ms)
  50%   1447
  66%   1567
  75%   1667
  80%   1742
  90%   2241
  95%   2793
  98%   3748
  99%   3891
 100%   3891 (longest request)

 
附录:
附录1:关于ab -n 请求数 -c 并发数 测试 url的部分说明
“-n”表示:每次请求数,默认不能超过1024个,否则需要修改系统进程限制。
“-c”表示:1个请求的并发连接数,默认最大不能超过50000。
并发连接数不能够大于请求数,即C≤ N 否则会提示:Cannot use concurrency level greater than total number of requests。

附录2.ab: error while loading shared libraries: libaprutil-1.so.0: cannot open shared object file: No such file or directory
这是因为apr-utils没用安装,centOS的话,直接yum install apr-utils即可。若apr-utils是编译安装的,如我这里的/usr/local/apr-utils目录,刚ln -s /usr/local/apr-util/lib/libaprutil-1.so.0* /usr/lib64/将apr-utils软链接到/usr/lib64目录下(64位系统,32位系统目录为/usr/lib/)

附录3.yum install arp-utils时用到的文件目录

# rpm -ql apr-util
/usr/lib64/apr-util-1
/usr/lib64/apr-util-1/apr_dbd_pgsql-1.so
/usr/lib64/apr-util-1/apr_dbd_pgsql.so
/usr/lib64/apr-util-1/apr_dbd_sqlite3-1.so
/usr/lib64/apr-util-1/apr_dbd_sqlite3.so
/usr/lib64/libaprutil-1.so.0
/usr/lib64/libaprutil-1.so.0.2.7
/usr/share/doc/apr-util-1.2.7
/usr/share/doc/apr-util-1.2.7/CHANGES
/usr/share/doc/apr-util-1.2.7/LICENSE
/usr/share/doc/apr-util-1.2.7/NOTICE
/usr/lib/apr-util-1
/usr/lib/apr-util-1/apr_dbd_pgsql-1.so
/usr/lib/apr-util-1/apr_dbd_pgsql.so
/usr/lib/apr-util-1/apr_dbd_sqlite3-1.so
/usr/lib/apr-util-1/apr_dbd_sqlite3.so
/usr/lib/libaprutil-1.so.0
/usr/lib/libaprutil-1.so.0.2.7
/usr/share/doc/apr-util-1.2.7
/usr/share/doc/apr-util-1.2.7/CHANGES
/usr/share/doc/apr-util-1.2.7/LICENSE
/usr/share/doc/apr-util-1.2.7/NOTICE

发表评论

邮箱地址不会被公开。 必填项已用*标注