分段带宽测试是什么
端到端测出一个吞吐数字,只能说明『慢』,回答不了『慢在哪一段』。分段带宽测试把长路径切成若干段分别测量:本机→网关、本机→同城节点、同城节点→目标机房、目标机房→目标机,瓶颈段会以吞吐骤降的形式暴露出来。它适合跨机房、跨运营商、云上到自建 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 限速或被安全设备处置:先用小带宽试跑确认能通过,再逐级加压,避免把生产链路瞬间打满。