軟體介紹: netperf是惠普公司開源的一款針對網路性能的測試工具,主要基於TCP或UDP的傳輸。根據應用的不同,可以進行批量數據傳輸(bulk data transfer)模式和請求/應答(request/reponse)模式的性能測試。 netperf以Client/Server方式工作。Se ...
軟體介紹:
netperf是惠普公司開源的一款針對網路性能的測試工具,主要基於TCP或UDP的傳輸。根據應用的不同,可以進行批量數據傳輸(bulk data transfer)模式和請求/應答(request/reponse)模式的性能測試。
netperf以Client/Server方式工作。Server端是netserver,用來偵聽來自client端的連接,Client端是netperf,用來向Server發起網路測試。在Client與Server之間,首先建立一個控制連接,傳遞有關測試配置的信息,以及測試的結果;在控制連接建立並傳遞了測試配置信息以後,Client與Server之間會再建立一個測試連接,來回傳遞特殊的流量模式,用來測試網路的性能。
netperf測試結果反映了一個系統能夠以多快的速度向另外一個系統發送數據,以及另外一個系統能夠以多塊的速度接收數據。
官方網址:
https://hewlettpackard.github.io/netperf/
https://github.com/HewlettPackard/netperf
下載最新版本:(2019-8-14)
curl -L https://codeload.github.com/HewlettPackard/netperf/zip/netperf-2.7.0 -o netperf.zip
cd netperf
./configure
make
cd src
找到可執行的二進位文件,即可以使用了。
網上參考的例子也很多,我就不重覆寫了:
https://www.cnblogs.com/jacklikedogs/p/4331891.html
https://www.ibm.com/developerworks/cn/linux/l-netperf/index.html (較為優秀的教程,推薦參考)
https://www.jianshu.com/p/42e0fa6bf79c
https://blog.csdn.net/u011198997/article/details/84342947
網路測試的五項指標:
- 可用性(availability):可使用ping 命令測試網路是否通暢;
- 響應時間(response time):ping 命令echo request/reply 一次往返所花費的時間;
- 網路利用率(network utilization):指的是網路使用時間和空閑時間的比例;
- 網路吞吐量(network throughput):在網路中兩個節點之間,提供給網路應用的剩餘帶寬,測試網路吞吐的時候,需要在一天的不同時刻來進行測量;
- 網路帶寬容量(network bandwidth capacity):與吞吐不同,網路帶寬容量指的是在網路兩個節點之間的最大可用帶寬。該值是由網路設備本身的能力決定的。
收集網路性能數據的方式:
- 使用snmp協議直接到網路設備中獲取;
- 偵聽相關的網路性能數據,典型的工具為tcpdump;
- 自行產生相應的測試數據,使用netperf工具等;
TCP網路性能測試:
由於tcp協議能夠提供端到端的可靠的傳輸,被大量網路應用程式使用。但是建立可靠的連接需要付出一定的代價,如維護連接,控制數據有序傳遞等都會消耗一定的帶寬。
netperf提供的三種tcp模式:
- 單個tcp連接,批量傳輸大量數據;
- 單個tcp連接,client請求/server 應答模式;
- 多個tcp連接,每個連接中一對請求應答 transaction 方式;
UDP網路性能測試:
udp不能保持可靠傳輸,所以使用UDP不能保證傳輸的可靠性,所以UDP應用需要自行跟蹤每個發出的分組,並重發丟失的分組。
netperf 提供兩種udp流量測試模式:
- 從client 到 server 的單向批量傳輸;
- 請求應答模式
由於UDP傳輸的不可靠性,使用netperf時,要確保發送緩衝區不大於接收緩衝區,否則數據會丟失。
軟體使用:
啟動netserver 使用特定埠:
-D 表示以非deamon 進程運行
-4 表示測試的為ipv4網路;
-p 表示使用特定埠;
啟用netperf 軟體:
netperf 軟體特定格式:netperf [global options] -- [test-specific options]
netperf命令行參數可以分為兩大類:全局命令行參數和測試相關的局部參數,兩者之間通過--分隔;
常用命令行參數:
-H host :指定遠端運行netserver的server IP地址。
-l testlen:指定測試的時間長度(秒)
-t testname:指定進行的測試類型,包括TCP_STREAM,UDP_STREAM,TCP_RR,TCP_CRR,UDP_RR
資源來源自網路,如果您有什麼問題,可以留言交流。更多內容,請關註 cnblogs.com/xuyaowen