KlaytnStateTrieCacheSeries#1:?确认产生Cache问题的原因
Klaytn为了提高区块链平台的性能,做了许多方面的努力。我们将通过下列文章介绍statetriecache性能改善过程。
??确认Cache问题的原因
??寻找最佳的Cache
??计算Statetriecachemiss
??进行?CacheSizeTuning
本篇将介绍进行Klaytn有关测试时出现的问题以及这些问题的来源-Go语言GC(GarbageCollector)。在进行Klaytn有关测试时,出现了下列问题。
<imgalt=""class="tuvhyaj-kcwr"?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"/>
Pudgy Penguins将发布包含隐藏秘密的工作台“Pudgy Workbench”:金色财经报道,NFT项目“胖企鹅”Pudgy Penguins在推特上公布包含隐藏秘密的工作台“Pudgy Workbench”。根据一个正在倒计时的闹钟显示,该工作台的发布时间似乎指向太平洋时间5月12日中午12:30,此外其中还有两个名为“Lil Pudgy's Playbook”和“Big Pudgy's Playbook”的文件夹,以及一个印有Pudgy Penguin #6272的ID身份证件卡。Pudgy Penguins表示其中每个内容都具有“目的性”的秘密和线索。[2023/5/3 14:39:28]
利用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
Maverick Protocol24小时交易量跃居以太坊DEX排行榜第三,周涨幅达58.86%:4月21日消息,去中心化加密交易平台Maverick Protocol24小时交易量(3645万美元)跃居以太坊网络DEX排行榜第三,周涨幅达58.86%。排在前两位的分别为:Uniswap(12.4亿美元),周涨幅达73.17%;Curve(1.31亿美元),周涨幅达24.71%。[2023/4/21 14:17:29]
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上。
金融科技公司Plaid已暂停FTX检索用户数据的权限:11月13日消息,据官方公告,金融科技公司Plaid已于PT时间11月11日22:30暂停FTX对Plaid产品的访问,这意味着FTX无法通过Plaid检索用户的任何财务数据。
据悉,Plaid产品能让FTX.US用户将银行账户连接到FTX App,这将允许FTX.US请求执行由ACH网络处理的支付操作。
据此前报道,Web3社区项目gm.xyz联合创始人Mike McGuiness发推称,若存在与FTX US关联的银行账户,请立即更改银行账户密码并停止共享数据。Mike McGuiness表示,其银行账户曾被FTX US尝试访问。随后其推文被CZ转发。(Cointelegraph)[2022/11/13 12:57:50]
??
这两个测试结果中,我们发现了问题。根据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
7月至今以太坊NFT交易量约4.95亿美元,环比下跌29%:7月30日消息,Dune的数据显示,7月初至今,以美元计算的以太坊NFT交易价值超过4.95亿美元,而6月份为6.95亿美元,环比下跌29%。此外,7月截至目前OpenSea上售出的以太坊NFT约有161万个,而整个6月为154万个,独立交易者的数量从6月的近393,000人小幅上升至7月迄今的400,000多人。这表明,人们仍在以相对稳定的速度交易NFT,但平均价格比之前低得多。[2022/7/30 2:47:07]
memorysize:128G
cachesize:30G,0G
<imgalt=""class="tuvhyaj-kcwr"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"/>
WisdomTree准备推出允许用户持有代币化资产的移动应用程序:金色财经报道,WisdomTree准备推出一款允许用户持有代币化资产的移动应用程序,该公司即将推出的产品名为 WisdomTree Prime,于 1 月首次宣布,旨在提供基于去中心化金融原则的传统金融体验。资产管理公司希望在本季度末将该应用程序进行 Beta 测试,并于今年晚些时候在全国范围内推出。?
该公司的数字资产产品负责人 Jason Guthrie 透露,该应用程序最初将允许用户转移美元、黄金、国债、比特币和以太坊等代币化资产。然后,它寻求在明年第二季度之前推出固定收益和股票。(blockworks)[2022/5/24 3:37:11]
<imgalt=""class="tuvhyaj-kcwr"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-kcwr"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-kcwr"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-kcwr"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,并可用于商业用途。
来源:金色财经
面对困难挫折挑战, 只要你肯相信自己, 不断努力地付出, 哪怕你现在的人生是从零开始, 你都可以做得到。 1.今日恐慌与贪婪指数为78(昨日80),贪婪指数小幅回落,等级为贪婪.
1900/1/1 0:00:00元界DNA去中心化交易所DEXBeta版已于香港时间2021年1月20日下午18:00开放DEX测试网公测.
1900/1/1 0:00:00算法稳定币可以分为single-token和multi-token两种模型。single-token模型的算法稳定币有:AMPL、ESD等;multi-token模型的算法稳定币有:Basis、Frax等;算法稳定币,已经走到了第4代.
1900/1/1 0:00:00如果自己没有尽力,就没资格说别人不尽全力,开口抱怨很容易,但闭嘴努力寥寥无几,每一个单边疯狂,都历经了暗涛汹涌,每一场疯狂庆贺,都经历了砥砺前行,每一次风光无限,都经历过黯然神伤,所有分享到单边红利的人,都懂得共同等待的过往,原来.
1900/1/1 0:00:00昨日行情回顾: BTC价格昨天高位反弹有意识向上突破力量不足,成交量较前天基本持平,最高37469,最低34800,震幅7.45%,收盘涨2.24%,阳线线报收,日K线连续三天收阴线向下冲剂,空方力量有所释放.
1900/1/1 0:00:00「一键开播」火星财经视频直播发布会暨2021区块链投资展望线上策略会正在进行中。Compound创始人RobertLeshner莅临火星视频直播间并围绕《DeFi下的数字货币》主题发表了精彩演讲.
1900/1/1 0:00:00