AWS 最近推出了RDS Optimized Reads 和 RDS Optimized Writes,旨在增强在 RDS 上运行的 MySQL 和 MariaDB 工作负载的性能。这些新功能可以提高查询性能并提供更高的写入吞吐量,但仅适用于有限的实例子集并且具有多个先决条件。
RDS 优化读取是一项提供更快查询处理的功能,将 MySQL 临时表移动到本地基于 NVMe 的 SSD 存储。根据云提供商的说法,涉及排序、哈希聚合、高负载连接和公用表表达式 (CTE) 的查询的执行速度最多可以提高 50%。这项新功能是在 re:Invent 期间宣布的,适用于运行 8.0.28 及更高版本的 MySQL 工作负载的 RDS,现在也可用于RDS for MariaDB。
只有一部分内存优化实例和通用实例支持它,并且实例上可用的实例存储量因系列和大小而异,从最小 75 GB 到最大 3.8 TB。可以使用三个新的CloudWatch 指标监控本地存储的使用情况:FreeLocalStorage、ReadIOPSLocalStorage和WriteIOPSLocalStorage。
RDS Optimized Writes是一项功能,无需额外费用即可提高写入事务吞吐量,并具有相同级别的预置 IOPS,有助于生成大量并发事务的写入繁重的工作负载。AWS 副总裁兼首席布道师Jeff Barr解释说:
默认情况下,MySQL 使用磁盘上的双写缓冲区作为内存和最终磁盘存储之间的中间停止。缓冲区的每一页都是 16 KiB,但以 4 KiB 块的形式写入最终的磁盘存储。这个额外的步骤可以保持数据完整性,但也会消耗额外的 I/O 带宽。(...) 优化写入使用统一的 16 KiB 数据库页面、文件系统块和操作系统页面,并以原子方式将它们写入存储(全部或全部),从而使性能提高高达 2 倍。
断写保护 (TWP)可确保 16KiB 写入操作在写入事务期间发生操作系统崩溃或断电时不会被撕裂。该功能受益于AWS Nitro 系统,目前仅当数据库是使用支持该功能的数据库引擎版本和数据库实例类创建时才可用。从快照还原的数据库只有在最初是从支持它的服务器创建的时才能启用该功能。据 AWS 称,RDS 优化写入有助于数字支付、金融交易和游戏应用程序等工作负载。
虽然一些用户质疑缺少 PostgreSQL 支持,但 Duckbill Group 的首席云经济学家 Corey Quinn 在他的时事通讯中写道:
并非毫无意义,但很难将这种增强与绝对无情的“RDS?不!使用 Aurora!”相提并论。在过去的几年里,我们从 AWS 自上而下获得的消息。
RDS 优化读取目前仅在 M5d、R5d、M6gd 和 R6gd 实例上可用。最初宣布仅适用于运行 MySQL 8.0.30 及更高版本的内存优化 r5 Intel 实例,RDS 优化写入现在也可用于部分Graviton 实例。关于作者,雷纳托洛西奥
作为云架构师、技术主管和云服务专家,Renato 拥有丰富的经验。目前,他住在柏林,作为首席云架构师远程工作。他的主要兴趣领域包括......。