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 

然後在我們將其作為客戶端(進行實際基準測試的地方)的本機上運行iperf3以客戶端模式運行,使用-c標誌並指定運行伺服器的主機(可以使用其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/