为了自己的好奇心,在我的服务器上进行一些负载测试:
ab -kc 50 -t 200 http://localhost/index.php
这将打开50个keep-alive连接200秒,并用index.php请求猛击我的服务器
结果显示:
Concurrency Level: 50
Time taken for tests: 200.007 seconds
Complete requests: 33106
Failed requests: 32951
(Connect: 0, Receive: 0, Length: 32951, Exceptions: 0)
Write errors: 0
Keep-Alive requests: 0
Total transferred: 1948268960 bytes
HTML transferred: 1938001392 bytes
Requests per second: 165.52 [#/sec] (mean)
Time per request: 302.071 [ms] (mean)
Time per request: 6.041 [ms] (mean, across all concurrent requests)
Transfer rate: 9512.69 [Kbytes/sec] received
请注意32951“失败”的请求。我无法弄清楚。
在测试运行期间,尽管页面底部的页面加载时间报告为.5,而不是通常的.02,但我仍可以从家用计算机上完美访问我的网站。但是,我从未遇到过失败的请求。
那么,为什么AB会报告一半的连接失败?在这种情况下,“长度:”是什么意思?
您的网站是否有负载均衡器?请参阅我的有关使用负载均衡器进行负载测试的博客文章,它可能会解释负载测试中 “对我有用”的情况。
—
Patrick Lightbody