环境:5 个 apache 实例 (balancerX),在 3 个应用服务器 (serverX) 之间分配流量。
使用具有相同负载因子的请求的 mod_balancer 配置,server1 的负载很大,而其他的负载较小,这就是为什么平衡器配置以相同的方式应用于所有服务器,无论它们的实际负载如何,所以总是第一个与 balancer1、2、3、4 或 5 的连接被重定向到 server1。由于由于硬件平衡器(不幸的是无法管理),用户被随机分配了平衡器,因此我无法控制 3 台服务器接收相同数量的连接。
如何将其配置为在 server1、2 和 3 上具有相同的负载?
架构:
Balancer1 Balancer2 Balancer3 Balancer4 Balancer5
--------- --------- --------- --------- ---------
Server1 Server1 Server1 Server1 Server1
Server2 Server2 Server2 Server2 Server2
Server3 Server3 Server3 Server3 Server3
我认为这将很难完美地实现。但我会首先更改
BalancerMember
5 台 apache 服务器上的指令顺序,以便它们在每台服务器上都不同。就像是:您需要第 6 台 apache 服务器才能使其 100% 均匀。
请注意以下选项是特定于 Apache v2.4 的,如果您使用的是 v2.2,则仅使用第一个建议。我也会尝试不同的负载平衡方法,看看是否有所作为。选项是
lbmethod=bybusyness
和lbmethod=bytraffic
(确保加载相关模块)。如果您的底层服务器也使用 Apache,您也可以尝试lbmethod=heartbeat