當前位置:
首頁 > 新聞 > Linux網路性能評估工具 Iperf安裝使用詳解

Linux網路性能評估工具 Iperf安裝使用詳解

2.3網路性能評估工具 Iperf

網路性能評估主要是監測網路帶寬的使用率,將網路帶寬利用最大化是保證網路性能的基礎,但是由於網路設計不合理、網路存在安全漏洞等原因,都會導致網路帶寬利用率不高。要找到網路帶寬利用率不高的原因,就需要對網路傳輸進行監控,此時就需要用到一些網路性能評估工具,而Iperf 就是這樣一款網路帶寬測試工具,本節將詳細介紹一下Iperf 的使用。

2.3.1Iperf 能做什麼

Iperf 是一款基於 TCP/IP 和 UDP/IP 的網路性能測試工具,它可以用來測量網路帶寬和網路質量,還可以提供網路延遲抖動、數據包丟失率、最大傳輸單元等統計信息。網路管理員可以根據這些信息了解並判斷網路性能問題,從而定位網路瓶頸,解決網路故障。

下面介紹 Iperf 的主要功能。

(1)TCP 方面

?測試網路帶寬。

?支持多線程,在客戶端與服務端支持多重連接。

?報告 MSS/MTU 值的大小。

?支持 TCP 窗口值自定義並可通過套接字緩衝。

(2)UDP 方面

?可以設置指定帶寬的 UDP 數據流

?可以測試網路抖動值、丟包數

?支持多播測試

?支持多線程,在客戶端與服務端支持多重連接。

2.3.2Iperf 的安裝與使用

iperf 可以運行在任何 IP 網路上,包括本地乙太網、接入網際網路、Wi-Fi 網路等。在工作模式上,iperf 運行於伺服器、客戶端模式下,其伺服器端主要用於監聽到達的測試請求, 而客戶端主要用於發起連接會話,因此要使用 iperf,需要兩台伺服器,一台運行在伺服器模式下,另一台運行在客戶端模式下。

1.安裝 iperf

iperf 支持 Win32、Linux、FreeBSD、MacOS X、OpenBSD 和 Solaris 等多種操作系統平台。讀者可以從 iperf 官方主頁 //iperf.fr/ 下載各種版本,目前最新的版本是 iperf3.0,這

里下載的軟體包為 iperf-3.0.tar.gz,安裝過程如下:

[root@ networkserver ~]# tar zxvf iperf-3.0.tar.gz

[root@ networkserver ~]# cd iperf

[root@ networkserver iperf]# make

[root@ networkserver iperf]# make install

這樣,iperf 就安裝完成了。

2.iperf 參數介紹

在完成 iperf 安裝後,執行「iperf3 –h」即可顯示 iperf 的詳細用法。iperf 的命令行選項共分為三類,分別是客戶端與伺服器端公用選項、伺服器端專用選項和客戶端專用選項,下面對常用的選項進行介紹。

伺服器端專用選項的含義如表 2.4 所示。

2.3.3Iperf 應用實例

要使用 iperf,首先要啟用一個服務端,這裡假定服務端的 IP 地址為 192.168.12.168,在此伺服器上運行「iperf3 -s」即可開啟 iperf 的伺服器模式。在默認情況下,iperf3 將在服務端打開一個 5201 監聽埠,此時就可以將另一台伺服器作為客戶端執行 iperf 功能測試了。

1.測試 TCP 吞吐量

為了確定網卡的最大吞吐量,可以在任意客戶端運行 iperf 命令,iperf 將嘗試從客戶端儘可能快地向服務端發送數據請求,並且會輸出發送的數據量和網卡平均帶寬值。圖 2-14 是一個最簡單的帶寬測試命令。

圖 2-14 通過 iperf 測試網路帶寬利用率

從圖 2-14 可以看出,iperf 默認的運行時間是 10 秒鐘,每隔一秒鐘輸出一次傳輸狀態, 同時還可以看到每秒鐘傳輸的數據量在 112MB 左右,剛好與「Bandwidth」列的值對應起來,網卡的帶寬速率維持在 941Mbits/sec 左右,而測試的伺服器是千兆網卡,這個測試值也基本合理。在輸出的最後,iperf 還給出了總的數據發送、接收量,並給出了帶寬速率平均值, 通過這些值,基本可以判斷網路帶寬是否正常,網路傳輸狀態是否穩定。

iperf 提供很多參數,可以多角度、全方位地測試網路帶寬利用率,例如,要改變 iperf運行的時間和輸出頻率,可以通過「-t」和「-i」參數來實現,如圖 2-15 所示。

