国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

輔助性能優(yōu)化——長(zhǎng)安鏈性能分析工具原理及用法

這篇具有很好參考價(jià)值的文章主要介紹了輔助性能優(yōu)化——長(zhǎng)安鏈性能分析工具原理及用法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

如何提升區(qū)塊鏈系統(tǒng)性能是很多開(kāi)發(fā)者都會(huì)關(guān)注的事,但是有些對(duì)區(qū)塊鏈并非十分熟悉的開(kāi)發(fā)者可能會(huì)感到?jīng)]有頭緒。長(zhǎng)安鏈提供了性能分析工具幫助開(kāi)發(fā)者梳理系統(tǒng)耗時(shí),優(yōu)化系統(tǒng)性能。下面對(duì)長(zhǎng)安鏈性能分析工具原理及使用進(jìn)行介紹。

一、 概述

time_counter.sh是長(zhǎng)安鏈性能分析工具,可用于分析TBFT共識(shí)下,一輪完整共識(shí)過(guò)程中各個(gè)階段的耗時(shí)情況,幫助用戶(hù)了解底鏈性能。采用此性能分析工具,需要確保txpool、core、consensus、storage模塊開(kāi)啟INFO級(jí)別的日志。

二、一輪共識(shí)過(guò)程

輔助性能優(yōu)化——長(zhǎng)安鏈性能分析工具原理及用法,數(shù)據(jù)庫(kù)

圖 1 一輪共識(shí)流程圖

1、整體流程

整體共識(shí)流程如上圖所示,主要分為四個(gè)階段,分別是Proposal, Prevote, Precommit, Commit,下面分別從共識(shí)主從節(jié)點(diǎn)視角介紹四個(gè)階段的流程。

○?Proposal階段:開(kāi)始新一輪共識(shí)時(shí),會(huì)選舉出新的主節(jié)點(diǎn),主節(jié)點(diǎn)的共識(shí)模塊consensus會(huì)通知核心引擎模塊core構(gòu)造區(qū)塊,共識(shí)模塊收到新的區(qū)塊后,將會(huì)構(gòu)造提案并廣播給其他的從節(jié)點(diǎn),自己則進(jìn)入到prevote階段并廣播prevote投票。

○?Proposal階段:從節(jié)點(diǎn)的共識(shí)模塊consensus收到主節(jié)點(diǎn)廣播的提案后,將會(huì)通知自身的核心引擎模塊core驗(yàn)證并執(zhí)行區(qū)塊,區(qū)塊有效則進(jìn)入到prevote階段并廣播自己的prevote投票。

○?Prevote階段:主節(jié)點(diǎn)和從節(jié)點(diǎn)在prevote階段收到2f+1張prevote投票后,將會(huì)進(jìn)入到precommit階段。

○?Precommit階段:主節(jié)點(diǎn)和從節(jié)點(diǎn)進(jìn)入到precommit階段后,會(huì)構(gòu)造并廣播自己的到precommit投票,并將此時(shí)的共識(shí)狀態(tài)寫(xiě)入wal中,確保重啟時(shí)恢復(fù)到最新的共識(shí)狀態(tài),在收到2f+1張precommit投票后,將會(huì)進(jìn)入到commit階段。

○?Commit階段:主節(jié)點(diǎn)和從節(jié)點(diǎn)進(jìn)入到commit階段后,會(huì)通知自身的核心引擎模塊core提交區(qū)塊,core調(diào)用存儲(chǔ)模塊將區(qū)塊寫(xiě)入數(shù)據(jù)庫(kù),并通知共識(shí)模塊進(jìn)入下一高度區(qū)塊的共識(shí)流程。

2、具體操作

此部分細(xì)化了上述整體流程中各個(gè)階段的具體操作,性能分析工具會(huì)根據(jù)關(guān)鍵日志檢索出各具體操作的耗時(shí)情況。

(1)主節(jié)點(diǎn)core模塊構(gòu)造區(qū)塊和執(zhí)行交易GenBlock

