iperf3 是什么
iperf3 采用一服务端、一客户端的模型测量链路吞吐与质量:服务端 iperf3 -s 监听,客户端 iperf3 -c 打流。它可以测 TCP 与 UDP,输出带宽、重传、抖动与丢包率。做网络变更验收、虚拟化宿主机与虚机之间带宽核对、跨机房链路评估时,它是事实上的基准工具。
基本信息
| 适用平台 | Linux/Unix/Windows(各端需先安装 iperf3) |
|---|---|
| 命令语法 | 服务端 iperf3 -s;客户端 iperf3 -c 服务器地址 [选项] |
| 常用选项 | -t 持续时间 -P 并发流数 -R 反向(服务端发、客户端收)-u UDP -b 目标带宽 -O 忽略前几秒的预热 |
| 默认端口 | 5201(TCP),UDP 模式同样默认使用该端口 |
| 注意事项 | iperf3 与 iperf2 的协议不兼容,两端都要用 iperf3 |
典型使用场景
- 新链路验收:确认带宽是否符合采购或承诺值
- 跨机房评估:测出实际可用吞吐与抖动,为选路提供依据
- 虚拟化与容器网络:对比虚机与宿主机、不同网络模式的吞吐差异
- 变更前后对比:确认调优或升级没有引入退化
- 丢包与抖动排查:UDP 模式定量看丢包率与抖动
常用示例
常用示例
# A 机(服务端)
iperf3 -s # 默认监听 5201
iperf3 -s -p 5202 # 换端口,便于并行测试
# B 机(客户端)
iperf3 -c 10.0.0.5 -t 10 # 单流测 10 秒
iperf3 -c 10.0.0.5 -t 10 -P 4 # 4 条并发流
iperf3 -c 10.0.0.5 -R -t 10 # 反向:服务端发、客户端收
iperf3 -c 10.0.0.5 -u -b 200M -t 10 # UDP 限速 200Mbps,看丢包与抖动
iperf3 -c 10.0.0.5 -t 20 -O 5 # 忽略前 5 秒预热数据结果字段读法
| 字段 | 含义 | 怎么看 |
|---|---|---|
| Interval | 分段统计区间 | 看是否有前后波动,而不只看汇总 |
| Bitrate | 该区间实际带宽 | 与链路标称值对比,关注是否稳定 |
| Retr | TCP 重传次数 | 明显非零说明有丢包或拥塞 |
| Jitter | UDP 抖动(毫秒) | 实时音视频类业务对抖动敏感 |
| Lost 与 Total | UDP 丢包数与总包数 | 按比例判断丢包是否超出业务容忍 |
| sender 与 receiver | 发送侧与接收侧统计 | 两侧差距大说明链路中间有丢弃 |
单流跑不满不等于链路有问题:单条 TCP 流的吞吐受往返时延与窗口大小限制,先加 -P 4 或 -P 8 用多流压测,再判断链路上限。反之,多流明显高于单流,说明瓶颈在单流窗口而不是链路本身。
UDP 模式必须显式限速(-b):不加限速时 iperf3 的默认目标带宽可能直接打满链路,在生产网络上等同于一次流量洪水,会影响同链路上的其他业务。测完也要确认服务端进程已退出。