英特尔® 傲腾™ 持久内存助力移动云应对严苛内存容量挑战提供高性能、经济性的移动云云数据库 Redis 服务

英特尔® 傲腾™ 持久内存助力移动云应对严苛内存容量挑战提供高性能、经济性的移动云云数据库 Redis 服务

概览

  • 中国移动移动云采用了英特尔® 傲腾™ 持久内存扩展 Redis 节点的内存容量。经过选型、测试验证及优化,该方案能够在满足 Redis 实际业务对于性能需求的同时,显著降低 Redis 系统内存的扩展成本。同时,英特尔® 傲腾™ 持久内存具备最高达 512 GB 的单条容量,有助于云数据中心减少 Redis 系统服务器节点规模,在控制 TCO 的同时实现绿色节能的目标。

author-image

作者

概述

在数字化创新不断加速的今天,需要实时进行处理与分析的数据正在快速增长。在此背景下,Redis 等以高性能、低时延为特征的内存数据库在各个行业得到了快速应用。但在加速数据处理与分析的同时,Redis 等应用也突显出了大容量内存构建所带来的成本等挑战。寻找兼具高性能、经济性、灵活性的内存解决方案,成为包括电信运营商在内的企业突破这些挑战的重要方向。

为了满足移动云云数据库 Redis 系统对于内存规模与容量的要求,更好地控制系统的总体拥有成本(TCO),中国移动移动云采用了英特尔® 傲腾™ 持久内存扩展 Redis 节点的内存容量。经过选型、测试验证及优化,该方案能够在满足 Redis 实际业务对于性能需求的同时,显著降低 Redis 系统内存的扩展成本。同时,英特尔® 傲腾™ 持久内存具备最高达 512 GB 的单条容量,有助于云数据中心减少 Redis 系统服务器节点规模,在控制 TCO 的同时实现绿色节能的目标。

通过采用移动云云数据库 Redis,用户能够在基于公有云平台的便捷服务基础上,加速应用的读写访问与复杂查询,轻松应对高并发访问等场景。英特尔® 傲腾™ 持久内存为其提供更高容量与更低 TCO,帮助 Redis 方案兼备高性能与高经济性。在未来,我们也希望围绕持久内存在更多场景的深入落地,为客户带来更加高效、高性价比、敏捷的云服务。”

”—— 王宝晗 中国移动云能力中心 PaaS 产品部负责人

挑战:Redis 数据库对内存容量提出严苛需求

移动云云数据库 Redis 是一款内存型 NoSQL 数据库,基于双机热备的高可用架构,主要提供在线存储和键值存储服务。这一数据库支持标准版-单副本、标准版-双副本、集群版-双副本和集群版-单副本四种缓存架构,提供弹性扩容、数据持久化、容灾切换、监控告警等功能,用于满足用户对于高读写性能以及快速数据访问的业务需求。

在移动云云数据库 Redis 中,Redis Server 作为提供 Redis 服务的节点,对外提供实例创建、删除等服务。移动云云数据库 Redis 还通过运维协调服务,将实例的监控和分析任务平均分配给不同的分析器和监控器,实时获取监控信息,根据监控信息判断实例运行状态,并进行分析和运维。此外,该系统还能通过持久化和备份两种手段保障数据高可靠,借助分布式存储 GlusterFS 实现数据层面的可靠性。

图 1. 移动云云数据库 Redis 架构

移动云云数据库 Redis 能够以云服务的形式交付给互联网、科研、政府公共服务平台、金融等不同行业的用户,帮助用户从内存数据的出色性能中获益。该服务具备如下优势:

•    即开即用:通过云服务的模式,用户无需购置数据库服务器硬件或软件,只需登录管理控制台,即可按需创建 Redis 集群实例。这一模式有助于降低 Redis 系统的部署与运维门槛,同时节省大量成本。

•    变更灵活:支持集群版架构中同分片下实例规格的升配,以及标准版架构中实例规格的升配。

•    运维便捷:通过实例管理实现性能调优、快速故障定位。同时提供可视化参数调优界面,以及基于实例信息的实时监控及报警。

•    高可用:主从双节点避免单点故障引起的服务中断。在故障发生时,能够自动侦测硬件故障,并实现故障转移,从而在数秒内恢复服务;同时还能够通过资源隔离更好地保障单个用户服务的稳定性。

•    数据安全:支持周期性备份/手动备份两种方式,将误删除或损坏的数据备份恢复到原实例;支持数据秒级持久化到云盘,实现服务重启后数据不丢失;能够对 VPC 私有网络在 TCP 层直接进行网络隔离保护。

