VPS 延迟与丢包排查的几条经验
中间跳的丢包率不能当真
骨干路由器普遍对 ICMP 限速,mtr 里某一跳 80% 丢失、终点却是 0%,这种情况很常见。判断链路质量要看最后一个跳和长样本统计。
样本要够长
几十个包看不出抖动。跑 200 到 300 个包,再单独做一次高频率突发,才能区分"链路抖动"和"瞬时拥塞"。
ping -c 300 -i 0.2 HOST
ping -c 100 -i 0.05 HOST
ICMP 通了不代表服务正常
反过来也成立:ICMP 被丢不代表 TCP 不可用。用 TCP 握手耗时交叉验证,比只看 ping 可靠。
顺带一提,链路上有中间设备对所有端口都回 SYN-ACK 时,端口探针会全部"成功",这时候只能靠协议层行为判断。
去程和回程要分开测
不对称路由很常见:去程走 A 骨干、回程走 B 骨干。只测一个方向,容易把结论下反。