標籤:install 計算 輸送量 大小 服務 size 名稱 模式 串連
Netperf測試技巧
1.概況
Netperf是一種網路效能的測量工具,主要針對基於TCP或UDP的傳輸。Netperf根據應用的不同,可以進行不同模式的網路效能測試,即批量資料轉送(bulk data transfer)模式和請求/應答(request/reponse)模式。Netperf測試結果所反映的是一個系統能夠以多快的速度向另外一個系統發送資料,以及另外一個系統能夠以多塊的速度接收資料。
Netperf工具以client/server方式工作。server端是netserver,用來偵聽來自client端的串連,client端是netperf,用來向server發起網路測試。在client與server之間,首先建立一個控制串連,傳遞有關測試組態的資訊,以及測試的結果;在控制串連建立並傳遞了測試組態資訊以後,client與server之間會再建立一個測試連接,用來來回傳遞著特殊的流量模式,以測試網路的效能。
2.安裝Netperf
(1)運行命令下載Netperf
wget -c "https://codeload.github.com/HewlettPackard/netperf/tar.gz/netperf-2.5.0" -O netperf-2.5.0.tar.gz |
(2)運行以下命令安裝Netperf
tar -zxvf netperf-2.5.0.tar.gz cd netperf-netperf-2.5.0 ./configure make make install |
注意:
A:如果在步驟(1)下載失敗,直接拷貝地址到瀏覽器,下載到本地,然後通過命令將本地檔案拷貝到伺服器。命令如下:
B:如果./configure出錯,可能是受許可權的問題,將命令修改為:
./configure --prefix=指定目錄 |
C:伺服器之間傳遞檔案命令如下:
(3)驗證安裝是否成功。運行如下命令:
3.Netperf命令列參數
netperf的命令列參數可以分為兩大類:全域命令列參數、測試相關的局部參數,兩者之間使用--分隔:
netperf [global options]-- [test-specific options] |
4.測試網路效能
Netperf 安裝完成後,會產生 2 個工具:netserver 和 netperf
主要參數如下:
工具名稱 |
工具說明 |
主要參數 |
參數說明 |
netserver |
接收端工具(server 端) |
-p |
連接埠號碼 |
netperf |
發送端工具(client 端) |
-H |
指定 ECS 執行個體的 IP 位址。 |
-p |
指定 ECS 執行個體的連接埠。 |
-l |
指定已耗用時間。 |
-t |
TCP_STREAM 或 UDP_STREAM。建議使用 UDP_STREAM。 |
-m |
指定資料包大小。
測試 bps(bit per second)時,該值為 1400。 |
4.1測試批量(bulk)網路流量的效能
根據使用傳輸協議的不同,批量資料轉送又分為TCP批量傳輸和UDP批量傳輸
(1)TCP_STREAM
Netperf預設情況下進行TCP批量傳輸,即-t TCP_STREAM。測試過程中,netperf向netserver發送批量的TCP資料分組,以確定資料轉送過程中的輸送量。
在測試機內啟動 netserver
陪練機內啟動 netperf
./netperf -H 10.87.216.55 -l 60 TCP STREAM TEST to 10.87.216.56 |
測試結果如下:
Recv Send Send Socket Socket Message Elapsed Size Size Size Time Throughput bytes bytes bytes secs. 10^6bits/sec 87380 65536 65536 60.00 9034.56 |
(2) UDP_STREAM
UDP_STREAM用來測試進行UDP批量傳輸時的網路效能。需要特別注意的是,此時測試分組的大小不得大於socket的發送與接收緩衝大小。
陪練機啟動:
./netperf -t UDP_STREAM -H 10.87.216.55 -l 60 UDP UNIDIRECTIONAL SEND TEST to 10.87.216.56 |
測試結果如下:
Socket Message Elapsed Messages Size Size Time Okay Errors Throughput bytes bytes secs # # 10^6bits/sec 212992 65507 60.00 2257105 0 19713.49 16777216 60.00 1549396 13532.38 |
UDP是不可靠的傳輸協議,發送出去的分組數量不一定等於接收到的分組數量。
4.2測試請求/應答(request/response)網路流量的效能
另一類常見的網路流量類型是應用在client/server結構中的request/response模式。在每次交易(transaction)中,client向server發出小的查詢分組,server接收到請求,經處理後返回大的結果資料。
(1)TCP_RR
TCP_RR方式的測試對象是多次TCP request和response的交易過程,但是它們發生在同一個TCP串連中,這種模式常常出現在資料庫應用中。資料庫的client程式與server程式建立一個TCP串連以後,就在這個串連中傳送資料庫的多次交易過程。
./netperf -t TCP_RR -H 10.87.216.55 TCP REQUEST/RESPONSE TEST to 10.87.216.56 |
測試結果如下:
Socket Size Request Resp. Elapsed Trans. Send Recv Size Size Time Rate bytes Bytes bytes bytes secs. per sec 65536 87380 1 1 10.01 25258.33 65536 87380 |
(2)TCP_CRR
與TCP_RR不同,TCP_CRR為每次交易建立一個新的TCP串連。最典型的應用就是HTTP,每次HTTP交易是在一條單獨的TCP串連中進行的。因此,由於需要不停地建立新的TCP串連,並且在交易結束後拆除TCP串連,交易率一定會受到很大的影響。
./netperf -t TCP_CRR -H 10.87.216.55 TCP Connect/Request/Response TEST to 10.87.216.56 |
測試結果如下:
Socket Size Request Resp. Elapsed Trans. Send Recv Size Size Time Rate bytes Bytes bytes bytes secs. per sec 65536 87380 1 1 10.02 9024.28 65536 87380 |
(3)UDP_RR
UDP_RR方式使用UDP分組進行request/response的交易過程,由於沒有TCP串連所帶來的負擔,所以交易率一定會有相應的提升。
./netperf -t UDP_RR -H 10.87.216.55 UDP REQUEST/RESPONSE TEST to 10.87.216.56 |
測試結果如下:
Socket Size Request Resp. Elapsed Trans. Send Recv Size Size Time Rate bytes Bytes bytes bytes secs. per sec 212992 16777216 1 1 10.00 25537.90 212992 16777216 |
Netperf測試技巧