KlaytnStateTrieCacheSeries#1:?確認產生Cache問題的原因
Klaytn為了提高區塊鏈平臺的性能,做了許多方面的努力。我們將通過下列文章介紹statetriecache性能改善過程。
??確認Cache問題的原因
??尋找最佳的Cache
??計算Statetriecachemiss
??進行?CacheSizeTuning
本篇將介紹進行Klaytn有關測試時出現的問題以及這些問題的來源-Go語言GC(GarbageCollector)。在進行Klaytn有關測試時,出現了下列問題。
<imgalt=""class="tuvhyaj-kxfx"?src="https://miro.medium.com/max/964/0*KSFKadBeRExUlkA6"width="482"height="321"srcSet="https://miro.medium.com/max/552/0*KSFKadBeRExUlkA6276w,https://miro.medium.com/max/964/0*KSFKadBeRExUlkA6482w"sizes="482px"/>
Web3實物收藏平臺Collector Crypt完成種子輪融資:2月10日消息,Web3 實物收藏平臺 Collector Crypt 宣布完成種子輪融資,具體金額暫未披露。本輪融資由 GSR、Big Brain Holdings、FunFair Ventures、Genesis Block Ventures、Master Ventures Investment Management、StarLaunch 和 Telos 參投。
Collector Crypt 使用完全可組合的區塊鏈基礎設施,將知名品牌、評級公司、實體金庫和去中心化 Web3 市場結合起來為用戶提供低風險收藏解決方案,其原生 Token COLL 具有折扣、獎勵分發和治理等實效。[2023/2/10 11:59:34]
利用Prometheus提供的API測試內存使用量
在Klaytnbinary中,以3500TPS處理transaction時,大約需要用到100G的內存。我們為了確認具體是哪里在消耗大量內存,利用Go語言所提供的內存分析工具,進行了確認。
??gotoolpprofcn-mem0.prof
File:kcn
BuildID:7b45b11c163a99518095ffb64083e4aa61fd321f
Type:inuse_space
Time:Mar26,2020at8:56am(KST)
Enteringinteractivemode(type"help"forcommands,"o"foroptions)
數據:近24小時全網爆倉2977.4萬美元:金色財經報道,據Coinglass數據,近24小時全網爆倉2977.4萬美元,其中以太坊爆倉356.26萬美元。[2022/11/19 22:06:41]
(pprof)top
Showingnodesaccountingfor41.91GB,96.33%of43.50GBtotal
Dropped382nodes(cum<=0.22GB)
Showingtop10nodesoutof77
?flatflat%sum%cumcum%
?30GB68.97%68.97%30GB68.97%github.com/allegro/bigcache/queue.NewBytesQueue
?5.65GB12.98%81.95%5.65GB12.99%github.com/allegro/bigcache.(*cacheShard).set
?1.53GB3.52%85.47%1.53GB3.52%reflect.New
?1.25GB2.87%88.35%2.60GB5.97%github.com/klaytn/klaytn/ser/rlp.decodeBigInt
通過內存分析工具,我們可以看到每個部分所消耗的內存。在上述結果中,可以通過?Showingnodesaccountingfor41.91GB,96.33%of43.50GBtotal看到kcnbinary占了43.5GB,還可以看到其中的96.33%,即41.91GB具體用在哪里。不僅如此,通過30GB68.97%github.com/allegro/bigcache/queue.NewBytesQueue,可以看到有30GB(68.97%)用于bigcache上。
美國商品期貨交易委員會主席:加密危機是“足以推動國會行動的”:11月15日消息,美國商品期貨交易委員會主席表示,加密危機是“足以推動國會行動的”。
此前消息,美國商品期貨交易委員會委員貝赫納姆表示,CFTC對FTX“采取了一切必要的預防措施”。FTX“提高了國會立法的緊迫性”。(金十)[2022/11/15 13:05:51]
??
這兩個測試結果中,我們發現了問題。根據Prometheus所提供的內存使用library,kcn大約占了100GB,但內存分析結果(43.50GBtotal)表明,kcnbinary只占了?43.5GB。我們無法確認其余56.5GB(=100GB-43.5GB)的內存去了哪里。?
于是我們猜測應該是Bigcache占據了大部分內存。為了確認Bigcache是否占據了內存,我們在相同環境的2臺服務器上設置了不同的cachesize進行測試,設置分別為30GB和0GB。2臺服務器的top和內存分析結果如下。
(Top命令結果是GiB,Prometheus所提供的library的結果是GB,兩者為相同的量)
Cypresssynctest
AWSInstance:m5.8xlarge
memorysize:128G
cachesize:30G,0G
Ripple在巴西推出加密按需流動性服務:金色財經報道,Ripple與拉丁美洲數字銀行Travelex達成合作,在巴西推出加密按需流動性(ODL)服務,該產品最初計劃允許巴西和墨西哥之間法定貨幣的轉移和交易,后續也會將該服務擴展到美國和亞洲。(Coindesk)[2022/8/19 12:35:21]
<imgalt=""class="tuvhyaj-kxfx"src="https://miro.medium.com/max/1484/1*BUBXxboSlBArnNSfLo4KDw.png"width="742"height="366"srcSet="https://miro.medium.com/max/552/1*BUBXxboSlBArnNSfLo4KDw.png276w,https://miro.medium.com/max/1000/1*BUBXxboSlBArnNSfLo4KDw.png500w"sizes="500px"/>
<imgalt=""class="tuvhyaj-kxfx"src="https://miro.medium.com/max/1484/1*KydRE8pnP0G5-3s5h9KVSw.png"width="742"height="366"srcSet="https://miro.medium.com/max/552/1*KydRE8pnP0G5-3s5h9KVSw.png276w,https://miro.medium.com/max/1000/1*KydRE8pnP0G5-3s5h9KVSw.png500w"sizes="500px"/>
泰國央行行長:不急于部署CBDC:5月27日消息,由于存在大量可行的在線支付替代方案,泰國銀行(BoT)暫停其中央銀行數字貨幣(CBDC)計劃。
泰國央行行長Sethaput Suthiwartnarueput在2022年世界經濟論壇上接受采訪時表示,他認為推出CBDC的必要性并不那么緊迫。因此,泰國央行表示,泰國銀行將在2022年第四季度繼續進行零售CBDC公開試驗。但是,這將是小規模的,金融機構將測試存款、取款和轉賬。
Suthiwartnarueput對Promptpay和其他的二維碼支付等現有在線支付方式表示滿意。他還聲稱,由于智能合約,使用區塊鏈技術可能會導致“意想不到的后果”和設計問題。(Beincrypto)[2022/5/27 3:45:58]
top命令結果(左:cache30G;右:cache0GB)
<imgalt=""class="tuvhyaj-kxfx"src="https://miro.medium.com/max/2156/1*pKdGJgwuIBTPgAjBH_JLNQ.png"width="1078"height="564"srcSet="https://miro.medium.com/max/552/1*pKdGJgwuIBTPgAjBH_JLNQ.png276w,https://miro.medium.com/max/1000/1*pKdGJgwuIBTPgAjBH_JLNQ.png500w"sizes="500px"/>
<imgalt=""class="tuvhyaj-kxfx"src="https://miro.medium.com/max/2156/1*0VudYV4vE8HnwT0bXF6CiQ.png"width="1078"height="564"srcSet="https://miro.medium.com/max/552/1*0VudYV4vE8HnwT0bXF6CiQ.png276w,https://miro.medium.com/max/1000/1*0VudYV4vE8HnwT0bXF6CiQ.png500w"sizes="500px"/>
GoMemoryProfiling結果(左:cache30G;右:cache0GB)
我們可以看到,被分配Bigcache的服務器其Top和內存分析結果中內存使用量分別為70GB和35GB,有35GB的內存追蹤不到。而沒有分配Bigcache的服務器其Top和內存分析結果中內存使用量分別為5GB和2GB,有3GB的內存追蹤不到。?
通過以上測試,我們可以推斷,若使用Bigcache,會占用大于分配額的內存。而就算不使用Bigcache,也會出現3GB左右的遺漏。當然,GC(GarbageCollector)的運作,可能令不管使用什么樣的Go程序都有機會出現內存分析結果和實際使用量的誤差。
而且,我們通過這篇文章可以得知,長時間占據大量的heap內存,并在分配時使用pointer的話,會消耗非常大的內存。
<imgalt=""class="tuvhyaj-kxfx"src="https://miro.medium.com/max/3200/0*E7gDbvMeS8E_YPgO"width="1600"height="572"srcSet="https://miro.medium.com/max/552/0*E7gDbvMeS8E_YPgO276w,https://miro.medium.com/max/1104/0*E7gDbvMeS8E_YPgO552w,https://miro.medium.com/max/1280/0*E7gDbvMeS8E_YPgO640w,https://miro.medium.com/max/1400/0*E7gDbvMeS8E_YPgO700w"sizes="700px"/>
GC(GarbageCollector)可尋找程序動態分配的內存中不再運作的部分,收回該部分的內存并分配給其他區域。為此,Go語言的GC(GarbageCollector)會對沒有運作的區域進行確認,看是否被分配了內存。這時,用于確認的標志就是pointer,如果某個區域有很多pointer或占據了大量內存,GC在搜查過程中會消耗較大內存。
話句話說,在運行GC(GarbageCollector)之前,內存使用量為44GB,一旦開始運行,內存使用量就會增加100GB。再加上進行內存分析的時間剛好在GC完成運轉后,所以只看到了運轉前的內存使用量,即44GB。由于Klaytn分配的Bigcache量很大,所以GC一直在消耗更多的內存。
這類情況會導致系統突然出現內存不足的情況。因為Klaytn需要長時間運轉,必須避免由于占用過多內存導致系統突然崩潰的情況。在下一篇文章內,我們將會介紹解決該內存遺漏問題的過程。
關于Klaytn
項目名稱:Klaytn
英文縮寫:KLAY
官方網站:https://www.klaytn.com/??
項目簡介:Klaytn是以服務為中心的企業級分布式信任區塊鏈平臺,通過高效的“混合”設計,結合了公有鏈和私有鏈的最優功能。Klaytn與全球眾多知名品牌的參與合作,通過共同的不懈努力,創建可靠的去中心化業務平臺。Klaytn治理委員會是一個由跨國企業和組織組成的聯盟,負責運營共識節點網絡,推動生態系統發展。Kakao的區塊鏈開發部門「GroundX」已正式推出Klaytn,并可用于商業用途。
來源:金色財經
今日盤面指數小幅高開,早盤一波震動之后,午后盤仍是跳水了,尾盤時間有弱勢反抽。截止收盤,滬指跌0.83%,報收3566.38點,深成指跌1.74%,中小指跌1.84%,創指跌2.05%,包裝、地.
1900/1/1 0:00:00日前,國家工業與信息化部辦公廳公布了2020年工業企業知識產權運用試點企業名單。經中國光伏行業協會推薦,無錫尚德太陽能電力有限公司成功上榜,成為知識產權運用試點企業.
1900/1/1 0:00:00根據BiKi平臺“交易手續費100%回購銷毀平臺幣”的原則,并遵循“每日回購、季度銷毀”的操作方式,目前已經完成了2020年第四季度的回購銷毀工作,信息披露如下.
1900/1/1 0:00:00今日市場最大的亮點非以太坊莫屬,單日漲幅高達18%。正如我們昨日所言,以太坊的三種潛質使其成為2020年表現最好的數字資產.
1900/1/1 0:00:00國際黃金走勢分析:周一黃金探底回升,金價在觸及一個月低點1802美元后向上反彈,快速收復跌勢,當天金價收漲,上市在周二得到延續,不過金價兩天漲幅不大,價格上升受限,顯示上方存在較大壓力.
1900/1/1 0:00:00沒有一勞永逸的開始,也沒有無法拯救的結束。人生中,你需要把握的是該開始的,要義無反顧地開始,該結束的,就干凈利落地結束,投資也是一樣,方向錯了停止就是進步,很多時候,你明明知道是錯的,卻偏偏還堅.
1900/1/1 0:00:00