Optimizing Resource Allocation in Hyperscale Datacenters: Scalability, Usability, and ...——论文泛读

OSDI 2024 Paper 论文阅读笔记整理

问题

Meta的私有云使用数百万台服务器来托管数以万计的服务,为数十亿用户的多种产品提供服务。这个复杂的环境存在各种资源分配的优化问题:

  • 硬件放置[30]:决定何时何地在数据中心添加或删除服务器机架,同时平衡相互竞争的目标,如员工工作时间表、电力预算、跨容错域分布和就近托管,例如需要高带宽网络的机器学习训练服务器。

  • 服务放置[32]:决定服务器到服务的分配,同时将每个服务分散到容错域中,并优化服务和不同代服务器之间的匹配,因为不同的服务在不同代服务器之间表现出不同的性能。

  • 服务分片[25]:对于数据库等分片服务,确定如何在数据中心区域内和跨数据中心区域迁移数据分片以响应实时负载变化,同时确保跨容错域的分布,并防止可能破坏系统稳定的并发更改。

  • 流量路由[5]:将流量从数十亿用户路由到地理分布的数据中心,同时优化网络延迟和数据中心负载。

  • 局部组[35]:智能地将无服务器功能划分为组,每个服务器仅在其指定组内执行功能。目标是增强局部性,最大限度地提高JIT代码缓存的命中率,并平衡服务器之间的CPU和内存使用。

所有问题都有一个共同的模式,即以优化特定目标同时满足某些约束的方式将一组对象分配给一组箱。混合整数规划(MIP)可用于解决此类分配问题,如果对象i被赋值给箱j,则表示为vij取值为1,否则取值为0。MIP求解器确定这些变量的最佳值,在遵守给定约束的同时优化指定的目标。

但MIP在解决大规模系统问题中有两个主要局限性:

  • 可用性:大多数系统从业者难以将真实系统的复杂策略转化为MIP精确数学公式。为了解决可用性,DCM[38]使开发人员能够使用熟悉的SQL语句表达约束,而Wrasse[34]使用特定于领域的语言。然而,这些方法的行业采用情况尚未得到报道,因此,它们的普遍性仍未得到证实。

  • 可扩展性:MPI方法的赋值问题有|O|×|B|个变量,O是对象集,B是容器集,|O|和|B|是它们的大小,MIP问题公式的总体输入大小是O(|O|×|B|)。在大规模私有云中,分配问题涉及多达数百万个对象和100000个存储箱,即使是近似MIP求解器也会在O(1011)赋值变量上遇到困难,而且大多数赋值问题都是NP-hard。

本文方法

Meta提出资源分配框架Rebalancer,具有可用性、可扩展性和通用性。设计求解器有三个核心问题:模型规范、模型表示和模型求解。

  • 为了应对可扩展性挑战,Rebalancer将模型表示为有向无环图(DAG),将模型大小从O(|O|×|B|)减小到O(|O|+|B|)。图表示是Rebalancer的优化局部搜索比过去的局部搜索算法更有效地求解模型的根本原因[1]。

  • 为了应对可用性挑战,Rebalancer通过直观的API支持声明性模型规范,自动将高级规范转换为图形表示,以实现高效处理。

模型规范

Rebalancer采用三步走的方法来逐步提高抽象级别。首先,包括基本的建模构造,如维度(表示对象和容器的属性,如CPU和内存)和容器范围(表示服务器、机架、数据中心等)。接下来,提供了一个表达式API来公开常用的表达式(例如,Max和Sum),以便对这些构造进行转换,以及对其他表达式进行递归转换。最后,利用这些表达式,公开了实现数十个公共目标和约束的高级规范API。

高级规范API使开发人员能够轻松构建分配问题(图1)。例如,CapacitySpec允许开发人员指定具有64GB内存的服务器上的内存使用等约束,GroupCountSpec用于指定每个服务器机架最多只能承载一个数据库分片的副本,以确保跨容错域分布。在实践中,在Reblancer支持的数十个用例中,85%的约束和目标是通过直接重用现有规范来实现的,而无需使用表达式API。

模型表示

在开发人员利用规范定义赋值问题后,Rebalancer将其转换为表达式图G。G中的每个节点都表示由其子表达式构造的表达式。由于在模型构造和通用表达式中的仔细选择,G的大小是可扩展的,即O(|对象|+|箱|),而不是MIP问题公式中的O(|对象|×|箱|)。

模型求解

这类问题通常是NP难的,目标是在合理的时间内找到高质量的解。对于小问题,Rebalancer将表达式图转换为MIP模型,并用商业求解器求解。然而,大问题要么对商业解决者来说太大,要么截止日期很紧,例如实时负载平衡。为此,Rebalancer实现了一种优化的局部搜索算法。图表示是该算法比过去的局部搜索算法更有效的根本原因[1,29,33,34]。

总结

针对大规模场景中的资源分配的优化问题,可以采用混合整数规划(MIP)解决,但受限于可用性差、可扩展性差。本文提出资源分配框架Rebalancer。为了可扩展性,将模型表示为有向无环图(DAG),将模型大小从O(|O|×|B|)减小到O(|O|+|B|),同时优化局部搜索更有效地求解。为了可用性,利用直观的API支持声明性模型规范,自动将高级规范转换为图形表示,以实现高效处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妙BOOK言

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值