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),再判断链路能力。