首页/网络/网络排障速查/iperf3 进阶参数与双向测试

iperf3 进阶参数与双向测试

把 iperf3 参数一次记全:-P 并行、-w 窗口、-R 反向、--bidir 双向、-O 预热、-J 出 JSON、-M MSS 约束,覆盖绝大多数测量场景。

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

iperf3 进阶参数是什么

iperf3 默认单流、双向各行其道的短测只能给出一个粗糙数字。把关键参数记全,才能把『慢』归因到具体原因:-P 提高并发、-w 调整窗口、-R 反向测试、--bidir 双向同压、-O 预热排除慢启动、-J 输出 JSON 便于归档对比、-M 约束 MSS 验证分片。参数之间要成体系组合,否则不同时间的测试结果无法比较。

基本信息

适用平台Linux/Windows/macOS,服务端 iperf3 -s,客户端 iperf3 -c
常用端口默认 5201/TCP
核心参数-t 时长、-P 并发、-w 窗口、-R 反向、-O 预热、-J JSON
测量口径务必固定参数组合,才具备横向可比较性

典型使用场景

  • 高带宽链路测量:单流打不满时用 -P 验证是否为并发或窗口限制
  • 上下行不对称排查:用 -R 与 --bidir 分别测两个方向
  • 分片敏感路径:用 -M 约束 MSS 观察吞吐变化,交叉验证 MTU 问题
  • 长期趋势归档:-J 落盘 JSON,后续用脚本入库对比历史值

参数组合

参数组合
# 8 条流 + 256K 窗口 + 预热 3 秒,排除慢启动影响
iperf3 -c 10.0.0.5 -t 20 -O 3 -P 8 -w 256K
# 双向同时打流,观察上下行是否对称
iperf3 -c 10.0.0.5 -t 10 --bidir
# 约束 MSS,用于排查分片与路径 MTU 相关吞吐异常
iperf3 -c 10.0.0.5 -t 10 -M 1400
# 输出 JSON 便于入库与历史对比
iperf3 -c 10.0.0.5 -J > /tmp/iperf.json
# 反向测试:由服务端发送,客户端接收
iperf3 -c 10.0.0.5 -t 30 -P 4 -R -w 1M

参数含义

参数作用注意事项
-P N并行 N 条流单流慢多流快,指向单流窗口或时延限制
-w 大小socket 缓冲与发送窗口两端都需评估,接收侧窗口同样关键
-R反向测试(服务端发)排除客户端上行受限的干扰
--bidir双向同时压测更适合模拟真实双向业务
-O N预热 N 秒不计入统计避免慢启动把平均值拉低
-M N设置 MSS仅用于验证,不要当作常规优化手段
参数要成体系对比:固定时长、窗口与并发做 A/B,才能把『慢』归因到路径、窗口还是并发不足;每次测试只改一个变量。
iperf3 单线程在万兆以上链路容易先打满客户端 CPU:出现吞吐瓶颈时先确认本机 CPU 是否饱和(top 与 sar),再判断链路能力。

易错点

  • 每次测试参数都不同:历史数据无法对比,结论缺乏说服力
  • 用 -M 强行改 MSS 当『优化』:可能与中间设备 PMTU 冲突,反而引入新问题
  • 忽略预热:慢启动阶段把平均值拉低,误判链路不达标
  • 在 10G 以上链路用单线程单流测试:测出的是客户端 CPU 上限而非链路上限
  • 只测单向不测反向:上行受限造成的慢被错记到链路总能力上

数据来源与参考

  • iperf3 官方文档(参数列表)

相关工具

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