Multithreading 如何增加JMeter来处理50000个线程,以便在Linux虚拟机上进行分布式测试?

Multithreading 如何增加JMeter来处理50000个线程,以便在Linux虚拟机上进行分布式测试?,multithreading,docker,jmeter,jvm,virtualbox,Multithreading,Docker,Jmeter,Jvm,Virtualbox,系统: 我有以下用于分布式非GUI测试的JMeter设置:1个主VM,2个从VM。所有3个都是Azure虚拟机:Ubuntu 16.04、4个vCPU、16GB RAM 我遵循了JMeter调优指南,没有看到改进的结果: 我还根据EMQ调优指南对所有3个系统进行了调优: 问题: 我仍然无法使用2个从VM在5000s 1h23m上实现50000个连接 根据JMeter文档,我可以在每个VM的x时间内运行1000个线程: 25.5限制,3。在2-3 GHz CPU上运行的单个JMeter客户端可以处

系统:

我有以下用于分布式非GUI测试的JMeter设置:1个主VM,2个从VM。所有3个都是Azure虚拟机:Ubuntu 16.04、4个vCPU、16GB RAM

我遵循了JMeter调优指南,没有看到改进的结果:

我还根据EMQ调优指南对所有3个系统进行了调优:

问题: 我仍然无法使用2个从VM在5000s 1h23m上实现50000个连接

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

25.5限制,3。在2-3 GHz CPU上运行的单个JMeter客户端可以处理1000-2000个线程,具体取决于测试类型

我能够在实践中验证这一点。我还能够验证我可以在600秒内最多实现12000个线程。任何时间超过12500个线程都会导致JVM OOM异常

由于目标服务器是运行EMQ实例的VM,我将注意到,官方EMQ负载测试文档将测试代理描述为1个VM 30000 VU 2个dockers*15000 VU

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

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

请求和响应的大小 测试中的应用程序响应时间 数量, 数量 外部数据依赖关系 等 所以不要相信一个JMeter实例可以模拟1000个线程的说法。他们都不相信它可以处理15000个线程的说法。这仅仅是因为他们没有在您的硬件和软件条件下运行您的测试。如果您的测试计划将有一个连接、延迟和响应时间为零的单用户,那么您可以获得>100000个用户,但此测试不具有代表性

在运行JMeter从机的机器上设置对基线操作系统运行状况指标的监控,您可以使用。 开始您的测试并逐渐增加负载,同时关注PerfMon中的CPU、RAM、网络和磁盘使用情况 当任何监控指标超过总可用容量的90%时,停止测试并测量此时有多少虚拟用户处于活动状态-这是您能够在特定计算机上针对特定测试类型模拟的虚拟用户数量。 如果这个数字乘以从机的数量等于或大于你需要模拟的用户总数,你就可以去了。如果没有-您将需要另一台从机。 关于您的设置,我只能考虑在拥有主机的同一台机器上运行第三个jmeter从属引擎,因为jmeter主引擎除了向从属服务器发送.jmx脚本和收集结果之外,基本上什么都不做。如果您的主机与从机具有相同的硬件规格,您可以利用剩余的容量来产生更高的负载