KlaytnStateTrieCacheSeries#1:?确认产生Cache问题的原因
Klaytn为了提高区块链平台的性能,做了许多方面的努力。我们将通过下列文章介绍statetriecache性能改善过程。
??确认Cache问题的原因
??寻找最佳的Cache
??计算Statetriecachemiss
??进行?CacheSizeTuning
本篇将介绍进行Klaytn有关测试时出现的问题以及这些问题的来源-Go语言GC(GarbageCollector)。在进行Klaytn有关测试时,出现了下列问题。
<imgalt=""class="tuvhyaj-pqed"?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"/>
三箭资本联创Kyle Davies:已放弃美国国籍,不接受美国法院的管辖:金色财经报道,倒闭的加密对冲基金三箭资本的联合创始人Kyle Davies表示,他放弃了美国公民身份,因此不需要向美国法院做出回应。在周二的法庭文件中,Davies表示,他于 2017 年成功成为新加坡永久居民,由于新加坡不允许双重国籍,戴维斯在结婚时放弃了美国国籍。今天提交的一份法定声明称:“为避免疑义,我不会被美国法院管辖、也不必接受美国法院的管辖”。
三箭的清算人上个月向其联合创始人Kyle Davies和Su Zhu索要13亿美元赔偿。[2023/8/2 16:12:57]
利用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)
Alpaca Finance拟停用Fantom上的治理金库,将所有ALPACA桥接回BNB Chain:6月2日消息,杠杆挖矿平台 Alpaca Finance 发推表示,由于 MultiChain 存在持续问题,将停用 Fantom 上的治理金库,且今后 Fantom 链上的收入将分配给 BNB Chain 上的 xALPACA 持有者。其中 Alpaca Finance 将升级 Fantom 的治理合约,允许管理员提取锁定的 ALPACA,然后将所有 ALPACA 桥接回 BNB Chain,并进行 Merkle 分发,使用户可以在 BNB Chain 上领取他们的 ALPACA。此项操作将在周末开始,并且 ALPACA 代币将在下周初可供认领。[2023/6/2 11:54:35]
(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
美国IRS与乌克兰合作追踪使用加密货币逃避制裁的俄罗斯人:金色财经报道,美国国税局(IRS)表示,正在与乌克兰密切合作,向乌克兰提供Chainalysis工具帮助其追踪使用加密货币交易逃避制裁的俄罗斯人,并为该国的执法部门组织了关于追踪区块链交易的培训课程。[2023/5/14 15:02:16]
?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上。
??
这两个测试结果中,我们发现了问题。根据Prometheus所提供的内存使用library,kcn大约占了100GB,但内存分析结果(43.50GBtotal)表明,kcnbinary只占了?43.5GB。我们无法确认其余56.5GB(=100GB-43.5GB)的内存去了哪里。?
香港金管局陈维民:跨境央行数字货币项目进展顺利:金色财经报道,香港金融管理局副总裁陈维民在清华五道口大湾区(深圳)金融论坛主题演讲上提到,在政策支持之外,可以通过科技手段,推动数字化金融创新,提高支付效率。陈维民表示,在这方面,香港金管局正与人民银行合作,在香港进行数字人民币作为跨境支付工具的测试,提升服务效率和用户体验,未来可以为跨境支付提供多一个安全、便捷和创新的选项。(上证报)[2023/5/11 14:57:49]
于是我们猜测应该是Bigcache占据了大部分内存。为了确认Bigcache是否占据了内存,我们在相同环境的2台服务器上设置了不同的cachesize进行测试,设置分别为30GB和0GB。2台服务器的top和内存分析结果如下。
(Top命令结果是GiB,Prometheus所提供的library的结果是GB,两者为相同的量)
Cypresssynctest
AWSInstance:m5.8xlarge
memorysize:128G
cachesize:30G,0G
<imgalt=""class="tuvhyaj-pqed"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"/>
YGG购买价值10万美元的Walken代币和1700双Genesis CAthletes:金色财经消息,链游公会Yield Guild Games宣布与Solana上Move-to-Earn应用Walken(WLKN)建立合作关系,YGG已购买价值10万美元的WLKN代币和1700双Genesis CAthletes供社区玩并在游戏中获得代币奖励。Walken由移动健身应用GetFit Apps开发,于6月8日开放公测。[2022/6/16 4:32:58]
<imgalt=""class="tuvhyaj-pqed"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"/>
top命令结果(左:cache30G;右:cache0GB)
<imgalt=""class="tuvhyaj-pqed"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-pqed"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-pqed"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,并可用于商业用途。
来源:金色财经
今日黄金行情分析: 黄金技术面:就目前黄金走势来看,基本围绕震荡待破位的趋势前行,首先金价盘中收标准锤子线,这可以看做是一个反转信号.
1900/1/1 0:00:00前言:??????曾经以为,拥有是不容易的,后来明白,舍弃才是更难的。所有让你佩服的人,只是你的羡慕给平凡的他镀了金身,金融市场,不少人能看穿你的逞强,但没几个人像我一样愿意保护你的脆弱,时间游.
1900/1/1 0:00:00今日盘面指数小幅高开,早盘一波震动之后,午后盘仍是跳水了,尾盘时间有弱势反抽。截止收盘,沪指跌0.83%,报收3566.38点,深成指跌1.74%,中小指跌1.84%,创指跌2.05%,包装、地.
1900/1/1 0:00:001月19日晚间,ETH突破1420,刷新了2018年1月创下的历史新高,同时ETH市值也达到了1623亿美元历史高点,ETH在全球加密货币市场的市值占比上升至15.26%.
1900/1/1 0:00:002021年1月19日,联合国教科文组织职业教育计划亚非研究与培训中心与风变科技有限公司在深圳签署《战略合作框架协议》.
1900/1/1 0:00:00大家好,我是K神,只喜欢研究K线,朋友都叫我“K线狂魔”,你们可以叫我老K。比特币近期一直在贯彻震荡思路,目前还没有脱离震荡区域,依旧是方向待选状态,不过以太坊的走势则比较强劲,再次接近前高,接.
1900/1/1 0:00:00