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^6 bits/秒。
在缺省情況下,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等。
?
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
