先看现象。客户反馈访问慢,mtr 结果显示中间某跳丢包三成,可最后一跳丢包是零,业务日志里也没有连接失败。
把日志和配置对完,能解释这个现象的基本就这几处。中间路由对探测包做了限速,属于正常现象。也可能是只有持续到最后一跳的丢包才影响业务。
另外,单次探测样本太少,统计没有意义。
增加包数看最终跳的结果
mtr -rwc 100 目标IP
同时对比回程路径
mtr -rwc 100 -i 0.2 目标IP
接着用业务端口探测而非只发探测包
tcptraceroute 目标IP 443
末了记录多次结果做对比
mtr -rc 50 目标IP > /tmp/mtr.log
隔了一天再看,现象没变,说明不是偶发。
怎么算真的好了,看的是同一批现象。最后一跳丢包为零,业务侧延迟恢复正常,中间节点的丢包率不再被当作故障依据。
中间节点丢包很常见,设备对探测包做了限速,真正要看的是最后一跳和业务端到端的表现。报错文案容易误导,真正的原因往往在相邻那一层的日志里。