使用 `roundrobin` 和 `leastconn` 的不均匀 OKD Infra 负载平衡

Uneven OKD Infra Load Balancing using `roundrobin` and `leastconn`

使用 openshift v3.10.0+0c4577e-1 我发现 4 个虚拟机负载不均匀,这些虚拟机托管我的所有 pods,它们是单个服务路由的端点。

我已经设置了一个非常简单的测试环境,但我看到了一些对我来说没有任何意义的行为。

我有一个物理主机设置 运行 JMeter 配置为向 pods 集合支持的单个服务路由 IP 发出请求。 pods 正在托管一个非常轻量级的 Wordpress 站点。就我正在进行的测试而言,每个 pod 都是相同的。

pods 分为 4 个虚拟机。所有 4 个虚拟机都 运行 在一个单独的(来自 JMeter 主机)物理主机上。

随着我横向扩展 VM 的数量,每个额外的 VM 的负载会越来越少。当我从 2 个虚拟机迁移到 3 个虚拟机(虚拟机增加 50%)时,我只看到我可以处理的请求数量提高了 33%,从 3 个虚拟机迁移到 4 个虚拟机(虚拟机增加了 33%)时,改进约为 18%。我并不期待完美的缩放,但下面的图表对我来说没有意义:

如您所见,第一个 VM 使用了 100% 的可用 CPU(8 vCPUs),但之后每个 VM 使用的 CPU 越来越少。第 4 个虚拟机下降到大约 75%。我希望加载更接近。

图表显示了两个测试,第一个是 roundrobin 策略,第二个我切换到 leastconn

这是负载均衡策略的问题吗?有什么方法可以更好地平衡虚拟机之间的请求吗?

我已将 pods 拆分为更多路由,这样我就不会再受到 "fully loaded" VM 的速率限制。我仍然相信此 VM 中的 pods 相对于其他 VM 表现不佳,但至少我不再将性能留在其余 VM 中的 table