Linux 服務器帶寬測試

iperf3網絡測試工具

iperf3是一個網絡速度測試工具,支持IPv4與IPv6,支持TCP、UDP、SCTP傳輸協議,可在Windows、Mac OS X、Linux、FreeBSD等各種平臺使用,是一個簡單又實用的小工具。因我已配置好yum源,因此執行yum install iperf3即可安裝。安裝好後,我已看一下iperf的使用參數,如圖:

二、實驗環境:

在實際測試中我的服務器有萬兆網卡,IP如下所示:

Host177:100.192.168.177

Host178:100.192.168.178

Host179:100.192.168.179

Host186:100.192.168.186

三、測試過程

  在這次測試中主要進行tcp與udp的對比測試,在測試前先說明一下在iperf3中有幾個參數在tcp環境與udp環境中的區別,也就是在測試中需要對此參數要給定內容,避免iperf工具使用其默認的值,主要幾項如下:

如圖,參數若不指定-b帶寬值會造成極大的區別,在測試環境中發現 -l 默認就使用128數值。

接下來首先以Host179爲服務器端(服務器端啓動參數是沒有區別的):

以Host178爲客戶端進行tcp的測試(暫時不指定-l參數即緩衝區大小):

 

因測試環境有萬兆網卡,於是我在這裏指定了帶寬-b 爲萬兆(後面還會進行千兆測試,會出現一個較爲奇怪的現象),傳輸內容大小爲100G。

再進行udp測試(暫時不指定-l參數即緩衝區大小):

進行udp測試時候,僅是多了一個參數-u即可。

下面進行千兆的測試,如下:

 

將-b後面跟着的值調小,這裏udp的測試同樣進行此操作,這裏就不列出圖片了,接下來我們關注一下測試結果。

四、測試結果

         經測試後,可觀察客戶端下方的打印結果,如下:

tcp下以萬兆帶寬測試結果:

ucp下以萬兆帶寬測試結果:

 

tcp下以千兆帶寬測試結果:

 

ucp下以千兆帶寬測試結果:

 

  通過觀察此類結果可以清楚的發現在設定 –b 1000M (千兆)的時候,tcp和udp的傳輸100G文件所需時間相差不是很多,但當設定–b 10000M (萬兆)的時候,兩者相差的還是比較明顯的,這也是前面提出的“奇怪的現象”。給人的感覺就是udp沒有發揮萬兆網卡的全部速率,在圖中也有顯示丟包率爲51%。

  通過網上的資料查詢得知,udp丟包率高可能爲緩衝區buffer有限制導致的,因此我於是進行了如下測試:

將udp緩衝區buffer調高,執行下面命令:

CentOS 7中默認buffer大小爲212992,我在後面增加了2個0,約爲放大100倍,這兩條命令在服務器端和客戶端都執行,然後下面在執行udp測試命令:

 

得出結果爲:

 

可以看出丟包率得到了明顯的改善,但識別出的帶寬仍爲6500M左右,離萬兆還有一定的距離。

五、結論

    經過上網查詢學習得知,在帶寬測試中通常採取udp模式,因爲能測出極限帶寬、時延抖動、丟包率。在進行測試時,首先以鏈路理論帶寬(萬兆)作爲數據發送速率進行測試,這樣可以大體得出實際帶寬的極限值,在測試環境中的帶寬爲6500左右,這也同樣解釋了上文提到的奇怪現象,並且在做實驗中一定要注意測試命令的默認參數值,比如在本次測試中的tcp與udp測試的-b和-l兩個參數,在使用默認參數的時候還是有着巨大的區別。

發佈了31 篇原創文章 · 獲贊 6 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章