網(wǎng)絡(luò)測試工具netperf
Netperf是一種網(wǎng)絡(luò)性能的測量工具,主要針對基于TCP或UDP的傳輸。Netperf根據(jù)應(yīng)用的不同,可以進(jìn)行不同模式的網(wǎng)絡(luò)性能測試,即批量數(shù)據(jù)傳輸(bulk data transfer)模式和請求/應(yīng)答(request/reponse)模式。Netperf測試結(jié)果所反映的是一個系統(tǒng)能夠以多快的速度向另外一個系統(tǒng)發(fā)送數(shù)據(jù),以及另外一個系統(tǒng)能夠以多塊的速度接收數(shù)據(jù)。
Netperf工具以client/server方式工作。server端是netserver,用來偵聽來自client端的連接,client端是netperf,用來向server發(fā)起網(wǎng)絡(luò)測試。在client與server之間,首先建立一個控制連接,傳遞有關(guān)測試配置的信息,以及測試的結(jié)果;在控制連接建立并傳遞了測試配置信息以后,client與server之間會再建立一個測試連接,用來來回傳遞著特殊的流量模式,以測試網(wǎng)絡(luò)的性能。
一、安裝
下載( 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 |
二、使用方法
首先在服務(wù)器運(yùn)行
[root@RedHat netperf-2.5.0]# netserver
在客戶端運(yùn)行
[root@RedHat netperf-2.5.0]#netperf-H host -l testlen -t testname
netperf的命令行參數(shù):
-H host :指定遠(yuǎn)端運(yùn)行netserver的server IP地址。
-l testlen:指定測試的時(shí)間長度(秒)
-t testname:指定進(jìn)行的測試類型,包括TCP_STREAM,UDP_STREAM,TCP_RR,TCP_CRR,UDP_RR
三、網(wǎng)絡(luò)性能介紹
1. TCP網(wǎng)絡(luò)性能
由于TCP協(xié)議能夠提供端到端的可靠傳輸,因此被大量的網(wǎng)絡(luò)應(yīng)用程序使用。但是,可靠性的建立是要付出代價(jià)的。TCP協(xié)議保證可靠性的措施,如建立并維護(hù)連接、控制數(shù)據(jù)有序的傳遞等都會消耗一定的網(wǎng)絡(luò)帶寬。
Netperf可以模擬三種不同的TCP流量模式:
1) 單個TCP連接,批量(bulk)傳輸大量數(shù)據(jù)。
2) 單個TCP連接,client請求/server應(yīng)答的交易(transaction)方式。
3) 多個TCP連接,每個連接中一對請求/應(yīng)答的交易方式。
2. UDP網(wǎng)絡(luò)性能
UDP沒有建立連接的負(fù)擔(dān),但是UDP不能保證傳輸?shù)目煽啃裕允褂肬DP的應(yīng)用程序需要自行跟蹤每個發(fā)出的分組,并重發(fā)丟失的分組Netperf可以模擬兩種UDP的流量模式:
1) 從client到server的單向批量傳輸。
2) 請求/應(yīng)答的交易方式。
由于UDP傳輸?shù)牟豢煽啃裕谑褂胣etperf時(shí)要確保發(fā)送的緩沖區(qū)大小不大于接收緩沖區(qū)大小,否則數(shù)據(jù)會丟失,netperf將給出錯誤的結(jié)果。因此,對于接收到分組的統(tǒng)計(jì)不一定準(zhǔn)確,需要結(jié)合發(fā)送分組的統(tǒng)計(jì)綜合得出結(jié)論。
四、測試案例
服務(wù)器端執(zhí)行
[root@RedHat netperf-2.5.0]# netserver |
在客戶端運(yùn)行
[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的結(jié)果輸出中,我們可以知道以下的一些信息:
1) 遠(yuǎn)端系統(tǒng)(即server)使用大小為87380字節(jié)的socket接收緩沖;
2) 本地系統(tǒng)(即client)使用大小為16384字節(jié)的socket發(fā)送緩沖;
3) 向遠(yuǎn)端系統(tǒng)發(fā)送的測試分組大小為16384字節(jié);
4) 測試經(jīng)歷的時(shí)間為60秒。
5) 吞吐量的測試結(jié)果為248.26*10^6bits/秒。
在缺省情況下,netperf向發(fā)送的測試分組大小設(shè)置為本地系統(tǒng)所使用的socket發(fā)送緩沖大小。
TCP_STREAM方式下與測試相關(guān)的局部參數(shù)如下表所示:
-s size:設(shè)置本地系統(tǒng)的socket發(fā)送與接收緩沖大小;
-S size:設(shè)置遠(yuǎn)端系統(tǒng)的socket發(fā)送與接收緩沖大小;
-m size:設(shè)置本地系統(tǒng)發(fā)送測試分組的大小;
-M size:設(shè)置遠(yuǎn)端系統(tǒng)接收測試分組的大小;
-D:對本地與遠(yuǎn)端系統(tǒng)的socket設(shè)置TCP_NODELAY選項(xiàng)I/O測試。
其它的網(wǎng)絡(luò)性能測試工具,如dbs, iperf, pathrate, nettest, netlogger, tcptrace, ntop等。
posted on 2013-08-02 11:45 順其自然EVO 閱讀(278) 評論(0) 編輯 收藏 所屬分類: 性能測試