○ fetch: 交易池檢索一批交易用于構(gòu)造區(qū)塊;

○ prune:交易池調(diào)用存儲(chǔ)模塊進(jìn)行增量防重;

○ cache:在區(qū)塊剪裁模式下,交易池會(huì)緩存fetch的交易,以便從節(jié)點(diǎn)缺失這些交易時(shí),可向主節(jié)點(diǎn)請(qǐng)求。

○ filter:布谷鳥(niǎo)對(duì)txId進(jìn)行格式和時(shí)間校驗(yàn);

○ begin DB transaction:采用sql存儲(chǔ)時(shí),開(kāi)啟一個(gè)事務(wù);

○ new snapshot:執(zhí)行交易前,創(chuàng)建snapshot,作為這個(gè)區(qū)塊執(zhí)行時(shí)的快照;

○ vm:交易并行調(diào)度執(zhí)行和DAG構(gòu)建;

○ finalize block: 計(jì)算區(qū)塊頭中交易默克爾樹(shù)根、讀寫(xiě)集樹(shù)根、DAG樹(shù)根;

(2)主節(jié)點(diǎn)consensus模塊構(gòu)造提案GenProposal

○ signBlock: 計(jì)算區(qū)塊哈希值和對(duì)區(qū)塊簽名;

○ signProposal: 對(duì)提案進(jìn)行簽名;

(3)從節(jié)點(diǎn)consensus模塊驗(yàn)證提案ProcProposal

○ verify:驗(yàn)證主節(jié)點(diǎn)身份和驗(yàn)證提案簽名;

(4)從節(jié)點(diǎn)core模塊驗(yàn)證區(qū)塊和執(zhí)行交易VerifyBlock

○ blockSign: 驗(yàn)證區(qū)塊簽名;

○ vm: 按DAG順序執(zhí)行交易;

○ txVerify:core模塊從交易池取出區(qū)塊中交易和驗(yàn)證交易(對(duì)于區(qū)塊中在交易池的交易只需比對(duì)交易哈希是否一致;對(duì)于區(qū)塊中不在交易池中的交易會(huì)進(jìn)行交易格式、權(quán)限、時(shí)間戳及防重檢查);

○ txRoot:計(jì)算并校驗(yàn)三顆樹(shù)根是否有效;

○ pool:區(qū)塊剪裁模式下,對(duì)區(qū)塊進(jìn)行恢復(fù);

○ consensusCheckUsed: 對(duì)于同步過(guò)來(lái)的區(qū)塊,驗(yàn)證區(qū)塊中QC是否有效;

(5)從節(jié)點(diǎn)Prevote階段

○?從節(jié)點(diǎn)prevote階段主要操作包括構(gòu)造自身的prevote投票并對(duì)收到的2f+1張prevote投票進(jìn)行驗(yàn)簽,及投票的網(wǎng)絡(luò)廣播

(6)主從節(jié)點(diǎn)Precommit階段

○?主從節(jié)點(diǎn)precommit階段主要操作包括構(gòu)造自身的precommit投票并對(duì)收到的2f+1張precommit投票進(jìn)行驗(yàn)簽,及投票的網(wǎng)絡(luò)廣播;

○?共識(shí)狀態(tài)寫(xiě)入wal文件:marshalData和marshalEntry為序列化共識(shí)狀態(tài)操作,saveWal為將序列化結(jié)果寫(xiě)入wal文件;

(7)主從節(jié)點(diǎn)提交區(qū)塊CommitBlock

○ check: core模塊驗(yàn)證區(qū)塊高度和區(qū)塊前置哈希是否合法;

○ marshal:DB模塊對(duì)區(qū)塊和交易讀寫(xiě)集進(jìn)行序列化;

○ writeFile:DB模塊序列化結(jié)果寫(xiě)入wal文件;

○ writeCache:DB模塊對(duì)區(qū)塊信息寫(xiě)緩存;

