【发布时间】:2017-11-08 13:56:45
【问题描述】:
我使用作为 jmeter 插件提供的吞吐量整形仪表创建了 5000 rps 的最大峰值负载配置文件。
当我添加“每秒事务”作为侦听器来分析每秒请求时。它没有显示 5000rps 的峰值负载。
每秒事务侦听器是否显示通过吞吐量整形计生成请求的图或针对任何目标服务器生成的请求的实际执行图。
如何确认请求的生成达到了 5000 rps 的最大峰值负载?目前我正在使用 http 采样器生成请求。
【问题讨论】:
我使用作为 jmeter 插件提供的吞吐量整形仪表创建了 5000 rps 的最大峰值负载配置文件。
当我添加“每秒事务”作为侦听器来分析每秒请求时。它没有显示 5000rps 的峰值负载。
每秒事务侦听器是否显示通过吞吐量整形计生成请求的图或针对任何目标服务器生成的请求的实际执行图。
如何确认请求的生成达到了 5000 rps 的最大峰值负载?目前我正在使用 http 采样器生成请求。
【问题讨论】:
首先,是的,Transaction Per Second 侦听器会显示您每秒生成的交易的正确结果。
如果我没记错的话,5000 rps 是一个相当大的负载,要产生这样的负载,您必须考虑一些要点。我想简单地提一下:
要每秒生成 5000 个请求,您必须提供足够数量的线程来发出这些请求。请不要混淆线程和请求。
更高的吞吐量 (rps) 还取决于请求的响应时间。所以,如果响应时间太长,恐怕你无法在这样的 rps 中锤击你的服务器。
记住机器依赖!!要获得预期的 rps,您必须在分布式架构中运行测试。查看 JMeter 最佳实践指南。
如果您已经做过这些事情,那么请尝试使用应用程序服务器中的一些嗅探器工具(例如 Wireshark)来检查在峰值负载期间有多少请求。它可能会匹配您的每秒事务数侦听器结果。
现在,即使您无法获得这些,让我们调整一些服务器配置,例如 TCP 连接。 tcp_tw_recycle 或 tcp_tw_reuse,这两个通常是禁用的。尝试暂时启用这些配置并重新运行测试以再次检查 rps 值。您必须记住这一点,在峰值负载时间打开了多少端口,打开了多少连接以及在此期间建立了多少?你考虑过这些吗?
您可以为此做很多工作!!!不得不说,性能测试不仅仅是负载测试工具做的,还有性能测试人员的聪明才智和能力。
所以,我今天可以给我两分钱,你可以重新考虑这些事情并尝试重新设计你的测试计划。
你也可以查看这个帖子:How to send 4000+ requests in exactly 1 second?
谢谢。
【讨论】:
吞吐量整形计时器只能暂停线程以将 JMeter 吞吐量限制为定义的值,它不会启动任何额外的线程,因此请确保提供足够的线程(虚拟用户) 和循环(因此所有线程都将启动并运行)以达到所需的吞吐量。
另外请注意,JMeter 在开始下一个请求之前会等待上一个响应,因此根据您的应用程序响应时间,您可能(也可能不会)达到每秒 5k 个请求的期望值。
示例图:
使用 JMeter 默认配置也不太可能达到 5000 RPS 吞吐量,这有利于测试开发和/或调试,但不适合高负载,因此请确保您关注 @987654321 @ 和来自 9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure 指南的建议。
【讨论】: