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

Pet*_*son 2 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
Run Code Online (Sandbox Code Playgroud)

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

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

$ wc -l /tmp/gkc.access.log 
100 /tmp/gkc.access.log
$ cat /tmp/gkc.access.log | grep ' 200 ' | wc -l
100
Run Code Online (Sandbox Code Playgroud)

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

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

UPDATE

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

Iva*_*kov 11

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

详细地说,这个问题已在这个问题中讨论过:使用AB进行负载测试...假的失败请求(长度)