iperf3 的 TCP 模式
iperf3 是端到端吞吐测量的标准工具:服务端常驻监听,客户端发起连接并持续发送数据,测量这段路径上实际能达到的吞吐。单流测的是单连接能力,链路或网卡的并行能力要靠多流并行才能探到。它给出的是应用可见的端到端吞吐,如果结果不理想,还要结合丢包与重传分析原因。
基本信息
| 服务端 | iperf3 -s 常驻监听,默认端口 5201 |
|---|---|
| 客户端 | iperf3 -c 10.0.0.2 -t 30 -P 4 |
| 反向测试 | -R,由服务端向客户端发送,测下行收速 |
| 时长 | -t 指定秒数,默认 10 秒 |
| 输出要点 | 吞吐、重传次数、发送与接收两端结果 |
典型使用场景
- 新链路或新机房上线前的带宽验收
- 网络变更后对比吞吐是否达到预期
- 排查应用吞吐上不去:确认瓶颈是否为链路本身
- 多流并行验证交换与网卡能否达到标称能力
- 反向测试确认两个方向的速率差异
最小用法
最小用法
# 服务端
# iperf3 -s
# 客户端
iperf3 -c 10.0.0.2 -t 30 -P 4 # 4 条并行流,持续 30 秒
iperf3 -c 10.0.0.2 -t 15 -R # 反向测试,观察下行速率
iperf3 -c 10.0.0.2 -t 30 -P 1 -w 256K # 指定单流并调整窗口,观察单流上限关键参数
| 参数 | 作用 | 使用建议 |
|---|---|---|
| -t | 测试持续时长(秒) | 默认 10 秒偏短,验收建议 30 秒以上 |
| -P | 并行流数 | 单流测不出链路上限时提高 |
| -R | 反向测试 | 确认下行方向的收速 |
| -w | 套接字缓冲区 | 单流受限时可评估窗口影响 |
| -p | 服务端端口 | 需要避开占用端口时指定 |
测试设计
- 单流定基线,多流探上限,两个结果分开展示
- 避开业务高峰,并记录测试窗口与参数,便于复现
- 两端都记录结果:客户端输出重传,服务端确认实收
- 测试前确认路径上没有其他大流量任务在跑
多流并行能提升总吞吐,说明瓶颈在单连接侧(例如窗口或主机处理能力);多流与单流结果接近且远低于链路标称值,瓶颈更可能在链路或中间设备。
吞吐不达标时不要急于调整内核参数,先确认对端是否同样配置了合适参数,以及路径上是否存在限速策略或中间设备的能力上限。