[论文阅读笔记]Aladdin: Optimized Maximum Flow Management for Shared Production Clusters

摘要

诸如深度学习和对延迟敏感的在线Web服务之类的长期应用程序(LLA)的普及,为共享生产环境中的集群调度程序带来了新的挑战。对LLA进行调度需要支持复杂的放置约束(例如,在不同的计算机上运行一个应用程序的多个容器)和更大的并行度以提供全局优化。但是现有的调度程序通常会遇到严重的约束违规,高延迟和低资源利用率的问题。
本文提出Aladdin,它是一种新颖的集群调度程序,它可以在避免约束冲突的同时最大程度地提高资源效率: 1. 提出了多维非线性容量函数multidimensional and nonlinear capacity function)来支持约束表达式; 2. 应用优化的最大流量算法optimized maximum flow algorithm)来提高资源效率。
对来自10,000台计算机集群的阿里巴巴工作负载跟踪进行的实验表明,阿拉丁可以将违反的约束减少多达20%。同时,与最新的调度程序相比,它可以将资源效率提高50%。

一、引言

包括深度学习,流和对延迟敏感的在线Web应用在内的长期应用程序(LLA)越来越多地在基于容器的生产集群上运行。 每个LLA包含一个或多个使用寿命长的容器,用于封装硬件资源(例如,CPU和内存),这些容器的分配和使用时间从几小时到几个月不等。 在这种情况下,集群调度程序面临更复杂的放置约束和更大程度的并行性。先前的工作主要集中在短寿命的应用程序(例如MapReduce批处理作业,内存Spark查询)中,以确保低延迟。但是,这些方法可能会产生严重的约束违反和LLA的高延迟。
在阿里巴巴跟踪中,LLA约束主要包括反亲和力和优先级。 我们发现,近70%的LLA具有抗亲和性约束,这意味着出于性能或可靠性要求,应用程序内或应用程序之间的容器应在不同的机器上运行。 此外,大约有15%的容器应满足优先级约束,如果存在放置冲突,则优先级高的容器可以优先处理优先级低的容器。 最近,提出了两项​​新颖的研究来解决复杂的放置约束的挑战。 如图1所示,Firmament可以通过具有超时机制的基于多轮流的调度来支持LLA。但是,它可能会遇到连续的冲突并导致调度质量低下,这表明集群需要更多资源来执行那些未调度的任务。 Medea提出了一种整数线性程序(ILP)方法,通过改变权重来平衡资源效率和约束违规,但是如果未优化加权值,它可以容忍一些违规约束。大量的研究工作表明,权重优化问题很难解决。
Firmament和Medea的调度结果

图1:三个容器(一个S0和两个S1)同时到达。
S1的每个容器都具有较高的优先级,并且由于反亲和性约束,建议不要与S0一起部署在同一台计算机上。
(a)显示每个容器的资源需求。 (b)显示了Firmament的调度结果,尽管S0被重调度了许多次,但未调度S0以避免反亲和性约束。 (c)显示Medea的调度结果。
为了最小化使用机器的数量,它违反了反亲和性约束,因为容器S0和S1在同一机器上运行。

主要贡献:

  • 提出了一种基于流网络模型的多维和非线性容量函数,以表示反亲和力和优先级约束。
  • 设计了一种优化的最大流量算法,以实现高质量的放置和全局目标,尤其是在大量LLA同时到达时。
  • 通过阿里巴巴工作负载跟踪将我们的方法与最新的调度程序进行了比较。 实验表明,阿拉丁可将约束违规降低多达20%,并将资源效率提高50%。

二、问题陈述与分析

问题陈述

集群由完全互连的计算机组成,每台计算机都可以承载各种LLA。 LLA包含在隔离的容器中运行的多个实例(例如Tensorflow,Mysql)。容器配置有一定数量的计算资源。当11.11电子商务假期或黑色星期五临近时,公司将通过并行安排大型LLA来将应用程序的功能提高约100倍。
在调度LLA时,Aladdin满足所有放置约束(反亲和力和优先级),而不是像Medea中容忍一些约束违规。 在这种情况下,应将属于同一应用程序的某些容器放置在不同的计算机上,以减少发生硬件故障时的停机可能性。我们称此为应用程序内的反亲和力。 相反,跨应用程序的反亲和力意味着不应在同一台计算机上部署两个LLA,以避免严重的性能干扰。 此外,所有容器都按不同的优先级进行分类,调度程序应限制低优先级容器的资源供应,以避免影响高优先级的容器。 这意味着如果两个争夺瓶颈资源的容器同时到达,我们应该首先部署高优先级的容器。
因此,阿拉丁旨在满足以下总体目标

  • 放置约束表达式。应该表达反亲和力和优先权,以避免在LLA内或跨LLA的任何约束违规行为。
  • 资源效率。应通过最大程度减少使用机器的数量来提高生产集群中的资源利用率。
  • 可接受的放置延迟。放置决策的等待时间应限制在亚秒级。

问题分析

