ApacheBench 主要是用来测试阿帕奇服务器执行效率用的。安装好 apache 服务器套件后,进入 bin 目录,就可以找到该可执行文件 ab.exe 。

 

  1. ab网站压力测试命令 
  2. 格式: ./ab [options] [http://]hostname[:port]/path 
  3. -n 测试会话中所执行的请求个数,默认时,仅执行一个请求 
  4. -c 一次产生的请求个数。默认是一次一个 
  5. -t 测试所进行的最大秒数 
  6. -v 设置显示信息的详细程度 - 4或更大值会显示头信息, 3或更大值可以显示响应代码(404, 200等), 2或更大值可以显示警告和其他信息。 -V 显示版本号并退出。 
  7. 4个比较长用的参数 若有其他需要man下吧 
  8. 一般工作中我们只用-n  和 -c: 
  9. 例:./ab -c 1000 -n 1000 http://127.0.0.1/index.php 
  10. -n 1000 表示总请求数为1000 
  11. -c 10 表示并发用户数为10 
  12. http://127.0.0.1/index.php 表示这些请求的目标url 
  13.  
  14. #/usr/local/xiaobai/apache2054/bin/ab -c 1000 -n 1000 http://127.0.0.1/index.html.zh-cn.gb2312 
  15. This is ApacheBench, Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0 
  16. Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ 
  17. Copyright (c) 1998-2002 The Apache Software Foundation, http://www.apache.org/ 
  18. Benchmarking 127.0.0.1 (be patient) 
  19. Completed 100 requests 
  20. Completed 200 requests 
  21. Completed 300 requests 
  22. Completed 400 requests 
  23. Completed 500 requests 
  24. Completed 600 requests 
  25. Completed 700 requests 
  26. Completed 800 requests 
  27. Completed 900 requests 
  28. Finished 1000 requests 
  29.  
  30. Server Software: 
  31. 被测试web服务软件名称他来自于http响应数据的头信息 
  32. Server Hostname: 
  33. 表示请求的url中的主机部分名称 
  34. Server Port:  
  35. 测试web服务器软件的监听端口 
  36. Document Path: 
  37. 请求的url根的绝对路径 
  38. Document Length: 
  39. 表示http响应数据的正文长度 
  40. Concurrency Level: 
  41. 并发的用户数 
  42. Time taken for tests: 
  43. 表示所有这些请求被处理完成所花费的时间总和 
  44. Complete requests: 
  45. 表示总请求书 
  46. Failed requests: 
  47. 失败的请求总数 
  48. Write errors: 
  49. Total transferred: 
  50. 所有请求的响应数据长度总和 
  51. HTML transferred:  
  52. 所有请求的响应数据中正文数据的总和,也就是减去了Total transferred 中的HTML响应数据中头信息的长度 
  53. Requests per second:132.12 [#/sec] (mean) 
  54. 重点:吞吐率,他等于Complete requests / Time taken for tests(相当于 LR 中的 每秒事务数 ,后面括号中的 mean 表示这是一个平均值) 
  55. Time per request:  
  56. 用户平均请求等待时间,他等于Time taken for tests /(Complete requests / Concurrency Level)【相当于 LR 中的 平均事务响应时间】 
  57. Time per request: 9.289 [ms] (mean, across all concurrent requests) 
  58. 服务器平均请求处理时间他等于Time taken for tests / Complete requests (每个请求实际运行时间的平均值) 
  59. Transfer rate: 
  60. 请求在单位时间内从服务器获取数据的长度他等于Total transferred / Time taken for tests 
  61. 这个统计选项可以很好的说明服务器在处理能力达到极限时其出口带宽的需求量 
  62. Percentage of the requests served within a certain time (ms) 
  63. 用于描述每个请求处理时间的分布情况,例如:50% 1      50%请求处理时间不超过1秒 (这里所指的处理时间是指:Time per request ) 
  64. .......... 100% 10   100%请求处理时间不超过10秒 

    ApacheBench 可以针对某一特定 URL 模拟出连续的联机请求,同时还可以仿真出同时间点个数相同的联机请求,因而利用 ApacheBench 可帮助我们在网站开发期间仿真实际上线可能的情况,利用仿真出来的数据做为调整服务器设定或程序的依据。
ab 用法如下:
  1. Usage: ab [options] [http[s]://]hostname[:port]/path  
  2. Options are:  
  3.     -n requests     Number of requests to perform # 请求次数  
  4.     -c concurrency  Number of multiple requests to make #同一时间发出多少个请求(并行连接)  
  5.     -t timelimit    Seconds to max. wait for responses  
  6.     -p postfile     File containing data to POST  
  7.     -T content-type Content-type header for POSTing  
  8.     -v verbosity    How much troubleshooting info to print  
  9.     -w              Print out results in HTML tables  
  10.     -i              Use HEAD instead of GET  
  11.     -x attributes   String to insert as table attributes  
  12.     -y attributes   String to insert as tr attributes  
  13.     -z attributes   String to insert as td or th attributes  
  14.     -C attribute    Add cookie, eg. 'Apache=1234. (repeatable)  
  15.     -H attribute    Add Arbitrary header line, eg. 'Accept-Encoding: gzip'  
  16.                     Inserted after all normal header lines. (repeatable)  
  17.     -A attribute    Add Basic WWW Authentication, the attributes  
  18.                     are a colon separated username and password.  
  19.     -P attribute    Add Basic Proxy Authentication, the attributes  
  20.                     are a colon separated username and password.  
  21.     -X proxy:port   Proxyserver and port number to use  
  22.     -V              Print version number and exit  
  23.     -k              Use HTTP KeepAlive feature  
  24.     -d              Do not show percentiles served table.  
  25.     -S              Do not show confidence estimators and warnings.  
  26.     -g filename     Output collected data to gnuplot format file.  
  27.     -e filename     Output CSV file with percentages served  
  28.     -s              Use httpS instead of HTTP (SSL)  
  29.     -h              Display usage information (this message) 
基本用法 : 
  1. ab -n 全部请求数 -c 并发数 测试 url  
  2. 例 :ab -n 1000 -c 50 http://www.abc.com/a.php  
  3. 得到结果类似于 ( 后面颜色字为中文翻译 ):  
  4. Server Software:        Apache/2.0.55  
  5. Server Hostname:        localhost  
  6. Server Port:            80  
  7. Document Path:          /1.php  
  8. Document Length:        82522 bytes  # 请求文档大小  
  9. Concurrency Level:      50           # 并发数  
  10. Time taken for tests:   92.76140 seconds # 全部请求完成耗时  
  11. Complete requests:      10000          # 全部请求数  
  12. Failed requests:        1974           # 失败的请求  
  13.   (Connect: 0, Length: 1974, Exceptions: 0)  
  14. Write errors:           0  
  15. Total transferred:      827019400 bytes   # 总传输大小  
  16. HTML transferred:       825219400 bytes  
  17. Requests per second:    108.61 [#/sec] (mean)   # 每秒请求数 ( 平均 )  
  18. Time per request:       460.381 [ms] (mean)   # 每次并发请求时间 ( 所有并发 )  
  19. Time per request:       9.208 [ms] (mean, across all concurrent requests)   # 每一请求时间 ( 并发平均 )    
  20. Transfer rate:          8771.39 [Kbytes/sec] received    # 传输速率  
  21. Connection Times (ms)    # 连接时间  
  22.              min  mean[+/-sd] median   max  
  23. Connect(# 连接 ):        0    0   2.1      0      46  
  24. Processing(# 处理 ):    31  458  94.7    438    1078  
  25. Waiting(# 等待 ):       15  437  87.5    422     938  
  26. Total:         31  458  94.7    438    1078  
  27. 其它参数 :  
  28. -n requests     全部请求数  
  29. -c concurrency   并发数  
  30. -t timelimit     最传等待回应时间  
  31. -p postfile     POST 数据文件  
  32. -T content-type POST Content-type  
  33. -v verbosity    How much troubleshooting info to print  
  34. -w              Print out results in HTML tables  
  35. -i              Use HEAD instead of GET  
  36. -x attributes   String to insert as table attributes  
  37. -y attributes   String to insert as tr attributes  
  38. -z attributes   String to insert as td or th attributes  
  39. -C attribute     加入 cookie, eg. 'Apache=1234. (repeatable)  
  40. -H attribute     加入 http 头 , eg. 'Accept-Encoding: gzip'  
  41.                 Inserted after all normal header lines. (repeatable)  
  42. -A attribute    http 验证 , 分隔传递用户名及密码  
  43. -P attribute    Add Basic Proxy Authentication, the attributes  
  44.                 are a colon separated username and password.  
  45. -X proxy:port   代理服务器  
  46. -V               查看 ab 版本  
  47. -k              Use HTTP KeepAlive feature  
  48. -d              Do not show percentiles served table.  
  49. -S              Do not show confidence estimators and warnings.  
  50. -g filename     Output collected data to gnuplot format file.  
  51. -e filename     Output CSV file with percentages served  
  52. -h              Display usage information (this message)