○ writeBatchChan:DB模塊將區(qū)塊信息放入順序?qū)慶hannel;(快速寫(xiě)模式)

○ writeKvDB:DB模塊將區(qū)塊信息寫(xiě)入數(shù)據(jù)庫(kù);(普通寫(xiě)模式)

○ ss:清除snapshot;

○ conf:如果是配置交易則進(jìn)行配置變更;

○ pool:交易池刪除該區(qū)塊中的交易并將旁枝區(qū)塊中的交易重新放回交易池;

○ pubConEvent:對(duì)區(qū)塊中交易事件進(jìn)行通知;

○ filter:將區(qū)塊中交易加入到布谷鳥(niǎo)過(guò)濾器;

○? other:添加監(jiān)控記錄;

(8)其他操作

○?主要是模塊間通過(guò)msgbus交互的操作、主節(jié)點(diǎn)廣播proposal到從節(jié)點(diǎn)接受proposal間的網(wǎng)絡(luò)傳遞等過(guò)程;

○?還有部分操作,底鏈關(guān)鍵日志中并未進(jìn)行記錄;

三、 使用說(shuō)明及分析

1、使用說(shuō)明
(1)??從官網(wǎng)下載性能分析工具,并賦予可執(zhí)行權(quán)限;
(2)??將各個(gè)共識(shí)節(jié)點(diǎn)包含想要分析的區(qū)塊高度范圍的日志拷貝到性能分析工具所在目錄下,并將對(duì)應(yīng)節(jié)點(diǎn)的日志命名為system.log.1, system.log.2, system.log.3,system.log.4等;
(3)??運(yùn)行腳本工具,傳入共識(shí)節(jié)點(diǎn)數(shù)目,起始區(qū)塊高度,結(jié)束區(qū)塊高度;
使用示例:?
./time_counter_2.3.1.sh 4 100 110

2、分析結(jié)果

輔助性能優(yōu)化——長(zhǎng)安鏈性能分析工具原理及用法,數(shù)據(jù)庫(kù)

圖 2 各階段各具體操作耗時(shí)分析結(jié)果

一輪共識(shí)流程整體耗時(shí):?

core_commit_interval = (1)主節(jié)點(diǎn)core模塊GenBlock時(shí)間 + (2)主節(jié)點(diǎn)consensus模塊GenProposal時(shí)間 + (3)從節(jié)點(diǎn)consensus模塊ProcProposal時(shí)間 + (4)從節(jié)點(diǎn)core模塊VerifyBlock時(shí)間 + (5)從節(jié)點(diǎn)prevote階段耗時(shí) + (6)主從節(jié)點(diǎn)precommit階段耗時(shí) + (7)主從節(jié)點(diǎn)core模塊CommitBlock時(shí)間 + (8) 其他操作時(shí)間

重疊時(shí)間說(shuō)明:?

○ txpool_total 是主節(jié)點(diǎn)交易池中fetch、prune、cache三部分時(shí)間的加和;

○ core_gen_fetch 即交易池txpool_total的時(shí)間,core模塊也進(jìn)行了記錄;

○ core_gen_total 是主節(jié)點(diǎn)core模塊構(gòu)造區(qū)塊的整體時(shí)間;

○ consensus_total 是主節(jié)點(diǎn)consensus模塊對(duì)區(qū)塊簽名和構(gòu)造提案的時(shí)間;

○ consensus_proposal 是主節(jié)點(diǎn)proposal階段整體耗時(shí),包括了core模塊構(gòu)造區(qū)塊和consensus模塊構(gòu)造提案的時(shí)間;

○ core_verify_total 是從節(jié)點(diǎn)core模塊驗(yàn)證區(qū)塊和執(zhí)行交易的總時(shí)間;

○ storage_total 是存儲(chǔ)寫(xiě)區(qū)塊和讀寫(xiě)集等信息的總時(shí)間;

