在负载均衡的Tornado站点上使用apache基准测试获取失败的请求但没有记录

时间:2011-06-03 15:52:09

标签: benchmarking tornado apachebench

也许这是一个关于ab的问题,而不是关于龙卷风的问题,但有些事情没有意义。

我像这样运行基准测试:

$ ab -n 100 http://localdomainname/ # 2 tornados being 1 nginx
 ...
Concurrency Level:      1
Time taken for tests:   0.162 seconds
Complete requests:      100
Failed requests:        17
   (Connect: 0, Receive: 0, Length: 17, Exceptions: 0)
Write errors:           0

因此根据100个请求中的17个失败。

在运行benchamark之前,我重置日志文件并再次查看它们:

$ wc -l /tmp/gkc.access.log 
100 /tmp/gkc.access.log
$ cat /tmp/gkc.access.log | grep ' 200 ' | wc -l
100

所以,根据Nginx,没有请求失败!为什么说ab中的17个失败了?

(顺便说一下,100个中只有17个只是一个例子。它上下起伏但从未出现过我想要的0)

更新

在没有触及Tornado + Nginx设置的情况下使用httperf进行测试后,我得到了0个失败的请求。

1 个答案:

答案 0 :(得分:11)

你得到“长度”失败的请求,这并不意味着响应代码不是200.它只是意味着跨请求的响应长度不同(它记住第一个的长度)。

详细讨论了这个问题:Load Testing with AB ... fake failed requests (length)