Jmeter - 使用云中的负载生成器进行测试时,每个线程的不同ip地址

时间:2017-03-03 09:33:06

标签: jmeter

我目前的设置是每个负载生成器的JMeter脚本200个用户(在使用AWS的云中)我有10个生成器(2000个线程)。

在设置中,我们有一个负载平衡器,它可以进行循环,但是负载生成器有时会进行平衡,有时它使用一个或两个应用服务器比其他服务器更多(总共10个)。在现实环境中,我们会让每个线程都有不同的IP地址,因此它们可以正确平衡。

每个线程是否有自己的IP地址。 (目前每个负载生成器都有自己的IP地址)

我需要这个来处理我当前的设置。欢迎任何想法。

JMeter版本2.13或3.1

3 个答案:

答案 0 :(得分:0)

由于您有10个不同的负载生成器,其中有10个不同的IP,10个应用程序服务器位于负载均衡器后面,如果您的假设正确,我希望负载均衡器为每个负载生成器分配一个应用程序。

你可能有:

  • 负载均衡器配置错误,导致所有客户端都被植根到单个应用服务器(粘性会话?),
  • 或负载测试脚本配置错误(动态参数未正确处理?)导致所有用户使用相同的登录/会话,这会导致负载均衡器将它们发送到同一个应用服务器。

我首先使用单个负载生成器监视应用程序服务器和负载平衡器,以查看用户是否都被发送到同一个应用程序服务器。然后尝试使用2个负载生成器(具有不同的IP),以查看是否有2个应用程序服务器被命中。

某些付费工具支持infrastructure monitoring。您可以使用免费帐户并在多个区域(具有多个IP)中模拟测试以查找。

其他资源:

还有免费的监控工具,如Zabbix,可以与您的自定义JMeter AWS Setup并行使用。

答案 1 :(得分:0)

首先,请确保为HTTP请求设置不同的源地址,有关详细信息,请查看http://blog.milamberspace.net/index.php/2009/12/03/changer-ladresse-ip-source-dune-requete-http-lors-dun-test-avec-jmeter-549.html文章。

也可能是由于您的DNS请求的操作系统或JVM缓存,特别是如果您的应用程序位于ELB

后面

确保将DNS Cache Manager添加到测试计划中,以便每个JMeter线程自行解析基础IP地址。有关详细说明,请参阅The DNS Cache Manager: The Right Way To Test Load Balanced Apps文章。

答案 2 :(得分:0)

要避免此问题,您需要确保所使用的负载生成器总数是Web服务器数量的倍数。我们假设您的应用程序有3个Web服务器。您可以使用3/6/9/12负载发生器,在所有负载发生器之间均匀分配负载。您不能使用4/7/10等。如果您这样做,如果使用粘性会话,您将始终看到比其他Web服务器更多的请求。