KlaytnStateTrieCacheSeries#1:?确认产生Cache问题的原因
Klaytn为了提高区块链平台的性能,做了许多方面的努力。我们将通过下列文章介绍statetriecache性能改善过程。
??确认Cache问题的原因
??寻找最佳的Cache
??计算Statetriecachemiss
??进行?CacheSizeTuning
本篇将介绍进行Klaytn有关测试时出现的问题以及这些问题的来源-Go语言GC(GarbageCollector)。在进行Klaytn有关测试时,出现了下列问题。
<imgalt=""class="tuvhyaj-ojvw"?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"/>
Andrew Kang以0.285美元的成本价卖出了110万枚RDNT:金色财经报道,据链上分析师余烬监测,美国法官裁定XRP不是证券的消息传出后,市场迎来了一波上涨。Andrew Kang(AK)也开始减仓他在6月7日至6月8日均价0.285美元买进的RDNT:以0.285美元的成本价卖出了110万枚RDNT(约31万美元)。[2023/7/14 10:54:24]
利用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)
(pprof)top
Showingnodesaccountingfor41.91GB,96.33%of43.50GBtotal
Dropped382nodes(cum<=0.22GB)
以太坊网络未受亚马逊AWS宕机影响,但对Lido的依赖可能会在未来引发问题:金色财经报道,以太坊新闻周刊创始人Evan Van Ness观察到,今日凌晨亚马逊AWS服务中断事件并未对以太坊网络产生影响。尽管64.5%的以太坊网络依赖于亚马逊托管服务提供商据悉,此次受影响的主要是美国部分地区。但Van Ness补充说,由于在Lido上质押的以太坊数量目前约为710万(或总数的35%),因此如果中断发生在欧洲,影响可能会更大,因为Lido严重依赖AWS提供的云托管服务。[2023/6/14 21:36:37]
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上。
美联储理事沃勒:美联储12月之后可能也会加息50个基点:11月14日消息,美联储理事沃勒表示,11月11日的CPI报告“只有一个数据点”,但市场“超前了”。7.7%的通胀是“很高的”,美联储还有很长的路要走,利率将在一段时间内保持在高位。
此外,沃勒还表示,美联储可以开始考虑放慢加息步伐,并且考虑在下次会议可能加息50个基点的选项,或者12月之后也会加息50个基点。虽然美联储要发出加息步伐放缓,但“没有放松”的信号。通胀将决定美联储利率的峰值。(金+)[2022/11/14 13:01:36]
??
这两个测试结果中,我们发现了问题。根据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
高盛正在以太坊等区块链网络上为客户交易债券:金色财经报道,据《华尔街日报》报道,虽然华尔街一些最大的银行在很大程度上避免直接投资加密货币,但有些银行正在将区块链技术整合到自身交易和其他业务中,据悉高盛已经在以太坊等区块链网络上为客户交易一些债券和其他一些债务证券。[2022/8/22 12:41:35]
cachesize:30G,0G
<imgalt=""class="tuvhyaj-ojvw"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-ojvw"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"/>
BabyDoge持有者数量达155万个,超过SHIB:5月30日消息,根据BabyDoge Support发布的推文,持有BabyDoge的钱包数量达到1550000个,创历史新高。这意味着自今年2月以来,BabyDoge持有者数量增加大约20万个。相比之下,以太坊链上持有Shiba Inu(SHIB)的钱包数量为1172506个。
此外,WhaleStats数据显示,排名前100位的BNB Chain钱包持有价值2947691美元的BabyDoge,相当于1.8万亿枚代币。(U.Today)[2022/5/31 3:51:33]
top命令结果(左:cache30G;右:cache0GB)
<imgalt=""class="tuvhyaj-ojvw"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-ojvw"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-ojvw"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,并可用于商业用途。
来源:金色财经
标签:COMCHEACHCACCOMOS FinanceAlchemist DeFi AurumDACH3价格ethylenediaminetetraaceticacid
天府链融?1月20日,天府链融从成都海关举行的2021年第一次新闻发布会上获悉,2020年四川货物贸易进出口总值8081.9亿元,规模位列全国第8,较2019年同比增长19%,增速位列全国第2.
1900/1/1 0:00:00摘要:泰国证券交易所宣布计划在2021年的下半年开始提供数字资产的交易服务,但不会提供加密数字货币的交易服务.
1900/1/1 0:00:00点击上方“蓝色字”可关注我们!暴走时评:从4月开始,电子巨头三菱电机和东京工业大学研发团队将在商业化之前对新交易系统的性能进行评估和调整。新系统旨在支持有效利用可再生能源产生的剩余电力.
1900/1/1 0:00:00最近几个月,市场疯狂得让人有些麻木,不知道大家注意到没有,除了市场上各种各样的项目市值在不断跳动,稳定币这一板块的市值也在稳定增长。现在的稳定币总市值,已经达到248亿美金.
1900/1/1 0:00:00以市值计算的世界第二大加密货币以太坊蓬勃发展的是去中心化金融的爆发,也被称为DeFi。一些市场专家认为,在最近创下历史新高之后,这个知名加密货币可能会进一步上涨.
1900/1/1 0:00:00黄金行情分析: 黄金技术面来看,日线级别,MACD死叉,KDJ金叉,黄金近期主要以震荡行情为主,多空双方势力强弱不断转换,显示市场对进一步金价走势失去方向.
1900/1/1 0:00:00