【论文】略读笔记41-前沿-混合部署统一调度+资源竞争感知
📖《Understanding and Optimizing Workloads for Unified Resource Management in Large Cloud Platforms》
🎯需求
- 为了充分利用计算资源,谷歌和阿里巴巴等云计算提供商选择将在线服务与批量处理应用共置于数据中心。
- 在当今的大规模数据中心中,实现高资源利用率的一种常见方法是将对延迟敏感(LS)的应用(如微服务)和尽力而为(BE)的应用(如批处理作业)共用同一个集群。
- 为了便于管理不同类型的应用,谷歌、微软和阿里巴巴等云提供商在过去十年中采用了混合调度,分别实施了用于管理 BE 和 LS 的调度器。
- 例如,阿里巴巴构建了 Sigma 调度器,用于调度长期运行的 LS,同时保留了 Fuxi 调度器,用于调度由许多具有复杂依赖关系的小型任务组成的 BE 作业。通过为 LS 和 BE 设计定制策略,混合调度试图在应用性能方面实现两全其美。
- 通过实施统一的资源管理策略,不同类型的复杂计算作业以一致的方式请求资源,这有助于数据中心实现全局最优调度,提供更高质量的计算能力。
- 混合调度的一个基本缺陷是,一个工作负载调度器做出看似独立的调度决策,而不管另一个工作负载调度器是否并存,从而导致次优调度结果。数据中心管理系统通常会为每个调度器保留一定的资源,这很容易导致整体利用率低下。
- 为了缓解这些限制,数据中心已开始通过单一调度框架从混合调度发展到统一调度,如 Google Borg、阿里巴巴统一资源管理系统和 Facebook Twine。
- 在这种新的调度模式下,不同应用的资源请求由系统统一调度,以实现所有应用之间的全局调度协调。
- 同时,统一调度器可以全面了解数据中心资源,提高利用率和调度质量。
- 虽然统一调度可以实现更高的资源利用率,但
- 1)在统一调度下,任务通常在容器中运行,更容易受到干扰。然而,现有的统一调度器并未明确量化任务性能(考虑干扰)。
- 2)需要确保各种应用的性能与传统混合调度下的性能相当。统一调度对调度效率提出了很高的要求,即大规模数据中心中所有任务的实时调度,如 Google Borg 每小时需要调度超过 25 万个任务请求。
🚧现状
- 要设计出满足所有这些要求的统一调度器,关键是要深入了解统一调度的特点,但迄今为止还没有人进行过这样的分析研究。
🛩创新
为了理解这种新的调度模式,本文首先对阿里巴巴的统一调度工作负载进行了深入研究。我们的研究侧重于资源利用率、应用运行性能和调度可扩展性的表征。
- 具体来说,我们分析了阿里巴巴数据中心超过一百万个 pod 在八天内的工作负载。我们分析了 LS 和 BE 应用程序中任务(在容器中运行)的资源使用指标。该特性分析产生了几个有趣的观察结果。
- 我们观察到,
- 1)虽然在统一调度下通过削峰填谷使得计算资源明显超额,但阿里巴巴数据中心的资源利用率仍然很低。
- 统一调度通过在适当的时间精心调度 BE 应用程序,将填谷和削峰结合在一起,不仅能为 LS 工作负载提供性能保证,还能在 LS 工作负载较低时提高利用率。
- 尽管进行了峰值负载转移,但总体资源利用率仍然很低,即平均不到 30%。
- 2)同时,pod 在等待 CPU 和内存资源时仍会出现较长的调度延迟,而且调度延迟呈重尾分布。
- 3)此外,现有的资源使用预测器往往会严重高估资源使用情况。
- 数据中心调度程序通常会超量分配资源,让一台机器上的资源请求总和超过其容量,从而提高资源效率。实现这一目标的关键是准确预测每台物理机器的实际资源使用情况。
- 我们量化了业界提出的各种现有预测方法在阿里巴巴生产工作负载上的表现。量化结果表明,这些方法会导致严重的高估,这表明在统一调度的背景下,需要更多资源效率更高的预测方法。
- 4)同时,同一应用中的任务表现相当一致,任务的运行性能可以很好地反映相应物理主机上的资源争用情况。
- 我们还对 BE 和 LS 应用程序的 pod 性能进行了分析,结果表明它们与物理主机上的 pod 资源使用情况和资源争用情况高度相关。
- 此外,同一应用程序中 pod 的行为相当一致,这表明可以根据先前的历史记录获得单个应用程序的概况,从而预测 pod 的性能。因此,可以在线使用机器学习算法来预测每个 pod 的行为,从而产生更高效的调度结果。
- 1)虽然在统一调度下通过削峰填谷使得计算资源明显超额,但阿里巴巴数据中心的资源利用率仍然很低。
基于这些观察结果,我们在本文中设计了一种统一的数据中心调度程序 Optum,用于提高整体资源利用率,同时确保每个应用程序的良好性能。Optum 为每个应用程序维护两个配置文件,即 pod 资源使用情况和 pod 运行性能。性能配置文件还能捕捉资源干扰。
- Optum 提出了一个调度统一任务请求的优化问题,旨在平衡利用率和资源争用之间的权衡。
- Optum 采用了一种更精确的预测器来预测每台物理机上未来的资源使用情况。该预测器背后的原理是,来自不同应用程序的任意两个 pod 的总资源使用峰值远远低于这两个 pod 的峰值之和。因此,预测器会将所有 pod 对资源使用情况的估计值结合起来,从而得出更准确、更紧凑的预测结果。
- Optum 还实施了高效的启发式方法,以可扩展的方式解决优化问题。
- Optum 基于应用配置文件和资源使用预测器,建立了一个全局优化框架,以最大限度地提高数据中心的整体资源利用率和所有 pod 因资源争用而导致的性能下降之间的差值。为解决这一问题,Optum 设计了可扩展的解决方案,能够以较小的开销生成调度决策。
- Optum 提出了一个调度统一任务请求的优化问题,旨在平衡利用率和资源争用之间的权衡。
总结而言,我们在本文中做出了以下贡献:
- 1)我们对大规模数据中心的统一调度进行了全面研究。我们的研究揭示了有关资源使用和 pod 性能的一些有趣现象。此外,我们的研究还强调了现有资源使用预测器在资源过度承诺方面的低效率。
- 2)我们设计了一种新的统一数据中心调度器,它能很好地平衡资源利用率、pod 性能和调度可扩展性之间的权衡。
- 3)我们利用阿里巴巴数据中心的生产工作负载进行了大规模实验,证明了我们设计的调度器与现有解决方案相比的优越性。
📊效果
- 大规模实验证明,与最先进的统一调度方案相比,Optum 可节省多达 15% 的资源,且不会降低性能。
- 我们开发了一个跟踪驱动的测试平台来评估 Optum。它模拟了一个由大约 6000 台服务器组成的数据中心,其配置与阿里巴巴数据中心的配置相同,这些数据中心在实际工作负载下运行。
- 评估结果表明,与最先进的统一调度程序相比,Optum 可将资源利用率提高 15%,同时所有 pod 的性能保持不变。
🧠疑问
- 在阿里,Sigma是专用于延迟敏感型LS应用调度,Fuxi是专用于尽力而为BE应用调度?按此理解,Fuxi2.0的调度对象全是BE应用?还是Fuxi2.0已经进化为统一调度了?
- 混合部署带来了什么问题?统一调度带来了什么问题?会导致性能下降?是否能打一些比方来说明这个问题。
- 几个阶段间的逻辑关系应该是:独立部署:混合调度->混合部署:混合调度->混合部署:统一调度。
- 调度质量逐步上升(更能找到全局较优解、提高资源利用率),调度效率逐步下降(求解空间越来越大)。
- 同时,对于新颖的混合部署,难以避免任务间干扰,甚至还没人能够较好地量化这种干扰,所以也很难找到实际全局最优解。
- 负载预测器的核心亮点是什么?
- 现有负载预测器都忽略资源争用,因此导致高估资源需求。
- 不存在资源争用时,同一应用的多个pod资源使用情况很稳定,可以作为Base。
- 阿里的文章真是措辞严谨、逻辑通顺、内容充实细节丰富。包括前面的Fuxi2.0,都是常看常新的文章,很值得学习。
- 希望这篇博客对你有帮助!如果你有任何问题或需要进一步的帮助,请随时提问。
- 如果你喜欢这篇文章,欢迎动动小手给我一个follow或star。
🗺参考文献
- 标题: 【论文】略读笔记41-前沿-混合部署统一调度+资源竞争感知
- 作者: Fre5h1nd
- 创建于 : 2024-07-01 20:55:04
- 更新于 : 2024-10-08 11:39:55
- 链接: https://freshwlnd.github.io/2024/07/01/literature/literatureNotes41/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。
评论