也许这是一个关于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个失败的请求。
答案 0 :(得分:11)
你得到“长度”失败的请求,这并不意味着响应代码不是200.它只是意味着跨请求的响应长度不同(它记住第一个的长度)。
详细讨论了这个问题:Load Testing with AB ... fake failed requests (length)