apache性能测试工具ab

  |   0 评论   |   856 浏览

    首先ab是apache自带的压力测试工具。可以对apache服务器进行网站访问压力测试,也可以对或其它类型的服务器进行压力测试。比如nginx、tomcat、IIS等。

    ab会创建多个并发线程访问,来模拟对某个url进行访问,来测试web服务器的负载压力。

1.安装

apache工具包有好多东西,不想装那么多,所以我只是单独安装了ab。

yum install httpd-tools

叭拉叭拉叭拉.....

2.调试

先来看参数信息:

localhost:logs ben$ ab
ab: wrong number of arguments
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 at a time
    //测试所进行的最大秒数(单位:秒)
    -t timelimit    Seconds to max. to spend on benchmarking
                    This implies -n 50000
    //等待响应的最大时间(单位:秒)
    -s timeout      Seconds to max. wait for each response
                    Default is 30 seconds
    //TCP发送/接收的缓冲大小(单位:字节)
    -b windowsize   Size of TCP send/receive buffer, in bytes
    //进行传出连接时要绑定的地址
    -B address      Address to bind to when making outgoing connections
    //post请求使用文件存放参数,此处需要和-T配合,-T来指定post文件内容参数的格式
    -p postfile     File containing data to POST. Remember also to set -T
    //发送PUT请求使用文件存放参数,此处需要和-T配合,-T来指定post文件内容参数的格式
    -u putfile      File containing data to PUT. Remember also to set -T
    //即content-type,用于设置Content-Type请求头信息,例如:application/x-www-form-urlencoded,默认值为
text/plain。
    -T content-type Content-type header to use for POST/PUT data, eg.
                    'application/x-www-form-urlencoded'
                    Default is 'text/plain'
    //指定打印帮助信息的冗余级别
    -v verbosity    How much troubleshooting info to print
    //以HTML表格形式打印结果。
    -w              Print out results in HTML tables
    //使用HEAD请求代替GET请求。
    -i              Use HEAD instead of GET
    //插入字符串作为table标签的属性。
    -x attributes   String to insert as table attributes
    //插入字符串作为tr标签的属性。
    -y attributes   String to insert as tr attributes
    //插入字符串作为td标签的属性。
    -z attributes   String to insert as td or th attributes
    //添加cookie信息,这里就不得不说个坑了,我在写apicenter的时候想要设置多个cookie,弄了半天才弄明白,1个cookie是-c key=value 两个是... -c key=value -c key=value ...
    -C attribute    Add cookie, eg. 'Apache=1234'. (repeatable)
    //设置请求头 和-C是一个套路
    -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
                    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
    //使用HTTP的KeepAlive特性。
    -k              Use HTTP KeepAlive feature
    //不显示百分比。
    -d              Do not show percentiles served table.
    //不显示预估和警告信息。
    -S              Do not show confidence estimators and warnings.
    //做超过150个请求时,不要显示进度
    -q              Do not show progress when doing more than 150 requests
    //接受可变文件长度(使用动态页面)
    -l              Accept variable document length (use this for dynamic pages)
    //将收集的数据输出到gnuplot格式文件
    -g filename     Output collected data to gnuplot format file.
    //输出提供百分比的CSV文件
    -e filename     Output CSV file with percentages served
    //指定接收到错误信息时不退出程序。
    -r              Don't exit on socket receive errors.
    //方法名称
    -m method       Method name
    //显示使用情况信息
    -h              Display usage information (this message)
    //指定SSL / TLS密码套件(请参阅openssl密码)
    -Z ciphersuite  Specify SSL/TLS cipher suite (See openssl ciphers)
    //指定SSL / TLS协议(SSL3,TLS1,TLS1.1,TLS1.2或ALL)
    -f protocol     Specify SSL/TLS protocol
                    (SSL3, TLS1, TLS1.1, TLS1.2 or ALL)

测试:


localhost:logs ben$ ab -c 10 -n 10  http://www.baidu.com/

----------------------------------------我是分割线---------------------------------------------------

This is ApacheBench, Version 2.3 <$Revision: 1706008 $>
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:        BWS/1.1
Server Hostname:        www.baidu.com
Server Port:            80

Document Path:          /
Document Length:        111935 bytes

Concurrency Level:      10
Time taken for tests:   0.109 seconds
Complete requests:      10
Failed requests:        9
   (Connect: 0, Receive: 0, Length: 9, Exceptions: 0)
Total transferred:      1130674 bytes
HTML transferred:       1121072 bytes
Requests per second:    91.44 [#/sec] (mean)
Time per request:       109.360 [ms] (mean)
Time per request:       10.936 [ms] (mean, across all concurrent requests)
Transfer rate:          10096.69 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        4    5   0.7      5       5
Processing:    49   80  19.6     90     104
Waiting:       12   27  17.1     22      70
Total:         53   85  20.0     95     109

Percentage of the requests served within a certain time (ms)
  50%     95
  66%     97
  75%    102
  80%    106
  90%    109
  95%    109
  98%    109
  99%    109
 100%    109 (longest request)

----------------------------------------我是分割线---------------------------------------------------

这是ApacheBench,版本2.3 <$ Revision:1706008 $>
版权所有1996 Adam Twiss,Zeus Technology Ltd,http://www.zeustech.net/
授权给Apache软件基金会,http://www.apache.org/

标杆www.baidu.com(耐心).....完成


服务器软件:BWS / 1.1
服务器主机名:www.baidu.com
服务器端口:80

文档路径:/
文档长度:111935字节

并发级别:10
测试时间:0.109秒
完成请求:10
失败的请求:9
   (连接:0,接收:0,长度:9,例外:0)
传输总数:1130674字节
HTML传输:1121072字节
每秒请求数:91.44 [#/秒](平均值)
每个请求的时间:109.360 [ms](平均值)
每个请求的时间:10.936 [ms](意味着跨所有并发请求)
传输速率:10096.69 [Kbytes / sec]收到

连接时间(ms)
              分钟平均值[+/- sd]中值最大值
连接:4 5 0.7 5 5
处理:49 80 19.6 90 104
等待:12 27 17.1 22 70
总计:53 85 20.0 95 109

在特定时间内服务的请求的百分比(毫秒)
  50%95
  66%97
  75%102
  80%106
  90%109
  95%109
  98%109
  99%109
 100%109(最长请求)


完美。

以上为性能报告。

这个家伙很懒,连签名都不写。

评论

发表评论