jmeter 是否有可能使目标服务器认为传入的请求来自不同的计算机或IP

juud5qan  于 12个月前  发布在  其他
关注(0)|答案(2)|浏览(95)

我正在为250个用户执行一个性能脚本。JMeter脚本正在为同一台机器上的所有250个用户执行。一些事务失败,而一些事务的执行时间比预期的要长。因此,根据支持团队的分析,所有250个线程都击中了目标服务器的同一个节点。他们观察到,由于所有请求都来自同一个节点,因此,所有请求都来自同一个节点。计算机或IP,所以这可能是所有请求都被路由到同一个节点的所有250个线程的原因。他们说,负载均衡器是无法在不同的节点之间分配负载。所以他们提出了一个建议,使它看起来像是来自不同的计算机或IP的请求,使负载均衡器可能会分配负载。我的问题是,这是可能的,即使是可能的,这对我们目前的设置有什么不同吗?我更大的问题是,仅仅通过发送来自不同IP的请求,负载均衡器将分配负载,或者当前设置很好,我们可能有负载均衡器的架构问题。为了发送来自不同IP的请求,一个解决方案可能是使用主从配置。但这真的能解决负载均衡器无法分配负载的问题吗?即使我们有主从设置,我们也可能无法让250台从机运行脚本来复制真实的用例。

slsn1g29

slsn1g291#

你似乎有很多问题:
1/
“只需从不同的IP发送请求,负载均衡器就会分配负载”
这取决于负载均衡器的配置。当然也有一些配置可以根据源IP来均衡负载
2/
“这甚至是可能的,即使是可能的,它是否会对我们目前的设置产生任何影响”
这是可能的,但它真的很难做到,取决于您的配置
我想到了一些想法:

  • 您能否与LB操作员验证为什么LB必须基于源IP。这不是常见的配置。您也可以要求他们为您的站点/出于性能测试的目的切换到其他负载平衡规则
  • 取决于你正在运行的测试/ JMeter脚本的类型,如果正在测试的页面是面向公共的,你可以尝试使用Lambda或其他函数作为服务来代理你的请求,这是便宜的,有无限的处理能力和大的公共IP范围。这是我以前做的,使用JMeter作为触发器来触发Lambda,Lambda反过来向我的服务器发出请求(在这样做之前,您需要通知云提供商)
vu8f3i0k

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.检查您的后端配置,如最大传入连接数或负载平衡算法,可能会出现默认人为限制的情况

相关问题