先看现象。客户反馈访问慢,mtr 结果显示中间某跳丢包三成,可最后一跳丢包是零,业务日志里也没有连接失败。

把日志和配置对完,能解释这个现象的基本就这几处。中间路由对探测包做了限速,属于正常现象。也可能是只有持续到最后一跳的丢包才影响业务。

另外,单次探测样本太少,统计没有意义。

增加包数看最终跳的结果

mtr -rwc 100 目标IP

同时对比回程路径

mtr -rwc 100 -i 0.2 目标IP

接着用业务端口探测而非只发探测包

tcptraceroute 目标IP 443

末了记录多次结果做对比

mtr -rc 50 目标IP > /tmp/mtr.log

隔了一天再看,现象没变,说明不是偶发。

怎么算真的好了,看的是同一批现象。最后一跳丢包为零,业务侧延迟恢复正常,中间节点的丢包率不再被当作故障依据。

中间节点丢包很常见,设备对探测包做了限速,真正要看的是最后一跳和业务端到端的表现。报错文案容易误导,真正的原因往往在相邻那一层的日志里。

作者 9823189