netperf manual

前文:
之前就有寫過netperf相關(guān)腳本,但一直對其不夠了解,這次需要為騰訊寫個網(wǎng)絡(luò)壓力腳本,趁此多了解了解。
經(jīng)過:
netperf是一款能夠測試網(wǎng)絡(luò)基準(zhǔn)性能的工具。能夠用來測試單向的吞吐量以及端對端的延遲。
netperf [global options] -- [test specific options]
global options:
-4 使用IPV4
-6 使用IPV6
-a 本機發(fā)送或者接收數(shù)據(jù)包的對齊大小,默認是8bytes
-A 遠程機發(fā)送或者接收數(shù)據(jù)包的對齊大小,默認是8bytes
-c [rate] 結(jié)果中輸出CPU利用率以及Service Demand的用時
-C [rate] 與-c效果一致,應(yīng)用于remote端
-d 輸出debug信息
-D 輸出臨時結(jié)果,但必須修改--enable-demo=yes,重新編譯才能生效
-f G|M|K|g|m|k 設(shè)置輸出中的Throughout的單位
-F fill_file 用于預(yù)填充發(fā)送buffer,避免send buffer被容易壓縮的數(shù)據(jù)填充,例如0,1
-h 幫助頁面
-H name|ip remote IP
-i max,min 為達到當(dāng)前可信水平所設(shè)置的最大最小迭代數(shù)(cpu利用率瞬間提高一個檔)
-I lvl,[intvl] 設(shè)置可信水平(默認99)和可信間隔(默認10)
-l testlen 測試時間,默認10s,這里需要注意的是,默認單位是s,但是也支持S,M,m, H,h。d|D按理說也應(yīng)該支持,但一來沒試,二來沒看源碼就不胡說了。
-L name|ip, 指明本地測試是跟那個位置在通信,默認是0.0.0.0
-o sizespec 設(shè)置-a設(shè)置的size的offset
-O sizespec 同-o
-p portnum 指定端口
-P 0|1 為1時顯示上面一行標(biāo)題,為0時不顯示
-s seconds 發(fā)送數(shù)據(jù)之前停止seconds秒
-t testname 定義測試類型,支持TCP_STREAM等
-v level 跟-P功能類似,區(qū)別在于,-P 0顯示的是下面的數(shù)據(jù),-v 0 只顯示最后的吞吐

大致理了下netperf的參數(shù),現(xiàn)在來看看網(wǎng)絡(luò)測試的需求。
網(wǎng)絡(luò)性能測試就是看五個指標(biāo):

  • 可用性
  • 響應(yīng)時間
  • 網(wǎng)絡(luò)利用率
  • 網(wǎng)絡(luò)吞吐量
  • 網(wǎng)絡(luò)帶寬容量
    可用性:
    可用性這塊很簡單,首要任務(wù)就是測試網(wǎng)路通不通,這塊直接ping測試,需要注意的是,網(wǎng)絡(luò)設(shè)備跟根據(jù)包的大小設(shè)置多個不同大小的包緩沖區(qū),因此測試時,有必要使用ping -s size,設(shè)置不同size的情況下,網(wǎng)路是否聯(lián)通。
    響應(yīng)時間:
    一次網(wǎng)絡(luò)請求到響應(yīng),就是一個響應(yīng)時間。響應(yīng)時間太大,就會存在卡頓現(xiàn)象。
    網(wǎng)絡(luò)利用率:
    使用時間占總時間的比率。同一時刻只能有一個報文在使用。
    網(wǎng)絡(luò)吞吐量:
    網(wǎng)絡(luò)吞吐量是指在某個時刻,在網(wǎng)絡(luò)中的兩個節(jié)點之間,提供給網(wǎng)絡(luò)應(yīng)用的剩余帶寬。
    網(wǎng)絡(luò)帶寬容量:
    網(wǎng)絡(luò)兩個節(jié)點間的最大可用帶寬。

三種從網(wǎng)絡(luò)獲取數(shù)據(jù)的方式:

  1. 通過snmp協(xié)議直接到網(wǎng)絡(luò)設(shè)備中獲取,如net-snmp工具
  2. 偵聽相關(guān)的網(wǎng)絡(luò)性能數(shù)據(jù),典型的工具是tcpdump
  3. 自行產(chǎn)生相應(yīng)的測試數(shù)據(jù),如netperf

這次我們使用netperf
netperf基于TCP/UDP進行傳輸。有兩種測試模式:批量數(shù)據(jù)傳輸(bulk data transfer)模式和請求/應(yīng)答(request/reponse)模式。
netperf以client/server方式工作,server端是netserver,client端是netperf。client端與server端直接,首先建立一個控制連接,傳遞有關(guān)測試配置以及測試結(jié)果的信息。控制連接建立之后,再建立一個測試連接,用來進行網(wǎng)絡(luò)測試。
TCP網(wǎng)絡(luò)性能:
netperf可以模擬三種tcp流量模式:
1.單個tcp連接,批量傳輸大量數(shù)據(jù)
2.單個tcp連接,client請求,server應(yīng)答的方式
3.多個tcp連接,每個連接中一對請求/應(yīng)答的方式
UDP網(wǎng)絡(luò)性能:
netperf可以模擬兩種udp流量模式:
1.從client到server的單向批量傳輸
2.請求/應(yīng)答的交易方式
由于udp傳輸?shù)牟豢煽啃裕_保發(fā)送的緩沖區(qū)大小不大于接收的緩沖區(qū)大小。

再后就是根據(jù)實際使用情況,選擇-t模式了
后續(xù)把自己實際使用的不上來。
參考1
參考2

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,502評論 19 139
  • 1、TCP狀態(tài)linux查看tcp的狀態(tài)命令:1)、netstat -nat 查看TCP各個狀態(tài)的數(shù)量2)、lso...
    北辰青閱讀 9,700評論 0 11
  • Simon_s閱讀 235評論 0 0
  • 熱愛寫作的小伙伴們,你是否也一直在堅持習(xí)作,經(jīng)常與寫作為伴?它是否已成為你生活中的一部分?它是否與你的生活息息相關(guān)...
    陽光萬丈閱讀 675評論 11 25
  • 其實我也很忙,只不過在你面前沒有表現(xiàn)出來,或許你永遠都不會知道只有面對你的時候我才不是那么忙。
    噯晴閱讀 155評論 0 0

友情鏈接更多精彩內(nèi)容