0.防火墙问题
如果系统是因为防火墙而丢包,表现的行为一般是所有的报文都无法正常接收,要排查的业务中只是部分相对少量丢包,认为非防火墙问题。(当然不排除防火墙只 drop 一部分报文的可能性。如果遇到丢包比率非常大的情况,防火墙某规则主动 drop UDP 报文)
1.检查阿里云SLB监控状态?
A、查看丢弃数据包数目?
发现为0,认为正常
B、检查丢弃连接数目?
发现为0.认为正常
2.命令检查每一台ECS,确认是否丢包
A、查看网卡丢包数据
命令 ifconfig eth0
查看显示结果中 errors 和 dropped 数目
errors 0 dropped 0
备注:如果硬件或者驱动没有问题,一般网卡丢包是因为设置的缓存区(ring buffer)太小
检查发现每一个节点errors和dropped查询值都为0,继续往下排查
B、检查报文数据
命令 netstat -s -u
发现其余节点都正常,但是有两台ECS表现如下
-
packet receive errors 不为空,并且在一直增长说明系统有 UDP 丢包
-
packets to unknown port received 表示系统接收到的 UDP 报文所在的目标端口没有应用在监听,一般是服务没有启动导致的
-
receive buffer error