最准、最常用的是直接用 iperf3 测 TCP 吞吐量,它不依赖外部网络,只反映两台机器间真实传输能力;服务端运行 iperf3 -s(默认5201端口),客户端运行 iperf3 -c IP -t 30 -P 4 -w 2M 等参数调优,结果以 Bandwidth(Mbits/sec)为准,需结合网卡速率、CPU占用、丢包率等排查瓶颈。

直接用 iperf3 测 TCP 吞吐量最准、最常用,它不依赖外部网络,只反映两台机器之间的真实传输能力。
服务端启动监听
在接收数据的机器上运行:
- iperf3 -s:默认监听所有网卡的 5201 端口
- iperf3 -s -B 192.168.1.100:绑定指定 IP,避免多网卡干扰
- iperf3 -s -D:以后台服务方式运行(适合长期测试)
注意检查防火墙是否放行 TCP 5201 端口,比如:sudo ufw allow 5201 或配置 iptables 规则。
客户端发起 TCP 测试
在发送数据的机器上执行命令,例如:
- iperf3 -c 192.168.1.100:默认单线程、10 秒、TCP 协议
- iperf3 -c 192.168.1.100 -t 30 -P 4:测 30 秒,4 个并行流,提升高带宽链路利用率
- iperf3 -c 192.168.1.100 -w 2M:设 TCP 窗口为 2MB,缓解长距离高延迟链路的吞吐限制
- iperf3 -c 192.168.1.100 -i 1:每秒输出一次实时速率,便于观察波动
结果怎么看与常见瓶颈判断
关注输出中的 Transfer 和 Bandwidth 行,单位默认是 Mbits/sec。若实测吞吐远低于物理带宽(如千兆网卡只跑出 300Mbps),可能原因有:
- 网卡协商速率不对(用 ethtool eth0 查看)
- CPU 占用接近 100%:说明协议栈处理不过来,可尝试开启 TSO/GSO 卸载:ethtool -K eth0 tso on gso on
- 多线程下吞吐不增反降:检查中断是否集中在单个 CPU 核心,用 sar -I ALL 1 观察
- 丢包率非零(TCP 测试中极少出现,但若存在,说明链路或中间设备有问题)
补充验证手段
iperf3 是点对点基准测试,不代表真实业务表现。建议配合其他工具交叉验证:
- 用 ping -c 10 192.168.1.100 看延迟和稳定性
- 用 ss -ti 查看当前 TCP 连接的重传、RTT、cwnd 等细节
- 用 iftop 或 nethogs 实时观察进程级流量占用



















