交换机标称千兆、万兆,真跑业务却卡,第一反应是把线重插一遍——其实该先打流测。iperf是测端到端真实吞吐最直接的东西:一台当服务端收,一台当客户端发,链路能跑多少一目了然。但参数没设对,测出来的数字能差十倍。
Iperf 默认发一条 TCP 流。TCP 有滑动窗口,单流最大吞吐约等于"窗口大小 ÷ 往返时延(RTT)"。窗口 64 KB、RTT 1 毫秒,单流上限就约 512 Mbps——哪怕中间是万兆链路,一条流也只到一半。
要测出链路真实带宽,两条路:开多并发流(-P 8 同时发 8 条),或放大窗口(-w 256K)。实际测万兆接入交换机,单流常常卡在 3–5 Gbps,开 -P 8 才到 9 Gbps 以上。只跑单流就说"交换机没达标",是测法错了不是设备错了。
UDP 不保证送达,正好用来探"这条链路在不丢包前提下能扛多少"。命令是 iperf -c 服务端 -u -b 1000M:指定目标速率 1 Gbps,看结果里的丢包率(Lost / Total)和抖动(Jitter)。
视频业务卡,往往不是平均带宽不够,是抖动大、突发丢包。UDP 测试把这两项摆出来,比 TCP 平均带宽更贴近真实体验。注意 -b 要逐级往上加,找到"开始丢包"的临界点,那个值才是链路可用上限。
1、单流 TCP 当链路带宽:窗口/RTT 限制,单流跑不满。加 -P 多流或 -w 大窗口。
2、测试机网卡是瓶颈:用笔记本千兆口测万兆链路,测出来的是网卡不是网络。两端都得是万兆网卡。
3、只看平均带宽不看抖动/丢包:UDP 尤其要看 Lost% 和 Jitter,视频卡顿的根源在这。
4、跨防火墙/ NAT 测:中间设备有状态表、有限速,测的是它不是被测链路。要测链路就绕开。
5、大包小包不分:64 字节小包吞吐远低于 1518 字节大包,小包场景(如游戏、信令)看 PPS(-l 设包长),别只看大包带宽。
6、没先直连打基准:不先两台机直连确认物理带宽,后面掉速分不清是线还是设备。
误区 | 表现 | 正确做法 |
单流 TCP | 单流只到半速 | -P 多并发流 / -w 大窗口 |
测试机瓶颈 | 数字卡在网卡速率 | 两端网卡 ≥ 被测链路 |
只看平均 | 视频仍卡 | 看 UDP 丢包率与抖动 |
跨设备测 | 测的是中间设备 | 绕开防火墙直测链路 |
一个车间新上的万兆接入交换机,用户说"拷贝大文件没到万兆"。排查:
1、两台万兆服务器直连,iperf -P 8 测到 9.4 Gbps——物理与服务端没问题;
2、过交换机同 VLAN 测,掉到 6 Gbps——问题在交换机;
3、看端口状态,上联口协商成 1000M 全双工(光模块不兼容)——换模块后回到 9.2 Gbps。
没打流前,运维以为是"交换机性能差",实际是光模块协商降速。iperf 的价值就是把"感觉慢"变成"哪段慢"。
iperf 和 iperf3 测出来一样吗?
命令不通用,iperf3 是重写版,多线程用 -P、UDP 用 -u -b,老 iperf 参数略有差异。两端必须同一版本,否则跑不起来或数字不对。
单流 TCP 跑不满万兆是交换机差吗?
大概率不是。TCP 单流受窗口和 RTT 限制,上限约窗口÷RTT。开 -P 8 多流或 -w 大窗口再测,能到 9 Gbps 以上就说明链路没问题。
UDP 测试丢包多少算不合格?
看业务。语音视频一般要求丢包 <1%、抖动 <30 ms;监控稍宽松。找到"开始丢包"的 -b 临界点,那个速率就是链路可用上限。
为什么两端都是万兆还测不出万兆?
先查测试机本身:网卡是否真万兆、CPU 软中断是否打满、是否开启 offload。再用 -P 多流排除单流窗口限制。最后看交换机端口协商状态。
小包吞吐低正常吗?
正常。64 字节小包因包头占比高、PPS 压力大,吞吐远低于 1518 字节大包。小包场景(游戏、信令)看 PPS 而非带宽,用 -l 设包长测。
iperf 测吞吐,参数比设备更关键:TCP 单流受窗口限制跑不满,开 -P 多流或 -w 大窗口才接近线速;UDP 看丢包率和抖动而非平均带宽。掉速先直连打基准、再逐段加设备,瓶颈多在网卡、端口协商或中间设备。锐应科技 的工业以太网交换机端口支持自协商与万兆线速转发,用上面方法打流即可验证。
本文由专注工业通信设备的锐应科技整理。了解 工业以太网交换机吞吐测试方案 与产品资料可访问锐应科技官网 www.szrayin.com。