首页> 中国专利> 选择资源分配策略和解决资源冲突

选择资源分配策略和解决资源冲突

摘要

提供了用于云计算基础架构中的工作负载管理的技术。在一个方面,提供了一种在数据中心集群中分配计算资源的方法。所述方法包括以下步骤:基于工作负载概要、用户要求和所述数据中心集群的状态中的一个或多个为每个调度器自动选择资源分配方法,其中为至少第一一个或多个调度器选择乐观资源分配方法,且为至少第二一个或多个调度器选择悲观资源分配方法。由于乐观资源分配,因此冲突可能出现。还提供了解决这样的冲突的方法。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-06-11

    授权

    授权

  • 2016-11-09

    实质审查的生效 IPC(主分类):G06F9/48 申请日:20160324

    实质审查的生效

  • 2016-10-12

    公开

    公开

说明书

技术领域

本发明涉及云计算基础架构,更特别地,涉及用于使用并行调度器的在云计算基础架构中的工作负载管理的技术,以及用于冲突解决的自动资源分配和策略选择器。

背景技术

云计算基础架构已经促使了在相同服务器中的混合工作负载的执行,从而促进更好的资源利用和效率。然而,在相同集群中适应异构工作负载、例如何时安排、放置在哪里、以及如何分配它们的资源仍然是挑战。此外,一些工作负载增加了对它们的资源使用的需求,使该问题甚至更难以解决。

集群管理的目前的解决方案可以被分为三个主要的调度器体系架构:(1)单片(monolithic)、(2)两级和(3)共享状态。单片调度器对所有工作只使用单一的集中调度算法,诸如高性能计算(HPC)调度器。两级调度器由单个活跃资源管理器组成,该单个活跃资源管理器将资源提供给接受或拒绝资源的多个并行、独立的调度器框架。参见,例如,Hindman等,“Mesos:A Platform for Fine-Grained Resource Sharing in the Data Center”,网络化系统设计与实现方式(NSDI'11)第8届USENIX会议论文集,第295-308页(2011年3/4月)。共享状态体系架构由并发访问作为交易的集群资源的多个并行的调度器组成。参见,例如,M.Schwarzkopf等,"Omega:flexible,scalable schedulers for large compute clusters",计算机系统(EuroSys'13)第8届ACM欧洲会议论文集,第351-364页(2013年4月)(以下简称"Schwarzkopf")。在这些调度器体系架构之间有显著的权衡。例如,单片调度器具有集群的全面控制并且可能计划最佳全局布局,但难以通过添加新的策略和专门的实现方式来多样化,并不会随集群大小而缩放。通过提供调度器并行,两级调度器比单片调度器更灵活,但它们减少了资源能见度,并基于更加难以执行的集群资源的整体视图做出决定(诸如为工作负载计划局部布局,或基于性能、能效和安全性执行工作负载迁移)。而且,当资源被预先分配用于调度器时,未使用的资源被浪费。共享状态具有群集资源的全局视图以做出所有的整体决定并且是可扩展的。然而,共享状态调度器对资源竞赛是非常敏感的,也不可能对一些工作负载保证资源分配。

目前,已知没有技术能结合先前的体系架构的所有优点并减轻上述缺点。在目前的方式中,调度器具有所有预分配的资源,诸如在单片和两级方式中,或者它们诸如在共享状态的方式中仅竞争资源。

此外,复杂的调度器引起诸如可扩展性、可维护性和灵活的适应性等问题。为了解决这个问题,共享状态的方式(参见,例如,Schwarzkopf)将复杂的调度器分成许多较小的调度器,而不是只具有带有所有工作负载的逻辑的一个单片调度器。一方面,这个共享状态的方式通过为所有工作负载部署提供集群的全局视图可能有益于执行最佳全局部署。也可能通过并行响应工作负载来增加可扩展性并且可能减少响应时间(由于减少的复杂性)。另一方面,如果多个调度器试图同时要求相同的资源,将只有一个是成功的,其他将必须再次重启调度过程。因此,如果冲突发生太频繁,则调度时间和响应时间将增加。

某些技术将工作负载分类,检测冲突,或者选择一般策略。分别参见,例如,J.Bobba等,“Performance Pathologies in Hardware Transactional Memory”,计算机体系架构第34届国际研讨会论文集(ISCA'07),第81-91页(2007年6月);M.F.Spear等,“Conflict Detection and Validation Strategies for Software Transactional Memory”,分布式计算第20届国际会议论文集(DISC'06),第179-193页(2006年);以及C.Delimitrou等,“Paragon:QoS-Aware Scheduling for Heterogeneous Datacenters”,编程语言和操作系统的体系架构支持(ASPLOS)第18届国际会议论文集(2013年3月)。然而,目前不存在基于基础架构状态共同考虑到所有的这些因素以改进和自动化工作负载冲突解决的解决方案。而且,目前的解决方案不考虑从共享状态集群中的工作负载冲突(诸如,应用程序干扰、服务器超载等)产生的特定能力。

