jmeter-吞吐量整形仪请求生成

时间:2017-06-07 09:33:58

标签: java http jmeter

我使用作为jmeter插件提供的吞吐量整形仪创建了最大峰值负载为5000 rps的配置文件。

当我添加“每秒事务数”作为侦听器来分析每秒的请求时。它没有显示5000rps的峰值负载。

每秒事务侦听器是否显示吞吐量整形计的请求生成图或者针对任何目标服务器生成的请求的实际执行图。

如何确认请求的生成达到最大峰值负载5000 rps?目前我正在使用http sampler进行请求生成。

2 个答案:

答案 0 :(得分:0)

首先,是的,每秒交易次数监听器显示每秒生成的交易的正确结果。

如果我没有弄错的话,5000 rps是一个相当沉重的负载,要产生这样的负载,你必须考虑一些重点。我想简单提一下那些:

  1. 要每秒生成5000个请求,您必须提供足够数量的线程来发出这些请求。请不要在线程和请求之间进行任何混淆。

  2. 更高的吞吐量(rps)还取决于您的请求的响应时间。所以,如果响应时间太长,我恐怕你不能在这样的rps中锤击你的服务器。

  3. 记住机器依赖!!要获得预期的rps,您必须在分布式架构中运行测试。查看JMeter最佳实践指南。

  4. 如果你已经做过那些事情,那么请尝试使用一些嗅探器工具,比如应用服务器中的Wireshark,以检查在峰值加载时间内有多少请求。它可能会匹配每秒听众的交易结果。

  5. 现在,即使你无法获得这些,我们也可以调整一些服务器配置,比如TCP连接。 tcp_tw_recycletcp_tw_reuse,这两个通常都是禁用的。尝试暂时启用这些配置并重新运行测试以再次检查rps值。您必须记住这一点,在峰值加载时间内打开了多少个端口,打开了多少个连接以及在此期间建立了多少个连接?你有没有考虑过那些事情?

  6. 你可以为这件事做很多工作!我只想说,性能测试不是仅通过负载测试工具完成的,它也是性能测试人员的智能和能力。

    所以,我今天可以给你两分钱,你可以重新考虑这些事情,并尝试重新设计你的测试计划。

    您还可以查看此主题:How to send 4000+ requests in exactly 1 second?

    谢谢。

答案 1 :(得分:0)

吞吐量整形计时器只能暂停线程以将JMeter吞吐量限制为定义的值,它不会启动任何额外的线程,因此请确保提供足够的线程(虚拟用户)和循环(所有线程都将启动并运行),以达到所需的吞吐量。

另请注意,JMeter在开始下一个请求之前等待先前的响应,因此根据您的应用程序响应时间,您可能(或可能不)达到每秒5k请求的期望值。

示例样本数据:

  • 如果您有5000个虚拟用户且应用程序响应时间为1秒 - 您将拥有5000 RPS
  • 如果您有5000个虚拟用户且应用程序响应时间为2秒 - 您将拥有2500 RPS
  • 如果您有5000个虚拟用户且应用程序响应时间为500毫秒 - 您将拥有10000 RPS

使用JMeter默认配置,您也不太可能达到5000 RPS吞吐量,这对于测试开发和/或调试很有用,但它不适合高负载,因此请确保您关注JMeter Best Practices以及9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure指南中的建议。

相关问题