最近,AWS 宣布在 15 个不同区域推出 I3 实例。我们很高兴参与其 I3 实例 Beta 测试计划,并在新实例正式发布前使用我们自己的 Redis Enterprise Flash (Redise Flash) 技术对其进行了广泛测试和基准测试。I3 SSD 存储基于 NVMe 技术,理论上应提供比上一代 I2 实例(基于 SATA SSD)更高的吞吐量和更低的延迟。
在我们深入探讨基准测试结果之前,我将首先快速介绍一下 Redis 和 Redise Flash 的背景知识。Redis 以其从内存中完全提供数据集的极快性能而闻名。然而,近年来内存价格一直持平,部署大型数据集可能昂贵,并且可能不适合所有商业模式和经济考量(更不用说高可用性需要一个或多个副本的情况了)。
Redise Flash 通过将 Redis 的键、字典(键背后的主要数据结构)和“热”值(访问最频繁的值)存储在内存中,同时将“冷”值(通过 LRU 算法标识的数据集中访问最少的部分)存储在 Flash(SSD 背后的技术)上,来解决这个问题。以这种方式分布数据可以保证正在进行的操作的执行速度几乎与完全在内存中运行的 Redis 一样快。
这种架构主要针对工作数据集小于总数据集的情况(这是最常见的场景),因为它允许 Redise Flash 在大幅降低服务器基础设施成本的同时保持与内存类似的性能。Redise Flash 与开源 Redis 完全兼容,并包含了 Redis 命令和功能的完整集合。Flash 被视为内存扩展器,并不取代 Redis 现有的数据持久化机制。考虑到所有这些,让我们看看我们在 AWS 上的最新性能测试。
我们测试了什么
我们比较了 Redise Flash 在三种 AWS 实例上的性能
测试参数
我们的发现
下图显示了 100B 和 1000B 的测试结果
性能提升
下表总结了 i3 实例在所有测试中相对于 i2 实例的平均提升系数
100B | 1000B | |
i3.8xlarge 对比 i2.8xlarge | 1.98 倍 | 1.66 倍 |
i3.16xlarge 对比 i2.8xlarge | 2.59 倍 | 1.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% (或每次操作便宜 5.4 倍) |
77.88% (或每次操作便宜 4.5 倍) |
注意:我们只比较了 i3.8xlarge 和 i2.8xlarge 实例,因为两者的内存和 SSD 容量相似。
总结
正如预期的那样,我们发现 Redise Flash 在 AWS I3 实例上的运行速度比在 AWS I2 实例上快 2.6 倍。我们还发现,由于 I3 实例的成本相对有吸引力,Redise Flash 在 I3 实例上的每次操作成本比在 I2 实例上便宜 5.4 倍。
附录
基准测试设置
AWS I3 和 I2 实例配置
详细定价可在 AWS 网站上找到。