远程Windows机器(亚马逊)在运行4500个用户时使用JMeter进行测试时与网络断开连接

时间:2017-04-13 09:36:03

标签: performance jmeter performance-testing

我在两台分布式机器中使用JMeter运行4500个用户测试。以下是机器详细信息。

Windows Slave Machine详细信息: Windows服务器R2

RAM:8GB

CPU:4核

在Jmeter.bat文件中配置的HEAP大小

设置HEAP = -Xms1024m -Xmx10240m 设置NEW = -XX:NewSize = 512m -XX:MaxNewSize = 2048m

现在问题是,一旦测试达到了4500个用户的远程计算机(亚马逊Windows实例)正在与网络断开连接。无法从Master运行脚本。

请为我提供解决方案,我需要更改任何其他配置。

先谢谢。

2 个答案:

答案 0 :(得分:0)

您很可能只是重载您的实例,例如,您在具有8GB总可用物理RAM的计算机上将最大堆设置为10 GB,这不是建议的:

  • Windows Server本身消耗一些RAM
  • 如果你将最大堆设置为高于你的空闲RAM,它将触发交换,这将极大地减慢你的测试速度

所以我建议逐渐增加虚拟用户的数量,同时使用ie Amazon CloudWatchJMeter PerfMon Plugin监控您的JMeter奴隶,并至少关注以下指标:

  1. CPU
  2. RAM
  3. 网络IO
  4. 磁盘IO
  5. 如果它们中的任何一个达到阈值,比如90% - 使用ie Active Threads Over Time监听器检查此时活动JMeter线程的数量 - 这是您可以模仿的虚拟用户数。可能是您需要添加更多从属节点才能达到4500个虚拟用户。

    请记住,每个JMeter从站实际上都是独立,因此如果您在Thread Group中定义4500个虚拟用户,并且您将拥有2个从站,则总负载将为4500 x 2 == 9000个虚拟用户,对于3个远程从站,它将是4500 x 3 == 13500等。

答案 1 :(得分:0)

我想知道你用的是什么样的实例。当然,我可能会忽略它,但当我看到table时,我看不到任何组合,如4 vCPU - 8Gb mem?

不管它是什么 - 检查您的实例的网络性能。如果它低于高,特别是如果它是低到中等 - 首先,你可以快速饱和,它不是很多,实际上,350-400 Mbps(我不知道你的有效载荷/ rps但是,请计算自己在哪个点达到极限。 第二 - 它可能在完全饱和一段时间后受到限制,然后你的网络性能几乎下降了一半。 我知道,亚马逊没有记录它(他们只记录突发性能实例的CPU限制,比如t2),尽管我已经非常清楚地看到了它。

因此,除了Dmitri建议的内容之外,请检查计算机的网络吞吐量,就像您的测试正在运行一样。你可以马上看到它。

第二个建议 - 增加奴隶数量,至少增加两个,并在其中分散负荷:这样,你就不会达到这个极限。