網絡測試利器netperf安裝和使用

1.1. Netperf簡介
Netperf是一種網絡性能的測量工具,主要針對基於TCP 或UDP的傳輸。Netperf根據應用的不一樣,能夠進行不一樣模式的網絡性能測試,即批量數據傳輸(bulk data transfer)模式和請求/應答(request/reponse)模式。Netperf測試結果所反映的是兩個系統之間發送和接受數據的速度和效率。
Netperf工具是基於C/S模式的。server端是netserver,用來偵聽來自client端的鏈接,client 端是netperf,用來向server發起網絡測試。在client與server之間,首先創建一個控制鏈接,傳遞有關測試配置的信息,以及測試的結 果;在控制鏈接創建並傳遞了測試配置信息之後,client與server之間會再創建一個測試鏈接,用來來回傳遞着特殊的流量模式,以測試網絡的性能。
1.1.1. TCP網絡性能
因爲TCP協議可以提供端到端的可靠傳輸,所以被大量的網絡應用程序使用。可是,可靠性的創建是要付出代價的。TCP協議保證可靠性的措施,如創建並維護鏈接、控制數據有序的傳遞等都會消耗必定的網絡帶寬。
Netperf能夠模擬三種不一樣的TCP流量模式:
1) 單個TCP鏈接,批量(bulk)傳輸大量數據
2) 單個TCP鏈接,client請求/server應答的交易(transaction)方式
3) 多個TCP鏈接,每一個鏈接中一對請求/應答的交易方式
1.1.2. UDP網絡性能
UDP沒有創建鏈接的負擔,可是UDP不能保證傳輸的可靠性,因此使用UDP的應用程序須要自行跟蹤每一個發出的分組,並重發丟失的分組。
1)Netperf能夠模擬兩種UDP的流量模式:
從client到server的單向批量傳輸
2) 請求/應答的交易方式
因爲UDP傳輸的不可靠性,在使用netperf時要確保發送的緩衝區大小不大於接收緩衝區大小,不然數據會丟失,netperf將給出錯誤的結果。所以,對於接收到分組的統計不必定準確,須要結合發送分組的統計綜合得出結論。
1.2. Netperf安裝
軟件版本:netperf-2.4.0-rc2
安裝過程:
cp netperf-2.4.0-rc2.tar.gz /root
clip_p_w_picpath002
cd /root //進入root用戶根目錄
[root@localhost ~]# tar -zxvf netperf-2.4.0-rc2.tar.gz //解壓netperf壓縮文件包
clip_p_w_picpath004
[root@localhost ~]# cd netperf-2.4.0-rc2
clip_p_w_picpath006
[root@localhost netperf-2.4.0-rc2]# ./configure //配置netperf所需文件
clip_p_w_picpath008
[root@localhost netperf-2.4.0-rc2]# make //編譯生成二進制包
clip_p_w_picpath010
[root@localhost netperf-2.4.0-rc2]# make install//安裝
clip_p_w_picpath012
這時netperf安裝完成。
1.3. Netperf使用
Netperf 基於C/S模式,須要在測試源端運行netsever,而本地運行netperf進行鏈接並測試。
1.3.1. Netperf全局命令參數介紹:
netperf [global options]-- [test-specific options]
-H host :指定遠端運行netserver的server IP地址。
-l testlen:指定測試的時間長度(秒)
-t testname:指定進行的測試類型,包括TCP_STREAM,UDP_STREAM,TCP_RR,TCP_CRR,UDP_RR,如下測試中202.192.75.117做爲server端。
1.3.2. TCP_STREAM
Netperf缺省狀況下進行TCP批量傳輸,即-t TCP_STREAM。測試過程當中,netperf向netserver發送批量的TCP數據分組,以肯定數據傳輸過程當中的吞吐量
[root@localhost ~]# netperf -H 202.192.75.117
TCP STREAM TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 202.192.75.117 (202.192.75.117) 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 10.02 2569.29
-H,指定server端爲202.192.75.117
顯示結果中,Recv Socket Size爲server端接收數據的Socket大小87380字節
Send Socket Size 爲本地發送數據的Socket大小 16384字節
Elapsed time 爲測試使用時間10.02秒
Throughput,網絡吞吐量,即網絡中剩餘帶寬 2569.29M每秒
1.3.3. UDP_STREAM
UDP_STREAM用來測試進行UDP批量傳輸時的網絡性能,經過選項-t UDP_STREAM進行測試。
[root@localhost ~]# netperf -t UDP_STREAM -H 202.192.75.117 -- -m 1024
UDP UNIDIRECTIONAL SEND TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 202.192.75.117 (202.192.75.117) port 0 AF_INET
Socket Message Elapsed Messages
Size Size Time Okay Errors Throughput
bytes bytes secs # # 10^6bits/sec
109568 1024 10.01 146364 0 119.83
109568 10.01 54240 44.41
第一行顯示的是本地系統的發送統計,這裏的吞吐量表示netperf向本地socket發送分組的能力爲119.83M。第二行顯示的就是遠端系統接收的狀況。
這裏特別注意的是咱們發送測試分組的大小不能大於socket的發送與接收緩衝大小。爲此,咱們能夠用過-m 選項指定發送測試分組大小爲1024字節。
1.3.4. TCP_RR
TCP_RR用於測試在一次TCP鏈接中,兩個節點間TCP交易的次數。例如數據庫應用。
[root@localhost ~]# netperf -t TCP_RR -H 202.192.75.117
TCP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 202.192.75.117 (202.192.75.117) port 0 AF_INET
Local /Remote
Socket Size Request Resp. Elapsed Trans.
Send Recv Size Size Time Rate
bytes Bytes bytes bytes secs. per sec
16384 87380 1 1 10.01 4766.62
16384 87380
這個模式輸出的結果也是由兩行組成。第一行顯示本地系統的狀況,第二行顯示的是遠端系統的信息。Trans Rate per sec表示在本次測試中兩個節點間每秒數據交易的次數。這裏咱們能夠得知在本地與202.192.75.117兩個節點中,每秒每一個TCP鏈接的數據交易次數平均爲4766.62次。
咱們能夠經過如下局部選項設置相關內容。
-r req,resp 設置request和reponse分組的大小
-s size 設置本地系統的socket發送與接收緩衝大小
-S size 設置遠端系統的socket發送與接收緩衝大小
-D 對本地與遠端系統的socket設置TCP_NODELAY選項
1.3.5. TCP_CRR
TCP_CRR,指的是每次數據交易都創建新的鏈接,例如HTTP
[root@localhost ~]# netperf -t TCP_CRR -H 202.192.75.117
TCP Connect/Request/Response TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 202.192.75.117 (202.192.75.117) port 0 AF_INET
Local /Remote
Socket Size Request Resp. Elapsed Trans.
Send Recv Size Size Time Rate
bytes Bytes bytes bytes secs. per sec
16384 87380 1 1 10.01 1658.27
16384 87380
在本地與202.192.75.117兩個節點中,每秒基於TCP_CRR的平均數據交易次數爲1658.27次。
1.3.6. UDP_RR
UDP_RR指的是,在基於UDP鏈接的數據交易狀況。
[root@localhost ~]# netperf -t UDP_RR -H 202.192.75.117
UDP REQUEST/RESPONSE TEST from 0.0.0.0 (0.0.0.0) port 0 AF_INET to 202.192.75.117 (202.192.75.117) port 0 AF_INET
Local /Remote
Socket Size Request Resp. Elapsed Trans.
Send Recv Size Size Time Rate
bytes Bytes bytes bytes secs. per sec
109568 109568 1 1 10.00 4917.31
109568 109568
這裏,能夠看出咱們使用請求及迴應報文大小都爲1個字節下的UDP鏈接,平均每秒數據交易次數爲4917.31次。
1.4. 結言
經過netperf工具的各類模式,咱們已經可以對咱們當前網絡吞吐量、延遲、網絡設備緩衝區等潛在的問題進行有效的監測,爲咱們網絡擁塞、網絡故障及網絡升級等提供準確有效的數據支持。
相關文章
相關標籤/搜索