资讯中心

  • 首页 i(name 通过 Amazon ElastiCache for Redis 71 实现每个集群超过 5 亿次请

通过 Amazon ElastiCache for Redis 71 实现每个集群超过 5 亿次请

2026-01-27 14:50:20

Amazon ElastiCache for Redis 71 实现每个集群超过 5 亿次请求每秒

作者 Mickey Hoter 和 Dan Touitou发布日期 2023年11月14日分类 Amazon ElastiCache,公告,中级 (200)

关键要点

性能提升 用户在升级到 ElastiCache for Redis 71 后,可以体验到高达 500 毫秒内响应,处理高达 500M 的请求每秒RPS。工具支持 使用增强的 I/O 多路复用技术和支持 Graviton3 实例,可以显著提升吞吐量。新技术 采用演示层卸载和内存访问摊销技术,提高命令处理的效率。兼容性 ElastiCache for Redis 71 与所有 AWS 地区兼容,无需改动应用程序。

Amazon ElastiCache for Redis 是一款完全托管的服务,兼容 Redis API。ElastiCache 是一个快速的内存数据存储,许多客户选择它来为他们最需要高性能的实时应用提供支持。很高兴地宣布,你现在可以通过将 ElastiCache for Redis 从 70 升级到 71,有效地最大化性能,当前可扩展至每秒 5 亿次请求RPS,响应时间仅为微秒级。

quickq机场

此版本的发布是我们持续致力于帮助你最大化 ElastiCache 性能的一部分。在2023年2月,我们推出了 ElastiCache for Redis 70 的增强 I/O 多路复用功能,特别适合具有多个客户端连接的吞吐量密集型工作负载,其优点在于与工作负载并发级别的提升而提升。例如,在使用 r6gxlarge 节点并运行5200个并发客户的情况下,你可以实现高达72的吞吐量读写操作每秒和高达71的 P99 延迟降低,相较于 ElastiCache for Redis 6 的表现。

在2023年8月,我们宣布支持 Graviton3 实例M7g 和 R7g,其 RPS 增加了 28,P99 延迟改善了 21。基于增强的 I/O 多路复用技术,这些提升使得部署更加高效。

在 ElastiCache for Redis v71 中,使用至少8个物理核心的实例如 Graviton 的 2xlarge 和 x86 的 4xlarge,你可以获得高达双倍的性能提升。相较于 70,吞吐量可提高 100,P99 延迟降低 50。在足够大的节点上,例如 r7g4xlarge,你可以实现每个节点超过 100 万次请求 (RPS),每个集群达到 500M RPS。这一性能飞跃得益于我们所称的演示层卸载和内存访问摊销技术。本篇文章将详细讨论这些技术,并提供性能分析。

Redis 演示层卸载

ElastiCache for Redis 使用增强的 I/O 线程来处理网络 I/O 和传输层安全 (TLS) 加密的处理。通过 71 版本,增强 I/O 线程的功能扩展至处理演示层逻辑。演示层是指增强 I/O 线程不仅仅读取客户端输入,还解析这些输入为 Redis 二进制命令格式,然后转发给主线程执行。同样,在响应路径上,主线程将二进制格式的输出重定向回增强 I/O 线程,后者将回应格式化并发送回客户端。通过将这些工作推送到专用线程,我们更好地利用了每个实例中的并行性和可用 CPU 核心,同时让 Redis 主线程专注于执行命令。

内存访问摊销

随机内存访问是一项昂贵的操作,会影响内存密集型应用的效率。我们现在引入了内存访问摊销 (MAA),这一技术旨在降低内存访问成本,尤其适合 Redis 使用的大型动态数据结构。MAA通过交错多次数据结构操作的步骤,确保并行内存访问,从而降低内存访问延迟。在 ElastiCache for Redis 71 中,我们将此方法应用于 Redis 字典,能够实现高达 60 的 hashfind 减少以及命令加速。具体来看,Redis 主处理线程从增强 I/O 线程接收到三个解析后的命令。接下来,它交错进行字典查找,以同时预取所需数据到 CPU 缓存。在我们的简单示例中,Redis 主线程从增强 I/O 线程收到了以下命令:GET 19 GET 65 和 GET 23。

主线程现在从 Redis 字典中检索这些键。在 ElastiCache 版本 70 中,Redis 字典中的哈希表遍历将是串行进行,而 Redis 会低效地等待内存。然而,在 71 版本中,三个哈希表遍历是交错进行,以实现并行内存请求。

通过 Amazon ElastiCache for Redis 71 实现每个集群超过 5 亿次请

性能分析

为了基准测试你在使用 ElastiCache for Redis 71 时能够实现的性能提升,我们将其与 70 版本进行了比较。我们使用了业内标准的 Redisbenchmark 工具,设置为 20 的 SET写入和 80 的 GET读取命令。所有测试均以 500 个客户端并行运行,80 GET 和 20 SET,数据库中包含 300 万个 16 字节的键和 512 字节的字符串值。ElastiCache 节点和客户端应用均在同一 AWS 可用区内运行。

每秒请求数提升

以下图表显示了在不同节点大小上基准测试的结果,捕捉到 71 版本与 70 版本的请求每秒 (RPS) 的百分比改善。

我们观察到,在所有不同节点上,至少实现了 100双倍的兴奋提升。这意味着在 r7g4xlarge 及以上的节点上,能够实现超过 1000000 次请求每秒的效果。在同一基准测试中,我们还测量了命令的延迟,以下图显示了 P99 延迟的改善作用。

延迟减少

我们发现,即使在最大 RPS 的高峰负载下,P99 延迟也能在所有节点大小上降低超过 50,每个请求的延迟时间低于 1 毫秒。吞吐量翻倍的同时,延迟减半。

结论

在大于 xlarge 的节点上,无论集群大小或模式,无论是否使用 TLS,ElastiCache for Redis 71 中引入的改进都提升了性能。升级到最新的 ElastiCache,享受更快的速度,而无需额外费用且无需更改应用程序。ElastiCache for Redis 71 在所有 AWS 区域均可用。

欲了解更多信息,请参见 支持的版本。要开始使用,请创建一个新集群或通过 ElastiCache 控制台 升级现有集群。

请继续关注未来 ElastiCache for Redis 的更多性能改进。

祝你缓存愉快!

Mickey Hoter 是 Amazon ElastiCache 团队的首席产品经理,拥有 20 多年的软件产品开发经验,曾担任开发者、团队负责人、项目经理等多种职务。在加入 AWS 之前,Mickey 曾在 SAP、Informatica 以及多家创业公司任职。工作之余,他大部分时间都在大自然中度过,享受各种爱好。

Dan Touitou 是 AWS 的首席工程师,专注于提高 ElastiCache Redis 的效率。他在网络和安全设备及存储系统的软件优化方面拥有丰富经验。身为企业家,他共同创办了 Riverhead Networks,后被 Cisco Systems 收购,并在该公司担任杰出工程师。随后,Dan 曾担任华为技术的 CTO 和 Orchestra Group 的首席科学家。他获得了特拉维夫大学的计算机科学博士学位,并于2012年获得分布式计算的 Dijkstra 奖。此外,Dan 还拥有超过 40 项专利。在业余时间,他喜欢和家人朋友在一起,探索新技术,业余爱好是制作高保真的扬声器。