可能原因 负载均衡请求不均衡可能有以下几种原因:
ECS实例请求连接数较少。 不同ECS实例的性能不同导致请求不均衡。 说明 ECS实例内存使用情况不能准确的判断请求转发是否均衡。 开启了会话保持功能 。 配置了会话保持,当访问负载均衡实例的客户端又很少时,容易导致不均衡,尤其在使用少量客户端对负载均衡进行测试的时候。例如TCP监听,开启了会话保持(四层是基于来源地址做会话保持),使用一台客户端对负载均衡实例进行压测,就会导致不均衡。
ECS健康检查异常 。 后端服务器ECS的健康建状态异常会导致不均衡,尤其在压测的时候容易忽略后端服务器ECS的健康检查状态,如果有后端服务器ECS健康检查失败或者健康检查状态经常跳跃(好到坏,又从坏到好,反复变化)必然会导致不均衡。
TCP Keepalive保持长连接 。 后端服务器ECS有些开启了TCP Keepalive保持长连接,而有些又没有开启,则连接会在保持长连接的后端服务器上堆积,造成不均衡。
请求分布不均衡可能有以下几种原因:
总体的请求数较少。例如,总请求数为7,后端服务器组中共有3台ECS实例,不考虑其他功能的影响,3台ECS实例中将有1台被分配到3个客户端请求,2台ECS实例被分配到2个客户端请求。
后端服务器组中ECS实例的权重不一致。ECS实例的权重越高,被分配到的请求数越多,详情可参见编辑后端服务器的权重。
后端服务器的健康状态异常。开启负载均衡SLB的健康检查功能时,如果健康检查发现后端服务器组中某台ECS实例出现异常,则该实例暂时不会被分配请求;当健康检查发现该实例恢复正常时,将重新分配请求到该实例,于是出现请求分配不均衡的现象。详情可参见健康检查。
负载均衡SLB实例开启了会话保持功能。开启会话保持后,如果客户端的IP地址相对固定,或者客户端的请求数差异较大,容易出现请求分配不均衡的现象。示例如下。
客户端的IP地址相对固定。例如,CDN的回源请求通过SLB进行负载均衡。CDN回源的IP地址相对集中和固定,相同源IP地址的请求将始终转发给同一台后端服务器,因此造成分配不均衡的现象。详情可参见添加TCP监听。
注:该情况仅适用于TCP监听的SLB实例,因为TCP协议基于IP地址进行会话保持。
客户端的请求数差异较大。例如,使用一台客户端对负载均衡SLB实例进行网站访问的压力测试。在会话期间,该客户端的所有测试请求将始终转发给同一台后端服务器。
后端服务器组中仅部分ECS实例开启了TCP的Keepalive保持长连接特性。当后端服务器中部分ECS实例开启该特性,而部分ECS实例未开启时,连接会在开启该特性的ECS实例中堆积。详情可参见TCP Keepalive HOWTO。
可能原因 请求分布不均衡可能有以下几种原因: 总体的请求数较少。例如,总请求数为7,后端服务器组中共有3台ECS实例,不考虑其他功能的影响,3台ECS实例中将有1台被分配到3个客户端请求,2台ECS实例被分配到2个客户端请求。 后端服务器组中ECS实例的权重不一致。ECS实例的权重越高,被分配到的请求数越多,详情可参见编辑后端服务器的权重。 后端服务器的健康状态异常。开启负载均衡SLB的健康检查功能时,如果健康检查发现后端服务器组中某台ECS实例出现异常,则该实例暂时不会被分配请求;当健康检查发现该实例恢复正常时,将重新分配请求到该实例,于是出现请求分配不均衡的现象。详情可参见健康检查。 负载均衡SLB实例开启了会话保持功能。开启会话保持后,如果客户端的IP地址相对固定,或者客户端的请求数差异较大,容易出现请求分配不均衡的现象。示例如下。 客户端的IP地址相对固定。例如,CDN的回源请求通过SLB进行负载均衡。CDN回源的IP地址相对集中和固定,相同源IP地址的请求将始终转发给同一台后端服务器,因此造成分配不均衡的现象。详情可参见添加TCP监听。 注:该情况仅适用于TCP监听的SLB实例,因为TCP协议基于IP地址进行会话保持。 客户端的请求数差异较大。例如,使用一台客户端对负载均衡SLB实例进行网站访问的压力测试。在会话期间,该客户端的所有测试请求将始终转发给同一台后端服务器。 后端服务器组中仅部分ECS实例开启了TCP的Keepalive保持长连接特性。当后端服务器中部分ECS实例开启该特性,而部分ECS实例未开启时,连接会在开启该特性的ECS实例中堆积。详情可参见TCP Keepalive HOWTO。 排查思路 请求分布不均衡的排查思路如下。 查看负载均衡SLB的监控信息。如果总体的请求数较少,轻微的请求分配不均衡属于正常现象。关于如何查看监控信息,可参见查看监控。 检查后端服务器组中各个ECS实例的权重是否相同。如果权重不同,则请求分配不均衡属于正常现象。如果您需要修改权重,可参见编辑后端服务器的权重。 查看健康检查日志,确认是否存在健康检查失败或波动现象,并查找原因。关于如何查看健康检查日志,请参见查看健康检查日志。 检查是否开启会话保持功能。如果开启了会话保持功能,轻微的请求分配不均衡属于正常现象。了解更多会话保持相关问题,可参见会话保持常见问题。 检查后端服务器组中是否仅部分ECS实例开启了TCP的Keepalive保持长连接特性。可根据业务实际情况进行调整。 检查监听的调度算法是否为加权最小连接数(WLC)。如果是,您可以尝试更改为加权轮询(WRR)算法。关于调度算法的概念,请参见添加TCP监听中的调度算法介绍。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。