- 相關(guān)推薦
實(shí)驗(yàn)性能測試工具3
掌握Netperf網(wǎng)絡(luò)性能測試的使用。
1. 介紹:
Netperf是由惠普公司開發(fā)的,測試網(wǎng)絡(luò)棧。即測試不同類型的網(wǎng)絡(luò)性能的benchmark工具,大多數(shù)網(wǎng)絡(luò)類型TCP/UPD端對端的性能,得到網(wǎng)絡(luò)上不同類型流量的性能參數(shù)。Netperf根據(jù)應(yīng)用的不同可以進(jìn)行不同模式的網(wǎng)絡(luò)性能測試,即:批量數(shù)據(jù)傳輸模式和請求/應(yīng)答模式。Netperf測試結(jié)果所反映的是一個(gè)系統(tǒng)能夠以多快的速度向另外一個(gè)系統(tǒng)發(fā)送數(shù)據(jù),以及另外一個(gè)系統(tǒng)能夠以多快的速度接收數(shù)據(jù)。
官方網(wǎng)址:http://www.netperf.org/netperf
1.1. 工作原理
Netperf工具以 client/server方式工作。server端是netserver,用來偵聽來自client端的連接,client端是netperf,用來向server發(fā)起網(wǎng)絡(luò)測試。在client與server之間,首先建立一個(gè)控制連接,傳遞有關(guān)測試配置的信息,以及測試的結(jié)果;在控制連接建立并傳遞了測試配置信息以后,client與server之間會再建立一個(gè)測試連接,進(jìn)行來回傳遞特殊的流量模式,以測試網(wǎng)絡(luò)的性能。具體過程如下圖所示:
#tar –zxvf netperf-2.4.5.tar.gz
#cd netperf-2.4.5
#./configure
#make
性能測試工具-Netperf
#make install
2.2. 使用
在unix系統(tǒng)中,可以直接運(yùn)行可執(zhí)行程序來啟動netserver,也可以讓inetd或xinetd來自動啟動netserver。當(dāng)netserver在server端啟動后,就可在client端運(yùn)行netperf來測試網(wǎng)絡(luò)的性能。netperf通過命令行參數(shù)來控制測試的類型和具體的測試選項(xiàng),根據(jù)作用范圍的不同,netperf的命令行參數(shù)可以分為兩大類:全局命令行參數(shù)、測試相關(guān)的局部參數(shù),兩者之間使用--分隔。
netperf語法格式為:
Netperf [global options] –-[test-specific options]
[global options] 可選參數(shù),其中可選的參數(shù)有如下幾個(gè):
[test-specific options] 可選參數(shù),其中可選的參數(shù)有如下幾個(gè): 遠(yuǎn)程主機(jī): NPtcp [options]
本地主機(jī): NPtcp -h remote_host [options]
2.3. 應(yīng)用實(shí)例第一文庫網(wǎng)
2.3.1. 批量(bulk)網(wǎng)絡(luò)流量的性能
批量數(shù)據(jù)傳輸?shù)湫偷睦佑衒tp和其它類似的網(wǎng)絡(luò)應(yīng)用(即一次傳輸整個(gè)文件)。根據(jù)使用傳輸協(xié)議的不同,批量數(shù)據(jù)傳輸又分為TCP批量傳輸和UDP批量傳輸。
1. TCP_STREAM
Netperf缺省情況下進(jìn)行TCP批量傳輸,即-t TCP_STREAM。測試過程中,netperf向netserver發(fā)送批量的TCP數(shù)據(jù)分組,以確定數(shù)據(jù)傳輸過程中的吞吐量:
從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é)果為88Mbits/秒
在缺省情況下,netperf向發(fā)送的測試分組大小設(shè)置為本地系統(tǒng)所使用的socket發(fā)送緩沖大小。TCP_STREAM方式下與測試相關(guān)的局部參數(shù)如下所示:
通過修改以上的參數(shù),并觀察結(jié)果的變化,我們可以確定是什么因素影響了連接的吞吐量。例如,如果懷疑路由器由于缺乏足夠的緩沖區(qū)空間,使得轉(zhuǎn)發(fā)大的分組時(shí)存在問題,就可以增加測試分組(-m)的大小,以觀察吞吐量的變化:
在這里,測試分組的大小減少到2048字節(jié),而吞吐量卻沒有很大的變化(與前面例子中測試分組大小為16K字節(jié)相比)。相反,如果吞吐量有了較大的提升,則說明在網(wǎng)絡(luò)中間的路由器確實(shí)存在緩沖區(qū)的問題。
2. UDP_STREAM
UDP_STREAM用來測試進(jìn)行UDP批量傳輸時(shí)的網(wǎng)絡(luò)性能。需要特別注意的是,此時(shí)測試分組的大小不得大于socket的發(fā)送與接收緩沖大小,否則netperf會報(bào)出錯(cuò)提示:
為了避免這樣的情況,可以通過命令行參數(shù)限定測試分組的大小,或者增加socket的發(fā)送/接收緩沖大小。UDP_STREAM方式使用與TCP_STREAM方式相同的局部命令行參數(shù),因此,這里可以使用-m來修改測試中使用分組的大。
UDP_STREAM方式的結(jié)果中有兩行測試數(shù)據(jù),第一行顯示的是本地系統(tǒng)的發(fā)送統(tǒng)計(jì),這里的吞吐量表示netperf向本地socket發(fā)送分組的能力。但是,我們知道,UDP是不可靠的傳輸協(xié)議,發(fā)送出去的分組數(shù)量不一定等于接收到的分組數(shù)量。
第二行顯示的就是遠(yuǎn)端系統(tǒng)接收的情況,由于client與server直接連接在一起,而且網(wǎng)絡(luò)中沒有其它的流量,所以本地系統(tǒng)發(fā)送過去的分組幾乎都被遠(yuǎn)端系統(tǒng)正確的接收了,遠(yuǎn)端系統(tǒng)的吞吐量也幾乎等于本地系統(tǒng)的發(fā)送吞吐量。但是,在實(shí)際環(huán)境中,一般遠(yuǎn)端系統(tǒng)的socket緩沖大小不同于本地系統(tǒng)的socket緩沖區(qū)大小,而且由于UDP協(xié)議的不可靠性,遠(yuǎn)端系統(tǒng)的接收吞吐量要遠(yuǎn)遠(yuǎn)小于發(fā)送出去的吞吐量。
2.3.2. 請求/應(yīng)答(request/response)網(wǎng)絡(luò)流量的性能
另一類常見的網(wǎng)絡(luò)流量類型是應(yīng)用在client/server結(jié)構(gòu)中的request/response模式。在每次交易(transaction)中,client向server發(fā)出小的查詢分組,server接收到請求,經(jīng)處理后返回大的結(jié)果數(shù)據(jù)。如下圖所示:
Netperf輸出的結(jié)果也是由兩行組成。第一行顯示本地系統(tǒng)的情況,第二行顯示的是遠(yuǎn)端系統(tǒng)的信息。平均的交易率(transaction rate)為9502.73次/秒。注意到這里每次交易中的request和response分組的大小都為1個(gè)字節(jié),不具有很大的實(shí)際意義。用戶可以通過測試相關(guān)的參數(shù)來改變r(jià)equest和response分組的大小,TCP_RR方式下的參數(shù)如下表所示:
通過使用-r參數(shù),我們可以進(jìn)行更有實(shí)際意義的測試:
從結(jié)果中可以看出,由于request/reponse分組的大小增加了,導(dǎo)致了交易率明顯的下降。注:相對于實(shí)際的系統(tǒng),這里交易率的計(jì)算沒有充分考慮到交易過程中的應(yīng)用程序處理時(shí)延,因此結(jié)果往往會高于實(shí)際情況。
2. TCP_CRR
與TCP_RR不同,TCP_CRR為每次交易建立一個(gè)新的TCP
連接。最典型的應(yīng)用就是HTTP,每次HTTP交易是在一條單獨(dú)的TCP連接中進(jìn)行的。因此,由于需要不停地建立新的TCP連接,并且在交易結(jié)束后拆除TCP連接,交易率一定會受到很大的影響。
即使是使用一個(gè)字節(jié)的request/response分組,
交易率也明顯的降低了,只有2662.20次/秒。TCP_CRR使用與TCP_RR相同的局部參數(shù)。
3. UDP_RR
UDP_RR方式使用UDP分組進(jìn)行request/response的交易過程。由于沒有TCP連接所帶來的負(fù)擔(dān),所以我們推測交易率一定會有相應(yīng)的提升。
結(jié)果證實(shí)了我們的推測,交易率為10141.16次/秒,高過TCP_RR的數(shù)值。不過,如果出現(xiàn)了相反的結(jié)果,即交易率反而降低了,也不需要擔(dān)心,因?yàn)檫@說明了在網(wǎng)絡(luò)中,路由器或其它的網(wǎng)絡(luò)設(shè)備對UDP采用了與TCP不同的緩沖區(qū)空間和處理技術(shù)。
3. 參考資料
http://www.netperf.org/netperf
http://www.ibm.com/developerworks/cn/linux/l-netperf/ http://staff.science.uva.nl/~jblom/gigaport/tools/man/netperf.html
【實(shí)驗(yàn)性能測試工具3】相關(guān)文章:
麥飯石纖維的性能測試04-28
實(shí)驗(yàn)2 全混流反應(yīng)器返混性能測試04-30
漏電保護(hù)器性能的測試04-27
黑盒測試實(shí)驗(yàn)05-01
車輛動態(tài)性能測試系統(tǒng)招標(biāo)03-13
汽輪機(jī)熱力性能分析與實(shí)驗(yàn)04-27
用一臺實(shí)驗(yàn)發(fā)動機(jī)測試發(fā)動機(jī)性能參數(shù)的方法04-30