负载均衡排查
背景介绍
在现代分布式系统中,负载均衡是一项至关重要的技术,它通过将流量分配到多个服务器上来确保应用的高可用性和高性能,当负载均衡出现异常时,如何快速有效地进行排查成为关键问题,本文将从健康检查、网络配置、安全组设置等多个方面详细探讨负载均衡的排查步骤和方法。
一、健康检查异常排查
健康检查探测频率过高
1.1 现象描述
控制台设置5秒接收一次探测包,但实际后端服务器发现1秒内收到多次健康检查请求。
1.2 原因分析
健康检查探测频率过高的原因主要是与负载均衡的后端健康探测实现机制有关,假设有100万的Client端请求,会分散在4台CLB后端物理机上,再转发给后端服务器,健康检查探测是在CLB的各个后端物理机上分别进行探测,CLB实例设置5秒一次的探测请求时,实际上每台物理机都会每5秒发送一次探测,此时后端服务器上可能会在5秒中收到4次探测请求。
1.3 解决方案
如果业务对负载敏感性较高,可以通过增大探测时间间隔的方式来降低对业务的影响(例如设置为15秒探测一次)。
一个后端服务器绑定在多个CLB实例上时,每个CLB实例都会发送健康探测报文用于探测该服务器是否健康,从而导致健康探测的频率较高。
四层监听器问题
2.1 TCP协议下的健康检查
使用SYN包进行探测。
确定CLB后端服务器是否配置了安全组导致影响服务。
使用netstat命令检查后端服务器的端口是否有进程在监听,若未发现进程,则重新启动服务。
2.2 UDP协议下的健康检查
使用ping命令进行探测。
七层监听器问题
3.1 HTTP协议下的健康检查
确保应用服务器端口正常监听在内网地址上。
检查后端CVM内部是否有防火墙或其他安全类防护软件。
检查服务器内网防火墙是否放行80端口,可以暂时关闭防火墙进行测试。
确保后端服务器开启了相应的端口,并且该端口必须与您在负载均衡监听配置中配置的后端端口保持一致。
如果是四层负载均衡,只要后端端口telnet有响应即可;如果是七层负载均衡,需要HTTP状态码是200等代表正常的状态码。
二、网络配置异常排查
公网带宽不足
1.1 传统账户类型
负载均衡绑定的后端CVM需要配置公网带宽,否则会导致健康检查异常,因为该账户的带宽属性在CVM上,而非CLB上。
1.2 标准账户类型
负载均衡绑定的后端CVM无需配置公网带宽,且不会影响负载均衡服务。
安全组配置不当
2.1 检查安全组规则
检查负载均衡实例是否开启安全组默认放通功能,如果未开启,则需在CVM的安全组上放通来源IP,如果您的CLB服务支持任意IP的访问,则在安全组的入站规则中配置来源IP为0.0.0.0/0,详情请参考配置负载均衡安全组。
防火墙设置不当
3.1 Windows系统防火墙
可以在运行输入firewall.cpl命令关闭。
3.2 Linux系统防火墙
可以输入/etc/init.d/iptables stop命令关闭(CentOS 7.x系统请运行systemctl stop firewalld命令)。
三、其他常见问题及解决方案
负载均衡配额不足
负载均衡器配额不足,无法为Service自动创建负载监听器,默认配额为100,请申请提升配额,关于如何查询和提升配额,请参见如何申请扩大配额?,不同Service可以共用同一个负载均衡器,请评估是否可以复用。
监听器端口冲突
更新Service,设置其他可用的端口号。
ELB实例不存在或错误关联
如果确认对应的负载均衡器不存在,则按需重建相应的Service,选择其他已有的负载均衡器或选择自动创建负载均衡器。
网络型ELB无法创建七层监听器
按需准确选择对应规格的负载均衡器实例,如果需要创建HTTP/HTTPS类型的七层监听器,请使用包含应用型规格的负载均衡器实例。
应用型ELB无法创建四层监听器
按需准确选择对应规格的负载均衡器实例,如果需要创建TCP/UDP类型的四层监听器,请使用包含网络型规格的负载均衡器实例。
到此,以上就是小编对于“负载均衡排查”的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。