统计行里能看出什么
ping 结束时的统计行给出两个维度的信息:丢包比例与 RTT 分布(min/avg/max/mdev)。平均值会掩盖突发,mdev(平均偏差)反映抖动,max 与 avg 的差距反映长尾。更关键的是丢包的形态:连丢数个包通常意味着队列拥塞或链路震荡,零散随机丢包则更像误码、无线不稳定或接口错误。
基本信息
| 适用平台 | Linux iputils-ping(输出格式以该实现为准) |
|---|---|
| 输出字段 | packet loss 百分比、min/avg/max/mdev(毫秒) |
| 取样建议 | 质量评估用 -c 200 以上,配合 -i 调整间隔(普通用户间隔下限 0.2 秒) |
| 关键区分 | 持续丢包与偶发丢包、成串丢包与随机丢包 |
| 复核手段 | 怀疑 ICMP 被限速时用 mtr -T -P 443 改走 TCP 复核 |
指标与判读
| 指标 | 含义 | 判读提示 |
|---|---|---|
| loss% | 丢包比例 | 1% 以内多为可接受;超过 2% 业务可能可感知,5% 以上明显异常 |
| min | 最小 RTT | 反映链路的理想时延,接近物理距离下限 |
| avg | 平均 RTT | 与 min 差距大说明存在排队或抖动 |
| max | 最大 RTT | 远大于 avg 表示有长尾,实时业务体验受损 |
| mdev | 平均偏差(抖动) | 数值大意味着时延不稳定,语音与游戏类业务敏感 |
| 形态 | 是否成串丢包 | 连丢 3 个以上偏拥塞或震荡;单发随机偏误码 |
典型使用场景
- 用户报视频卡顿:看 mdev 与 max,确认是带宽问题还是时延抖动
- 运营商责任界定:用成串与随机两种形态区分拥塞与线路质量
- 变更前后对比:同一目标同一参数采样,比较丢包率与 RTT 分布变化
- 排除 ICMP 限速干扰:改用 TCP 探测复核,避免把仪器性丢包当网络故障
- 长尾分析:统计慢包比例(如超过 P95 的包数),比单看平均值有用
拿到更细的分布
拿到更细的分布
ping -c 1000 -i 0.2 -q 223.5.5.5 | tail -2 # 大样本统计,减少百分比噪声
ping -c 200 -i 0.2 223.5.5.5 | awk -F'time=' '/time=/{print $2}' | awk '{print $1}' | sort -n | tail -5 # 最慢的前 5 个包
ping -c 200 -i 0.2 223.5.5.5 | awk -F'icmp_seq=' '/time=/{split($2,a," "); print a[1]}' | uniq -c | head # 观察序号是否连续,定位连丢区间
mtr -n -T -P 443 -c 300 -r 223.5.5.5 # 用 TCP 探测复核,绕开 ICMP 限速测丢包前先确认 ICMP 未被限速:对端路由器把 ICMP 交给 CPU 软处理时,仪器性丢包会伪装成网络丢包,必须用 TCP 模式复核后再下结论。