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:指定進行的測試類型,包括TCP_STREAM,UDP_STREAM,TCP_RR,TCP_CRR,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