可能原因

负载均衡请求不均衡可能有以下几种原因:

  • ECS实例请求连接数较少。
  • 不同ECS实例的性能不同导致请求不均衡。
    说明 ECS实例内存使用情况不能准确的判断请求转发是否均衡。
  • 开启了会话保持功能 。

    配置了会话保持,当访问负载均衡实例的客户端又很少时,容易导致不均衡,尤其在使用少量客户端对负载均衡进行测试的时候。比如TCP监听,开启了会话保持(四层是基于来源地址做会话保持),使用一台客户端对负载均衡实例进行压测,就会导致不均衡。

  • ECS健康检查异常 。

    后端服务器ECS的健康建状态异常会导致不均衡,尤其在压测的时候容易忽略后端服务器ECS的健康检查状态,如果有后端服务器ECS健康检查失败或者健康检查状态经常跳跃(好到坏,又从坏到好,反复变化)必然会导致不均衡。

  • TCP Keepalive保持长连接 。

    后端服务器ECS有些开启了TCP Keepalive保持长连接,而有些又没有开启,则连接会在保持长连接的后端服务器上堆积,造成不均衡。

排查和解决方法

  • 查看后端各台ECS的权重是否相同。
  • 在相关时间段内是否有健康检查失败或波动现象,查找波动的原因;或者健康检查没有配置正确的响应码2xx,3xx导致了健康检查显示正常,但后端服务有异常。
  • 是否同时使用了加权最小连接数(WLC)调度方式和会话保持,如果是,尝试改为加权轮询(WRR)算法和会话保持。