圖 2-15 添加「-t」和「-i」參數後的 iperf 輸出

從圖 2-15 可以看出,輸出狀態的間隔變為每 5 秒鐘一次,總共執行測試時間為 20 秒, 測試的帶寬速率仍然保持在 941Mbits/sec 左右,唯一變化的是失敗重傳次數增加了。

為了模擬大量的數據傳輸,也可以指定要發送的數據量,這可以通過「-n」參數來實現。

在指定「-n」參數後,「-t」參數失效,iperf 在傳輸完畢指定大小的數據包後,自動結束,如圖 2-16 所示。

圖 2-16 iperf 客戶端通過「-n」參數指定要傳輸的數據量

圖 2-16 的例子是指定發送一個 5GB 左右的數據包,並且每隔 10 秒鐘輸出一次傳輸狀態,從這個輸出可以看出,當失敗重傳次數較多時,傳輸速率急速下降。

有時候,為了模擬更真實的 TCP 應用,iperf 客戶端允許從一個特定的文件發送數據, 這可以通過「-F」參數實現,如圖 2-17 所示。

圖 2-17 iperf 客戶端通過「-F」參數指定文件來發送數據

在使用 iperf 進行網路帶寬測試時,如果沒有指定發送方式,iperf 客戶端只會使用一個單一的線程,而 iperf 是支持多線程的,可以使用 iperf 提供的「-P」參數來設置多線程的數目,通過使用多線程,可以在一定程度上增加網路的吞吐量。

下面通過兩個例子進行簡單對比,圖 2-18 是 iperf 使用單線程傳輸 1.86GBytes 數據所消耗的時間和帶寬使用情況。為了速率單位統一,這裡使用「-f」參數將輸出結果都通過 MBytes來顯示。

圖 2-18 iperf 在單線程模式下的傳輸時間和傳輸速率

從圖 2-18 中可以看出,傳輸 1.86GBytes 的數據消耗了 17 秒的時間,平均帶寬速率為112MBytes/sec(注意單位).下面再看看使用多線程後,iperf 傳輸同樣大小數據量所消耗的時間和平均帶寬速率,如圖 2-19 所示。

圖 2-19 iperf 使用多線程後的數據傳輸狀態

這裡通過「-P」參數開啟了 2 個多線程,從傳輸時間上看,傳輸 1.86GBytes 的數據,消耗時間為 10.79 秒,比之前單線程的傳輸時間少了近 7 秒鐘,在平均帶寬速率上,從之前單線程的 112MBytes/sec 提高到 177MBytes/sec,從這個結果可以看出,多線程對網路傳輸性能的提高不小。

2 . 測試 UDP 丟包和延遲

iperf 也可以用於 UDP 數據包吞吐量、丟包率和延遲指標,但是由於 UDP 協議是一個非面向連接的輕量級傳輸協議,並且不提供可靠的數據傳輸服務,因此對 UDP 應用的關注點不是傳輸數據有多快,而是它的丟包率和延時指標。通過 iperf 的「-u」參數即可測試 UDP 應用的傳輸性能,圖 2-20 測試的是在 iperf 客戶端傳輸 100MB 的 UDP 數據包的輸出結果.:

圖 2-20 iperf 傳輸 100MB 的 UDP 數據包的輸出結果

在圖 2-20 中,重點關注虛線下的一段內容,在這段輸出中,「Jitter」列表示抖動時間,或者稱為傳輸延遲,「Lost/Total」列表示丟失的數據報和總的數據報數量,後面的 0.33%是平均丟包的比率,「Datagrams」列顯示的是總共傳輸數據報的數量。

這個輸出結果過於簡單,要了解更詳細的 UDP 丟包和延時信息,可以在 iperf 服務端查看,因為在客戶端執行傳輸測試的同時,服務端也會同時顯示傳輸狀態,如圖 2-21 所示。

圖 2-21 iperf 服務端顯示的 UDP 傳輸狀態

在這個輸出中,詳細記錄了在傳輸過程中,每個階段的傳輸延時和丟包率,在 UDP 應用中隨著傳輸數據的增大,丟包率和延時也隨之增加。對於延時和丟包可以通過改變應用程序來緩解或修復,例如視頻流應用,可以通過緩存數據的方式而可以容忍更大的延時。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 威客安全 的精彩文章:

「黑客」的苦日子要來了,要麼去阿里巴巴上班,要麼進小黑屋

TAG:威客安全 |