基于一種區(qū)塊鏈性能測試的TrustedBench通用性平臺介紹
2020年度可信區(qū)塊鏈評測工作即將啟動,為了更好的讓參與測試廠商了解各個測試欄目,并提前做好測前準備工作。團隊將會陸續(xù)針對各個測試欄目發(fā)布介紹文章。本篇主要圍繞性能專項的評測展開說明。
性能專項聚焦底層鏈在壓力環(huán)境下的性能表現(xiàn),目的是測出底層鏈的性能極值,以此為不同規(guī)模應用場景提供參考依據(jù)。
2020年度性能專項測試仍然由可信區(qū)塊鏈提供統(tǒng)一的測試環(huán)境,受測廠商也需遵循一致的配置要求。具體包括受測底層鏈需在測試架構上采用單鏈、單通道、單片;簽名規(guī)則需針對每筆交易進行有效簽名;交易類型構造需統(tǒng)一,其中必選為多賬戶無關聯(lián)的一對一轉(zhuǎn)賬,可選為數(shù)據(jù)大小固定的存證交易類型。針對不同交易類型,會生成各自的性能測試報告。
性能專項的測試報告將會按照不同的測試場景,分別記錄資源監(jiān)控指標與性能數(shù)據(jù)指標。首先測試場景與往年保持一致,分為三類:壓力測試、尖峰沖擊、穩(wěn)定性測試。三者按照每秒發(fā)送交易量與每秒上鏈交易量的比值區(qū)分。比值通過測試工具實時監(jiān)控得出,比值在1上下浮動界定為壓力測試,在2上下浮動界定為尖峰沖擊,對于穩(wěn)定性測試,發(fā)送交易量取壓力測試場景下的20%,且保持長時間運行。同時,各個測試場景分別針對4節(jié)點、16節(jié)點的規(guī)模展開性能測試。受測底層鏈需要在壓力測試場景下取得95%以上的成功率、尖峰沖擊場景下取得75%以上的成功率,穩(wěn)定性測試取得超過95%的成功率,且各場景系統(tǒng)均無崩潰方可通過測試。
各個測試場景均會在測試報告中記錄資源監(jiān)控指標和性能數(shù)據(jù)指標。前者包括各個節(jié)點所在機器的CPU負載與使用率、磁盤IO、網(wǎng)絡帶寬利用率、內(nèi)存使用率等時序數(shù)據(jù)展示,用以反映壓測下各個節(jié)點占用資源情況;后者由可信區(qū)塊鏈自主研發(fā)的性能測試工具TrustedBench測后生成,主要指標數(shù)據(jù)包括交易每秒接收量,代表底層鏈節(jié)點每秒接受的經(jīng)過有效檢驗且返回交易標識的全部交易數(shù)量;交易每秒上鏈量,代表底層鏈每秒達成共識且上鏈成功的交易數(shù)量;交易上鏈成功率,在性能測試結束后,使用總上鏈交易數(shù)量除以總交易發(fā)送數(shù)量計算得出;交易上鏈平均延遲,計算全部交易從交易發(fā)送開始至上鏈成功對應的鏈上時間戳之間的平均延遲時間,以及其他指標供評估參考。
參與性能專項測試的廠商,均需要適配性能測試工具TrustedBench。工具在2019年可信區(qū)塊鏈峰會上正式發(fā)布,TrustedBench作為區(qū)塊鏈性能測試的通用性平臺,支持集群化壓力機部署、提供圖形化用戶配置界面、采用HTTP協(xié)議非侵入式與底層鏈適配連接、發(fā)送壓力與報表生成分階段執(zhí)行等方式實現(xiàn)。
如上圖所示TrustedBench整體運行流程圖分為準備階段、發(fā)送階段、生成報表三部分。準備階段包括批量生成測試賬戶,生成合法簽名的交易體;發(fā)送階段將前序準備的交易體遍歷發(fā)送,同時對發(fā)送實時監(jiān)控,供區(qū)分不同測試場景;最后生成報表,當交易全部發(fā)送完畢后,事后通過遍歷交易標識,查詢每筆交易的鏈上結果,匯總并生成具有多維度指標的性能數(shù)據(jù)報告。
TrustedBench通過HTTP協(xié)議,抽離出一般區(qū)塊鏈系統(tǒng)必備的接口,不需要單獨針對不同的受測鏈開發(fā)Adapter,具有極強的通用性。受測廠商測前僅需準備相應的接口即可。具體參考附錄。
下面介紹性能專項的測試流程,可信區(qū)塊鏈評測體系各測試項在整體上遵循一致的測試環(huán)節(jié),如下圖所示。本文則主要介紹執(zhí)行測試環(huán)節(jié)。
首先受測的底層鏈需完成基礎功能項的測試工作,滿足區(qū)塊鏈系統(tǒng)基本功能點的實現(xiàn)要求。第二步是廠商適配測試工具TrustedBench成功后進入正式測試環(huán)節(jié)。2020年度性能專項的正式測試時段初步定為6月初至9月初。每家正式測試時間大致為3 - 5天。最終的測試報告將會在測后一周內(nèi)收集完畢。
注:2020年度性能專項提供的統(tǒng)一測試環(huán)境為更貼近真實的使用場景,計劃由原局域網(wǎng)機房環(huán)境遷移至跨機房、跨地域的云環(huán)境。