当前位置:  开发笔记 > 编程语言 > 正文

使用AB进行负载测试...假失败请求(长度)

如何解决《使用AB进行负载测试假失败请求(长度)》经验,为你挑选了3个好方法。

为了我自己的好奇心做一些负载测试,在我的服务器上运行:

ab -kc 50 -t 200 http://localhost/index.php

这将打开50个保持活动连接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报告说有一半的连接失败了?"长度:"在这种情况下意味着什么?

谢谢



1> 小智..:

没关系."长度失败"仅表示响应长度的大约一半时间不同.

由于内容是动态的,它可能是会话标识符或类似的东西.


是的,两年后这个答案仍然非常有用.
不要太快将此归因于可变内容长度不匹配.ab不会在其摘要中将HTTP状态代码500报告为错误.长度不匹配的原因可能是您有一个真正的错误.您可以使用-v 4来获取更多信息(更好的管道到文件,因为会有大量的打印输出).
嘿,我刚遇到同样的"问题",很高兴这个答案就在这里.感谢名单!
实际上它在ab手册中有解释http://httpd.apache.org/docs/current/programs/ab.html"如果文档长度在测试期间发生变化,则响应被视为错误."
谢谢你的回答,我有同样的怀疑.
如果你想确定它们都是代码200,你可以做一些像'ab -n 100 -v 2 https://your-calendar.com/pages/home | egrep"状态|失败"| 排序| uniq`,将打印例如"失败的请求:4""状态:200 OK"

2> Dariusz Walc..:

换句话说来描述这个问题:

apache基准测试工具(ab)假设响应内容的长度在整个测试期间是相同的.它存储第一个响应的内容长度.如果任何进一步的响应具有不同的内容长度,则它们导致"长度失败".

以下apache bug报告似乎证实:ASF Bug 42040

简介:如果您要提供任何可变长度的内容,您应该忽略这种ab请求失败.

编辑:我最近注意到该ab命令有一个新的(至少对我来说)选项:

-l   Accept variable document length (use this for dynamic pages)

我可以在版本2.3 <$ Revision:1528965 $>中看到它,但在版本2.3 <$ Revision:655654 $>中看不到它,所以它可能是相对最近添加的.


感谢选项"-l"提示!
对于Mac上的任何人来说,你的版本很可能落后于-l并且不会.您可以从源代码或通过自制软件安装,但"brew install ab"不起作用,因为它是apache软件包的一部分 - 您可以使用"brew install homebrew/apache/ab"进行安装.

3> zentrunix..:

很抱歉重新提出一个旧问题,但它是第一个出现在Google中的问题.有时ab报告的长度错误可能是由一个真正的问题引起的:如果连接在服务器端关闭,则客户端尚未收到Content-Length头中声明的总字节数.如果客户端和服务器之间存在其他方,例如,天真的手工负载平衡器(我的情况),就会发生这种情况.

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有