当前位置: 首页 > 知识库问答 >
问题:

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

于高雅
2023-03-14

我已经使用作为jmeter插件提供的吞吐量整形仪创建了一个最大峰值负载为5000 rpm的概要文件。

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

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

如何确认请求的生成达到5000 rpm的最大峰值负载?目前,我正在使用http采样器生成请求。

共有2个答案

习哲彦
2023-03-14

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

还要注意,JMeter在启动下一个请求之前会等待上一个响应,因此根据您的应用程序响应时间,您可能会(也可能不会)达到每秒5k个请求的期望值。

示例示例图:

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

使用JMeter默认配置也不太可能达到5000 RPS吞吐量,这有利于测试开发和/或调试,但不适合高负载,因此请确保您遵循JMeter最佳实践和JMeter负载测试“内存不足”故障指南的9个简单解决方案中的建议。

上官修文
2023-03-14

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

如果我没有弄错的话,5000 rps是一个相当重的负载,要产生这样的负载,您必须考虑一些要点。我想简而言之:

>

  • 要每秒生成5000个请求,必须提供足够数量的线程来发出这些请求。请不要混淆线程和请求。

    更高的吞吐量(rps)还取决于请求的响应时间。因此,如果响应时间太长,恐怕您无法在这样的rps中敲打您的服务器。

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

    如果您已经做了这些事情,那么请尝试使用应用程序服务器上的一些嗅探器工具(如Wireshark)来检查在高峰负载时间内有多少请求。它很可能与每秒侦听器的事务数结果相匹配。

    现在,即使您无法获得这些,也让我们调整一些服务器配置,如TCP连接<代码>tcp\u tw\u回收或tcp\u tw\u重用,这两种功能通常被禁用。尝试临时启用这些配置,然后重新运行测试以再次检查rps值。您必须记住,在高峰负载时间内有多少端口是打开的,有多少连接是打开的,有多少连接是在这段时间内建立的?你考虑过这些事情吗?

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

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

    您还可以检查此线程:如何在1秒内发送4000个请求?

    非常感谢。

  •  类似资料:
    • 汇总报告中最后一行显示的总吞吐量是否正确?我使用的是Jmeter 2.11 有人能帮我一下吗?

    • 我有一个带有七个线程组的巨大脚本。我使用了Conccurency线程组和吞吐量整形计时器。我有两个问题: 我是否可以将吞吐量成形计时器中的值与点一起使用,例如,开始RPS:0.01,结束RPS:0.3 如何在CTG中多次使用吞吐量成形计时器?例如:我有10个步骤。前5步的RPS应为0.5到2(阶梯式),第6步和第7步的RPS应为0.3到0.8,最后一步的RPS应为0.1到0.4。我想使用比例-我的

    • 在我的测试计划中,我有24个吞吐量控制器,它们的执行率不同,最小的是1%。10个不同的吞吐量控制器有1%的执行率。每个吞吐量控制器下面都有许多事务控制器。当我运行一个测试1小时时,在某些最小百分比吞吐量控制器下定义的采样器甚至不会执行一次。我已经确保所有24个吞吐量控制器的总数增加到100%。如何确保在所有吞吐量控制器上定义的所有采样器至少执行一次? 对于吞吐量最少的控制器,我将其更改为“Tota

    • 我希望达到每秒7.6个请求的吞吐量。我使用的是bzm-并发线程组,具有反馈功能和吞吐量成形计时器,如下所示。请忽略删除的线程组。它们被禁用,不由Jmeter执行。 当我从命令行运行脚本时,它显示的日志如下 在日志文件中,它提到: 在并发线程组中,我将带有反馈函数的目标并发定义为${{uu tstFeedback(tst name,1100,30)} 这里,1和100是开始线程和允许的最大线程数,3

    • 我想通过从CSV文件向服务器发送100个请求来测试10个线程。我想每个线程按顺序发射100个请求,同时允许并行请求。我有我的主要采样器和子采样器的子组件和另一个采样器,我想比较我的结果。这种配置通常会产生7个采样器。问题是,当我尝试绘制吞吐量与线程之间的关系图时,在1个用户中,结果在y轴上显示了100多个事务/秒的值。同样的事情发生在“显示结果表”侦听器(即,对于1个用户,它显示700个样本)如何

    • 这些天我试图使用JMeter做负载测试。有一个非常令人困惑的点我不明白:分布式环境: 1。运行JMeter Server 2的3台8 CPU 16G服务器。4 CPU 8G服务器运行JMeter 3.这些服务器在同一个子网上。 线程组设置:线程数:2000爬升:0循环:10吞吐量为3000/s 另一个线程组:线程数:2000提升:1循环:10吞吐量为5000/s 另一个线程组:线程数:2000爬升