○ core_commit_db 即存儲(chǔ)模塊storage_total的時(shí)間,core模塊也進(jìn)行了記錄;

○ core_commit_total 是core模塊提交區(qū)塊的總時(shí)間;

○ core_commit_interval 是此區(qū)塊的一輪共識(shí)總時(shí)間;

文檔鏈接:https://docs.chainmaker.org.cn/v2.3.1/html/dev/性能分析工具.html文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-542815.html

到了這里,關(guān)于輔助性能優(yōu)化——長(zhǎng)安鏈性能分析工具原理及用法的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 后端接口性能優(yōu)化分析

    ??作者簡(jiǎn)介:大家好,我是愛(ài)吃芝士的土豆倪,24屆校招生Java選手,很高興認(rèn)識(shí)大家 ??系列專(zhuān)欄:Spring源碼、JUC源碼 ??如果感覺(jué)博主的文章還不錯(cuò)的話(huà),請(qǐng)??三連支持??一下博主哦 ??博主正在努力完成2023計(jì)劃中:源碼溯源,一探究竟 ??聯(lián)系方式:nhs19990716,加我進(jìn)群

    2024年02月05日
    瀏覽(13)
  • 性能優(yōu)化之影響分析

    性能非常重要,而具體反映到我們的業(yè)務(wù)場(chǎng)景中,可能會(huì)有如下影響: 不利于用戶(hù)留存 站點(diǎn)頁(yè)面的展現(xiàn)速度非常影響用戶(hù)體驗(yàn),很多用戶(hù)會(huì)因等待的不耐而放棄站點(diǎn)。 研究表明,47 % 的消費(fèi)者希望頁(yè)面能夠在 2s 內(nèi)打開(kāi)。 移動(dòng)端的頁(yè)面應(yīng)該在 3 秒鐘內(nèi)完成加載,若超過(guò)這個(gè)時(shí)

    2024年02月06日
    瀏覽(16)
  • Unity性能優(yōu)化分析篇

    Unity性能優(yōu)化分析篇

    性能優(yōu)化是游戲項(xiàng)目開(kāi)發(fā)中一個(gè)重要環(huán)節(jié)。游戲幀率過(guò)低,手機(jī)發(fā)燙, 包體太大,低端機(jī)上跑不起來(lái)等, 這些都需要來(lái)做優(yōu)化,不管過(guò)去,現(xiàn)在,未來(lái),性能優(yōu)化都是永恒的話(huà)題。 而性能優(yōu)化首先要掌握的是性能分析,通過(guò)分析才能發(fā)現(xiàn)問(wèn)題所在。性能分析對(duì)于游戲開(kāi)發(fā)是必

    2024年02月03日
    瀏覽(25)
  • 【萬(wàn)字解析】Webpack 優(yōu)化構(gòu)建性能(分析->優(yōu)化)

    全局安裝 webpack-bundle-analyzer 插件 運(yùn)行 webpack-bundle-analyzer 開(kāi)始打包,需要獲取所有的依賴(lài)模塊 搜索所有的依賴(lài)項(xiàng),這需要占用一定的時(shí)間,即搜索時(shí)間,那么就確定了: 需要優(yōu)化的第一個(gè)時(shí)間就是 搜索時(shí)間 。 解析所有的依賴(lài)模塊(解析成瀏覽器可運(yùn)行的代碼) Webpack 根據(jù)

    2024年01月21日
    瀏覽(48)
  • [MySQL] SQL優(yōu)化之性能分析

    [MySQL] SQL優(yōu)化之性能分析

    ??鍵盤(pán)敲爛,年薪30萬(wàn)?? 目錄 一、索引優(yōu)化 1、索引是什么: 2、索引的數(shù)據(jù)結(jié)構(gòu): 3、索引種類(lèi): 4、sql分析(回表查詢(xún)) 二、定位慢查詢(xún)語(yǔ)句 1、慢查詢(xún)?nèi)罩?2、profile詳情 3、explain執(zhí)行計(jì)劃(重點(diǎn)) 4、查看執(zhí)行頻次 ? 1、索引是什么: 通過(guò)一些約束,快速查詢(xún)到相應(yīng)字段

    2024年02月05日
    瀏覽(84)
  • Unity性能優(yōu)化與分析--GPU

    Unity性能優(yōu)化與分析--GPU

    每一幀,Unity 都需要確定必須渲染哪些對(duì)象,然后創(chuàng)建繪制調(diào)用。繪制調(diào)用是調(diào)用圖形 API 來(lái)繪制對(duì)象(如三角形),而批處理是要一起執(zhí)行的一組繪制調(diào)用。 隨著項(xiàng)目變得更加復(fù)雜,您需要用管線(xiàn)來(lái)優(yōu)化 GPU 的工作負(fù)載。 通用渲染管線(xiàn) (URP) 目前使用單通道前向渲染器將高質(zhì)

    2024年03月15日
    瀏覽(20)
  • PyTorch 模型性能分析和優(yōu)化 - 第 2 部分

    PyTorch 模型性能分析和優(yōu)化 - 第 2 部分

    動(dòng)動(dòng)發(fā)財(cái)?shù)男∈?,點(diǎn)個(gè)贊吧! 這是有關(guān)分析和優(yōu)化在 GPU 上運(yùn)行的 PyTorch 模型主題的系列文章的第二部分。在第一篇文章中,我們演示了使用 PyTorch Profiler 和 TensorBoard 迭代分析和優(yōu)化 PyTorch 模型的過(guò)程以及巨大潛力。在這篇文章中,我們將重點(diǎn)關(guān)注 PyTorch 中由于使用急切執(zhí)行

    2024年02月11日
    瀏覽(27)
  • Unreal Engine 虛幻引擎,性能分析,優(yōu)化(二)

    Unreal Engine 虛幻引擎,性能分析,優(yōu)化(二)

    目錄 一、CPU 性能分析 二、GPU性能分析 三、Memory內(nèi)存使用 一、CPU 性能分析 如渲染線(xiàn)程中出現(xiàn) CPU 受限,原因可能是繪制調(diào)用過(guò)多。這是一個(gè)常見(jiàn)問(wèn)題,美術(shù)師通常會(huì)將繪制調(diào)用進(jìn)行組合,從而減少消耗(如:將多個(gè)墻壁組合為一個(gè)網(wǎng)格體)。實(shí)際消耗存在于多個(gè)區(qū)域中:

    2024年02月05日
    瀏覽(35)
  • PyTorch 模型性能分析和優(yōu)化 - 第 3 部分

    PyTorch 模型性能分析和優(yōu)化 - 第 3 部分

    這 [1] 是關(guān)于使用 PyTorch Profiler 和 TensorBoard 分析和優(yōu)化 PyTorch 模型主題的系列文章的第三部分。我們的目的是強(qiáng)調(diào)基于 GPU 的訓(xùn)練工作負(fù)載的性能分析和優(yōu)化的好處及其對(duì)訓(xùn)練速度和成本的潛在影響。特別是,我們希望向所有機(jī)器學(xué)習(xí)開(kāi)發(fā)人員展示 PyTorch Profiler 和 TensorBoard 等

    2024年02月10日
    瀏覽(37)
  • 冒泡排序:原理、實(shí)現(xiàn)與性能分析

    冒泡排序:原理、實(shí)現(xiàn)與性能分析

    引言 在編程世界中,排序算法是不可或缺的一部分。冒泡排序作為最基本的排序算法之一,雖然其效率并不是最高的,但其實(shí)現(xiàn)簡(jiǎn)單、易于理解的特點(diǎn)使得它成為學(xué)習(xí)和理解排序算法的入門(mén)之選。本文將詳細(xì)介紹冒泡排序的原理、實(shí)現(xiàn)方法以及性能分析,幫助讀者更好地掌握

    2024年02月19日
    瀏覽(26)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包