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