此外,用于冲突检测和策略选择的大多数目前的解决方案使用需要用于预测的大数据集的线性编程,或依赖于用于测试阶段的庞大数量的数据的机器学习,这两者都不是实际用于现实世界的应用。另外,大多数目前的冲突检测和策略选择技术具有缺失项而表现不好。在这方面,一些方式存在用于分类和对数似然函数的矩阵分解的结合算法,以填充缺失项的预测。然而,这些方式不选择基于用于中央处理单元(CPU)、存储器、网络、磁盘的资源使用密集型的工作负载分类的冲突解决策略;工作负载执行时间;以及可能的不确定性和确定性冲突的检测。

因此,期望用于数据中心集群工作负载管理的改进的技术,包括用于冲突检测和策略选择的改进的技术。

发明内容

本发明提供了用于在云计算基础架构中的工作负载管理的技术。在发明的一个方面,提供了一种在数据中心集群中分配计算资源的方法。所述方法包括以下步骤:基于工作负载概要、用户要求和所述数据中心集群的状态中的一个或多个为每个调度器自动选择资源分配方法,其中为至少第一一个或多个调度器选择乐观资源分配方法,且为至少第二一个或多个调度器选择悲观资源分配方法。

在发明的另一个方面,提供了另一种在数据中心集群中分配计算资源的方法。所述方法包括以下步骤:创建多个并行的调度器;基于工作负载概要、用户要求和所述数据中心集群的状态中的一个或多个为每个调度器自动选择资源分配方法,其中为至少第一一个或多个调度器选择乐观资源分配方法,且为至少第二一个或多个调度器选择悲观资源分配方法;接收新的工作负载;将所述新的工作负载分类;基于所述新的工作负载的分类,确定i)是否将所述新的工作负载分配到现有的一个调度器或者ii)是否创建一个或多个新的调度器并且将所述新的工作负载分配到所述一个或多个新的调度器;识别调度器决定中的冲突;以及选择用于冲突的解决策略。

本发明的更加完整的理解以及本发明的进一步的特征和优点将通过参照下面的详细描述和附图来获得。

附图说明

图1是示出了根据本发明的实施例的使用自动资源分配选择器在数据中心集群中分配计算资源的示例性方法的示意图;

图2是示出了根据本发明的实施例的自动资源分配选择器的示例性实现方式的图;

图3是示出了根据本发明的实施例的用于调度器的可能的资源分配类型的图;

图4A是示出了根据本发明的实施例的对于给定的工作负载类型如何通过降低调度器的数目来增加服务质量(QoS)的图;

图4B是示出了根据本发明的实施例的对于给定的工作负载类型如何通过增加调度器的数目来增加数据中心效率的图;

图5是示出了根据本发明的实施例的用于乐观并行工作负载部署的自动选择冲突解决策略的示例性方法的图;以及

图6是示出了根据本发明的实施例用于执行本文所提出的一个或多个方法的示例性装置的图。

具体实施方式

本文提供的是用于基于工作负载概要、用户要求和数据中心的状态的并行调度器的自动选择乐观或悲观资源分配方法的技术(即,本技术可以用于管理多个数据中心的状态)。更具体地,本技术保证悲观充分资源预分配、半悲观局部资源预分配或乐观非资源预分配,其中预分配意味着封锁资源(即,保持资源以便能够将资源分配给工作负载)。可以在提交时,竞争未在分配阶段预先分配(即,由于乐观资源分配)的资源,因为具有可能在彼此之间竞争相同的资源的并行调度器。资源竞争——一旦被识别——可能基于用于解决可能出现的冲突的本文提供的策略和技术来解决。可选地,用户可以基于数据中心的表现或状态从乐观切换到半悲观或悲观资源分配。此外,本技术通过不具有所有的调度器预分配来改进资源利用率(并从而避免封锁空闲资源)。本技术可以延伸到多个/混合的云资源计算分配。

基于并行调度器的实现方式,本技术可以利用单片、两级和共享状态调度器体系架构的好处而不遭受上述的缺点。更具体地,本发明依赖于可能具有在悲观方式中预分配所有资源的调度器的混合方法;在半悲观方式中预分配资源的一部分的调度器;和/或在乐观方式中在彼此之间共享资源的调度器。预分配意味着资源的预留。根据工作负载的概要、用户的要求和/或数据中心的状态,调度器资源分配类型可以互换。选择一个或另一个调度器资源分配类型的决定可能依赖于将提供多少资源分配保证和调度器可扩展性(基于,例如,调度器能够考虑不同要求并满足那些要求的灵活性)。基于工作负载的概要的决定将确保为某类工作负载的资源分配。根据服务等级协议(SLA),基于用户的要求的决定将确保资源分配。基于数据中心状态的决定将在资源短缺期间减轻调度器竞争问题。此外,本技术通过不允许所有的调度器预分配资源(将从而减少空闲资源的封锁)来改进资源利用率。

仅通过示例的方式,本教导的一些显著的优点包括:1)通过资源的悲观完全预分配、资源的半悲观部分预分配、或资源的乐观非预分配来自动创建调度器实例;2)基于工作负载概要、用户要求和数据中心/集群状态,适应地选择资源分配类型;3)基于i)用户的决定(手动地或自动地-即,如用户请求中说明的)和/或ii)数据中心状态的变化,从乐观到半悲观或悲观资源分配动态地切换;以及4)用相同的逻辑扩展到多个云/混合。

