jMeter压力测试为200k RPM

问题描述 投票:0回答:2

我们正试图在我们的平台上进行压力测试,以达到200k + RPM。我们的测试是为jMeter编写的。我们正在使用Microsoft Azure,Blaze Meter和Flood.io,但无论我们做什么,我们都不能超过50k RPM。

我们确信我们的平台支持200k + RPM负载,因为我们在特殊事件中看到过它。但是,我们运行的压力测试不会达到那么高。我们最初遇到了CloudFlare的一些问题,所以我们就把它关了。

  • 创建一个10万用户(200k + RPM)的压力测试真的很重要吗?
  • 我们做错了什么?它可能是jMeter配置吗?
  • 在典型情况下,需要什么类型的网格才能达到此类负载?

编辑:我们监控New Relic的负载,这就是我们知道RPM的地方

azure testing jmeter qa stress-testing
2个回答
0
投票

作为规划数据,Flood建议每个节点1K线程/ 10K rpm / 50 Mbps(负载生成器),但这实际上取决于测试计划的复杂性和目标站点性能。

负载生成和原始服务器之间经常会出现瓶颈,特别是在负载平衡方面。弹性资产的名称解析还有其他问题。

在任何情况下,如果您联系支持工程师Flood,他们可以帮助您识别瓶颈,并在测试执行期间仔细检查您的配置/负载生成健康状况。


0
投票

没有足够的信息来确定您的测试/应用程序有什么问题,因此我建议您执行以下故障排除步骤:

  1. 200 000 RPM就像3333 RPS
  2. JMeter samplers的绝大多数是stateful,这意味着每个JMeter线程在发送新请求之前等待来自先前请求的响应 如果你想要3333 RPS并且你的应用程序响应时间是1秒 - 你将需要3333个线程(虚拟用户) 如果你想要3333 RPS并且你的应用程序响应时间是2秒 - 你将需要6666个线程 如果你想要3333 RPS并且你的应用程序响应时间是3秒 - 你将需要9999个线程
  3. 配置JMeter以保持所需吞吐量的最快和最简单的方法是使用Concurrency Thread GroupThroughput Shaping Timer组合。它们可以通过feedback loop函数绑定在一起,因此如果当前数量不足以维持每秒所需的请求,JMeter将根据需要创建新线程。
  4. 确保您遵循JMeter Best Practices指南中的9 Easy Solutions for a JMeter Load Test “Out of Memory” Failure和建议,以确保JMeter正确配置为高负载
  5. 确保您的测试应用程序在CPU,RAM,网络,磁盘等方面有足够的空间。您可以使用JMeter PerfMon Plugin监控它。
  6. 与第5点相同,但对于JMeter方面的事情。如果JMeter机器缺少硬件资源 - 它将无法足够快地发送请求。如果您不能从单个JMeter主机每秒发送3.3k请求 - 请考虑Distributed Testing
© www.soinside.com 2019 - 2024. All rights reserved.