Ping 丢包 20% 算正常吗?先分清是不是 ICMP 限速
运维群里最常见的截图之一:ping 结果丢包 20%,一群人开始讨论换机房。
先别急。有一半的「丢包」,其实不是网络丢包。
ICMP 是最容易被区别对待的协议
Ping 走的是 ICMP。这个协议在很多网络设备上优先级最低,路由器忙的时候先丢它,云厂商也常对 ICMP 做限速。
所以会出现一种典型现象:丢包 20%,但延迟很稳,网站打开也正常。这不是链路坏,是探测包被针对了。
用 TCP 测一次就能分清楚
Ping 测的是 ICMP 往返,TCP 测速测的是三次握手能不能完成。
如果 Ping 丢 20%,TCP 建连成功率 100%,那基本可以判定:ICMP 被限速,业务没受影响。
反过来,TCP 也大量失败,那才是真丢包,该查线路了。
真丢包长什么样
延迟跟着丢包一起涨,忽高忽低,TCP 建连时间从 30ms 跳到 300ms,甚至超时。
这种通常是跨网互联、国际出口拥塞,或者中间某一跳设备过载。用路由追踪能看出是哪一跳开始变差。
看丢包率的方法
单次 ping 几十个包,丢两三个说明不了什么。至少发 100 个,看长期比例。丢包率 1% 以内可以忽略,3% 以上会影响 TCP 吞吐,10% 以上基本能感觉到卡。
还要看分布:随机丢和连续丢是两回事。连续丢十几个包,说明链路有周期性中断,比均匀丢包严重得多。
移动网络别较真
4G、5G 下丢包 5% 很常见,跟基站切换、信号有关。移动网络上的 Ping 数据只能当参考,不能作为判断服务器好坏的依据。
想确认业务是否正常,用 TCP 或网站测速更靠谱。PING 测速入口在 PING 测速,多节点各跑一次,比本地 ping 有说服力。