因此,根据本技术,通过使用多个并行调度器可以获得数据中心可扩展性。对于给定组的调度器,保证的资源分配是可能的。为调度器手动或自动选择悲观、半悲观或乐观资源分配是可能的。此外,由于调度器保持空闲资源,因此资源浪费最小化。相比之下,用于集群资源分配的常规的解决方案仅为调度器预分配所有资源或不为调度器分配任何资源。而且,没有预分配资源的调度器不能保证资源分配。最后,没有办法为调度器从悲观资源分配切换到半悲观或乐观资源分配。

现在提供本技术的详细描述。如上所强调的,本资源分配技术依赖于由在悲观、半悲观和乐观资源分配方式中的(多个并行)调度器组成的混合方法。悲观方式预分配所有资源以便于保证部署。半悲观方式仅预分配部分资源从而确保仅有一部分的资源的可用性。乐观方式没有预分配资源并且仅在交易提交时分配资源。可能通过分析工作负载分类、用户SLA和/或数据中心状态来决定何时在这些方式之间选择。仅通过示例的方式,一方面一些工作负载或用户可能具有优先权,并且对于那些工作负载/用户,调度器将优选地总是预分配资源。通过优先权意味着,例如一些(高优先权)工作负载对延迟可能具有较少的容忍,并因此可能被要求在与高优先权工作负载同时到达或比高优先权工作负载更快到达的其他更低优先权工作负载之前放置。另一方面,资源预分配过程可能引入延时,且乐观并行方式可能具有更快的分配,导致一些冲突。根据用户和工作负载目标以及基于资源充裕或短缺的数据中心状态,预分配、部分预分配和后分配可以互换。如上所强调的,预分配包含在完成布局之前预留资源,因此保证将那些资源递给请求。在后分配中,调度器采用的资源不能保证——意味着当调度器在做决定时它们可能被其他请求占用。

图1的方法100为包含一个数据中心云的示例性实施例提供本技术的高级概述。在步骤102中提供用户输入。根据示例性实施例,在步骤102中,用户可以提供关于用户要求(诸如服务质量(QoS))、工作负载概要(例如,工作负载类型、什么工作负载应该得到优先权等)的输入。根据本技术,可以采用用于评估工作负载性能的本领域已知的任何合适的QoS指标(metrics)(即,由用户看到的)。

将用户输入数据提供给自动资源分配选择器。如上所提供的,本资源分配技术还考虑数据中心的状态。因此,在步骤104中,还将数据中心效率监测数据提供给自动资源分配选择器。数据中心效率监测收集关于数据中心的状态的数据,诸如CPU利用率、存储器利用率等等。可以经由数据中心效率监控器来完成该监测。数据中心效率监控器可以将这些指标传到调度决定发生之处的资源分配类型选择器。参见例如如下描述的图2中的数据中心效率监控器218和资源分配类型选择器206。评估该数据的一个方式为资源管理者分配关于利用率级别的情况以采取行动。例如,如果CPU利用率低于x%,则调度器可能执行更多的乐观调度,以便于以更快的方式将更多的请求分配给资源。

在步骤106中,资源分配类型选择器自动决定调度器的数目和它们的设置。具体地,根据示例性实施例,资源分配类型选择器(基于从步骤102和步骤104收集的数据)为(多个并行)调度器的每个自动选择(乐观、悲观或半悲观)资源分配方法。

图2是根据示例性实施例示出了自动资源分配选择器如何操作的逻辑流程图。如图2所示,工作负载分类器204将新的工作负载202分类。如上所述,本资源分配过程考虑用户输入201(以及数据中心的状态——例如,由数据中心效率监测来确定的)。基于来自工作负载分类器204的工作负载分类,资源分配类型选择器206确定调度器的数目和它们的设置。这包含决定是否需要添加新的调度器和/或需要移除现有的调度器、以及使用哪个资源分配模型。为了这个目的,可能实现的示例性功能模型和基于规则的机制如下所述。为了解决这个问题的另一种方式可以通过使用机器学习算法,用于选择资源分配类型。

因此,之后,资源经由悲观资源分配器208、半悲观资源分配器210和乐观资源分配器212被分配到调度器。具有预分配资源的调度器(即具有悲观资源分配类型的调度器)将没有冲突,并因此没有问题以提交决定。另一方面,没有预分配资源或预分配资源的至少部分的调度器(即分别具有乐观或半悲观资源分配类型的调度器)将捕获目前可用的资源的快照并基于快照来计划决定。做出决定后,调度器将(即,经由资源分配尝试器214)试图提交遭受在其他并发调度器之间竞争情况的决定。如图2所示,这可能导致冲突。如果(即,经由冲突识别器216)识别冲突,该冲突和其特性被存储在数据中心状态中,以便于(即,经由数据中心效率监测器218)监测数据中心的效率。如上所提供的,数据中心效率监测器收集关于数据中心的状态的数据,诸如CPU利用率、存储器利用率等等——该数据传递到调度决定发生之处的资源分配类型选择器。

图3是示出了用于调度器(S1、Si...Sn)的可能的资源分配类型的图。在图3,做出以下假设:

-R是所有数据中心资源的集合;

-Ai是调度器i的预分配资源,其中i表示0到n个调度器;

-Bi是调度器i的后分配资源,其中i表示0到n个调度器;

-∩ni=1Ai=0;

-

-Uni=1以及

-Uni=1

