iperf3是一个免费的开源,跨平台命令行程序,用于执行实时网络吞吐量测量。 它是测试IP网络中可实现的最大带宽的强大工具之一(支持IPv4和IPv6 )。
另请参阅 : 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
开关指定要报告的格式( K , m , g表示Kbits , Mbits , Gbits或K , M , G表示KBytes , Mbytes , Gbytes ),如图所示。
$ 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
大约18到20秒后,客户端应终止并生成指示基准测试平均吞吐量的结果,如以下屏幕截图所示。
测试服务器之间的网络吞吐量
重要提示 :从基准测试结果中,如上面的屏幕截图所示, 服务器和客户端的值存在差异。 但是,您应该始终考虑在执行的每个测试中使用从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是一个功能强大的工具,可以方便地运行网络吞吐量测试。 您有任何想法分享或提问的问题,请使用下面的评论表。