我正在为250个用户执行一个性能脚本。JMeter脚本正在为同一台机器上的所有250个用户执行。一些事务失败,而一些事务的执行时间比预期的要长。因此,根据支持团队的分析,所有250个线程都击中了目标服务器的同一个节点。他们观察到,由于所有请求都来自同一个节点,因此,所有请求都来自同一个节点。计算机或IP,所以这可能是所有请求都被路由到同一个节点的所有250个线程的原因。他们说,负载均衡器是无法在不同的节点之间分配负载。所以他们提出了一个建议,使它看起来像是来自不同的计算机或IP的请求,使负载均衡器可能会分配负载。我的问题是,这是可能的,即使是可能的,这对我们目前的设置有什么不同吗?我更大的问题是,仅仅通过发送来自不同IP的请求,负载均衡器将分配负载,或者当前设置很好,我们可能有负载均衡器的架构问题。为了发送来自不同IP的请求,一个解决方案可能是使用主从配置。但这真的能解决负载均衡器无法分配负载的问题吗?即使我们有主从设置,我们也可能无法让250台从机运行脚本来复制真实的用例。
2条答案
按热度按时间slsn1g291#
你似乎有很多问题:
1/
“只需从不同的IP发送请求,负载均衡器就会分配负载”
这取决于负载均衡器的配置。当然也有一些配置可以根据源IP来均衡负载
2/
“这甚至是可能的,即使是可能的,它是否会对我们目前的设置产生任何影响”
这是可能的,但它真的很难做到,取决于您的配置
我想到了一些想法:
vu8f3i0k2#
1.尝试将DNS缓存管理器添加到您的测试计划中,并使用自定义DNS解析器,以便每个虚拟用户都可以自行解析目标IP地址,而无需依赖JVM或操作系统级别的DNS缓存。
1.可以配置JMeter的HTTP请求采样器从不同的IP地址(或alias)发送请求。
的数据
有关详细信息,请参阅IP Spoofing With JMeter: How to Simulate Requests from Different IP Addresses
1.您可以run JMeter in distributed mode,这样每个JMeter从属负载生成器将从具有自己IP地址的不同物理或虚拟机发送请求
1.检查您的后端配置,如最大传入连接数或负载平衡算法,可能会出现默认人为限制的情况