iperf3是linux下轻量可靠的网络性能测试工具,可测tcp/udp吞吐、延迟抖动与丢包率;需服务端监听(-s)与客户端连接(-c),支持多线程、窗口调优及udp限速测试。

在Linux系统中,iperf3 是最常用、轻量且可靠的网络带宽与性能测试工具。它能准确测量TCP/UDP最大吞吐量、延迟抖动、丢包率等关键指标,帮助快速定位链路瓶颈(如网卡、交换机、防火墙或服务器负载)。
安装与基础用法
大多数发行版可通过包管理器直接安装:
- Ubuntu/Debian:sudo apt install iperf3
- CentOS/RHEL 8+:sudo dnf install iperf3(RHEL7用 yum install iperf3)
- 验证安装:iperf3 --version
测试前需在服务端启动监听,在客户端发起连接。默认使用TCP协议,端口5201。
服务端启动与基本监听
在目标接收方(如远程服务器)运行:
- iperf3 -s:默认监听所有接口的5201端口
- iperf3 -s -B 192.168.1.100:绑定指定IP,避免多网卡干扰
- iperf3 -s -D:以后台服务模式运行(daemon)
注意:若被防火墙拦截,需放行TCP 5201端口(如 sudo ufw allow 5201 或配置iptables)。
客户端测试与关键参数调优
在发起测试的机器上执行命令,例如:
- iperf3 -c 192.168.1.100:默认单线程TCP,持续10秒
- iperf3 -c 192.168.1.100 -t 30 -P 4:测30秒,启用4个并行流(提升多核CPU和高带宽链路利用率)
- iperf3 -c 192.168.1.100 -w 2M:显式设置TCP窗口大小为2MB,缓解长肥管道(Long Fat Network)限制
- iperf3 -c 192.168.1.100 -u -b 100M:UDP模式下发送100Mbps流量,观察丢包与抖动
建议首次测试先用单流看基线,再逐步增加并发数;若吞吐未随线程数上升,说明瓶颈不在带宽本身(可能是CPU、磁盘I/O或网卡中断处理能力)。
识别常见性能瓶颈
结合测试结果与系统监控交叉分析:
- 吞吐远低于物理带宽:检查网卡协商速率(ethtool eth0)、是否启用了巨帧(Jumbo Frame)、驱动是否最新
- CPU使用率接近100%:说明是软件协议栈瓶颈,可尝试开启TSO/GSO/LRO卸载(ethtool -K eth0 tso on gso on lro on)
- UDP测试出现明显丢包但TCP正常:可能受中间设备限速、QoS策略或接收端应用来不及读取缓冲区影响
- 多线程下吞吐不增反降:考虑NUMA节点不匹配、中断集中在一个CPU核心,可用 sar -I ALL 1 查看中断分布
iperf3本身不模拟真实业务流量,仅反映底层传输能力。要评估实际应用表现,还需配合应用层压测(如HTTP、数据库连接池测试)。











