最近,AWS 宣布在 15 个不同的区域提供 I3 实例。我们很高兴成为他们的 I3 实例 测试版计划的一部分,并在正式推出新实例之前,使用我们自己的 Redis Enterprise Flash(Redise Flash)技术对其进行了广泛的测试和基准测试。I3 SSD 存储基于 NVMe 技术,理论上应该提供比上一代 I2 实例(基于 SATA SSD)明显更高的吞吐量和更低的延迟。
在我介绍基准测试结果之前,我将首先介绍 Redis 和 Redise Flash 的一些快速背景信息。Redis 因其从 RAM 中完全提供数据集的极快性能而闻名。然而,近年来 RAM 价格一直持平,部署大型数据集可能会很昂贵,并且可能不适合所有商业模式和经济(更不用说需要一个或多个副本以实现高可用性的情况)。
Redise Flash通过将 Redis 的键、字典(键背后的主要数据结构)和“热点”值(访问次数最多的值)存储在 RAM 中,同时将“冷点”值(LRU 算法识别的最少访问数据集部分)保留在闪存(SSD 背后的技术)中来解决此问题。以这种方式分发数据可确保正在进行的操作执行速度几乎与在 RAM 上完全运行 Redis 一样快。
此架构主要设计用于工作数据集小于总数据集的情况(这是最常见的情况),因为它允许 Redise Flash 保持与 RAM 类似的性能,同时显著降低服务器基础设施成本。Redise Flash 与开源 Redis 完全兼容,并包含整个 Redis 命令和功能集。闪存被视为 RAM 扩展器,并不替代 Redis 的现有数据持久性机制。考虑到所有这些,让我们来了解我们在 AWS 上进行的最新性能测试。
我们进行了基准测试
我们在三个 AWS 实例上比较了 Redise Flash 的性能。
测试参数
我们的发现
以下两个图表显示了 100B 和 1000B 测试结果
性能改进
下表总结了所有测试中 i3 实例相比 i2 实例的平均改进因子
100B | 1000B | |
i3.8xlarge 与 i2.8xlarge | x1.98 | x1.66 |
i3.16xlarge 与 i2.8xlarge | x2.59 | x1.92 |
以上结果表明,正如 Redis 的 Redise Flash 技术所演示的,新 I3 实例确实优于 I2。
每项操作的节省
AWS I3 实例不仅比 AWS I2 实例更快,而且便宜得多。例如,美国东部弗吉尼亚北部区域的一个按需 Linux i3.8xlarge 实例的成本为每小时 2.496 美元,而 i2.8xlarge 的成本为每小时 6.820 美元,**便宜 73%**!
当我们计算 i3.8xlarge 实例上每个 RoF 操作的节省时,我们发现以下内容
i3.8xlarge 每 100B 操作的节省 | i3.8xlarge 每 1000B 操作的节省 |
81.47% (或每个操作便宜 x5.4 倍) |
77.88% (或每个操作便宜 x4.5 倍) |
注意:我们仅比较了 i3.8xlarge 和 i2.8xlarge 实例,因为这两个实例具有相似的 RAM 和 SSD 容量。
总结
不出所料,我们发现 Redise Flash 在 AWS I3 实例上的运行速度比在 AWS I2 实例上快**高达 2.6 倍**。我们还发现,由于 I3 实例的成本相对较低,因此每个 Redise Flash 操作在 I3 实例上的成本比在 I2 实例上便宜**高达 5.4 倍**。
附录
基准设置
AWS I3 和 I2 实例配置
可以在 AWS 网站上找到详细的价格。