GCP全球外部应用负载均衡请求未均衡分发至后端的问题
GCP全球外部应用负载均衡器请求分发不均问题
我在使用GCP的全球外部应用负载均衡器(HTTP Load Balancing)时,配置了两个后端实例组:
- 位于us-west3区域的标准实例组
- 位于us-east1区域的可抢占式实例组
但实际HTTP请求并未实现均衡分发,明显偏向其中一个后端。我的后端用于机器学习推理,单请求耗时约15秒,因此设置了极低的QPS(RPS),但该配置未生效。请问请求分发不均是否源于多后端配置?如何实现请求的均衡分发?
相关配置说明:
- 基础设置
- 第一、第二后端设置
- 区域负载均衡策略设置
问题分析与解决方法
一、请求分发不均的核心原因
- 后端容量配置不对等:负载均衡器是根据后端的总容量(实例数×单实例容量权重)分配请求,而非单纯按实例组数量均分。如果两组的实例数量、单实例容量设置差异大,请求会自然偏向容量更高的组。
- 区域负载策略优先级:如果启用了基于利用率的负载策略,负载均衡器会优先把请求发往当前负载更低、响应更快的后端;若某区域实例延迟更低,也会被分配更多请求。
- 会话亲和性干扰:若开启了IP或Cookie会话亲和性,同一客户端的请求会持续发往同一后端,短时间内会造成请求集中。
- QPS配置逻辑误解:后端设置的RPS是单实例的请求上限,而非全局总请求量。如果实例组总容量远高于实际请求量,这个限制不会触发,看起来就像配置未生效。
二、实现均衡分发的具体调整
- 统一后端容量规则
- 确保两个实例组的容量模式一致(均选「利用率」或「最大RPS」)。
- 用「最大RPS」模式时,将两组单实例RPS设为相同值,同时调整实例数量比例匹配你的分发需求(比如1:1分发就保持两组实例数一致)。
- 用「利用率」模式时,将两组目标利用率设为同一值(比如80%),让负载均衡器基于实例负载水平均衡分配。
- 调整区域负载策略
- 在区域负载策略中选择「均匀分发」模式,强制负载均衡器按实例组的权重比例分配请求。
- 关闭非必要的会话亲和性(业务强制要求除外),避免请求集中。
- 校验后端健康状态
- 检查两个实例组的健康检查结果,确保所有实例处于健康状态。若某组有实例不健康,负载均衡器会跳过这些实例,导致请求偏向健康实例多的组。
- 修正QPS配置逻辑
- 若要限制全局总请求量,需在负载均衡器的前端配置中设置速率限制;后端的RPS仅用于限制单实例并发请求量,防止实例过载。
内容的提问来源于stack exchange,提问作者aqu
相关产品推荐
相关产品推荐

