Netperf是一種網絡性能的測量工具,主要針對基於TCP或UDP的傳輸。Netperf根據應用的不同,可以進行不同模式的網絡性能測試,即批量數據傳輸(bulk data transfer)模式和請求/應答(request/reponse)模式。Netperf測試結果所反映的是一個系統能夠以多快的速度向另外一個系統發送數據,以及另外一個系統能夠以多塊的速度接收數據。
Netperf工具以client/server方式工作。server端是netserver,用來偵聽來自client端的連接,client端是netperf,用來向server發起網絡測試。在client與server之間,首先建立一個控制連接,傳遞有關測試配置的信息,以及測試的結果;在控制連接建立並傳遞了測試配置信息以後,client與server之間會再建立一個測試連接,用來來回傳遞著特殊的流量模式,以測試網絡的性能。
1 安裝
下載( http://www.netperf.org)獲取netperf-2.5.0.tar.bz2源碼包;
安裝
[root@RedHat netperf-2.5.0]# tar -jxvf netperf-2.5.0.tar.bz2
[root@RedHat netperf-2.5.0]# make
[root@RedHat netperf-2.5.0]#make install
2 使用方法
首先在服務器運行
[root@RedHat netperf-2.5.0]# netserver
在客戶端運行
[root@RedHat netperf-2.5.0]#netperf-H host -l testlen -t testname
netperf的命令行參數:
-H host :指定遠端運行netserver的server IP地址。
-l testlen:指定測試的時間長度(秒)
-t testname:指定進行的測試類型,包括TCP_STREAM,UDP_STREAM,TCP_RR,TCP_CRR,UDP_RR
3 網絡性能介紹
1. TCP網絡性能
由於TCP協議能夠提供端到端的可靠傳輸,因此被大量的網絡應用程序使用。但是,可靠性的建立是要付出代價的。TCP協議保證可靠性的措施,如建立並維護連接、控制數據有序的傳遞等都會消耗一定的網絡帶寬。
Netperf可以模擬三種不同的TCP流量模式:
1) 單個TCP連接,批量(bulk)傳輸大量數據。
2) 單個TCP連接,client請求/server應答的交易(transaction)方式。
3) 多個TCP連接,每個連接中一對請求/應答的交易方式。
2. UDP網絡性能
UDP沒有建立連接的負擔,但是UDP不能保證傳輸的可靠性,所以使用UDP的應用程序需要自行跟蹤每個發出的分組,並重發丟失的分組Netperf可以模擬兩種UDP的流量模式:
1) 從client到server的單向批量傳輸。
2) 請求/應答的交易方式。
由於UDP傳輸的不可靠性,在使用netperf時要確保發送的緩沖區大小不大於接收緩沖區大小,否則數據會丟失,netperf將給出錯誤的結果。因此,對於接收到分組的統計不一定准確,需要結合發送分組的統計綜合得出結論。
4 測試案例
服務器端執行
[root@RedHat netperf-2.5.0]# netserver
在客戶端運行
[root@RedHat netperf-2.5.0]# netperf -H 192.168.56.102 -l 60
MIGRATED TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 192.168.56.102 (192.168.56.102) port 0 AF_INET
Recv Send Send
Socket Socket Message Elapsed
Size Size Size Time Throughput
bytes bytes bytes secs. 10^6bits/sec
87380 16384 16384 60.01 248.26
[root@RedHat netperf-2.5.0]#
從netperf的結果輸出中,我們可以知道以下的一些信息:
1) 遠端系統(即server)使用大小為87380字節的socket接收緩沖;
2) 本地系統(即client)使用大小為16384字節的socket發送緩沖;
3) 向遠端系統發送的測試分組大小為16384字節;
4) 測試經歷的時間為60秒。
5) 吞吐量的測試結果為248.26*10^6bits/秒。
在缺省情況下,netperf向發送的測試分組大小設置為本地系統所使用的socket發送緩沖大小。
TCP_STREAM方式下與測試相關的局部參數如下表所示:
-s size:設置本地系統的socket發送與接收緩沖大小;
-S size:設置遠端系統的socket發送與接收緩沖大小;
-m size:設置本地系統發送測試分組的大小;
-M size:設置遠端系統接收測試分組的大小;
-D:對本地與遠端系統的socket設置TCP_NODELAY選項I/O測試。
其它的網絡性能測試工具,如dbs, iperf, pathrate, nettest, netlogger, tcptrace, ntop等。