对于给定的机器,可以将LLA的调度简化为流网络问题。此问题的典型应用涉及如何找到从工厂到道路网络容量有限的仓库的最佳运输路线。 此外,我们提出了一种优化的最大流量算法,用容器代替工厂,用机器代替仓库。
最大流算法将有向流网络G=(V,E)作为输入。 每个边(i,j)∈E连接两个给定的顶点i,j∈V。 每个顶点v∈V具有多维和非线性的容量,用c(i,j)表示。 在这种情况下,流网络中有两个不同的顶点:源s∈V和宿t∈V。 如果找到一条路径s→v→t而没有超出任何边的容量限制,则称其为流量。 形式上,G中的流是函数f:V×V→R,它满足容量约束(式1)和流量守恒(式2)。
在这里插入图片描述
像SPFA这样的最大流算法将流从源s路由到接收器t,直到f(i,j)=0。但是,在调度LLA时,该算法面临以下两个挑战
•如何区分具有不同优先级的任务(III .B)
•如何表达反亲和力约束(III.C)

三、Aladdin设计

本节描述了Aladdin中使用的流网络结构,描述该设计以便在优先级和反亲和力方面找到一个流。

流网络结构

Aladdin设计了多维和非线性容量函数来表达放置约束如图2所示,容器管理器(CM)同时提交LLA容器。 每个提交包括优先级wn,资源需求描述cn和LLA标签an。机器管理器(MM)收集机器运行时状态,包括反亲和性约束pm,已部署的容器dm,可用资源cm,机架名称rm和群集名称gm。然后,调度程序管理器(SM)求解从CM和MM的输出构造的流网络。
在流网络中,引入应用顶点Ai,簇顶点Gi和机架顶点Ri,以将总边缘从O(| T |·| N |)减少到O(| T | + | A |·| R | + | N |),可以显著优化放置延迟。 例如,如果我们在集群中有100,000个容器和10,000台计算机,则延迟将高达几秒钟。 我们观察到所有容器仅属于13,056个不同的应用程序。 然后,由于边缘的数量仅约为30万个,而不是10亿个,因此放置延迟可以减少到数百毫秒。
Aladdin设计

对优先级的支持

在最大流量理论中,有两种机制(抢占和迁移)来增加流量,但是它们都不了解优先级约束。
如图3(a)所示,假设容器A和B无法部署在同一台机器上,容器A具有更高的优先级,而容器B需要更多的资源。 由于典型的最大流量算法不考虑优先级约束,因此容器B可以抢占容器A。这种抢占意味着高优先级的容器可以被低优先级的容器抢占从而增加流量。
增大流量的两种机制(抢占和迁移)

基于以上观察,引入高优先级容器的加权流量wkf(i,j),以增加网络流量。这种机制确保了高优先级的不会被抢占。使用式3对所有容器的优先级进行分类,其输出是具有相同优先级wk的容器。 然后,将优先级最低的容器的默认权重w1设置为1(式4)。 根据式5计算高优先级容器的加权值wk,可以确保高优先级容器的加权流wkf(i,j)比任何低优先级容器大。
在这里插入图片描述
图3(b)描述了迁移机制。假设:(1)容器A具有更高的优先级,并且容器A和B无法一起部署;(2)容器A现在在机器M上运行,但是容器B只能部署到机器M上;(3)容器A可以在两台机器上运行。在这种情况下,低优先级容器可以抢占高优先级容器,因为后者可以从M迁移到N。两个容器都使用最大流量理论进行部署。尽管该理论没有考虑优先级约束,但我们可以在LLA的调度过程中获得预期的结果。 因此,我们决定遵循它。

对反亲和力的支持

在最大流理论中可以将容量c(i, j)表示为N个元组(x1,x2,···,xn)来支持反亲和力(x1,x2,···,xn),并且该元组中的每个元素都是线性函数。 如图4所示,除了从s到Ti(c(s,Ti))和从Nj到t(c(Nj,t))之外,Aladdin中的所有边缘容量都是无限的。 在这种情况下,当满足等式6时,这是一个新的流程,其中符号≤表示容器Ti的资源需求小于机器Nj的资源供应。
基于非线性集合的函数以支持反亲和力约束
在这里插入图片描述
然而,很难通过线性函数来表达反亲和力约束。我们使用基于集合论的非线性函数来支持抗亲和力。 符号≤被扩展以表示c(s,Ti)∈c(Nj,t)。 如图4所示,我们有一个强制性要求,即容器T1和T2必须在不同的机器上运行,用反亲和力约束p = {T1,T2,0}表示。 在从T1到N1找到网络流之后,N1将其已部署的容器状态更新为d = {T1},这意味着根据反亲和性约束p = {T1,T2,0,T2被添加到N1的黑名单中 }。 然后,我们继续搜索新的网络流,即使等式7和等式8有足够的资源,也无法将容器T2部署到机器N1。
公式7给出了机器Ni的容器黑名单,而公式8确保了如果容器Tj不在机器Ni的黑名单中,则可以对其进行部署。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值