Linux 网络性能测试实战:用 iperf3 精准测出真实带宽与丢包率

在网络调试或链路验收中,iperf3 是最常用的带宽测试工具之一。 它支持 TCP/UDP 协议,可自定义带宽、测试时长、包大小等参数,轻量高效,是运维与网络工程师的常备工具。


一、安装 iperf3

iperf3 支持各类 Linux 发行版,可通过包管理器直接安装:

复制代码
# Debian / Ubuntu
sudo apt update && sudo apt install iperf3 -y

# CentOS / Rocky / AlmaLinux / RHEL
sudo yum install iperf3 -y

# Fedora
sudo dnf install iperf3 -y

# openSUSE
sudo zypper install iperf3

验证安装:

复制代码
iperf3 -v

二、UDP 带宽测试(示例:50Mbps)

UDP 模式常用于测试网络抖动、丢包率和最大承载能力。

服务端:

复制代码
iperf3 -s -p 5001

客户端:

复制代码
iperf3 -c <服务器IP> -u -b 50M -t 10 -p 5001 -B <客户端源IP>

参数说明:

  • -u:启用 UDP 模式
  • -b:指定目标带宽
  • -t:测试持续时间(秒)
  • -B:绑定客户端源地址(多网卡时推荐使用)

三、TCP 带宽测试(示例:80Mbps、100Mbps)

服务端:

复制代码
iperf3 -s -p 5002

客户端:

复制代码
# 测试 80Mbps
iperf3 -c <服务器IP> -b 80M -t 10 -p 5002 -B <客户端源IP>

# 测试 100Mbps
iperf3 -c <服务器IP> -b 100M -t 10 -p 5002 -B <客户端源IP>

四、不同数据包长度测试

测试不同包长下的网络表现(以 UDP 模式为例):

复制代码
iperf3 -c <服务器IP> -u -l 64b   -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 128b  -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 256b  -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 512b  -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 1k    -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 1500b -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 2k    -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 4k    -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 8k    -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 16k   -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 32k   -b 50M -t 10 -p 5001
iperf3 -c <服务器IP> -u -l 64k   -b 50M -t 10 -p 5001

五、测试结果分析与样例解析

UDP 测试样例

客户端命令:

复制代码
iperf3 -c 10.0.0.2 -u -b 50M -t 10 -p 5001 -B 10.0.0.3

输出片段:

复制代码
[ ID] Interval           Transfer     Bitrate         Jitter    Lost/Total Datagrams
[  5]   0.00-10.00 sec  59.6 MBytes   49.8 Mbits/sec  0.233 ms  3/4595 (0.065%)
Server Report:
[  5]   0.00-10.03 sec  59.6 MBytes   49.8 Mbits/sec  0.233 ms  3/4595 (0.065%)

字段解释:

  • Transfer:10 秒内传输的数据量(59.6 MB)。
  • Bitrate:实际传输速率(49.8 Mbps,接近目标 50 Mbps)。
  • Jitter:UDP 抖动(0.233 ms,极低,链路稳定)。
  • Lost/Total Datagrams:丢包统计(丢 3 包,占 0.065%,可接受)。

分析建议:

  • 若带宽明显低于目标值,检查 CPU、带宽限制或中间防火墙策略。
  • 若丢包率高(>0.5%),优先排查网卡统计、交换机端口错误或 QoS 限制。
  • 若抖动高(>30ms),说明链路拥塞或排队延迟。

TCP 测试样例

客户端命令:

复制代码
iperf3 -c 10.0.0.2 -t 10 -p 5002 -B 10.0.0.3

输出片段:

复制代码
[ ID] Interval           Transfer     Bitrate         Retr
[  5]   0.00-10.00 sec   93.5 MBytes   78.4 Mbits/sec  2             sender
[  5]   0.00-10.00 sec   92.9 MBytes   78.0 Mbits/sec              receiver

字段解释:

  • Bitrate:TCP 吞吐率(78.4 Mbps)。
  • Retr:TCP 重传次数(2 次,正常范围)。
  • sender / receiver:两端统计结果;若差距大,表示中间存在丢包或接收端限速。

分析建议:

  • 重传过多说明丢包或延迟波动,应排查链路质量。
  • 吞吐低于预期时,可尝试:
    • 增大 TCP 窗口缓冲(-w 512K);
    • 使用多并发流(-P 4);
    • 检查 QoS、限速或 MTU 问题。

包长影响说明

  • 小包(64B~256B):包率高、CPU 压力大、吞吐可能下降,适合测试设备 PPS 能力。
  • 中包(512B~1500B):常见业务场景,结果可代表真实性能。
  • 大包(2K~64K):协议效率高,但可能受 MTU 限制。若性能提升明显,可启用 Jumbo Frame(9000B)。

六、总结

iperf3 是网络链路测试与性能诊断的核心工具,可快速验证带宽、丢包、抖动、TCP 吞吐等关键指标。 结合不同包长与协议测试,可以精准判断链路瓶颈,定位物理层、传输层或系统配置问题。

建议:

  • 测试前关闭业务干扰,保证带宽独占。
  • 分多个时间段重复测试,分析平均值与波动情况。
  • 保存结果日志(--logfile result.log)便于比对与追踪。
相关推荐
十日十行11 小时前
Linux和window共享文件夹
linux
木心月转码ing19 小时前
WSL+Cpp开发环境配置
linux
JaguarJack20 小时前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端
BingoGo20 小时前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
php
崔小汤呀2 天前
最全的docker安装笔记,包含CentOS和Ubuntu
linux·后端
何中应2 天前
vi编辑器使用
linux·后端·操作系统
何中应2 天前
Linux进程无法被kill
linux·后端·操作系统
何中应2 天前
rm-rf /命令操作介绍
linux·后端·操作系统
何中应2 天前
Linux常用命令
linux·操作系统
葛立国2 天前
从 / 和 /dev 说起:Linux 文件系统与挂载点一文理清
linux