如果数据中心集群具有单片调度器,则i=1且Ai=Bi=R。如果数据中心集群具有多个调度器,所有的调度器具有所有的预分配资源(悲观),则Uni=1,Ai=R且Bi=Ai。如果调度器仅具有预分配资源的部分(半悲观),则Ai<Bi。最后,如果调度器不具有预分配资源(乐观),则Ai=0。当创建调度器时,根据工作负载的概要、用户要求和数据中心集群状态来定义Ai和Bi。然而,Ai和Bi的大小还可以基于来自数据中心集群的用户决定或反馈(例如,关于数据中心效率)来改变。如果Ai改变,调度器将具有或多或少的预分配资源,如果Bi改变,调度器将或多或少竞争资源。

如上所强调的,用户的要求可能涉及基于用于本领域中已知的工作负载性能的任何标准QoS指标的指标。仅通过示例的方式,参见由Zhu等、题为“Performance Interference Model for Managing Consolidated Workloads in Qos-Aware Clouds”的美国专利申请公开号2015/0012634(其描述了合适的基于时间的QoS指标)。用户的要求可能还涉及基于取消调度器的决定的数目的指标、调度器的实际吞吐量(即,吞吐量——诸如每单位时间递送到目的地的信息比特数的数目)、部署工作负载的时间、调度器的数目等。工作负载概要将描述这些指标加上基于:优先权、要求的保证的资源的数量、灵活的资源分配的数量(部分工作负载可能去往另一个)等的更具体的指标。数据中心状态指标涉及:取消的调度器的决定的数目、可用的资源、资源使用与资源预分配的数目等。调度器的数目是控制实际吞吐量的一种方式——调度器越多、一次(吞吐量)处理的请求越多,尽管冲突可能引起一些请求失败从而实际吞吐量可能下降。一些用户可能指示他们想要云供应商使用的调度器的数目,以便于增加吞吐量。

所有的这些指标用于(例如,通过资源分配类型选择器206——参见图2)决定由悲观、半悲观或乐观资源分配组成的调度器。此外,指标用于通过建立新的并行调度器来定义可扩展性级别。那些决定基于在调度器可扩展性、调度器性能、调度器保证的资源分配和集群资源使用之间的权衡。更具体地,可扩展性涉及具有更多的并行调度器。调度器性能依赖于调度器响应时间、取消的决定和资源的全局视图以更好地计划部署。调度器保证的资源分配直接涉及数据中心资源使用。即,调度器通过在预分配池中使用很少的资源可能浪费资源,这阻碍了最佳集群利用率。因为一些调度器浪费资源,集群可能无法扩展到需求。共享资源可能解决这个问题,但是包括上述的资源竞争问题。因此,通过这些权衡,将定义调度器资源分配类型。仅通过示例的方式,给定了这些权衡,可以使用功能模型确定乐观的解决方案。使用功能模型确定的示例性乐观的解决方案给出如下。

如上所述,功能模型和/或基于规则的机制可能用于决定是否需要添加新的调度器和/或需要移除现有的调度器、以及使用哪个资源分配模型。现在描述示例性功能模型和基于规则的机制。

功能模型:本质上,用户通过查看系统状态将带来一组要求以及工作负载特性。本技术将决定n、B和A的大小。

用户参数(QoS、工作负载等)->要求

QoS(期望的拒绝率、冲突率等)

