我目前的设置是每个负载生成器的JMeter脚本200个用户(在使用AWS的云中)我有10个生成器(2000个线程)。
在设置中,我们有一个负载平衡器,它可以进行循环,但是负载生成器有时会进行平衡,有时它使用一个或两个应用服务器比其他服务器更多(总共10个)。在现实环境中,我们会让每个线程都有不同的IP地址,因此它们可以正确平衡。
每个线程是否有自己的IP地址。 (目前每个负载生成器都有自己的IP地址)
我需要这个来处理我当前的设置。欢迎任何想法。
JMeter版本2.13或3.1
答案 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服务器更多的请求。