内容提要
亚马逊AWS工程师发表了一篇论文,描述了亚马逊Aurora Serverless平台资源管理和扩展的演变和最新设计。Aurora Serverless使用不同级别的组件组合,以创建全面的方法,动态扩展和调整资源以满足客户工作负载的需求。
延伸解读
从ASv1到ASv2:扩展机制的演进
Aurora Serverless的第二代设计(ASv2)基于ASv1的运营经验,重点转向就地扩展,利用CPU和内存热插拔技术,并辅以跨主机实时迁移。相比ASv1,ASv2的扩展速度更快、更无缝,且扩展增量更小,从而更具成本效益。这一演进反映了AWS在平衡性能与成本方面的持续优化。
内存管理:第二代方案的核心挑战
第二代解决方案面临的主要挑战是有效管理数据库工作负载的内存,以支持扩展和缩减事件。Linux和数据库引擎倾向于提交并保留所有可用内存,为此工程师修改了数据库引擎、Linux内核和AWS Nitro hypervisor,实现了更灵活的内存管理,从而适应变化的工作负载。
分层资源管理:从单实例到全局舰队
Aurora Serverless采用分层管理:每实例管理服务根据物理主机上所有实例的需求趋势控制资源扩展,优化放置和资源余量;舰队管理服务则管理数万计算实例,关注中长期舰队规模和容量调整,并在主机可能过热时进行实时迁移或临时限制最大ACU。这种组合实现了全面的动态扩展。
就地扩展的高效性与未来方向
数据显示,99.98%的扩展事件无需跨主机迁移,可通过就地扩展机制满足,这显著降低了迁移开销。论文强调设计简洁性和基于指标的反应式资源管理,未来可能引入更多预测元素,并指出hypervisor与OS内核协同演进以更好支持数据库工作负载的机会。
Q&A
亚马逊Aurora Serverless如何动态扩展资源?
Aurora Serverless通过不同级别的组件组合,自动根据客户工作负载的需求动态调整资源,使用Aurora容量单位(ACUs)配置扩展边界。
ASv2与ASv1相比有哪些优势?
ASv2提供更快、更无缝的扩展,扩展增量更小,且更具成本效益,专注于就地扩展。
Aurora Serverless在扩展时会影响客户连接吗?
扩展操作不会干扰客户连接或会话状态,但可能会影响延迟。
Aurora Serverless如何管理大规模计算实例?
Aurora Serverless使用Fleet Manager服务管理数万计算实例,关注中长期的舰队规模和容量调整。
Aurora Serverless面临哪些主要挑战?
主要挑战是有效的内存管理,以支持扩展和缩减事件,确保数据库工作负载的灵活性。
未来Aurora Serverless可能会有哪些改进?
未来可能引入更多预测元素,并强调设计简洁性和基于指标的资源管理方法。