工作负载(#的虚拟机(vms)、约束、需求等)

数据中心参数(数据中心位置(ID)、空闲的机器速度、冲突的数量)

资源分配参数(A、B、n)

F(用户、数据中心、资源分配参数)=主要目标

主要目标=权重1*用户目标(obj)+权重2*数据中心目标(obj)

用户obj(目标)=归一化(定义的SLA、QoS等)

数据中心obj=归一化(高的机器利用率等)

对于给定的主要目标值,用户参数、数据中心参数和期望的资源分配参数可以从F函数中导出。

示例:用户可能指定QoS具有少于10%的冲突,并且具有大量交易的存储强大的工作负载。数据中心可以处于在共享状态A=B中有3个并行调度器的状态中,因此我们具有A_i=B_i,其中i=1、2、3。例如说,当新的请求到来时,数据中心具有40%的空闲机器(vms)。

F(0.1、存储、高交易(high transaction)、0.4、(A_i=B_i,n=3))=期望的目标值

用户目标=1-冲突=1-0.1=0.9

数据中心目标=无

期望的目标=0.9,因此

F(0.1、存储、高交易、0.4、(A_i=B_i,n=?))=0.9

此时对于(A_i=B_i,n=?)解出F并找到A_i、B_i和n的值。

因此,根据本技术,可以容易地确定A_i、B_i和n的值——并且用A、B和n的子集定义乐观、悲观和半悲观。基于规则的模型:这是更简单的模型,其中根据用户QoS、工作负载类型和数据中心状态定义规则。例如,如果用户在冲突率方面正经受低的QoS,可以降低调度器的数目并设置A=B。如果数据中心正经受低的效率,则可以增加调度器的数目并设置A<B。图4A和4B描绘出每个工作负载类型的这些行为。

如上提供的,本主动资源分配选择器(即,经由工作负载分类器204——参见图2)将新的工作负载分类,在半悲观或乐观资源分配的情况下(即,经由冲突识别器216)为预分配资源识别冲突,以及制定冲突解决以解决冲突。现在描述的技术用于自动分类工作负载瓶颈,识别调度器的决定之间的冲突,并且选择策略以解决那些冲突。

工作负载分类、冲突识别和解决策略选择阶段考虑不同类型的冲突、工作负载特性和基础架构信息。根据本技术,所有的那些阶段配置为建议冲突解决策略,该冲突解决策略最满足用户的要求并减少调度器的取消的决定——从而改进实际吞吐量。本技术不仅为冲突解决策略选择提供过程,而且为从基础架构(诸如,取消的决定的数目、分配响应时间和工作负载服务质量(QoS))提取指标提供详细的方法,以反馈学习机制。此外,为了冲突解决,本文建议通过考虑工作负载迁移和资源放弃来行动——从而提供很多更加可能的策略。

为了执行每个(分类、识别和策略选择)阶段,本技术采用基于存储器的和/或基于模型的协同过滤算法以处理稀疏(sparse)输入,并建议工作负载分类、碰撞/冲突识别和策略选择。如将在下面详细描述的,每个阶段采用特定矩阵。例如,通常,分类阶段将包含由作为行的工作概要和作为列的CPU、网络、存储器或磁盘以及作为密集资源使用等级的元素来组成的多个效用(utility)矩阵。

识别阶段由具有将行为调度器的决定组合以及在先前提到的属性(即,CPU、网络、存储器或磁盘)和数据中心集群状态之间变化的列的多个矩阵组成。用于具有CPU、网络、存储器或磁盘作为列的矩阵的元素是工作负载性能干扰等级。矩阵的一个由数据中心集群状态组成,并具有元素服务器超载,该元素服务器超载是工作负载资源分配和服务器可用资源的比例。将数据中心集群状态作为行的其他矩阵具有作为缺失资源的元素,这种情况下如果服务器符合工作负载,则元素为1,否则为0。

最后,在策略选择阶段,有将行为冲突的调度器的决定加上延时的决定、列为策略解决类型以及元素为工作负载取消等级或工作负载性能的两个矩阵。最初,在每个矩阵中可能仅有几个元素填充。似然算法将用于填充从矩阵分解得到的效用矩阵的所有列中的缺失元素。初始元素可以由专家提供、或者来自具有由专业用户提供的任何可选的参数的工作负载概要、或者使用离线仿真和/或随机值。包括使用随机值的选项,因为即使没有专家或仿真数据,至少要求一个值以执行协同过滤。此外,管理员可以使用效用函数为每个特性提供值,该每个特性具有在最大和最小等级之间归一化的结果。最后,将提供一些元素,并使用动态自学习机制从在先前的部署中收集的参数来更新它们。

仅通过示例的方式,本教导的一些显著的优点包括:1)冲突处理策略的自动选择使用从云计算环境中的基础架构输入先前的工作负载分类和动态矩阵以解决分配冲突;2)基于在工作负载之间的干扰的冲突的自动识别、服务器超载的概率和在云计算环境中的资源可用性;3)基于CPU、网络、存储器和磁盘使用密集性的工作负载的自动分类;4)通过从先前的部署观察取消的决定的数目、应用干扰和数据中心集群状态的用于工作负载分类的学习机制、冲突识别和策略选择;以及5)通过考虑作为工作负载迁移和资源放弃的行动的无限冲突处理策略组合。

因此,根据本技术,可以使用稀疏输入执行工作负载冲突解决,该稀疏输入最小化调度器决定取消、应用干扰和服务器超载。动态工作负载分类的过程、冲突检测和策略选择可以使用机器学习机制加上从先前的部署收集的知识。可以基于工作负载迁移、决定的否认和取消和/或资源放弃和等待来推荐用于冲突解决的新的策略。

用于冲突解决策略选择的现有的解决方案基于机器学习机制和分类仅集中于分类,该机器学习机制要求用于测试阶段的大数据集,该分类为了更精确的决定不同时考虑工作负载约束、表现和数据中心状态。此外,现有的冲突解决方案没有考虑学习机制,该学习机制考虑调度器决定取消的数目、工作负载性能和/或来自先前的部署的数据中心集群状态。而且,在所有的阶段中,本技术将问题分解成用于分类的很多部分,该分类具有并行执行的协同过滤示例以加速过程并改进调度器的响应时间。最后,现有的解决方案不考虑冲突解决活动的特定类型,诸如工作负载迁移和资源放弃。

现在提供用于工作负载分类、冲突识别和冲突解决策略选择的详细描述。本技术提出了用于乐观(即,乐观或半悲观——参见以上)并行工作负载部署的自动选择冲突解决策略的框架。根据方法500,该过程在图5中示出,并且考虑三个阶段。在第一阶段(1)中,新的工作负载在步骤502中到达,并且在步骤504中,工作负载基于它们的资源需求来被分类(例如,CPU、存储器、网络和/或磁盘密集——参见以下)。步骤504可以例如通过工作负载分类器204来实现(参见图2)。

第二阶段(2)以在步骤506中做出关于工作负载是否应该被转发到现有的调度器或为工作负载创建的新的调度器的确定为开始。当这样的工作负载类型的需求高时,优选地创建新的工作负载特定调度器以扩展到需求。在这种情况下,工作负载在步骤508中被分配到新的调度器。另一方面,如果不需要新的工作负载特定调度器,则工作负载在步骤510中被分配到现有的调度器(即,当前的调度器)。

