我如何分析Apache Bench结果?

我需要一些帮助来分析Apache Bench的日志:

Benchmarking texteli.com (be patient) Completed 100 requests Completed 200 requests Completed 300 requests Completed 400 requests Completed 500 requests Completed 600 requests Completed 700 requests Completed 800 requests Completed 900 requests Completed 1000 requests Finished 1000 requests Server Software: Server Hostname: texteli.com Server Port: 80 Document Path: /4f84b59c557eb79321000dfa Document Length: 13400 bytes Concurrency Level: 200 Time taken for tests: 37.030 seconds Complete requests: 1000 Failed requests: 0 Write errors: 0 Total transferred: 13524000 bytes HTML transferred: 13400000 bytes Requests per second: 27.01 [#/sec] (mean) Time per request: 7406.024 [ms] (mean) Time per request: 37.030 [ms] (mean, across all concurrent requests) Transfer rate: 356.66 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 27 37 19.5 34 319 Processing: 80 6273 1673.7 6907 8987 Waiting: 47 3436 2085.2 3345 8856 Total: 115 6310 1675.8 6940 9022 Percentage of the requests served within a certain time (ms) 50% 6940 66% 6968 75% 6988 80% 7007 90% 7025 95% 7078 98% 8410 99% 8876 100% 9022 (longest request) 

这个结果可以告诉我什么? 是不是27 rps太慢?

运行负载testing时,select一个任意数字并打到服务器通常不是一个好的方法。 所有你已经certificate的是,你的服务器可以处理200个并发访问者,只要他们不介意等待他们的请求加载7秒。 你可能想要做的是:

  1. 首先,build立一个基线。 使用1个访客(并发1)。
  2. 其次,开始增加数字。 例如,1,10,25,50,100,125,150,200等。
  3. 最后,确保这些请求长时间运行(也就是说,不要只启动它然后运行)

一旦你有结果,图表:访客数量与平均请求时间,包括最大和最小条。 基本上,任意应用程序的负载testing只是与相关testing一样有用; 在这种情况下,例如,如果需要1个访问者6s来加载页面,那么对于200个访问者来说,7s页面听起来不坏,对吗?

您可以通过设置启动请求数和并发请求数开始,并检查结果如下:

 - Total Number of Requests per seconds - Average Time Per Request - Average waiting / processing / connecting times 

那么可以通过增加并发连接的数量来扩展它们,直到达到预期的用户数量并观察服务的响应并重复次数并检查时间变化并取平均值