您好,登錄后才能下訂單哦!
如何進行Ontology VBFT共識算法性能測試報告,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
本次對本體的性能測試,代碼全部來自本體GitHub開源代碼,此版本沒有加入并行處理和分片。所用的硬件環境是普通的云服務節點。
本次測試是在VBFT共識下,7共識節點的單鏈測試,不包含并行處理、分片 和 FPGA硬件加速 等官方還未開源的優化點。
TPS(Transaction per Second)每秒交易處理筆數,反映了系統在同一時間內能處理業務的最大能力,是區塊鏈的核心性能指標之一。Apache JMeter是Apache組織開發的基于Java的壓力測試工具, 本文使用JMeter對Ontology 0.8.2 版本做壓測,將測試過程及結果記錄如下。相關測試工具及使用方法見:https://github.com/qiluge/VBFT_TPS_TEST
沒有加入分片、并行處理 和 FPGA硬件加速 的前提下,本次共進行了10次測試,取10次結果的平均值,最終結果如下。此測試結果在公鏈中處于較高水準。
交易數:300萬 發送速率:6000/s 發送時間:500s 落賬成功率:99.1% 塊數:40 處理時間:562s TPS:5341 峰值:5536
注1:TPS = 成功交易數/(完成落賬時間 - 開始發送交易時間)
注2:峰值 即是 系統穩定運行 所能達到的最大TPS,算法為 取落賬過程中 中間時段的 一到兩分鐘之內的落賬筆數,除以落賬時間。
每個節點為微軟云虛擬機,共7個共識節點,硬件配置如下:
CPU:單節點 8核 CPU,具體信息如下:
名稱:Intel(R) Xeon(R) CPU E5-2673 v3 主頻:2.40GHz 緩存大小:30720 KB 核數:8
內存:單節點27G
硬盤:固態硬盤,大小50G,讀寫速率限制不超過25MB/s
軟件配置如下:
系統信息:ubuntu 16.04.4 LTS
Go環境:go1.9.3 linux/amd64
Ontology版本為0.8.2,啟動命令為:
./ontology --maxtxinblock 120000 --gaslimit 0 --rest --localrpc --disableeventlog --loglevel 2
使用go-sdk構造一批不同的ONT轉賬交易,確保其hash不一樣,每筆交易的轉賬數額為1;
啟動ontology測試網絡,共7個節點;
查詢交易發送的目標賬戶的余額,并記錄;
使用JMeter將這批交易發送到測試網絡上,配置500個線程發送,設置固定吞吐量定時器控制發送速率;記錄開始發送交易時間。
查看節點日志,通過log中numtx觀察落賬交易數量,出現第一個非空塊時記錄時間,發送完畢后,連續出現三個以上的空塊時,可認為交易已經處理完畢,取最后一個非空塊的時間作為落賬結束時間;
查詢交易發送的目標賬戶的余額,并記錄;
計算余額差值,除以測試時間,即可得TPS。
線程數與發送次數配置:
LoopController.loops=6000,ThreadGroup.num_threads=500;前者代表一個線程發送的交易的次數,后者代表開啟的線程數,二者相乘得出的值為發送的交易數,此處為3,000,000
發送速率配置: 使用固定吞吐量定時器配置交易發送速率,此處為每分鐘360,000,即每秒發送6,000筆交易,見下圖:
可以看出共發送了3,000,000筆交易,耗時00:08:19,即499秒,則交易發送速度為6012筆/s
目前用7個節點測試,TPS達到了5300以上。
測試過程中,使用不同的發送速率,不同的交易量進行測試,測試結果TPS都達到了5000以上。最終的測試結果,也就是VBFT的峰值TPS,超過了5500,達到5536左右。
看完上述內容,你們掌握如何進行Ontology VBFT共識算法性能測試報告的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。