在调度器作出决定后,在步骤511中,调度器将决定转发到冲突识别器(即,冲突识别器216——参见图2),在步骤512-516中,该冲突识别器执行用于工作负载、可能的服务器超载和缺失资源之间的冲突(干扰)的并行识别。完成资源验证以检查是否有足够的资源以完成部署(placement)。这也是检测到冲突之处,因为一个部署变得成功,并且由于没有足够的容量,因而另外一个失败。根据示例性实施例,分别使用工作负载干扰冲突识别器、服务器超载冲突识别器和资源缺失冲突识别器来实现步骤512-516,工作负载干扰冲突识别器、服务器超载冲突识别器和资源缺失冲突识别器可以都是冲突识别器216的组件。当多个调度器的决定选择相同的主机来放置请求时发生冲突,这种情况下主机仅可以容纳决定中的一个。如果识别调度器的决定之间的冲突,则第三阶段开始。在第三阶段(3),基于在步骤512-516中识别的可能的冲突,在步骤518中推荐策略以解决冲突,以便于减轻取消并保持更高的工作负载性能。根据示例性实施例,使用策略选择器和实施者执行步骤518。

在已经解决冲突之后,在步骤520中,工作负载被提交到数据中心基础架构。如将在下面详细描述的,自学习机制用于基于来自该方法的一个或多个先前迭代的数据来更新工作负载分类和/或策略选择过程。参见图5。

所有的阶段包含使用描述调度器的决定的效用矩阵。例如,第一阶段具有将工作负载作为行的矩阵,并且第二和第三阶段具有将调度器的决定的组合作为行。根据示例性实施例,三个步骤过程用于填充矩阵元素。在第一步骤中,如以上强调的,从工作负载概要、专家、离线仿真、效用函数或者认知一些随机值提供对矩阵的初始的元素。

在第二步骤中,从矩阵分解推导出的矩阵的缺失元素将使用对数似然算法来填充。对数似然函数由∑i>i))给出,其中f(xi)是在xi处的概率密度函数且xi表示第i个观察。矩阵分解可以使用在很多其他之间的方法单值分解(SVD)、非负矩阵分解(NMF)、贝叶斯矩阵分解来获得。矩阵分解用于降维,这种情况下共享子结构的项的表示变得彼此更加相似,并且发散的项可能也变得更加发散。定义发散和相似的过程用于推荐。

最后,第三和连续步骤基于先前的部署和来自如取消率和工作性能的数据中心集群状态的措施来更新一些元素。然而,如果先前的项和新的项的差异大于h,其中h>0,尝试计数器(attempt counter)n与字段相关联,其中n>0。然后,在n个尝试后,元素将通过尝试值(除了异常值(即,异常值——使用,例如,探索性数据分析(EDA)发现的、在使用用于预测的数据之前被淘汰))来更新。这个第三阶段提供自学习机制。

现在进一步详细描述用于填充从矩阵分解推导出的矩阵的缺失元素的第二步骤。

在阶段(1)中,工作负载分类特性可以包括:

i.CPU密集率(intensiveness),表示平均CPU使用和CPU对工作负载性能的影响的组合;

ii.存储器密集率,表示在兆字节MB或千兆字节GB的平均存储器使用和存储器对工作负载性能的影响的组合;

iii.磁盘密集率,表示在MB、GB或兆兆字节TB的平均磁盘使用和存储器对的影响的组合;

iv.网络带宽密集率,表示在MB或GB的平均带宽使用和网络对工作负载性能的影响的组合;

v.网络响应时间密集率,表示平均响应时间和响应时间对工作负载性能的影响的组合;

vi.网络抖动密集率,表示平均抖动和抖动对工作负载性能的影响的组合;

vii.可以包括更多的参数。

工作负载分类能够为新传入的工作负载类型推荐几个先前的工作负载给定的分类。推荐将表明工作负载的特性。多个矩阵组成这个阶段,该多个矩阵将工作负载概要作为行,将工作负载特性作为列并且将密集资源使用率作为元素。一些初始的元素依赖于由专家使用的归一化的效用函数。效用函数可以由在工作负载概要、专家或可以成为本文提出的那些人来提供。所有的工作负载特性在一些从0到1的间隔内分类,其中0表示与旧的(历史的)特性有0%的相关性,1表示与旧的(历史的)特性有100%的相关性。

示例性实现方式描述了效用函数以评估每个工作负载特性,另一个实现方式一起评估所有的工作负载特性,如下:

对于CPU密集性评估:

