亚马逊AWS官方博客
使用 Amazon EC2 M5 和 R5 实例提升 Amazon ElastiCache 性能
供稿人:高级产品经理 Ruchita Arora、软件开发工程师 Allen Farris,以及高级软件工程经理 Itay Maoz
早些时候,Amazon EC2 推出了令人兴奋的实例系列,M5 和 R5。这些实例基于 AWS Nitro 系统,该系统结合了专用硬件和轻量级管理程序,旨在提供与裸机性能相同的性能。这些实例系列可提供高达 25Gbps 的聚合网络带宽,以及基于 Elastic Network Adapter (ENA) 的增强型网络。
R5 和 M5 实例具有自定义硬件和自定义 Intel Xeon 可扩展处理器,可实现高达 3.1GHz 的持续的所有核心频率,并支持 Intel Advanced 矢量扩展 512 (AVX-512)。最新的第五代 EC2 实例提供的 vCPU 和内存最多分别比上一代多 50% 和 60%,并提供更大的 r5.24xlarge 和 m5.24xlarge 实例。
Amazon ElastiCache
Amazon ElastiCache 在云中提供与 Redis 或 Memcached 兼容、完全托管的内存中数据存储和缓存服务。该服务配备实现数据快速处理的多项功能,是希望以极快的速率处理大量数据的客户的理想之选,比传统数据库更快。
在 ElastiCache 中增加对 M5 和 R5 实例的支持时,我们花时间利用基于 AWS Nitro 的系统,并针对 ElastiCache for Redis 优化这些实例。开发人员喜欢 Redis 的性能、简单易用性和内存中功能,是最受欢迎的 NoSQL 键值存储服务之一。Redis 的微秒级延迟使其成为缓存的默认选择。对高级数据结构(例如,列表、集和有序集合)的支持还可实现各种内存中使用案例,例如排行榜、内存中分析和消息传递等。
优化 ElastiCache for Redis 的性能
我们从 M5 和 R5 实例开始,通过优化这些实例上的 Amazon Linux 操作系统配置来优化性能,以尽可能提高运行内存中工作负载的网络性能。
使用开源基准测试工具 rpc-perf,我们运行了一项 Redis 基准测试,其中包含 1470 万个唯一键、200 字节字符串值、80% 的获取、20% 的集合,以及无命令管道操作。我们在连接到同一可用区中经过优化的 R5 实例的 20 个客户端实例上运行此基准测试。与采用默认 Linux 配置的相同大小的实例上运行 ElastiCache for Redis 相比,每秒处理的事务量增加了多达 30%。有关详细信息,请参阅下表。
Vanilla R4 | Vanilla R5 | Tuned R5 | Vanilla R4 到 Tuned R5 的提升 | |
large | 88000 RPS | 179000 RPS | 215000 RPS | 144% |
xlarge | 93000 RPS | 180000 RPS | 207000 RPS | 122% |
2xlarge | 107000 RPS | 187000 RPS | 217000 RPS | 102% |
4xlarge | 131000 RPS | 208000 RPS | 225000 RPS | 71% |
8xlarge/12xlarge | 128000 RPS | 211000 RPS | 247000 RPS | 92% |
16xlarge/24xlarge | 149000 RPS | 181000 RPS | 237000 RPS | 59% |
我们还将平均延迟 (p50) 和尾延迟 (p99) 降低了多达 23%,经过这些优化之后,平均延迟低至 350 微秒。经过优化的 M5 实例每秒的请求增量为 9%-42%,并为 ElastiCache for Redis 工作负载提供更好的 CPU 利用率。
对于相同的缓存使用案例场景,ElastiCache for Redis 经过优化的 R5 实例得益于 R4 实例上自我管理的 Redis 的显著性能提升。经过优化的 R5 实例支持的事务每秒比类似大小的 R4 实例多 59%-144%。
与上一代 M4 实例相比,经过优化的 M5 实例具有类似的增量性能改进。与上一代 M4 实例相比,经过优化的 M5 实例受益于高达 356% 的吞吐量提升。
在 M5 实例中,改进最明显的是 M5 系列大小较小的实例。它们通过 m5.4xlarge 大小的实例利用 ENA 性能,网络突增性能高达 m5.large 实例提供的 10Gbps,这对处理不常见的流量高峰非常有用。
小结
我们很高兴为客户提供这些实例。您可以通过更少的管理程序开销和更好的网络受益,同时还可享受 ElastiCache 团队利用 AWS Nitro 系统进行的性能优化工作带来的巨大优势。这才刚刚开始。
我们的性能团队将继续增强整个系统,以实现最佳 ElastiCache for Redis 性能,我们将持续推出这些增强功能。要在 M5 和 R5 EC2 实例上开始使用 ElastiCache,请参阅 AWS 管理控制台。