英特尔® 傲腾™ 持久内存是Intel在2019年发布的一款革命性的产品,英特尔® 傲腾™ 持久内存是一种全新的内存类型,其架构设计旨在从数据中心中汲取更多价值,重构数据中心内存/存储层次结构。不同于传统的DRAM,英特尔® 傲腾™ 持久内存集大容量、经济性和持久性于一身,能够支持数据中心多个应用场景。浪潮基于英特尔® 傲腾™ 持久内存做了大量的应用场景解决方案,覆盖大数据分析、数据库、云与虚拟化、分布式存储等应用场景。为了帮助用户通过更加灵活的架构来实现创新型的应用,助力企业实现性能突破,浪潮发布了基于英特尔® 傲腾™ 持久内存技术的Redis应用方案。
Redis是一个支持持久化的内存数据库,它不仅性能强劲,而且还具有复制特性以及为解决问题而生的独一无二的数据模型。Redis提供了5种不同类型的数据结构,各式各样的问题都可以很自然地映射到这些数据结构上:Redis的数据结构致力于帮助用户解决问题,而不会像其他数据库那样,要求用户扭曲问题来适应数据库。除此之外,通过复制、持久化(persistence)和客户端分片(client-side sharding)等特性,用户可以很方便地将Redis扩展成一个能够包含数百GB数据、每秒处理上百万次请求的系统。
Redis的强劲性能很大程度上是由于其将所有数据都存储在内存中,Redis的可用内存受限于服务器对于内存容量的支持,这导致Redis出现部分数据不能存储在内存中,溢出到磁盘,Redis性能优势将无法充分发挥的情况。
传统的解决方案是利用Redis的集群功能来解决内存不足的问题,但这样意味着企业要采购大量的内存,而且为了扩展内存,企业将不得不部署更多的服务器,这增加了企业的成本压力。
英特尔® 傲腾™ 持久内存创新性解决方案提供了行业领先的高吞吐率、低延时、高服务质量和超高的耐用性,新增内存扩展专为打破服务器内存容量限制而优化。英特尔® 傲腾™ 持久内存提供接近内存的延迟,扩展系统内存至6T(不包括系统自身内存)。英特尔® 傲腾™ 持久内存可对应用进行加速,支持快速缓存和快速存储,提高每台服务器的可扩展性,并降低敏感性工作负载的交易成本。此外,英特尔® 傲腾™ 持久内存支持数据中心部署更大、更经济的数据集,在大型内存池中获得新的洞察。
本方案使用英特尔® 傲腾™ 持久内存作为持久内存数据存储介质,以解决服务器内存不足的问题。英特尔® 傲腾™ 持久内存有MEMORY Mode(共享系统内存)、APP DIRECT Mode(持久内存)两种模式。本次测试采用APP DIRECT mode ,APP DIRECT具有数据持久化、高容量、高可用性、显著加快存储速度等特点,是目前英特尔® 傲腾™ 持久内存主要使用模式。
图1:英特尔® 傲腾™ 持久内存扩展方案与传统方案对比
方案验证
图2:测试方案集群网络拓扑图
Redis单机测试结果
表1:1a vs 2a单机测试结果对比
表2:1b vs 2b单机测试结果对比
表3:1c vs 2c单机测试结果对比
表4:1d vs 2d单机测试结果对比
Redis单机测试结果说明:Redis不开持久化或持久化开启RDB、AOF为everysec情况下,英特尔® 傲腾™ 持久内存在latency和tps方面性能与DRAM基本相当;在Redis持久化AOF为always情况下,除了get、zadd、zrem操作外,英特尔® 傲腾™ 持久内存在latency和tps方面都表现了较高的性能优势,比DRAM性能提升9~24倍。
Redis集群测试结果
表5:1a vs 2a集群测试结果对比
表6:1b vs 2b集群测试结果对比
表7:1c vs 2c集群测试结果对比
表8:1d vs 2d集群测试结果对比
Redis集群测试结果说明: Redis不开持久化或持久化开启RDB、AOF为everysec情况下,英特尔® 傲腾™ 持久内存在latency和tps方面性能与DRAM基本相当,基本达到80%以上,部分情况下性能优于DRAM;在Redis持久化AOF为always情况下,受网络的限制,英特尔® 傲腾™ 持久内存在latency和tps方面都表现了不错的性能优势,data_size为512情况下性能比 DRAM提升1~2倍。
效果:持久内存大幅改善Redis性能
在性能相当的情况下,英特尔® 傲腾™ 持久内存扩展方案让Redis使用更多的内存,从而发挥Redis内存数据库的性能优势,英特尔® 傲腾™ 持久内存技术减少了Redis持久化时value数据落盘性能限制,大大提高了Redis性能。
基于英特尔® 傲腾™ 持久内存的Redis测试场景说明,英特尔® 傲腾™ 持久内存在单机和集群模式下都表现了良好的稳定性和性能,可作为内存扩展方案使用,为应用提供更大的内存。