首页/网络/网络排障速查/分段带宽测试:定位瓶颈在哪一段

分段带宽测试:定位瓶颈在哪一段

把长路径切成多段分别测:本机→网关、本机→同机房、同机房→目标机房、目标机房→目标机;瓶颈段会以吞吐骤降暴露出来。

网络排障速查网络更新于 2026-10-13

分段带宽测试是什么

端到端测出一个吞吐数字,只能说明『慢』,回答不了『慢在哪一段』。分段带宽测试把长路径切成若干段分别测量:本机→网关、本机→同城节点、同城节点→目标机房、目标机房→目标机,瓶颈段会以吞吐骤降的形式暴露出来。它适合跨机房、跨运营商、云上到自建 IDC 这类多跳链路。

基本信息

适用平台Linux/Windows 客户端 + 各段可放测试流量的对端
主要工具iperf3(-t 时长、-P 并发、-R 反向)、ping、mtr
前置条件各段两端均可达,或至少有一段可作跳板机
记录要点吞吐、重传次数(Retr)、各跳时延同时留档

典型使用场景

  • 跨机房同步慢:先证明是广域网段还是机房内段的问题
  • 云上业务下载慢:确认是公网出口、NAT 网关还是实例内网段受限
  • 带宽扩容验收:分段测得每段都达标,才算整体达标
  • 用户投诉『时快时慢』:把同一时刻的分段结果与 mtr 丢包对照,区分限速与链路丢包

四段测量脚本

四段测量脚本
# 1) 本机到网关,通常是局域网段
iperf3 -c 192.168.1.1 -t 5 2>/dev/null || ping -c 20 192.168.1.1
# 2) 本机到同城测试点
iperf3 -c 10.10.0.20 -t 10 -P 4
# 3) 同城测试点到目标机房跳板机,用 ssh 在远端起测
ssh jump@10.10.0.20 'iperf3 -c 172.16.5.30 -t 10 -P 4'
# 4) 逐段记录吞吐与重传
for h in 192.168.1.1 10.10.0.20 172.16.5.30; do echo "== $h"; iperf3 -c $h -t 5 -P 4 2>/dev/null | tail -4; done

结果判读

现象指向下一步
相邻两段吞吐差一个数量级落差所在的那一段是瓶颈在该段两端同时抓包,对比收发速率差
各段单流慢、多流快单条 TCP 流受限(窗口或时延)查 ss -i 的 rwnd/wscale 与带宽时延积
各段吞吐都正常但业务仍慢瓶颈不在链路转向应用层、磁盘或数据库排查
吞吐忽高忽低疑似限速或共享带宽争用用不同包长与速率复测,参考限速与丢包区分
没有测试对端时退化为『时间对照法』:在链路两端同一时刻抓包,比较单位时间内的收发字节差,差值即丢在路上或被限速的部分。
测试流量本身会被 QoS 限速或被安全设备处置:先用小带宽试跑确认能通过,再逐级加压,避免把生产链路瞬间打满。

易错点

  • 只测端到端一个结果就下结论:无法回答『慢在哪段』,后续排查只能靠猜
  • 各次测试参数不一致(时长、并发、窗口都不同):历史数据无法横向比较
  • 忽略测试机自身的磁盘与 CPU 上限:把本机瓶颈误判成链路瓶颈
  • 测试与业务高峰重叠:加测流量叠加业务流量,测出的是拥塞而非容量

数据来源与参考

  • ESnet:iperf3 部署与分段测量实践
  • Wireshark Wiki:吞吐分析方法

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