登陆账号 注 册

负载均衡常见问题

2020/9/5 18:20:16

问题:负载均衡均衡的是什么?



负载均衡是按特定调度算法把流量分发到后端服务器上,其中:


四层(TCP 和 UDP)是基于连接做流量调度。TCP 和 UDP 创建一个 socket 访问负载均衡实例,这个源和目的 IP 和端口就是一个连接。


七层(HTTP/HTTPS)是基于请求做调度。比如 http get 请求访问一个页面。




问题:为什么请求不均衡?



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


开启了会话保持功能


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


健康检查异常


后端服务器的健康建状态异常会导致不均衡,尤其在压测的时候容易忽略后端服务器的健康检查状态,如果有后端服务器健康检查失败或者健康检查状态经常跳跃会导致不均衡。


TCP Keepalive 保持长连接


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


排查和解决方法:


查看各台后端服务器的权重是否相同


在相关时间段内是否有健康检查失败或波动现象,查找波动的原因;或者健康检查没有配置正确的响应码2xx,3xx导致了健康检查显示正常,但后端服务有异常


是否同时使用了加权最小连接数(WLC)调度方式和会话保持,如果是,尝试改为加权加权轮询(WRR)算法和会话保持