2024年9月5日
亚马逊 Aurora Serverless(无服务器)平台近日发布了一项重要更新,详细描述了其资源管理和扩缩容的演变及最新设计。这项更新由 AWS 工程师发表的一篇论文进行阐述,旨在更好地满足客户工作负载的需求,实现成本优化、性能改进和操作简化。
资源管理与动态扩缩
Aurora Serverless 采用了一种全面的动态资源管理方法,通过不同级别的组件组合,实现资源的动态扩展和调整。该平台能够自动扩缩 Amazon Aurora 数据库,以响应客户工作负载的不断变化。
客户使用 Aurora 容量单位(Aurora Capacity Units,ACU)配置扩缩边界,服务根据需求动态调整资源。对于客户而言,这些扩缩操作无需任何干预,也不会中断客户端连接或会话状态,但可能会对延迟时间产生一定影响。
第二代产品 ASv2
当前的 Aurora Serverless 产品是基于 2018 年推出的 ASv1 运维和支持经验设计的第二代产品,即 ASv2。新设计侧重于就地扩缩(in-place Scaling),使用 CPU 和内存热插拔,支持跨主机的实时迁移。
与 ASv1 相比,ASv2 提供了更快、更无缝的扩缩,扩缩增量更小,更具成本效益。然而,第二代解决方案的团队也面临着许多挑战,其中最主要的挑战是对数据库工作负载进行有效的内存管理。
内存管理与系统优化
为了提供更灵活的内存管理,工程师对数据库引擎、Linux 内核和 AWS Nitro 虚拟化管理程序进行了更改。这些调整使得系统可以更好地适应不同的工作负载,从而支持扩展和缩减事件。
实例管理器与机群管理器
Amazon Aurora 利用每个实例的管理器服务,根据物理主机上所有实例的需求趋势来控制数据库引擎的资源扩缩。通过优化数据库引擎在主机之间的放置和可用资源余量,Aurora Serverless 能够确保主机上有足够的资源来适应动态工作负载。
此外,Aurora Serverless 服务还管理着包含数万个计算实例的大型机群。机群管理器(Fleet Manager)服务负责根据所需的利用率水平进行中长期机群的规模和容量调整。当主机面临“热”的风险时,使用主机之间的实时迁移来释放资源。
数据与未来展望
工程师们分享了美国 AWS 地区 Aurora 机群的一些数据,指出绝大多数(99.98%)的扩缩事件不需要主机间的迁移,可以通过就地扩缩机制来满足。
论文最后总结了一些关键要点,强调了设计的简单性和一种响应式、指标驱动的资源管理方法。该团队不排除未来在解决方案中引入更多预测元素的可能性,并强调了虚拟化管理程序和操作系统内核共同演进以更好地支持数据库工作负载的进一步机会。
结语
亚马逊 Aurora Serverless 的这项更新,无疑为大规模数据库管理提供了更加高效、灵活的解决方案。随着技术的不断进步,我们有理由相信,未来 Aurora Serverless 将为用户带来更多惊喜。
Views: 0