如何在Linux中使用iperf3工具测试网络吞吐量

iperf3是一个免费的开源,跨平台命令行程序,用于在Linux中的服务器之间执行实时网络吞吐量测量。

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

另请参阅16个带宽监控工具,用于分析Linux中的网络使用情况

使用iperf ,您可以调整与时序,缓冲区和协议(如TCP,UDP,SCTP)相关的几个参数。 它对网络性能调优操作很方便。

为了获得最大或相当改善的网络性能,您需要增加吞吐量以及网络接收和发送功能的延迟。 但是,在进行实际调整之前,您需要执行一些测试以收集整体网络性能统计信息,以指导您的调优过程。

其结果包括以秒为单位的时间间隔,数据传输,带宽(传输速率),丢失和其他有用的网络性能参数。 它主要用于协助调整特定路径上的TCP连接,这是我们将在本指南中关注的内容。

要求:

  • 两台联网的计算机都安装了iperf3

如何在Linux系统中安装iperf3

在开始使用iperf3之前,需要将它安装在用于基准测试的两台计算机上。 由于iperf3可以在大多数常见Linux发行版的官方软件存储库中找到,因此使用包管理器安装它应该很容易,如图所示。

$ sudo apt install iperf3	#Debian/Ubuntu
$ sudo yum install iperf3	#RHEL/CentOS
$ sudo dnf install iperf3	#Fedora 22+ 

在两台计算机上安装iperf3后 ,即可开始测试网络吞吐量。

如何在Linux服务器之间测试网络吞吐量

Firt连接到您将用作服务器的远程机器和使用-s标志的服务器模式下的fireup iperf3 ,默认情况下它将监听端口5201

您可以使用-f开关指定要报告的格式( Kmg表示KbitsMbitsGbitsKMG表示KBytesMbytesGbytes ),如图所示。

$ iperf3 -s -f K 

如果服务器上的另一个程序正在使用端口5201,则可以使用-p开关指定其他端口(例如3000 ),如图所示。

$ iperf 3 -s -p 3000

(可选)您可以使用-D标志将服务器作为守护程序运行,并将服务器消息写入日志文件,如下所示。

$ iperf 3 -s -D > iperf3log 

然后在我们将作为客户端 (实际基准测试发生的地方)的本地计算机上,使用-c标志在客户端模式下运行iperf3并指定运行服务器的主机(使用其IP地址或域或主机名)。

$ iperf 3 -c 192.168.10.1 -f K

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

测试服务器之间的网络吞吐量

测试服务器之间的网络吞吐量

重要提示 :从基准测试结果中,如上面的屏幕截图所示, 服务器客户端的值存在差异。 但是,您应该始终考虑在执行的每个测试中使用从iperf客户端计算机获得的结果。

如何在Linux中实现先进的网络测试吞吐量

如下所述,有许多客户端特定的选项可用于执行高级测试。

确定网络中给定时间内数据量的一个重要因素是TCP窗口大小 - 它在调整TCP连接时很重要。 您可以使用-w标志设置窗口大小/套接字缓冲区大小,如图所示。

$ iperf 3 -c 192.168.10.1 -f K -w 500K	

要在服务器发送和客户端接收的反向模式下运行它,请添加-R开关。

$ iperf 3 -c 192.168.10.1 -f K -w 500K -R	

要运行双向测试 ,意味着您同时测量两个方向上的带宽,请使用-d选项。

$ iperf 3 -c 192.168.10.1 -f K -w 500K -d

如果要在客户端输出中获取服务器结果 ,请使用--get-server-output选项。

$ iperf 3 -c 192.168.10.1 -f K -w 500K -R --get-server-output
在客户端获取服务器网络结果

在客户端获取服务器网络结果

也可以使用-P选项设置并行客户端流的数量(在此示例中为两个),它们同时运行。

$ iperf 3 -c 192.168.10.1 -f K -w 500K -P 2

有关更多信息,请参见iperf3手册页。

$ man iperf3

iperf3主页https//iperf.fr/

就这样! 请记住在进行实际网络性能调整之前始终执行网络性能测试。 iperf3是一个功能强大的工具,可以方便地运行网络吞吐量测试。 您有任何想法分享或提问的问题,请使用下面的评论表。