iPerf3 – 在 Linux 中测试网络速度/吞吐量

iperf3是一个免费的开源、跨平台的基于命令行的程序,用于进行实时网络吞吐量测量。它是测试IP网络中最大可达带宽的最强大工具之一(支持IPv4IPv6)。

使用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开关指定报告的格式(kmg分别代表KbitsMbitsGbitsKMG分别代表KBytesMbytesGbytes),如所示。

$ 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

大约1820秒后,客户端应该终止并生成结果,显示基准测试的平均吞吐量,如下面的截图所示。

Test Network Throughput Between Servers
From the benchmark results, as shown in the above screenshot, there is a variation in values from the server and client. But, you should always consider using the results obtained from the iperf client machine in every test you carry out.

如何在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
Get Server Network Results in the Client

还可以使用-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/