利用ab压力工具对服务器进行压力测试

ab是一款压力测试功能了,我们可以模仿用户实质性的访问网页从而可以测试出网站并发能力与数据处理能力了,下面小编为各位介绍ab压力工具对服务器进行压力测试的一个例子.

在使用之前,需要先确认是否服务器安装了Apache Http Server,如果没有安装,则需要先安装:

  1. $sudoyuminstallhttpd
  2. $ab-V
  3. ThisisApacheBench,Version2.3<$Revision:1430300$>
  4. Copyright1996AdamTwiss,ZeusTechnologyLtd,http://www.zeustech.net/
  5. LicensedtoTheApacheSoftwareFoundation,http://www.apache.org/

下面是对ab工具比较常用的一些参数的解释.

  1. aicode:~mylxsw$ab-h
  2. Usage:ab[options][http[s]://]hostname[:port]/path
  3. Optionsare:
  4. -nrequests要执行的请求数量
  5. -cconcurrency并发请求数量
  6. -bwindowsizeTCP发送/接收缓冲区大小,单位所以byte
  7. -ppostfile指定POST发送的数据文件,不要忘记设置-T参数
  8. -uputfile指定PUT发送的数据文件,不要忘记设置-T参数
  9. -Tcontent-type使用POST/PUT发送数据时,指定Content-type请求头,例如.
  10. 'application/x-www-form-urlencoded'
  11. 默认是'text/plain'
  12. -w以HTML表格的形式输出结果
  13. -i请求方式使用HEAD代替GET
  14. -Cattribute添加Cookie,例如'Apache=1234'.(可以重复设置)
  15. -Hattribute添加任意的请求Header,例如.'Accept-Encoding:gzip'(可重复设置)
  16. -Aattribute添加基本的WWW认证信息,这个属性是用英文逗号分隔的用户名和密码
  17. -Pattribute添加代理服务器认证信息,使用逗号分隔用户名和密码
  18. -Xproxy:port指定代理服务器的地址和端口号
  19. -k使用HTTP的KeepAlive特性
  20. -r当Socket收到错误信息时不要退出.
  21. -Zciphersuite指定SSL/TLS加密套件
  22. -fprotocol指定SSL/TLS协议(SSL2,SSL3,TLS1orALL)
  23. ...

假如我们需要对http://letv.com进行压力测试,指定请求总数为100,并发用户数为10,我们可以以下面的方式进行测试.

  1. $ab-n100-c10http://letv.com/
  2. ThisisApacheBench,Version2.3<$Revision:1430300$>
  3. Copyright1996AdamTwiss,ZeusTechnologyLtd,http://www.zeustech.net/
  4. LicensedtoTheApacheSoftwareFoundation,http://www.apache.org/
  5. Benchmarkingletv.com(bepatient).....done
  6. ServerSoftware:nginx/1.2.1
  7. ServerHostname:letv.com
  8. ServerPort:80
  9. DocumentPath:/
  10. DocumentLength:184bytes
  11. ConcurrencyLevel:10
  12. Timetakenfortests:0.396seconds
  13. Completerequests:100
  14. Failedrequests:0
  15. Writeerrors:0
  16. Non-2xxresponses:100
  17. Totaltransferred:37300bytes
  18. HTMLtransferred:18400bytes
  19. Requestspersecond:252.29[#/sec](mean)
  20. Timeperrequest:39.637[ms](mean)
  21. Timeperrequest:3.964[ms](mean,acrossallconcurrentrequests)
  22. Transferrate:91.90[Kbytes/sec]received
  23. ConnectionTimes(ms)
  24. minmean[+/-sd]medianmax
  25. Connect:450.958
  26. Processing:43387.46312
  27. Waiting:43387.35311
  28. Total:93987.612317
  29. Percentageoftherequestsservedwithinacertaintime(ms)
  30. 50%12//phpfensi.com
  31. 66%12
  32. 75%13
  33. 80%14
  34. 90%15
  35. 95%316
  36. 98%317
  37. 99%317
  38. 100%317(longestrequest)

需要注意的几个字段是:

Requests per second 吞吐率(reqs/s),该字段值为252.29,该值表明了服务器每秒能够处理的请求数量.

Time per request 平均请求处理时间,可以看到,该字段分为两行,有两个不同的值,代表了处理每隔请求所需要的时间,但是第一行的值是第二行的10倍,这是因为我们指定的并发数量为10,第一行为每次并发请求的平均耗时,第二行为每隔请求的耗时,因此,第一行值为第二行的值乘上并发请求数量,可以尝试将并发数改为20,这样就会看到第一行是第二行的20倍.

Transfer rate 每秒从服务器获取的数据的长度,上面的介绍的是linux中,下面来看看Windows环境下Apache服务器压力测试工具ab使用说明.

在Apache服务器自带了一个测试程序Ab.exe可以很方便的使用,进入cmd,之后进入ab.exe的目录,命令是 ab -c 请求数 -n 线程数 网址(建议输入目标网页.

线程数不宜过大 按照你电脑的承受能力,例:ab -n 10 -c 10 http://192.168.1.3/index.html

结果如下:

  1. D:Apachebin>ab-n10-c10http://192.168.1.3/index.html
  2. (以上是输入的命令)
  3. Benchmarking192.168.1.3(bepatient).....done
  4. ServerSoftware:Apache/2.0.63
  5. (目标服务器Apache版本号)
  6. ServerHostname:192.168.1.3
  7. (目标服务器主机头名称)
  8. ServerPort:80
  9. (目标服务器Apache端口)
  10. DocumentPath:/index.html
  11. (目标网页相对地址)
  12. DocumentLength:292bytes
  13. (目标网页大小)
  14. ConcurrencyLevel:10
  15. (并发线程数)
  16. Timetakenfortests:0.140625seconds
  17. (使用时间)
  18. Completerequests:10
  19. (成功的请求数量)
  20. Failedrequests:0
  21. (失败的请求数量)
  22. Writeerrors:0
  23. (发生错误数量)
  24. Totaltransferred:5750bytes
  25. (全部使用的流量)
  26. HTMLtransferred:2920bytes
  27. (Html文件使用的流量)
  28. Requestspersecond:71.11[#/sec](mean)
  29. (指标一平均每秒请求数)
  30. Timeperrequest:140.625[ms](mean)
  31. (指标二平均事务响应时间)
  32. Timeperrequest:14.063[ms](mean,acrossallconcurrentrequests)
  33. (每秒请求时间)
  34. Transferrate:35.56[Kbytes/sec]received
  35. (传输速率)
  36. ConnectionTimes(ms)
  37. minmean[+/-sd]medianmax
  38. Connect:000.000
  39. Processing:10912416.3140140
  40. Waiting:10912416.3140140
  41. Total:10912416.3140140
  42. (所有请求的响应情况)
  43. Percentageoftherequestsservedwithinacertaintime(ms)
  44. 50%140
  45. 66%140
  46. 75%140
  47. 80%140
  48. 90%140
  49. 95%140
  50. 98%140
  51. 99%140
  52. 100%140(longestrequest)

每个请求都有一个响应时间,比如 其中 50% 的用户响应时间小于 140 毫秒,最大的响应时间小于 140 毫秒(100% 处).

相关广告
  • 利用ab压力工具对服务器进行压力测试 利用ab压力工具对服务器进行压力测试 利用ab压力工具对服务器进行压力测试
相关阅读

利用ab压力工具对服务器进行压力测试

2019/10/10 17:45:58 | 谷歌SEO算法 | 区块链