iperf3是一个免费的开源、跨平台的基于命令行的程序,用于进行实时网络吞吐量测量。它是测试IP网络中最大可达带宽的最强大工具之一(支持IPv4和IPv6)。
使用iperf,您可以调整与时间、缓冲区和协议(如TCP、UDP和SCTP)相关的几个参数。这对于网络性能调优操作非常有用。
为了获得最大或者说改善的网络性能,您需要提高网络的接收和发送能力的吞吐量和延迟。
然而,在实际调优之前,您需要进行一些测试,以收集全面的网络性能统计数据,以指导您的调优过程。
其结果包括时间间隔(秒)、传输的数据量、带宽(传输速率)、丢包率和其他有用的网络性能参数。它主要旨在协助调优特定路径上的TCP连接,这就是我们在本指南中将重点关注的内容。
要求:
- 两台已安装iperf3的网络计算机。
如何在Linux系统中安装iPerf3
如何在Linux系统中安装iPerf3
在使用iperf3之前,你需要在用于基准测试的两台机器上安装它。由于iperf3可以在大多数常见Linux发行版的官方软件仓库中找到,因此使用包管理器安装它应该很简单,如所示。
$ sudo apt install iperf3 [On Debian, Ubuntu and Mint] $ sudo yum install iperf3 [On RHEL/CentOS/Fedora and Rocky/AlmaLinux] $ sudo emerge -a net-misc/iperf [On Gentoo Linux] $ sudo apk add iperf3 [On Alpine Linux] $ sudo pacman -S iperf3 [On Arch Linux] $ sudo zypper install iperf3 [On OpenSUSE]
一旦在两台机器上都安装了iperf3,你就可以开始测试网络吞吐量了。
如何在两台Linux服务器之间测试网络速度
首先,连接到作为服务器的远程机器,并使用-s
标志启动iperf3进入服务器模式,它将默认监听5201端口。
你可以使用-f
开关指定报告的格式(k、m、g分别代表Kbits、Mbits、Gbits或K、M、G分别代表KBytes、Mbytes、Gbytes),如所示。
$ iperf3 -s -f K
如果服务器上的5201端口被另一个程序使用,你可以使用-p
开关指定不同的端口(例如3000),如所示。
$ iperf3 -s -p 3000
可选地,你可以使用-D
标志将服务器作为守护进程运行,并以下列方式将服务器消息写入日志文件。
$ iperf3 -s -D > iperf3log
然后在本地机器上(我们将其视为客户端,在那里进行实际的基准测试),使用-c
标志以客户端模式运行iperf3,并指定运行服务器的主机(可以使用其IP地址、域或主机名)。
$ iperf3 -c 192.168.10.1 -f K
大约18到20秒后,客户端应该终止并生成结果,显示基准测试的平均吞吐量,如下面的截图所示。

如何在Linux中执行高级网络测试吞吐量
有许多用于执行高级测试的客户端特定选项,如下所述。
确定网络中数据量的一个重要因素是TCP窗口大小-在调整TCP连接时非常重要。您可以使用-w
标志设置窗口大小/套接字缓冲区大小,如下所示。
$ iperf3 -c 192.168.10.1 -f K -w 500K
要在反向模式下运行,其中服务器发送并且客户端接收,请添加-R
开关。
$ iperf3 -c 192.168.10.1 -f K -w 500K -R
要运行双向测试,即同时测量两个方向的带宽,请使用-d
选项。
$ iperf3 -c 192.168.10.1 -f K -w 500K -d
如果您希望在客户端输出中获得服务器结果,请使用--get-server-output
选项。
$ iperf3 -c 192.168.10.1 -f K -w 500K -R --get-server-output

还可以使用-P
选项设置同时运行的并行客户端流的数量(在此示例中为两个)。
$ iperf3 -c 192.168.10.1 -f K -w 500K -P 2
有关更多信息,请参阅iperf3手册页。
$ man iperf3
这就是全部!记得在进行实际的网络性能调优之前,始终进行网络性能测试。iperf3 是一个强大的工具,非常适用于运行网络吞吐量测试。
如果你有任何想法要分享或问题要问,可以在下面的评论表单中使用。
Source:
https://www.tecmint.com/test-network-throughput-in-linux/