基于英特尔® 傲腾™ 持久内存200系列的 MemKeyDB方案实践

摘要

  英特尔® 傲腾™ 持久内存是一款革命性的持久内存产品,补齐了DRAM与磁盘之间的需求缺口,重构内存/存储层次架构,集大容量、经济性和持久性于一身,帮助用户优化数据中心基础设施,满足大数据分析、数据库、云与虚拟化、分布式存储等多种应用场景需求。为了帮助用户通过傲腾持久内存来实现应用创新优化,助力企业业务系统实现性能突破,浪潮发布了基于英特尔® 傲腾™ 持久内存的多种场景方案,本方案是基于英特尔® 傲腾™ 持久内存200系列的MemKeyDB应用方案。

背景介绍

  Redis是一个高性能的键值分布式数据库,具有微秒级的数据存取速度,广泛应用于游戏、视频、新闻、导航等领域。在Linux Kernel 5.1版本之后支持KMEMDAX机制,这种机制把持久内存作为易失性内存使用,将持久内存接入内存管理系统,数据可以被分类存储进DRAM或者持久内存,避免DRAM耗尽,保持最佳性能运转状态。MemKeyDB基于Antirez维护的Redis核心代码,依赖互联网客户积极贡献代码,满足中国互联网客户快速迭代、解决业务中痛点的需求而产生的一个Redis分支版本,它实现了通过动态阈值算法来控制数据的分布。

  挑战:内存成本限制了容量扩展

  MemKeyDB的强劲性能很大程度上是由于其将所有数据都存储在内存中,MemKeyDB的可用内存受限于服务器对于内存容量的支持,这导致MemKeyDB出现部分数据不能存储在内存中,溢出到磁盘,MemKeyDB性能优势将无法充分发挥的情况。

  传统的解决方案是利用MemKeyDB的集群功能来解决内存不足的问题,但这样意味着企业要采购大量的内存,而且为了扩展内存,企业将不得不部署更多的服务器,这增加了企业的成本压力。

解决方案介绍

   英特尔® 傲腾™ 持久内存创新性解决方案新增内存扩展方式专为打破服务器内存容量限制而优化,补齐了DRAM内存与磁盘之间的需求缺口,打造高性能、大容量的持久内存层,有助于更加高效地挖掘数据的潜在价值。

  

  图1:英特尔® 傲腾™ 持久内存存储层

  英特尔®傲腾™持久内存新一代产品200系列(Barlow Pass,即BPS)基于第三代英特尔®至强®可扩展处理器优化,同样需要与传统的DDR4 DRAM共存,容量有128GB、256GB和512GB三种,相对于上一代100系列产品,Ice Lake平台单颗CPU容量最大支持到4TB,内存频率提升至3200MT/Sec,单通道平均性能提升25%。

英特尔®傲腾™持久内存200系列具有两种工作模式:内存模式(MM)和App Direct 模式(AD)

  内存模式,CPU内存控制器将所有英特尔®傲腾™持久内存200系列视为易失性系统内存(无数据持久性),将DRAM用作高速缓存,无需更改应用即可提供较多内存容量,并且性能接近 DRAM,能够以更低的成本提供更大的内存容量。

  App Direct模式,能够实现较大内存容量和数据持久性,软件可以将DRAM和英特尔®傲腾™持久内存作为内存的两层进行访问。支持持久内存编程,软件和应用能够直接与英特尔®傲腾™持久内存通信,降低了堆栈的复杂性,利用缓存一致性、字节可寻址特性,提供低延迟,支持更大的数据集。

  

  图2:英特尔®傲腾™持久内存工作模式

  本方案使用傲腾持久内存来扩展内存容量,以解决服务器内存不足的问题。 Linux Kernel 5.1以后,支持KMEMDAX, AD模式可以将管理的持久内存空间交给MMU(内存管理单元)管理,这样从系统中可以将持久内存作为一个和DRAM相类似的匿名空间,持久内存作为一个较慢,较大的内存节点。系统中持久内存和DRAM同时存在,将MemKeyDB的索引数据放到DRAM中,而将用户数据放到持久内存。使用动态阈值管理数据分布,即可以保证较小的索引数据和生命周期较短并频繁访问的数据尽量放到内存中,又可以保证DRAM和持久内存符合一定的容量比例,从而达到保障性能的前提下,降低系统TCO的目的。

  

图3:BPS内存扩展方案与DRAM方案对比

方案验证:性能不变,成本降低

本次使用Benchmark测试了MemKeyDB在DRAM和PMem平台下的性能

 

配置项

BPS

DRAM

硬件配置

CPU

2*Icelake 6348 2.60GHz(112 vcore)

Memory

256G(16*16G DDR4)

1T(32*32G DDR4)

Apache Pass

1T(8*128G)

App Direct

 

Disk Drive

2*480T SSD

Network

2*10Gbps

表1:方案对比配置

测试结果

  

  图4:DRAM vs BPS(8+4)测试结果对比

测试结果说明,MemKeyDB开启同样实例数的场景下,BPS在延迟和吞吐量方面与DRAM基本相当,可以达到DRAM的97%以上。

客户收益

  在MemKeyDB应用下BPS的性能和稳定性优异,英特尔傲腾持久内存提供了高性价比的内存扩展方案让MemKeyDB使用更多的内存,可用内存容量提升25%,并显著降低内存成本。


线




×
联系我们
ERP、企业软件购买热线
400-018-7700
云服务产品销售热线
400-607-6657
集团客户投诉热线
400-691-8711
智能终端产品客服热线
400-658-6111