我们的合作伙伴 Intel 最近宣布推出 Optane,这是一款基于 NVMe 的固态硬盘设备,构建于 Intel 和 Micron 新型持久内存技术 3D XPoint (3DXP) 之上。
3DXP 的主要优势之一在于它为应用程序提供了一种方式来决定数据集的哪一部分应存储在快速内存(例如 DRAM)上,哪一部分应存储在较慢的内存(例如闪存/Nand)上。我们的 Redis Enterprise Flash (RF) 产品从头开始就秉持了同样的设计理念。
因此,我们决定使用 Optane 驱动器进行 RF 基准测试,并将结果与使用上一代 Intel NVMe 固态硬盘 P3700 进行的基准测试结果进行比较。我们知道使用 Optane 获得更好的结果将是一项挑战,因为 RF 在 P3700 上的表现已经令人印象深刻。
在深入探讨我们的基准测试结果之前,我将首先简要介绍一下 Redis 和 Redis Enterprise Flash 的背景。Redis 以其极快的性能而闻名,这主要归因于它完全从 RAM 提供数据集。然而,近年来 RAM 的价格保持平稳,即使部署一个只有几百 GB 的数据集也可能非常昂贵(更不用说为了高可用性需要一个或多个副本的情况了)。
RF 通过将 Redis 的键、字典(键背后的主要数据结构)和“热”值(最常访问的值)存储在 RAM 中来解决这个问题,而通过 LRU 算法识别出的“冷”值(数据集中访问频率较低的部分)则保存在闪存(固态硬盘背后的技术)上。这种数据分布方式保证了正在进行的操作几乎与在 RAM 上运行的 Redis 一样快速执行。
这种架构主要针对工作数据集小于总数据集的用例(这是最常见的情况),因为它使 RF 能够保持与 RAM 相似的性能,同时大幅降低服务器的基础设施成本。RF 与开源 Redis 完全兼容,并包含了完整的 Redis 命令集和功能。闪存被视为 RAM 扩展器,不取代 Redis 现有的数据持久化机制。考虑到所有这些,让我们来看看我们在 AWS 上的最新性能测试。
我们使用以下设置对 Redis(e) Flash 的性能进行了基准测试
下图显示了 1000B 大小、50%、85% 和 95% RAM 命中率下的测试结果。
下表总结了 Intel Optane 固态硬盘在所有测试中相对于 Intel P3700 的平均提升倍数
1000B | |
50% RAM 命中率 | x9.2 |
85% RAM 命中率 | x9.7 |
95% RAM 命中率 | x2.8 |
新的 Intel Optane 固态硬盘相比 P3700 有了重大改进(特别是对于大于 1000B 的项),使用我们的 RF 产品可实现超过九倍的吞吐量提升。
Intel(R) Xeon(R) CPU E5-2699 v4 @ 2.20GHz
2 插槽,88 硬件线程,44 核心(每插槽 22 核心)
128GB 内存(8GB DDR4 DIMM,2133 MHz)
4 块 Intel® Optane
网络:10Gbps 以太网
操作系统 – RHEL 7.0
memtier_benchmark 版本 1.2.6
Redis Enterprise 版本 4.5
Memtier 命令
./memtier_benchmark -s 192.168.22.14 -p 12320 –pipeline=20 -c 10 -t 20 -d 1000 –key-maximum=42949673 –key-pattern=G:G –key-stddev=1177484 –ratio=1:1 –distinct-client-seed –randomize –test-time=120 –run-count=1 –hide-histogram