Amazon Aurora无服务器如何管理10K+实例的资源与扩展

Amazon Aurora Serverless 资源管理与扩展设计的最新进展

AWS工程师发表了一篇论文,详细介绍了Amazon Aurora Serverless平台资源管理和扩展设计的演进及最新方案。Aurora Serverless通过结合不同层次的组件,创建了一种动态扩展和调整资源的整体方法,以满足客户工作负载的需求。

Aurora Serverless 的核心功能

Amazon Aurora Serverless能够自动扩展Amazon Aurora数据库,以响应不断变化的客户工作负载,提供成本优化、性能提升和操作简化。客户通过配置Aurora容量单位(ACUs)来设置扩展范围,服务会根据需求动态调整资源。从客户的角度来看,这些扩展操作无需干预,也不会中断客户端连接或会话状态,但可能会影响延迟。

第二代设计的主要改进

当前的Aurora Serverless产品是基于2018年推出的ASv1经验设计的第二代版本。新设计专注于原地扩展,利用CPU和内存的热插拔功能,并支持跨主机的实时迁移。与ASv1相比,ASv2提供了更快、更无缝的扩展,扩展增量更小,成本效益更高。

解决的主要挑战

第二代解决方案的开发团队面临了许多挑战,其中最主要的是为支持扩展和缩减事件的数据库工作负载实现有效的内存管理。Linux和数据库引擎通常会占用所有可用内存并保持占用状态。工程师们修改了数据库引擎、Linux内核和AWS Nitro虚拟机监控程序,以实现对不同工作负载的更灵活的内存管理。

资源管理的核心服务

Amazon Aurora使用每个实例的管理服务来控制数据库引擎的资源扩展,基于物理主机上所有实例的需求趋势。通过优化数据库引擎在主机上的放置和可用资源余量,Aurora Serverless确保主机上有足够的资源来适应动态工作负载,而无需在主机之间迁移。

大规模计算实例的管理

Aurora Serverless服务在最广泛的层面上管理着成千上万的计算实例。机队管理服务专注于中长期机队规模和容量调整,基于期望的利用率和预测需求。当主机面临“过热”风险时,使用实时迁移来释放资源。此外,机队管理器可以在“热量修复”期间对实例的最大ACUs施加临时限制。

扩展事件的数据分析

工程师们分享了美国AWS区域的Aurora机队数据,指出绝大多数(99.98%)的扩展事件无需跨主机迁移,可以通过原地扩展机制满足。

论文的关键结论

论文总结了一些关键要点,强调设计简单性和基于指标的响应式资源管理方法。团队没有排除未来在解决方案中引入更多预测元素的可能性,并强调了虚拟机监控程序和操作系统内核共同进化以更好地支持数据库工作负载的进一步机会。

阅读 42
0 条评论