作为典型的内存型数据库,Redis 数据库对于内存的容量有着较高要求,其内存消耗通常包括自身内存、键值对象占用、缓冲区内存占用及内存碎片占用。如果数据量超过了集群内存能容纳的限制,部分数据就会落在相对低速的磁盘上,导致 Redis性能显著降低,甚至可能停止响应。因此,为 Redis 数据库提供足够大的内存成为保障其性能正常发挥的重要因素。

但是,如果完全依赖于 DRAM 内存来构建 Redis 数据库,可能会带来成本、扩展能力、绿色节能等方面的挑战:

•    如何实现性能与成本上的平衡
企业级的大容量 DRAM 内存有着较高的性能,但是单位容量成本较高,如果要达到理想的内存池容量,将会耗费巨大的成本。企业需要在性能、容量与经济性方面进行更多权衡。

•    如何在单个节点中提供尽可能高的内存容量
在大部分 Redis 服务器中,内存的占用量通常较高,但是 CPU 等其它关键资源的占用率却保持在相对较低的水平。这意味着如果能够在单节点中扩展更大的内存集,将有助于服务器采购、空间、运维等成本的节约。但是,由于单条 DRAM内存容量的限制和服务器内存插槽数量等因素,导致单节点的内存容量受到严格限制。

•    如何提升数据中心节能效果
庞大的 Redis 服务器节点规模可能会带来较高的能耗支出,不利于数据中心的进一步节能减排。通过提升服务器的内存密度,有利于节约相应的能耗,从而推动数据中心的可持续发展。

解决方案:移动云探索采用英特尔® 傲腾™ 持久内存优化 Redis 内存使用

如前文所述,完全采用 DRAM 内存会给 Redis 系统带来较高的成本压力,而 Redis 的应用特点决定了其对于内存容量的敏感程度要超过内存性能。因此,如果采用性能稍低、但在成本上具备较高优势的内存介质,将有助于解决 Redis 系统的成本问题。

英特尔® 傲腾™ 持久内存正是这样一种创新的内存方案。其性能介于 DRAM 内存与固态硬盘之间,但在成本上比 DRAM 内存更具优势。英特尔® 傲腾™ 持久内存提供了融合高速、高性价比、大容量、持久数据保护、高级加密等优势于一体的内存选项,可分别支持内存模式(Memory Mode)和 App Direct 模式。在内存模式中,它提供有 128 GB、256 GB 和 512 GB 容量,与普通的易失性系统存储器完全一样,但成本更低,能在稳定的系统预算中实现更高容量。

图 2. 内存-存储层级结构在容量、价格和性能上的分布状况

在内存模式下,英特尔® 傲腾™ 持久内存可作为经济高效的 DRAM 替代品。对应用程序而言,英特尔® 傲腾™ 持久内存可用作易失性内存,由 DRAM 充当最常访问的数据的高速缓存,同时由英特尔® 傲腾™ 持久内存提供大容量的存储容量。与仅使用 DRAM 的系统相比,配备英特尔® 傲腾™ 持久内存的系统允许使用更大容量的内存,并且更具成本效益。但是,在这种模式下,数据无法持久保存,这意味着在系统电源关闭时数据会丢失。

在 App Direct 模式下,应用程序和操作系统会有两种可用的内存。系统将决定是从 DRAM 还是英特尔® 傲腾™ 持久内存中写入或读取数据。要求低时延且不需要永久数据存储的操作可以在 DRAM 上执行,必须长期保留的数据将由英特尔® 傲腾™ 持久内存进行存储。在此模式下,即使系统关闭电源,数据仍保留在内存中。

与传统 DRAM 内存相比,英特尔® 傲腾™ 持久内存能够提供更高的容量与更低的 TCO,非常适合于内存容量敏感型应用。

为了在 Redis 系统中充分释放英特尔® 傲腾™ 持久内存的潜能,移动云团队对其两种主要工作模式 — 内存模式和 App Direct 模式进行了适用性及性能评估。

在内存模式下,移动云将英特尔® 傲腾™ 持久内存作为内存,原有内存作为持久内存的缓存使用。经过验证,移动云发现,虽然该模式能够提供更大的内存容量,但在这种模式下,数据访问请求会首先在 DRAM 内存上检查是否命中,如果命中,数据直接从内存中获取;如果没有命中,会再到持久内存上进行访问,这会带来更多的 I/O 开销并增加时延。测试显示,在内存模式下,Redis 系统性能结果可能有 20%1 左右的 QPS 下降,时延略有波动。此方案的优点在于对 Redis 现有版本可全量兼容,问题点在于性能损耗相对较大。

