NetPerf揭示主機通信間是高速路還是林蔭小路

NetPerf揭示容器間是高速路還是林蔭小路

Netperf概況

Netperf是一種網絡性能的測量工具,主要針對基於TCP或UDP的傳輸。Netperf根據應用的不同,可以進行不同模式的網絡性能測試,即批量 數據傳輸(bulk data transfer)模式和請求/應答(request/reponse)模式。Netperf測試結果所反映的是一個系統能夠以多快的速度向另外一個系統 發送數據,以及另外一個系統能夠以多塊的速度接收數據。Netperf工具以client/server方式工作。server端是 netserver,用來偵聽來自client端的連接,client端是netperf,用來向server發起網絡測試。在client與 server之間,首先建立一個控制連接,傳遞有關測試配置的信息,以及測試的結果;在控制連接建立並傳遞了測試配置信息以後,client與 server之間會再建立一個測試連接,用來來回傳遞着特殊的流量模式,以測試網絡的性能。

TCP網絡性能

由於TCP協議能夠提供端到端的可靠傳輸,因此被大量的網絡應用程序使用。但是,可靠性的建立是要付出代價的。TCP協議保證可靠性的措施,如建立並維護連接、控制數據有序的傳遞等都會消耗一定的網絡帶寬。   Netperf可以模擬三種不同的TCP流量模式:   

  • 1) 單個TCP連接,批量(bulk)傳輸大量數據   
  • 2) 單個TCP連接,client請求/server應答的交易(transaction)方式   
  • 3) 多個TCP連接,每個連接中一對請求/應答的交易方式

UDP網絡性能

UDP沒有建立連接的負擔,但是UDP不能保證傳輸的可靠性,所以使用UDP的應用程序需要自行跟蹤每個發出的分組,並重發丟失的分組。   Netperf可以模擬兩種UDP的流量模式:

  • 1) 從client到server的單向批量傳輸   
  • 2) 請求/應答的交易方式

由於UDP傳輸的不可靠性,在使用netperf時要確保發送的緩衝區大小不大於接收緩衝區大小,否則數據會丟失,netperf將給出錯誤的結果。因此,對於接收到分組的統計不一定準確,需要結合發送分組的統計綜合得出結論。

Netperf的命令行參數

在unix系統中,可以直接運行可執行程序來啓動netserver,也可以讓inetd或xinetd來自動啓動netserver。當netserver在server端啓動以後,就可以在client端運行netperf來 測試網絡的性能。netperf通過命令行參數來控制測試的類型和具體的測試選項。根據作用範圍的不同,netperf的命令行參數可以分爲兩大類:全局 命令行參數、測試相關的局部參數,兩者之間使用--分隔:   

    netperf [global options]-- [test-specific options]

這裏我們只解釋那些常用的命令行參數,其它的參數讀者可以查詢netperf的man手冊。   -H host :指定遠端運行netserver的server IP地址。   -l testlen:指定測試的時間長度(秒)   -t testname:指定進行的測試類型,包括TCPSTREAM,UDPSTREAM,TCPRR,TCPCRR,UDP_RR,在下文中分別對它們說明。在後面的測試中,netserver運行在192.168.0.28,server與client通過局域網連接(100M Hub)。

NetPerf安裝、使用過程

1、下載

進入/home/FUCK文件夾下輸入wget http://down1.chinaunix.net/distfiles/netperf-2.4.5.tar.gz

2、安裝

      tar -xvf netperf-2.4.5.tar.gz
      cd netperf-2.4.5
      ./configure
      make
      make install

3、測試netperf是不是可以用


        server: netserver -d 4 -L 0.0.0.0 -p 9991
        Client: netperf -l 60 -4 -f -m -t TCP_CRR -H 172.16.22.102 -p 9991 -- -r 64,64

From:https://blog.csdn.net/crisschan

關注我,關注測試

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章