英特尔??傲腾? 长期内存是Intel在2019年宣布的一款革命性的产品,英特尔??傲腾? 长期内存是一种全新的内存类型,其架构设计旨在从数据中心中罗致更多价值,重构数据中心内存/存储条理结构。差别于古板的DRAM,英特尔??傲腾? 长期内存集大容量、经济性和长期性于一身,能够支持数据中心多个应用场景。pg电子官网基于英特尔??傲腾? 长期内存做了大宗的应用场景解决计划,笼罩大数据剖析、数据库、云与虚拟化、漫衍式存储等应用场景。为了资助用户通过越发灵活的架构来实现立异型的应用,助力企业实现性能突破,pg电子官网宣布了基于英特尔??傲腾? 长期内存技术的RocksDB存储计划。
RocksDB是一款利用快速存储器(尤其是闪存)存储数据性能的数据库软件,大宗应用于高负载效劳,但陪同着数据量爆发式增长,高负载业务对数据存储的性能需求也越来越高,pg电子官网凭据英特尔优化的PMEM-RocksDB进行了性能优化佳实践,其中PMEM-RocksDB通过使用英特尔? 傲腾? 长期内存对古板RocksDB进行了大宗优化,不但大幅提升了数据吞吐性能、降低了延迟,并且实现了更高的本钱效益。
挑战:化解 RocksDB保存的性能瓶颈
在大数据时代,业务存储和会见的数据量是超大规模的,而随之而来的另有业务对IOPS、延迟等存储性能更苛刻的需求,此时古板的关系数据库已经很难存储和治理这些数据,RocksDB也就应运而生。RocksDB 是一种嵌入式、长期化存储、KV型且很是适用于fast storage的存储引擎,并且由于其精彩的压缩性能,在充分利用闪存性能的同时节省大宗闪存空间。目前,RocksDB应用在大数据量、写密集型的高负载存储场景。
由于 RocksDB应对的是高负载存储场景,因此数据吞吐性能的重要性不言而喻。要提升 RocksDB数据吞吐性能,可以从优化内存计划、存储磁盘扩容和升级、参数调优等多个方面进行。以内存计划为例,其直接涉及读缓存BlockCache、写缓存Memtable,影响系统内存利用率、IO利用率等资源以及读写性能等,是 RocksDB性能一个至关重要的影响因素。
这种要领对读性能有明显提升,但不具备良好的本钱效益。虽然存储节点支持的单条内存容量理论上限是128GB,可是这种大容量的内存普遍处于验证阶段,可获得性缺乏,并且价格的提升远高于其容量的提升,会带来很高的本钱压力;另外,受制于RocksDB自己架构,写性能并不可随着内存和存储设备的增加一直提升。
因此,如何突破现有存储架构的限制,显著提升RocksDB性能的同时有效控制本钱,也就显得至关重要。
为了解决此问题,英特尔基于傲腾长期内存对RocksDB进行了代码级优化,开发了PMEM-RocksDB(基于RocksDB-6.2.2),在保存原有RocksDB所有功效的基础上,通过使用英特尔? 傲腾? 长期内存,首先优化了Write Ahead Log写操作以革新写性能,然后实现了键值疏散存储,减少写放大,革新了写性能和写延迟,并修改了块缓存的实现,用非易失内存替代DRAM内存作为块缓存。
在计划验证的历程中,pg电子官网发明,英特尔? 傲腾? 长期内存有着接近DRAM内存的性能。因此,pg电子官网决定,对基于英特尔? 傲腾? 长期内存的PMEM-RocksDB进行性能、本钱等方面的验证。
英特尔??傲腾? 长期内存是一种全新的内存类型(如图1),差别于古板的DRAM,其集大容量、经济性和长期性于一身,读写带宽比NVME设备高数倍,并大幅降低延时问题。由于写入方法差别,英特尔??傲腾? 长期内存也比Flash NAND更耐用,并且单�?槿萘靠筛叽�512GB,实现了远超古板DRAM的系统内存容量。其从基础上改变了数据中心的弹性,将内存数据库重启时间从以前的几天、几小时缩短到现在的几分钟甚至几秒钟,并提供经济实惠的内存空间,将系统内存容量扩展到前所未有的水平。

图1
英特尔??傲腾? 长期内存拥有两种特殊的运行模式——App Direct 模式和内存模式。具体来看,接纳App Direct 模式,经过专门调试的应用程序可以从产品固有的长期性中充分获取价值,同时获得更大的容量;在内存模式下,在受支持的操作系统或虚拟情况中运行的应用程序可将该产品用于易失性存储,在无需重写软件的情况下,有效利用高达512GB的内存�?榇吹母郊酉低橙萘�,在大型内存池中获得新的洞察。
在实际的计划安排中,pg电子官网使用了英特尔? 至强? 第二代可扩展处理器与英特尔??傲腾? 长期内存组成强强组合,成倍提升了RocksDB性能,满足了高负载业务的需求。
计划验证:英特尔? 傲腾? 长期内存性能优势显著
本次计划验证,pg电子官网使用了RocksDB-6.2.2和PMEM-RocksDB进行读写测试,其中读性能测试,pg电子官网决定在总成内幕当的情况下,划分测试两者的性能比照。而写性能方面,由于PMEM-RocksDB改变了写入方法,同时使用了长期内存和DRAM内存,因此两者无法用性价比进行比较。
在实际测试中,pg电子官网将英特尔??傲腾? 长期内存设置为 App Direct运行模式,并依据以下硬件配置来搭建了测试计划(如表1)。

表1
在本次测试中,pg电子官网划分评测了使用DRAM内存的RocksDB-6.2.2和使用英特尔??傲腾? 长期内存的PMEM-RocksDB的随机读写性能。
pg电子官网划分测试了两种配置随机写的P99尾延迟(测试结果如图2),以及平均吞吐率(测试结果如图3)�?梢钥闯�,PMEM-RocksDB的P99尾延迟只有RocksDB-6.2.2的56.9%,吞吐率却抵达了DRAM的3.3倍。

图2

图3
pg电子官网基于同整天职别测试了两种配置随机读的平均吞吐率(测试结果如图4)�?梢钥闯�,PMEM-RocksDB的吞吐率比RocksDB-6.2.2提升了接近70%。

图4
可见英特尔??傲腾? 长期内存为RocksDB的性能带来了大幅提升,可以满足其高负载下的读写需求。
效果:大幅改善 RocksDB 性能与本钱体现
从测试结果可以看出,在随机写方面,基于英特尔??傲腾? 长期内存的革新版RocksDB,相较原有版本有3.3倍的性能提升,。而基于同本钱的随机读测试,革新版RocksDB,相较原有版本仍有70%的性能提升。
因此,如果企业关注写性能,在支付接纳英特尔??傲腾? 长期内存的本钱后,写性能可以到告竣倍的上升,这是纵然增加其他硬件本钱也无法获得的性能提升。如果企业关注读性能,那么为抵达同样的吞吐量,使用英特尔??傲腾? 长期内存将带来更多的本钱节约,这在目今企业数据爆发式增长、在大数据方面的投入逐渐增大的配景下,显然具有重要意义。