随后,移动云在 App Direct 模式下进行验证,并在该模式下创建一个可字节寻址的区域,为加载或存储访问创建命名空间。在fsdax 模式下,通过使用 DAX 选项挂载文件系统来提供对持久内存的直接访问,随后创建并挂载文件系统。

在此模式下,移动云直接使用 TieredMemDB(对英特尔® 傲腾™ 持久内存进行适配后的 Redis 版本)进行了测试。TieredMemDB 开源软件通过利用新的 Linux 内核版本(5.10)中的 KMEM DAX 功能,能够更好地发挥英特尔® 傲腾™ 持久内存的优势。测试期间,移动云先对 TieredMemDB 进行编译安装,对操作系统、docker 和 k8s 进行适配升级优化,再分别进行物理机和容器/k8s 测试,二者均可成功运行,并实现 DRAM 内存与持久内存的按需分配。由于该模式下内存无损耗、再加上 TieredMemDB 对 DRAM + 持久内存的专项优化,性能可达到原方案的 90-95%2。此方案的优点在于性能较佳,难点在于需要对软硬件进行一定的改造适配。

图 3. App Direct 模式在不同场景下的性能测试结果

收益:高性能、高经济性的 Redis 方案

通过上述探索与验证,移动云能够成功将英特尔® 傲腾™ 持久内存引入到 Redis 系统中,在性能相仿的前提下,实现成本的显著节约。

•    更低的单位性能成本
与传统方案相比,基于英特尔® 傲腾™ 持久内存的 Redis 方案可有效降低成本,为用户提供更高性价比的云数据库 Redis 服务。

•    更大的每节点内存容量
移动云计划采用 128 GB 或 256 GB 规格的英特尔® 傲腾™ 持久内存,相比之前单条 32 GB 的 DRAM 内存,能够有效提升单服务器节点的内存密度,单节点提供的内存容量远大于传统方案。这有助于减少服务器节点的部署规模,从而降低相应的服务器采购、运维、能耗、空间占用等成本。

•    从数据持久化中获益
英特尔® 傲腾™ 持久内存属于非易失性介质,即使系统关闭电源,数据仍保留在内存中。这意味着,在 Redis 系统于故障后的恢复中,无需重新开始整个流程,可有效提升 Redis 系统的持续服务能力。

•    绿色节能
由于英特尔® 傲腾™ 持久内存方案减少了服务器节点的需求量,因此数据中心整体能耗也变得更低,有助于推动数据中心的绿色节能化变革。

展望

在数字化转型战略的推动下,需要实时处理的数据正在快速增长。通过部署基于英特尔® 傲腾™ 持久内存的移动云云数据库 Redis,用户能够更好地提升 Redis 系统中大规模内存集的成本效益,加快 Redis 的运行速度,以更低的成本提升更高资源密度,充分满足高并发、低时延等场景对于内存数据库的需求, 为企业的数字化创新奠定坚实基础。

除了云数据库 Redis 之外,移动云与英特尔还在超大内存云主机产品、超高性能云盘、Mysql 数据库性能优化等领域推动英特尔® 傲腾™ 技术的深度应用,让英特尔® 傲腾™ 技术能在更多的业务场景中发挥作用,进而向用户提供更优质的产品与服务体验。

关于移动云

“移动云”(https://ecloud.10086.cn/)隶属于中国移动通信集团公司,是中国移动面向政企、事业单位、开发者等客户推出的基于云计算技术,采用互联网模式,提供基础资源、平台能力、软件应用等服务的业务。移动云是建立在中国移动 “大云” 的基础上自主研发而成的公有云平台,通过服务器虚拟化、对象存储、网络安全能力自动化、资源动态调度等技术,将计算、存储、网络、安全、大数据、开放云市场等作为服务提供,客户根据其应用的需要可以按需使用、按使用付费。


关于英特尔

英特尔(NASDAQ: INTC)作为行业引领者,创造改变世界的技术,推动全球进步并让生活丰富多彩。在摩尔定律的启迪下,我们不断致力于推进半导体设计与制造,帮助我们的客户应对最重大的挑战。通过将智能融入云、网络、边缘和各种计算设备,我们释放数据潜能,助力商业和社会变得更美好。如需了解英特尔创新的更多信息,请访问英特尔中国新闻中心 newsroom.intel.cn 以及官方网站 intel.cn