Google云负载均衡算法:循环法
问题描述:
如何在两个不同区域的Web服务器之间平均分配负载?一个在东部,另一个在中部..东部服务器耗尽(60%cpu & 100%的内存,并大量交换),而中央服务器100%空闲。Google云负载均衡算法:循环法
根据我们的DR实践,我们需要在两个不同的地区有服务器。我们如何平均分配负载? Google默认使用Geo路由,这对我们不利。谢谢!
答
HTTP负载平衡不是一个严格的地理路由。如果系统理解一个区域过载,它会将流量溢出到下一个区域。
我建议进行负载测试,然后调整后端服务平衡设置(balancingMode,capacityScalar,maxRatePerInstance,maxUtilization等),以便系统知道它将东部服务器过载并将一些流量发送到中央服务器。
作为一个成功的例子,现在让我们说一下入站流量的100 RPS,并且您已经配置了balancingMode = UTILIZATION maxUtilization = 0.8(默认值)。因为你的实例只有60%的cpu,所以它没有达到最大利用率,所以他们的系统正在发送所有100RPS的流量。
现在您进行负载测试,并发现服务器可以在内存不足之前处理80RPS的通信量,并且该CPU不是您的内存密集型应用程序的可靠指标。所以你改为balancingMode = RATE,maxRatePerinstance = 80。然后,系统向东部服务器发送高达80RPS的数据,向中央发送高达20RPS的数据,并且两台服务器都可以正常运行。