fCPU=[j*CPUavg>usage*#requestsCPUmax>usage*#requests+k*ExcTimemax-ExcTimenormalExcTimemax]/j+k

其中ExcTimenormal参数是当工作负载所有的可用CPU被分配时的平均(avg)执行时间;ExcTimemax参数是当工作负载仅有z%的CPU被分配时的平均执行时间,其中z<最大的CPU数目;j参数是CPU使用(usage)的权重,k参数是执行时间的权重。

对于存储器密集性评估:

fmem=[j*memoryavg>usagememorymax>usage+k*ExcTimemax-ExcTimenormalExcTimemax]/j+k

其中ExcTimenormal参数是当工作负载所有的可用存储器(memory)被分配时的平均(avg)执行时间;ExcTimemax参数是当工作负载仅有z%的存储器被分配时的平均执行时间,其中z<可用存储器的最大值;j参数是存储器使用(usage)的权重,k参数是执行时间的权重。

对于磁盘密集性评估:

fdisk=[j*data>transfer>rateavg*#disksdata>transfer>rateavg*#disks+k*ExcTimemax-ExcTimenormalExcTimemax]/j+k

其中ExcTimenormal参数是当工作负载所有的可用磁盘(disk)被分配时的平均(avg)执行时间;ExcTimemax参数是当工作负载仅有z%的可用磁盘被分配时的平均执行时间,其中z<最大的可用磁盘数目(#disks);j参数是数据传输率(data>

对于网络带宽密集性评估:

fbandw=[j*bandwidthavg>usagebandwidthmax>usage+k*ExcTimemax-ExcTimenormalExcTimemax]/j+k

其中ExcTimenormal参数是当工作负载所有的可用网络带宽(bandwidth)被分配时的平均(avg)执行时间;ExcTimemax参数是当工作负载仅有z%的网络带宽被分配时的平均执行时间,其中z<最大的可用带宽;j参数是带宽使用(usage)的权重,k参数是执行时间的权重。

对于网络响应时间密集性评估:

其中ExcTimenormal参数是当网络具有最小的响应时间时的平均工作负载执行时间,ExcTimemax参数是当网络具有最大的响应时间时的平均工作负载执行时间。本文使用的属于“响应时间”指的是在请求(request)的结束和响应的开始之间经过的时间,该响应的开始可以依据网络延时而变化。

对于网络抖动密集性评估:

fjitter=ExcTimemax-ExcTimenormalExcTimemax

其中ExcTimenormal参数是具有最小网络抖动的平均执行时间,ExcTimemax参数具有最大网络抖动的平均执行时间。这个实现方式将抖动理解为响应时间中的变化。

为了评估所有特性的组合,这个示例性实施例提供以下效用函数:

faverage=Σ1n[(wn+xqn)/x+1]*fnn

其中fi(i=1>i参数表示来自由用户提供的工作负载概要的权重,qi参数表示由专家确定的权重,x参数表示用于由集群管理员确定的专家权重的权重。函数的结果将是0直到1之间的值,其中0表示工作负载自由资源密集性,1表示工作负载重资源密集性。这个评估可能是矩阵中的附加的列。

在阶段(2)中,调度器的决定冲突识别可能包括以下特性:

-CPU干扰率,表示在相同的主机中运行的一个或多个工作负载的低性能,因为它们是CPU敏感的;

-存储器干扰率,表示在相同的主机中运行的一个或多个工作负载的低性能,因为它们是存储器敏感的;

-磁盘干扰率,表示在相同的主机中运行的一个或多个工作负载的低性能,因为它们是磁盘敏感的;

-网络干扰率,表示在相同的主机中运行的一个或多个工作负载的低性能,因为它们是网络敏感的;

-服务器超载,表示一个或多个工作负载的部署可能超载一些服务器资源并这种整个服务器性能;

-资源缺失,表示如果一个或多个调度器决定分配期望的资源,则另外的一个或多个调度器决定将没有可用资源以部署它们的决定。

由于使用先前的阶段,冲突识别将推荐在调度器决定的组合中检测的可能的冲突。冲突检测可以在调度器执行期间发生,或者在所有的决定已经完成之后发生。前者是悲观方式,并且调度器将为冲突识别器(CI)提供局部和增量决定。后者是乐观方式,并且调度器将在把决定发送到冲突识别器之间计划所有资源。在这两种情况中,冲突识别器将组合接收的所有决定并匹配它们的工作负载分类以评价冲突。在每个矩阵中,调度器的决定组合是所有的矩阵的行,工作负载特性或数据中心集群状态是列。调度器的决定组合可以由两个工作负载或由一组工作负载来采用。列为工作负载特性的矩阵的元素为干扰等级,该干扰等级是工作负载资源密集率的平均。其他两个矩阵的列为数据中心集群状态。数据中心集群作为列的一个矩阵的元素为服务器超载,该服务器超载是服务器的可用资源的每个总数目的来自工作负载概要的资源使用需求的总和的比例。

数据中心集群状态作为列的另一个矩阵的元素——如果没有用于决定的可用资源——为0,否则为1。后者矩阵仅是具有直接从基础架构收集的信息的矩阵。在推荐阶段,当速率高于z时,其中0<z≤1,识别冲突。

在阶段(3)中,策略选择标准可以包括:

-取消速率,表示调度器的决定的取消的概率。一些策略可以通过等待、迁移或放弃资源而不是取消整个决定来解决冲突。

-工作负载性能率,一类工作负载可能受益于不同的策略解决。例如,根据用户定义的QoS,迁移或等待资源的策略可以有一些性能降低。而且,一些策略可能接受一些资源的服务器超载,资源的服务器超载很可能直接影响一个或多个工作负载的性能。

在识别冲突之后,策略选择器和实施者(PS)被调用推荐策略以解决冲突。策略选择器和实施者由两个矩阵组成,该两个矩阵的行为冲突的调度器决定加上延时的调度器的组合,列为策略。两个矩阵的元素不同,其中一个是由取消率来填充,另一个是由工作负载性能率来填充。取消速率表示在时间间隔ty到t期间,使用策略发生的取消的数目与在集群中发生的取消的总数目之间的比例,其中参数x在每次数据中心集群状态改变时改变。数据中心集群状态表示从资源短缺到丰富的等级,还表示调度器的决定取消的速率和工作负载性能率。一些策略可能在资源丰富期间执行得更好,其他策略可能在资源短缺期间执行得更好。可能根据工作负载密集率和测量的执行时间和/或响应时间为各自的关键特性来评估性能率。那些性能参数可能从工作负载概要、从专业知识和从先前的部署来提供。性能取决于选择的策略,因为服务器超载可能被接受或不接受,和/或低优先权工作负载可能被迁移为高优先权决定提供更多的资源。因此,一组政策行动可以不同地影响工作负载性能。

本技术还基于交易世界但适于集群背景来描述一些可能的策略。另外,本技术基于已知的行动加上资源放弃和工作负载迁移及意识的组合来描述新的策略:

-随机。这是最简单的策略,随机选择获胜的调度器决定。

-回退(back-off)。随机选择获胜的调度器决定。失败者将在取消之前使用指数增长间隔的固定数目的指数延时。在每个间隔之后,失败的调度器决定检查是否其他已经完成。

-特权1。每个工作负载具有可以由用户服务级别协议(SLA)、管理员指定的或从0直到N开始的优先权。在取消调度器决定之前,具有较低的优先权的调度器决定被延时,且优先权增加N次,其中N是优先权中的差异。

-特权2。这个策略与特权1类似,除了一些调度器决定没有增长的优先权。因此更高的优先权被保持为高,然而没有得到增加的优先权的低优先权请求可以最终得到一次以上的延时。

-更老的(Elder)。调度器决定在开始其第一次尝试时接收时间戳。如果是并发决定的第一次,则决定中的一个随机延时。如果并发决定有不同的时间戳,则较新的决定被取消。

-更老的结束(Elder end)。这个策略与更老的类似,除了这个策略还有用于从未延时的决定的超时机制。

-黑名单。调度器决定接收含有延时的所有决定的黑名单。如果调度器没意识到其他调度器的决定,随机选择一个决定以延时并包括在黑名单中。如果决定中的一个在黑名单中,取消该决定。如果决定中的两个都在黑名单中,随机选择一个。

-放弃。调度器决定可以放弃冲突资源,如果可能的话。用户必须将调度器决定指定到工作负载概要。

-放弃时间。这个策略与放弃类似,除了其仅在N个尝试之后放弃资源并在M各尝试之后取消,其中N<M。

-迁移低优先权。如果可能,迁移在冲突服务器中的低优先权运行工作负载以释放资源来用于调度器的决定。

-迁移时间。这个策略与迁移低优先权类似,除了其仅在N个尝试之后迁移较低优先权工作负载并在M各尝试之后取消,其中N<M。

-收缩(shrink)。如果可能的话,减少运行工作负载的资源以适应调度器的决定。

-收缩时间。这个策略与收缩类似,除了其仅在N个尝试之后减少较低优先权工作负载的资源并在M各尝试之后取消,其中N<M。

-回退长期意识(back-off long-term aware)。如果长期工作负载是获胜者,不延时,取消失败者。

在先前的策略之间的很多其他组合是可能的。

此处策略选择目标是通过减少取消和调度器浪费时间来减轻冲突问题并改进工作负载组合的性能。因此,选择的策略将是具有最低可能的取消率和最高可能的性能率的策略。

本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。

计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。

这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。

用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。

这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。

这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。

也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。

附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

现在转向图6,示出了用于实现本文呈现的一个或多个方法的装置600的框图。仅通过示例的方式,装置600可以配置为实现图1的方法100的一个或多个步骤,和/或图5的方法500的一个或多个步骤。

装置600包括计算机系统610和可移动介质650。计算机系统610包括处理器设备620、网络接口625、存储器630、介质接口635和可选的显示器640。网络接口625允许计算机系统610连接到网络,同时介质接口635允许计算机系统610与介质(诸如硬盘驱动器或可移动介质650)交互。

处理器设备620可以配置为实现本文公开的方法、步骤和功能。存储器630可以是分布式的或局部的且处理器设备620可以是分布式的或单一的。存储器630可以实现为电、磁或光存储器、或这些或其他类型的存储设备的任意组合。而且,术语“存储器”应被足够广泛的解释为涵盖能够从处理器设备620访问的可寻址空间中的地址读取或写入该地址的任何信息。通过这个定义,网络上的、通过网络接口625可访问的信息仍然在存储器630内,因为处理器设备620可以从网络检索信息。应该注意的是,组成处理器设备620的每个分布式处理器通常含有其自己的可寻址的存储器空间。还应该注意的是,一些或所有的计算机系统610可以被结合到专用或通用集成电路。

可选的显示器640是适合与装置600的人类用户交互的任何类型的显示器。通常,显示器640是计算机监控器或其他类似的显示器。

虽然本文已经描述了本发明的示例性实施例,应该理解的是,本发明不限于那些精确的实施例,并且本领域的技术人员可以做出各种其他的改变和修改,而不脱离本发明的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号