http://www.7klian.com

TechatKlaytn技能系列:寻找最佳的Cache

TechatKlaytn技术系列:寻找最佳的Cache

Klaytn State Trie Cache Series #2: 寻找最佳的Cache

Klaytn为了提高区块链平台的机能,做了很多方面的尽力。我们将通过下列文章先容 state trie cache机能改进进程。

??确认Cache问题的原因

??寻找最佳的Cache

??计较State trie cache miss

??举办?Cache Size Tuning

在上一篇,我们确认了内存利用过多的原因在于长时间分派Heap。而像fastcachefreecache的Go GC overhead会相对较低。在本篇中,我们将先容寻找内存利用量较低的cache的要领。

TechatKlaytn技术系列:寻找最佳的Cache

来历:https://dgraph.io/blog/post/introducing-ristretto-high-perf-go-cache/

在上一篇,我们看到在Go中速度较快的cache有ristretto、bigcache、freecache和fastcache。为了确认上述cache是否合用于Klaytn,我们在Klaytn平台长举办了下列测试。

KLAY 传输测试

利用AWS instance : m5.2xlarge

CN 4, PN 4, EN 4, locust slave 4

memory size : 32G

cache size : 6G

RPS 2000, accounts : 0.5M

TechatKlaytn技术系列:寻找最佳的Cache

Cache较量测试功效。

内存总利用量是含gc在内的总利用量。

Entry存储数利用了每个cache所提供的stat值。

Bigcache是原先利用的cache。

Ristretto有打点LFU(Least Frequently Used)的成果,即可追踪确认近期利用频率。正因如此,占用了大量内存,呈现了内存不敷的环境。同时,我们还看到呈现了许多cache miss,可揣度entry存储数也相对较低。

Ristretto的测试功效在料想之外,可这个问题并不可是呈此刻Klaytn上。按照CODASYL所颁发的基准,Ristretto的hit ratio比其他cache明明低了许多。由于数据输入方法差异,切合LRU的方法和切合LFU的方法就会差异,按照Klaytn的state trie生成方法,LRU更切合Kalytn,因为生成新的trie的时候需要从头打仗最近存储的node。尽量上图中的throughput表白Ristretto的机能最佳,可是在有关Klaytn的测试中呈现的cache漏掉却是最多的。

总的来说,由于Ristretto的机能不如其他cache,因此我们认为不适合Klaytn利用。

Freecache拥有全新布局,可以消除?GC overhead。它与Bigcache对比,内存耗损更低,而entry存储数更多。

Fastcache的布局与Bigcache沟通,但执行效率更高。它与Freecache一样,对比于Bigcache,内存耗损更低,而entry存储数更多。

固然Freecache和Fastcache的存储量沟通,可是在内存用量方面存在明明差别。因此,我们最终选择在Klaytn利用内存用量最少的Fastcache。

为了确认Fastcache和Bigcache的机能差别,我们回收了更大的instance对TPS举办测试。在沟通设置的2台instance上,别离利用差异的cache举办了测试。

KLAY传输测试

AWS instance : m5.18xlarge

CN 4, PN 8, EN 8, locust slave 4

memory size : 144G

RPS 4000, accounts : 5M

TechatKlaytn技术系列:寻找最佳的Cache

Bigcache和Fastcache的较量测试

我们可以看到内存利用量淘汰了约30%,从98G下降至69G;entry存储数也增加了12%,从147M上升至165M。

同时,我们通过Cypress sync测试确认速度是否有所提高。尽量instance的局限小,但依然可以看到由于cache miss导致了sync速度上的差别。

Cypress sync test

AWS instance : m5.2xlarge

memory size : 32G

cache : Bigcache, Fastcache

cache Size : 6GB, 9GB

TechatKlaytn技术系列:寻找最佳的Cache

Bigcache和Fastcache的sync test功效

从左侧图表可以看出,Fastcache所存储的entry比Bigcache多,cache miss呈现得更少更慢。而右侧图表显示的是当前的区块数量,也可以看到Fastcache的区块数也比Bigcache高。可以看出Fastcache同步 Cypress block的速度比Bigcache更快。

在本篇中,我们测试了多个可以替代Bigcache的cache,并通过测试发明Fastcache在内存打点和机能方面比Bigcache更优秀。因此从Klaytn v1.5.0版本开始,我们回收了Fastcache,假如今朝用于节点运营的版本低于该版本,发起用户举办进级。

在下一篇,我们将探讨造成state trie cache miss的因素。

关于Klaytn

项目名称: Klaytn

英文缩写: KLAY

官方网站: https://www.klaytn.com/

项目简介:Klaytn是以处事为中心的企业级漫衍式信任区块链平台,通过高效的“殽杂”设计,团结了公有链(漫衍式数据和节制、漫衍式管理)和私有链(低延迟、高可扩展性)的最优成果。Klaytn与全球浩瀚知名品牌的参加所作,通过配合的不懈尽力,建设靠得住的去中心化业务平台。Klaytn管理委员会是一个由跨国企业和组织构成的同盟,认真运营共鸣节点网络,敦促生态系统成长。Kakao 的区块链开拓部分「Ground X」已正式推出 Klaytn,,并可用于贸易用途。

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

相关文章阅读