首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何增加JMeter以处理在Linux上进行分布式测试的50,000个线程?

如何增加JMeter以处理在Linux上进行分布式测试的50,000个线程?
EN

Stack Overflow用户
提问于 2018-06-25 19:54:32
回答 1查看 1.2K关注 0票数 0

系统:

我有以下的JMeter设置为分布式的,非GUI测试:1主VM,2个从。所有三个都是Azure VM:Ubuntu16.04,4 vcpus,16 RAM内存

我已经遵循了这个JMeter调优指南,并且没有看到改进的结果:https://www.blazemeter.com/blog/9-easy-solutions-jmeter-load-test-%E2%80%9Cout-memory%E2%80%9D-failure

我还根据EMQ调优指南对所有三个系统进行了调整:http://emqtt.io/docs/v2/tune.html

问题:I仍然无法在5000年(1h23m)和2个从VM上实现50,000个连接。

根据JMeter文档,我可以在每个VM中以x的时间运行1000个线程:

25.5限制,3.在2-3 JMeter CPU (最近的CPU)上运行的单个GHz客户端可以根据测试类型处理1000-2000线程。 step.html

我能够在实践中验证这一点。我也能够验证,我可以达到最多12,000线程超过600 s。(任何时候都会有12,500个线程导致JVM OOM异常)

由于目标服务器是运行EMQ实例的VM,我将注意到,官方的EMQ负载测试文档将测试代理描述为1 VM 30000 VU (2个dockers*15000 VU )。(http://emq-xmeter-benchmark-en.readthedocs.io/en/latest/connection.html#ssl-authentication)

问题:,我想知道是否存在允许更多线程的JMeter (+虚拟机+ VirtualBox或Docker或其他服务)的已知实现。或者,如果有一个已知的JMeter优化,我还没有解决呢?

EN

回答 1

Stack Overflow用户

发布于 2018-06-26 06:39:23

JMeter可以启动的虚拟用户的数量取决于测试的性质,也就是说:

  • 请求和答复的大小
  • 测试响应时间下的应用
  • 前代人后处理器断言的数量
  • 定时器
  • 外部数据依赖
  • 等。

因此,不要相信一个JMeter实例可以模拟1000线程的说法。也不相信它可以处理15000线程的说法。这仅仅是因为他们没有在您的硬件和软件条件下运行您的测试。如果您的测试计划有一个具有零连接、延迟和响应时间的虚拟采样器,那么您可以获得超过10万用户,但是这个测试并不具有代表性。

  1. 在运行JMeter从服务器的机器上设置对基线OS健康指标的监视,您可以为此使用JMeter PerfMon插件
  2. 启动您的测试,逐渐增加负载,同时监视PerfMon中的CPU、RAM、网络和磁盘的使用情况
  3. 当任何监测指标超过总可用容量的90%时,请停止测试,并度量此时有多少虚拟用户处于活动状态--这就是您能够为特定的测试类型在特定的机器上模拟的数量。
  4. 如果这个数字乘以从机的数量等于或高于您需要模拟的用户总数,那么就可以了。如果没有-你需要另一台奴隶机器。

关于您的设置,我只能考虑在同一台机器上运行3 .jmx从引擎,在这台机器上,主作为jmeter主引擎,基本上除了向奴隶发送.jmx脚本和收集结果之外,什么也不做。如果你的主人和奴隶拥有相同的硬件规格,你可以利用剩余的能力来产生更高的负载。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51030970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档