CN116601604A - 基于成本和服务级别优化多平台即服务的工作负载的布置 - Google Patents
基于成本和服务级别优化多平台即服务的工作负载的布置 Download PDFInfo
- Publication number
- CN116601604A CN116601604A CN202180081913.9A CN202180081913A CN116601604A CN 116601604 A CN116601604 A CN 116601604A CN 202180081913 A CN202180081913 A CN 202180081913A CN 116601604 A CN116601604 A CN 116601604A
- Authority
- CN
- China
- Prior art keywords
- workload
- platform
- workloads
- determining
- arrangement
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/485—Task life-cycle, e.g. stopping, restarting, resuming execution
- G06F9/4856—Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/503—Resource availability
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/506—Constraint
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Multi Processors (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种用于优化多平台即服务的系统中的工作负载布置的计算机实现的方法、计算机程序产品和计算机系统。计算机首先将相应工作负载布置在为相应工作负载产生最低成本的相应平台上。计算机确定是否满足强制约束。计算机响应于强制约束被满足而检查尽力而为约束。计算机确定不满足尽力而为约束的一组工作负载,并确定产生最低成本并使得尽力而为约束能够被满足的一组候选平台。从该组工作负载中,计算机选择具有最低升级成本的工作负载,并通过设置升级平台索引来更新工作负载。
Description
技术领域
本发明一般涉及平台即服务(PaaS)模型,并且更具体地涉及基于成本和服务级别优化在多平台即服务上的工作负载的布置。
背景技术
在平台即服务(PaaS)模型中,设置工作负载以在平台上运行而不是在虚拟机或物理机器上运行。平台可以包括底层资源的任何组合,并且这通常不被暴露给平台的用户。平台通常暴露接口,接口使得能够布置、运行、监测以及控制平台上的工作负载。
通常需要在与基础设施即服务(IaaS)平台一起工作时处理一些方面,诸如选择虚拟机(VM)类型、创建和维护VM镜像、将VM连接到集群或与集群断开、返回VM、等待VM供应以及跟踪VM,在与PaaS平台一起工作时被消除。在PaaS中,两个主要概念是工作负载和运行工作负载的平台。
PaaS平台可以是本地的和远程的。用户在PaaS平台上创建账户,并且然后可以经由所创建的账户在这些PaaS平台上上传和运行工作负载。在本地和远程平台上运行工作负载的能力提供了若干好处。成本节约是显著的好处之一。无需花费金钱来构建和维护资源以适应仅偶尔发生的资源使用的尖峰,混合云机制使得能够将工作负载从本地平台卸载到远程平台,并且因此仅当需要额外资源时才支付额外资源,从而降低了总拥有成本。另一好处是使用具有不同属性的多个云提供商和平台的灵活性,这取决于诸如工作负载要求和成本的考虑。提高安全性是额外的好处。云提供商可以提供增强的安全性、隔离和通过专用网络的通信,解决安全性和一致性方面。混合云机制通过在云平台上动态地布置工作负载来提供可扩展性。另外,通过利用云提供商的资源,可以最小化遭受中断和停机时间。
发明内容
在一个方面,提供了一种用于优化多平台即服务上的工作负载的布置的计算机实现的方法。该计算机实现的方法包括:针对相应工作负载设置平台索引,平台索引标识产生用于运行相应工作负载的最低成本的相应平台;针对相应工作负载,确定是否满足强制约束;响应于确定满足强制约束,检查尽力而为(best effort)约束;确定不满足尽力而为约束的一组工作负载;响应于一组工作负载不为空,针对一组工作负载,确定产生最低成本并且使得尽力而为约束能够被满足的一组候选平台;确定识别候选平台中的相应候选平台的升级的平台索引,并且计算一组工作负载的升级成本;从一组工作负载中选择具有最低升级成本的工作负载;通过为具有最低升级成本的工作负载设置升级的平台索引,升级具有最低升级成本的工作负载;执行求解优化问题的下一迭代,直到找到相应工作负载在相应平台上的最优布置。
在另一方面,提供了一种用于优化工作负载在多平台即服务上的布置的计算机程序产品。该计算机程序产品包括计算机可读存储介质,该计算机可读存储介质具有随其体现的程序指令,并且该程序指令可由一个或多个处理器执行。程序指令可执行以针对相应的工作负载设置平台索引,平台索引标识产生用于运行相应的工作负载的最低成本的相应平台。程序指令进一步可执行以针对相应工作负载确定是否满足强制约束。响应于确定满足强制约束,程序指令还可执行以检查尽力而为约束。程序指令还可被执行以确定不满足尽力而为约束的一组工作负载。响应于一组工作负载不为空,程序指令还可执行以针对一组工作负载确定产生最低成本并使得尽力而为约束能够被满足的一组候选平台。程序指令进一步可执行以确定识别候选平台中的相应候选平台的升级的平台索引,并且计算一组工作负载的升级成本。程序指令进一步可执行以从一组工作负载中选择具有最低升级成本的工作负载。程序指令进一步可执行以通过为具有最低升级成本的工作负载设置升级的平台索引来升级具有最低升级成本的工作负载。程序指令进一步可执行以执行求解优化问题的下一迭代,直到找到相应工作负载在相应平台上的最优布置。
在又一方面,提供了一种用于优化工作负载在多平台即服务上的布置的计算机系统。该计算机系统包括一个或多个处理器、一个或多个计算机可读有形存储设备、以及存储在一个或多个计算机可读有形存储设备中的至少一个上的用于由一个或多个处理器中的至少一个执行的程序指令。程序指令可执行以:针对相应工作负载设置平台索引,平台索引标识产生用于运行相应工作负载的最低成本的相应平台;针对相应工作负载,确定是否满足强制约束;响应于确定满足强制约束,检查尽力而为约束;确定尽力而为约束未被满足的一组工作负载;响应于一组工作负载不为空,针对工作负载组确定产生最低成本并使得尽力而为约束能够被满足的一组候选平台;确定识别候选平台中的相应候选平台的升级的平台索引,并且计算一组工作负载的升级成本;从一组工作负载中选择具有最低升级成本的工作负载;通过为具有最低升级成本的工作负载设置升级平台索引,来升级具有最低升级成本的工作负载;以及执行求解优化问题的下一迭代,直到找到相应工作负载在相应平台上的最优布置。
在又一方面,提供了一种多平台即服务的系统。多平台即服务的系统包括相应工作负载,其包括未决工作负载和运行工作负载。多平台即服务的系统还包括相应平台,相应平台包括远程平台和本地平台。多平台即服务的系统还包括用于映射相应工作负载和相应平台的系统。用于映射相应工作负载和相应平台的系统包括一个或多个处理器、一个或多个计算机可读有形存储设备以及存储在一个或多个计算机可读有形存储设备中的至少一个上以供一个或多个处理器中的至少一个执行的程序指令。程序指令可执行以针对相应工作负载设置平台索引,平台索引标识产生用于运行相应工作负载的最低成本的相应平台。程序指令进一步可执行以针对相应工作负载确定是否满足强制约束。程序指令进一步可执行以响应于确定满足强制约束而检查尽力约束。程序指令还可被执行以确定不满足尽力而为约束的一组工作负载。程序指令还可执行以响应于工作负载组不为空,针对一组工作负载,确定产生最低成本并使得尽力而为约束能够被满足的一组候选平台。程序指令进一步可执行以确定识别候选平台中的相应候选平台的升级的平台索引,并且计算一组工作负载的升级的成本。程序指令进一步可执行以从一组工作负载中选择具有最低升级成本的工作负载。程序指令进一步可执行以通过为具有最低升级成本的工作负载设置升级的平台索引来升级具有最低升级成本的工作负载。程序指令进一步可执行以执行求解优化问题的下一迭代,直到找到相应工作负载在相应平台上的最优布置。
附图说明
图1示出了根据本发明的一个实施例的多平台即服务的系统。
图2呈现了示出根据本发明的一个实施例的在多个平台上布置工作负载的操作步骤的流程图。
图3(A)和图3(B)呈现了示出根据本发明的一个实施例的优化工作负载在多个平台上的布置的操作步骤的流程图。
图4是示出根据本发明的一个实施例的计算设备的组件的图。
图5示出了根据本发明的一个实施例的云计算环境。
图6示出了根据本发明的一个实施例的云计算环境中的抽象模型层。
具体实施方式
下面是本公开中考虑的问题的定义。多个工作负载可用于运行或已经在运行。多个平台可用于运行多个工作负载。多个平台中的一些平台可能在运行工作负载。每个工作负载可能具有完成其处理所需的时间。每个工作负载可根据其资源消耗和完成时间方面在每个平台上不同地执行。每个平台产生不同的成本集,该成本集可能随着时间而改变。每个平台的成本可根据指定资源的使用、时间间隔和其它方面而变化。每个平台可具有不同的容量限制。多个平台中的一些平台可以是本地的,而多个平台中的一些平台可以是远程的。目的是找到多个工作负载和多个平台之间的映射,并且该映射最小化工作负载的完成时间和使用平台所带来的总成本。
用于云突发的现有商业系统具有若干限制。在平台即服务(PaaS)模型中,系统通常依赖于系统管理员来经由监测工具识别资源短缺或资源过剩的情况,以监测和确定可移动哪些应用,监测和调节预算利用,以及管理云资源的供应和释放。平台即服务云相对较新,并且当前PaaS云系统在管理服务级别和预算方面提供有限的支持或不支持。
为了克服上述限制,本发明的实施例集中于平台即服务云模型。本发明的实施例支持任何类型的工作负载和工作负载环境;没有关于虚拟化环境的假设。本发明的实施例结合服务级别、预算、成本、资源、工作负载和平台考虑来考虑。本发明的实施例支持具有不同属性的多个本地和远程云。本发明的实施例受到关于预算、资源和平台的约束的制约以自动化的方式优化工作负载服务级别和云使用成本。本发明的实施例提供了可扩展的解决方案。
图1示出了根据本发明的一个实施例的多平台即服务的系统100。多平台即服务的系统100包括工作负载120、平台130和用于映射工作负载120和平台130的系统110。工作负载120包括M个未决工作负载(未决工作负载1 121-1、未决工作负载2 121-2、...和未决工作负载M 121-M)。未决工作负载将被布置在平台上。工作负载120还包括N个运行工作负载(运行工作负载1 122-1、运行工作负载2 122-2、...和运行工作负载N 122-N)。运行工作负载当前在平台上运行。平台130包括K个本地平台(本地平台1131-1、本地平台2 131-2、...、本地平台K 131-K)和L个远程平台(远程平台1 132-1、远程平台2 132-2、...、远程平台L131-L)。可由一个或多个云提供商提供平台130。
用户请求在平台上运行未决工作负载;用于映射的系统110计算平台上的未决工作负载的最优布置,并且用于映射的系统110根据最优布置在平台上布置未决工作负载。在任何改变(例如,向系统100添加任何新的工作负载或工作负载的要求的任何改变,在本文的稍后段落中给出的详细描述)时,用于映射的系统110重新计算平台上运行的工作负载的最优布置。根据运行的工作负载的最优布置,响应于当前平台不是计算的最优平台,用于映射的系统110将一个或多个运行的工作负载从当前平台移动或迁移到针对一个或多个运行的工作负载的计算的最优平台。
用于映射的系统110可以驻留在计算设备或服务器上。在稍后的段落中参考图4更详细地描述计算设备或服务器。用于在工作负载120和平台130之间映射的系统110在云计算环境中实现。在稍后的段落参考图5和图6详细描述云计算环境。
映射工作负载和平台到运行属性:
用于映射的系统110接收多个工作负载和有资格运行多个工作负载的多个平台的定义。用于映射的系统110通过使用映射函数对在特定平台上运行特定工作负载的属性进行建模,该映射函数将每对工作负载和平台映射到在该平台上运行该工作负载的属性,如下:
[Workload(WK),Platform(PL)]→[Cost,Estimated Duration to Complete(EDC),Resource Requirements(RR)]
其中,Cost是在特定平台上运行特定工作负载的估计成本;其中,EstimatedDuration to Complete(EDC)是在特定平台上运行的特定工作负载从工作负载在平台上开始运行的时间起测量的估计的完成持续时间,其不包括工作负载在开始运行之前的任何等待时间;并且其中,根据平台的“Resource Requirements(RR)”是根据由特定平台所收取的主要资源来估计的在特定平台上运行的特定工作负载的资源要求。每个平台定义了资源,基于该资源来计算使用收费。由用于映射的系统110学习和估计Cost和EDC。取决于平台所提供的接口,可以由用于映射的系统110估计RR,或者由用户输入提供RR。
包括在平台上运行工作负载的属性的矩阵WkPl:
可以在矩阵中存储每对相应的工作负载和相应的平台到在相应的平台上运行相应的工作负载的属性的映射。例如,由矩阵中的行表示每个工作负载,并且由矩阵中的列表示每个平台,并且在矩阵中的单元中存储在特定平台上运行特定工作负载的属性。令矩阵被指示为WkPl。表1示出WkPl矩阵的示例。
表1矩阵WkPl的示例
矩阵WkPl中的单元存储在特定平台PLj上运行特定工作负载WKi的属性,并且该单元被表示为WkPl[WKi,PLj]。来自属性Cost、EDC和RR的与在特定平台PLj上运行特定工作负载WKi相关联的属性被表示为Attribute(WkPl[WKi,PLj]);例如Cost(WkPl[WKi,PLj])。
矩阵WkPl的更新:
用于映射的系统110在以下触发事件中的任何一者时更新矩阵WkPl。
(1)对系统100添加新的工作负载。在这种情况下,向矩阵WkPl添加新的行。
(2)改变工作负载的一个或多个要求。在这种情况下,改变与该工作负载相关联的行的单元。
(3)工作负载在特定平台上完成了处理。在这种情况下,可以在与工作负载和平台相关联的单元中更新平台上的工作负载的实际运行属性。平台上工作负载的实际运行属性也被添加到Cost、EDC和RR度量的估计机制中。同样可以更新可以在同一平台上运行的其他工作负载的属性。
(4)完成了对平台上的工作负载的处理,因此周期性地或立即从矩阵WkPl中移除工作负载。在这种情况下,可从矩阵WkPl中移除与要被移除的工作负载相关联的行。如果移除是周期性的,则将根据移除标准(例如基于工作负载的时间属性的标准)来应用。
(5)增加新的平台。在这种情况下,利用针对工作负载中的相应工作负载的属性的估计值,对矩阵WkPl添加新的列。
(6)平台所收取的费用改变。在这种情况下,可更新在与平台相关联的矩阵列中存储的信息。
(7)平台可用的资源的数量和/或类型被改变。在这种情况下,存储在与平台相关联的矩阵列中的信息被更新。
(8)移除平台。在这种情况下,移除与被移除的平台相关联的列。
为了发现上述触发事件中的任何一个,维护矩阵WkPl的用于映射的系统110周期性地扫描和监测工作负载以确定工作负载的当前状态,并且系统周期性地扫描和监测平台以确定平台的当前状态。
用于映射的系统110开始建立矩阵WkPl,其中列定义可用的平台而没有行。当添加工作负载时,用于映射的系统110将行添加到矩阵;在该行的单元中,用于映射的系统110添加可用平台上的工作负载的属性的估计值。
估计Cost、EDC和RR:
为了估计每对工作负载和平台的Cost、EDC和RR度量,系统110使用基于先前记录的信息的估计,即,在特定平台上运行的相同类型的其他工作负载的运行属性。如果在为其估计度量的工作负载当前在运行,则系统110也有可能在处理工作负载时考虑当前状态。
在估计Cost、EDC和RR度量时,考虑以下方面。
(1)工作负载类型。每个工作负载可以与工作负载类型相关联。每个工作负载类型对在运行特性和资源要求方面具有相似性的工作负载进行分组。可经由提供给系统110的用户输入来指定给定工作负载与类型的关联,作为给定工作负载的属性的一部分。系统110使用的Cost、EDC和RR度量的估计机制是基于每个工作负载的类型属性的可用性的,以使得给定工作负载能够与相同类型的先前工作负载相关联。针对每个工作负载类型计算估计的度量。对于每个工作负载类型,确定并存储针对工作负载类型的在平台上运行工作负载的度量或属性的聚合和/或详细信息,以促进估计与该工作负载类型相关联的工作负载。使用完成工作负载的实际运行属性来更新为与该完成工作负载相关联的工作负载类型存储的聚合和/或详细信息。
(2)度量值的加和性。收集的Cost、EDC和RR度量可独立地表示每个工作负载,并且可以是加性的。
(3)PaaS云计费模型。PaaS云平台通常具有一个或多个资源,通过该资源计算使用消耗和费用;例如,所使用的存储器的量或所使用的工作负载过程的数量可以用于计算使用消耗和费用。这些资源通常是软件定义的(而不是硬件定义的)。成本费用通常与这些资源的消耗成比例,并且通常相对于用户每时间单位对这些资源的消耗来计算。还可以存在对每个用户的这些资源的最大使用的限制。PaaS云平台可以提供若干服务类型,可以根据如何计算成本费用来单独地或组合地计算这些服务类型的使用成本。服务类型还可以与每个用户对资源的最大使用限度相关联。
(4)计算运行或完成工作负载的资源消耗和成本。如果平台报告用于运行特定工作负载的资源消耗和成本的信息,则系统110可使用所报告的资源消耗和成本的信息来更新用于与该工作负载相对应的工作负载类型的资源需求和成本信息(或者更新为该工作负载类型存储的聚合的和/或详细的信息)。如果平台基于用户的每时间单位的资源使用来报告成本信息,或者没有报告每工作负载的资源消耗和成本,则可以通过几种方式来计算用于运行特定工作负载的资源消耗和成本:①一种方式是收集由平台报告的资源消耗和成本的信息,同时在特定平台上为特定用户自己运行工作负载。②另一种方式是通过使用例如操作系统监测信息来提取用于运行特定工作负载相对于其他工作负载的资源消耗比例,然后应用该比例来计算平台针对用户运行的多个工作负载报告的资源消耗和成本中的特定工作负载的资源消耗和成本。③获得每工作负载的资源需求和成本的另一种方式是通过经由用户输入接收该信息,或者如果自动估计是不可能的则使用用户输入。然后,通过上述方式获得的报告的资源消耗和成本的信息被用来更新为工作负载类型存储的聚集的和/或详细的信息。
(5)工作负载迁移成本。对于运行的工作负载,可以添加该成本;其是对估计成本、估计完成持续时间和估计资源需求的附加组分,并且其是不考虑迁移的估计的基础。成本的增加的组分可以是正的或负的,这取决于工作负载在其运行中的当前状态和迁移工作负载环境的成本。如果增加了迁移成本,则每个平台的估计相对于没有迁移的每个工作负载的估计可以是不同的。迁移成本是将一个运行工作负载从其当前平台迁移到由用于映射的系统110确定的其最优平台的成本。
总体属性:
总体属性包括OverallBudget。OverallBudget是每用户/组织单元分配的货币总预算,并且它用于由用户/组织单元运行的工作负载。
工作负载属性:
工作负载(WKi)具有以下属性。(1)OriginalBudget(WKi):它是分配给工作负载WKi的货币预算。(2)RemainingBudget(WKi):它是分配给工作负载WKi的货币当前剩余预算(支出之后)。(3)RDC(WKi):它是从工作负载的提交时间指定的在平台上完成工作负载WKi的请求持续时间。RDC(WKi)被认为是尽力而为(软)约束。(4)SubmissionTime(WKi):它是工作负载WKi的提交时间。(5)Priority(WKi):它是分配给工作负载WKi的优先级。优先级与其它工作负载的优先级有关。(6)EligiblePlatforms(WKi):它是按照矩阵WkPl中的平台索引指定的平台列表,其中列表中的平台有资格运行工作负载WKi。对于特定工作负载,有资格的平台列表可以是平台的子集,其例如基于平台的类型和用户对平台的访问来选择。
平台属性:
平台(PLj)的平台属性包括MaxResource(PLj)。MaxResource(PLj)的属性是用户对平台PLj所收费的主资源的消耗的最大限制。主资源可以是例如存储器大小或工作负载进程的数量。
基于成本和服务级别考虑的工作负载在多平台即服务上的布置:
图2呈现了示出根据本发明一个实施例的用于在多个平台上布置工作负载的操作步骤的流程图。在步骤201,用于映射工作负载和平台的系统(例如,图1所示的系统110)检测用于修改矩阵的触发事件,该矩阵将工作负载和平台配对并且包括在平台上运行工作负载的属性。例如,矩阵是前面段落中描述的矩阵WkPl。为了检测用于修改矩阵的触发事件,用于映射的系统周期性地扫描和监测工作负载和平台,以确定工作负载和平台的当前状态。触发事件是以下事件中的至少一个:将新的工作负载添加到多平台即服务的系统中;改变工作负载中的相应一个工作负载的一个或多个要求(预算、请求的完成的持续时间、优先级、有资格平台);工作负载完成了在多个平台中的相应一个平台上的处理;在多平台即服务的系统中增加新平台;改变多个平台中的相应一个平台的成本;改变多个平台中的相应一个平台可用的资源的可用性、数量或类型;改变多个平台中的相应一个平台的每个用户的最大资源利用率;从多平台即服务的系统中移除多个平台中的相应一个平台;以及改变总预算。
在步骤202,在检测到触发事件后,用于映射的系统重新计算矩阵。例如,重新计算矩阵WkPl;在矩阵中,更新在平台上运行工作负载的属性。
在步骤203,用于映射的系统计算工作负载在平台上的最优布置。用于映射的系统使用求解优化问题的算法。优化问题及其算法求解将在后面的段落中结合图3详细讨论。
在步骤204,用于映射的系统确定工作负载中的相应一个工作负载是否还未在平台中的相应一个平台上运行。例如,如果工作负载中的相应一个还没有运行,则工作负载中的相应一个是未决工作负载(例如,如图1所示,它是未决工作负载1 121-1、未决工作负载2121-2、...或未决工作负载M 121-M),并且它等待被(由用于映射的系统)映射到一个平台;如果工作负载中的相应一个工作负载在运行,则工作负载中的相应一个工作负载是运行工作负载(例如,如图1所示,它是运行工作负载1 122-1、运行工作负载2 122-2、...或运行工作负载N 122-N)。
响应于确定工作负载中的相应一个工作负载还没有运行(判定块204的“是”分支),在步骤205,用于映射的系统将工作负载中的相应一个工作负载布置在用于工作负载中的相应一个工作负载的所计算的最优平台上。在步骤203计算最优平台。
响应于确定工作负载中的相应一个工作负载在运行(判定框204的“否”分支),在步骤206,用于映射的系统确定工作负载中的相应一个工作负载当前是否在所计算的最优平台(其在步骤203处被计算)上运行。换句话说,用于映射的系统确定工作负载中的相应的一个工作负载在其上运行的当前平台是否是针对工作负载中的相应的一个工作负载所计算的最优平台。
响应于确定工作负载中的相应的一个工作负载当前没有在所计算的最优平台上运行(判定框206的“否”分支)或者当前平台不是针对工作负载中的相应的一个工作负载的所计算的最优平台,在步骤207,用于映射的系统将工作负载中的相应的一个工作负载从当前平台移动或迁移到所计算的最优平台。
响应于确定工作负载中的相应的一个工作负载当前在所计算的最优平台上运行(判定块206的“是”分支)或者当前平台是针对工作负载中的相应的一个工作负载所计算的最优平台,用于映射的系统可不将工作负载中的相应的一个工作负载从当前平台移动或迁移到另一个平台,并且将工作负载中的相应的一个工作负载保持在当前平台(其是针对工作负载中的相应的一个工作负载的最优平台)上。
响应于确定工作负载中的相应的一个工作负载当前在所计算的最优平台上运行(判定框206的“是”分支),在步骤205之后或在步骤207之后,用于映射的系统可执行步骤208。在步骤208,用于映射的系统确定是否根据最优布置(其在步骤203计算)布置了所有工作负载。
响应于确定所有工作负载都是根据最优布置来布置的(判定框208的“是”分支),用于映射的系统基于多平台即服务上的成本和服务级别考虑或者根据最优布置来完成工作负载的布置。响应于确定并非所有工作负载都是根据最优布置来布置的(判定框208的否分支),用于映射的系统迭代步骤204和208,直到所有工作负载都是根据最优布置来布置的。
优化问题公式:
优化问题的目标是找到平台索引以最小化所有工作负载的总成本。目标函数如下:
平台索引Pi标识用于工作负载WKi的最优平台,并且平台索引{Pi}标识用于工作负载中的相应工作负载的最优平台。WKN是工作负载的数量,PLN是平台的数量。目标函数受到以下约束。
第一约束是
这是尽力而为(或软)约束。对于每个工作负载,该约束要求其在选择的平台上估计的完成持续时间(EDC)不超过其所需的完成持续时间(RDC)。
第二约束是
这是强制性的(或硬性的)约束。对于每个工作负载,第二约束要求其在所选择的平台上运行的成本(Cost)不超过其剩余预算(RemainingBudget)。
第三个约束是
这是强制性的(或硬性的)约束。第三约束要求在它们的所选平台上运行所有工作负载的总成本不超过总预算(OverallBudget)。
第四约束是
这是强制性的(或硬性的)约束。第四约束要求工作负载的所选择的平台是有资格运行该工作负载的平台中的一个平台。
第五约束是
这是强制性的(或硬性的)约束。第五约束要求由在平台上运行的工作负载从平台消耗的资源不超过平台的用户的资源消耗最大限度,或者不能超过任何平台的资源容量或资源消耗最大限度。
优化问题的算法:
优化问题包括目标成本函数和约束函数,具有变量P1、P2、...、PWKN(平台索引)。由于每个目标和约束函数取决于变量P1、P2、...、PWKN的数学方法不能在公式中被定义(然而,这取决于基于先前讨论的估计方法存储在矩阵WkPl中的值),数学编程求解器不能应用于该优化问题。贪婪算法范例适用于这里定义的优化问题,其中贪婪算法范例使用朝着全局最优进展的局部最优选择。
用于映射工作负载和平台的系统(例如,图1所示的系统110)通过将每个工作负载布置在产生该工作负载的最低成本的平台上而开始。然后,对于其估计完成持续时间(EDC)超过其所需完成持续时间(RDC)的工作负载,系统逐步递增成本。在每个步骤中,用于映射的系统选择具有最低升级成本的工作负载,其中工作负载的升级必须使得工作负载的估计完成持续时间(EDC)能够处于或低于其所需完成持续时间(RDC)。然后,用于映射的系统升级所选择的工作负载。在每个步骤中,检查强制约束和尽力而为约束。
在求解优化问题时,输入为最新矩阵WkPl,求解优化问题的结果如下:对于每个工作负载WKi,计算矩阵WkPl中的相关平台索引Pi,其中相关平台索引Pi识别运行工作负载WKi的最优平台。
图3(A)和图3(B)呈现了根据本发明的一个实施例的示出优化工作负载在多个平台上的布置的操作步骤的流程图。
参考图3(A),在步骤301,用于映射工作负载和平台的系统(例如,图1中所示的系统110)为相应工作负载设置平台索引,平台索引标识产生用于运行相应工作负载的最低成本的相应平台。对于每个工作负载WKi,用于映射的系统在矩阵WkPl中设置相关的平台索引Pi值,并且由该平台索引Pi值标识的平台产生运行工作负载WKi的最低成本。平台索引Pi满足:
参考图3(A),在步骤302,用于映射的系统确定是否满足关于预算、平台资格和平台资源能力的强制约束。用于映射的系统检查是否满足强制(或硬)约束;强制(或硬)约束是在本文的先前段落中讨论的第二、第三、第四和第五约束。
响应于确定强制约束未被满足(判定框302的“否”分支),用于映射的系统执行图3(B)中所示的步骤310。参考图3(B),在步骤310,用于映射的系统确定相应工作负载的先前布置是否满足强制约束。先前的布置是先前迭代中优化问题的解决方案。
继续参考图3(B),响应于确定相应工作负载的先前布置满足强制约束(判定框310的“是”分支),在步骤311,用于映射的系统输出先前布置作为相应工作负载的最优布置。用于映射的系统使用先前的解作为算法的结果。然后,系统完成算法的步骤。
继续参考图3(B),响应于确定相应工作负载的先前布置不满足强制约束(判定框310的“否”分支),在步骤312,用于映射的系统不输出相应工作负载的最优布置。对于优化问题没有可行的解决方案;其原因如下。算法从最低成本映射开始;如果对于该映射违反了预算约束,则在给定约束下没有可行的解决方案。这种情况可以被分类为对算法的无效用户输入。因此,系统完成算法的步骤。
现在返回参考图3(A),响应于确定强制约束被满足(判定框302的“是”分支),在步骤303,用于映射的系统检查关于完成相应工作负载所需的持续时间的尽力而为约束,并确定尽力而为约束未被满足的一组工作负载。尽力而为约束是在本文前面段落中讨论的第一约束。通过使用其在矩阵WkPl中的索引来识别该组工作负载中的每个工作负载。该组工作负载被表示为WKS。
参考图3(A),用于映射的系统确定该组工作负载(WKS)是否为空。该组工作负载(WKS)为空指示满足关于所需完成持续时间(RDC)的尽力而为约束。响应于确定该组工作负载(WKS)为空(判定框304的“是”分支),用于映射的系统执行图3(B)中所示的步骤313。参照图3(B),在步骤313,用于映射的系统输出当前布置作为相应工作负载的最优布置。当前布置是当前迭代中优化问题的解。系统使用当前解作为算法的结果。然后,系统完成算法的步骤。
现在返回参考图3(A),响应于确定该组工作负载(WKS)不为空(判定框304的“否”分支),在步骤305,用于映射的系统针对该组工作负载(WKS)确定产生最低成本并且使得能够满足尽力而为约束的一组候选平台。对于该组中的每个工作负载(WKS中的WKi),用于映射的系统确定具有最低成本的平台;利用这个平台,尽力而为约束得到满足。该组候选平台{PCi}如下:
参考3(A),在步骤306,用于映射的系统针对该组工作负载(WKS)确定识别候选平台的升级的平台索引,并计算升级的成本。对于该组中的每个工作负载WKi,如下计算升级的平台索引PUi:
组WKS中WKi的升级成本可以表示为:
对于组WKS中的工作负载,如果由于没有平台使得能够满足尽力而为约束而使得一组候选平台中没有平台可用,则系统将该工作负载标记为不可用于升级,并且例如将该工作负载的升级成本设置为无效或无穷大(UpgradeCost(WKi)=∞)。因此,系统避免了在算法的下一次迭代中将该工作负载添加到组WKS;在求解优化问题的下一次迭代中将不考虑升级该工作负载。
参考图3(A),在步骤307,用于映射的系统确定该组工作负载(组WKS)是否包含升级成本有效的至少一个工作负载。响应于确定该组工作负载不包含升级成本有效的工作负载(判定框307的“否”分支),系统执行图3(B)所示的步骤313。参照图3(B),在步骤313,系统将当前布置设置为相应工作负载的最优布置。当前布置是当前迭代中优化问题的解。系统使用当前解作为算法的结果。在这种情况下,没有进一步来升级优化问题的解的方法。然后,系统完成算法的步骤。
现在返回参考图3(A),响应于确定该组工作负载包含至少一个其升级成本有效的工作负载(判定块307的“是”分支),在步骤308,用于映射的系统从一个或多个其升级成本有效的工作负载中选择具有最低升级成本的工作负载。从该组工作负载(组WKS)中,选择具有最低升级成本的工作负载。具有最低升级成本的工作负载表示为WKt。WKt满足下式:
WKt是提供在求解优化问题的这次迭代中找到的最具成本效益的好处的工作负载。
参考图3(A),在步骤309,用于映射的系统通过为具有最低升级成本的工作负载设置升级平台索引来升级具有最低升级成本的工作负载。通过设置Pt=PUt,系统升级WKt,其中PUt是升级的平台索引,而Pt是最新选择的WKt的平台索引。
在步骤309之后,用于映射的系统迭代步骤302,以进行算法的下一次迭代,从而找到另一个最具成本效益的好处的工作负载。用于映射的系统执行求解优化问题的下一迭代,直到找到相应工作负载在相应平台上的最优布置。
因为在用于优化问题的算法中工作负载的升级只能进行一次,并且在下一次迭代中算法不重新考虑升级的工作负载,所以算法的迭代次数受工作负载的数量限制。在每次迭代内,可以进行工作负载的线性扫描。然后,用于优化问题的算法选择用于升级的工作负载,并且进行到下一迭代。每个工作负载的所有特定计算可以进行一次;每次迭代仅考虑所有工作负载的约束被重新计算。
通过对每个工作负载同时对所有相关工作负载执行所有独立计算,可以使用于优化问题的算法并行。对算法的进一步优化可以是维护工作负载和平台的各种约束的所有基本数据和计数器,然后在进行改变时递增地更新该数据和计数器。这将使得能够更快地计算约束。
图4是示出根据本发明一个实施例的计算设备或服务器400的组件的示图。应当理解,图4仅提供了一种实现的说明,而不暗示对其中可实现不同实施例的环境的任何限制。
参考图4,计算设备或服务器400包括(一个或多个)处理器420、(一个或多个)存储器410和(一个或多个)有形存储设备430。在图4中,计算设备或服务器400的上述组件之间的通信由数字490表示。存储器410包括ROM(只读存储器)411、RAM(随机存取存储器)413和高速缓存415。一个或多个操作系统431和一个或多个计算程序433驻留在一个或多个计算机可读有形存储设备430上。
计算设备或服务器400还包括I/O接口450。(一个或多个)I/O接口450允许与可以连接到计算设备或服务器400的(一个或多个)外部设备460输入和输出数据。计算设备或服务器400还包括用于计算设备或服务器400与计算机网络之间的通信的(一个或多个)网络接口440。
本发明可以是任何可能的技术细节集成级别的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本发明的各方面。
计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式光盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。
本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如Smalltalk、C++等)和过程编程语言(例如C编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(LAN)或广域网(WAN),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。
在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的顺序发生。例如,连续示出的两个框实际上可以作为一个步骤来实现,同时、基本同时、以部分或全部时间重叠的方式执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。
应当理解,尽管本公开包括关于云计算的详细描述,但是本文所陈述的教导的实现不限于云计算环境。相反,本发明的实施例能够结合现在已知或以后开发的任何其它类型的计算环境来实现。
云计算是一种服务递送模型,用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机和服务)的共享池的方便的按需网络访问,所述可配置计算资源可以以最小的管理努力或与服务的提供者的交互来快速供应和释放。该云模型可以包括至少五个特性、至少三个服务模型和至少四个部署模型。
特征如下:
按需自助:云消费者可以单方面地自动地根据需要提供计算能力,诸如服务器时间和网络存储,而不需要与服务的提供者进行人工交互。
广域网接入:能力在网络上可用,并且通过促进由异构的薄或厚客户端平台(例如,移动电话、膝上型计算机和PDA)使用的标准机制来访问。
资源池化:供应商的计算资源被集中以使用多租户模型来服务多个消费者,其中不同的物理和虚拟资源根据需求被动态地分配和重新分配。存在位置无关的意义,因为消费者通常不控制或不知道所提供的资源的确切位置,但是能够在较高抽象级别(例如国家、州或数据中心)指定位置。
快速弹性:在一些情况下,可以快速且弹性地提供快速向外扩展的能力和快速向内扩展的能力。对于消费者,可用于提供的能力通常看起来不受限制,并且可以在任何时间以任何数量购买。
测量服务:云系统通过利用在适合于服务类型(例如,存储、处理、带宽和活动用户账户)的某一抽象级别的计量能力来自动地控制和优化资源使用。可以监测、控制和报告资源使用,从而为所利用服务的提供者和消费者两者提供透明性。
服务模型如下:
软件即服务(SaaS):提供给消费者的能力是使用在云基础设施上运行的提供者的应用。应用可通过诸如web浏览器(例如,基于web的电子邮件)等瘦客户机界面从各种客户机设备访问。消费者不管理或控制包括网络、服务器、操作系统、存储、或甚至个别应用能力的底层云基础结构,可能的例外是有限的用户专用应用配置设置。
平台即服务(PaaS):提供给消费者的能力是将消费者创建或获取的应用部署到云基础设施上,该消费者创建或获取的应用是使用由提供商支持的编程语言和工具创建的。消费者不管理或控制包括网络、服务器、操作系统或存储的底层云基础设施,但具有对部署的应用和可能的应用托管环境配置的控制。
基础设施即服务(IaaS):提供给消费者的能力是提供处理、存储、网络和消费者能够部署和运行任意软件的其它基本计算资源,所述软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,但具有对操作系统、存储、部署的应用的控制,以及可能对选择的联网组件(例如,主机防火墙)的有限控制。
部署模型如下:
私有云:云基础设施仅为组织操作。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
社区云:云基础设施由若干组织共享,并且支持具有共享关注(例如,任务、安全要求、策略和合规性考虑)的特定社区。它可以由组织或第三方管理,并且可以存在于场所内或场所外。
公有云:云基础设施可用于一般公众或大型工业群体,并且由销售云服务的组织拥有。
混合云:云基础设施是两个或更多云(私有、共同体或公共)的组合,所述云保持唯一实体,但是通过使数据和应用能够移植的标准化或私有技术(例如,用于云之间的负载平衡的云突发)绑定在一起。
云计算环境是面向服务的,其焦点在于无状态、低耦合、模块性和语义互操作性。在云计算的核心是包括互连节点的网络的基础设施。
现在参考图5,描绘了说明性云计算环境50。如图所示,云计算环境50包括云消费者使用的本地计算设备可以与其通信的一个或多个云计算节点10,本地计算设备诸如移动设备54A、台式计算机54B、膝上型计算机54C和/或汽车计算机系统54N。节点10可以彼此通信。它们可以被物理地或虚拟地分组(未示出)在一个或多个网络中,诸如如上文描述的私有云、社区云、公共云或混合云或其组合。这允许云计算环境50提供基础设施、平台和/或软件作为服务,云消费者不需要为其维护本地计算设备上的资源。应当理解,计算设备54A-N的类型仅旨在说明,并且计算节点10和云计算环境50可以通过任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)与任何类型的计算机化设备通信。
现在参考图6,示出了由云计算环境50(图5)提供的一组功能抽象层。应当预先理解,图6中所示的组件、层和功能仅旨在说明,并且本发明的实施例不限于此。如所描绘的,提供了以下层和相应的功能:
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:主机61;基于RISC(精简指令集计算机)架构的服务器62;服务器63;刀片服务器64;存储装置65;以及网络和网络组件66。在一些实施例中,软件组件包括网络应用服务器软件67和数据库软件68。
虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储器72;虚拟网络73,包括虚拟专用网络;虚拟应用和操作系统74;以及虚拟客户机75。
在一个示例中,管理层80可以提供以下描述的功能。资源供应81提供用于在云计算环境内执行任务的计算资源和其它资源的动态采购。计量和定价82提供了在云计算环境中利用资源时的成本跟踪,以及用于消耗这些资源的开帐单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务级别管理84提供云计算资源分配和管理,使得满足所需的服务级别。服务级别协议(SLA)规划和履行85提供对云计算资源的预安排和采购,其中根据SLA预期未来需求。
工作负载层90提供了可以利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:绘图和导航91;软件开发和生命周期管理92;虚拟教室教育传送93;数据分析处理94;交易处理95;以及功能96。功能96是用于将工作负载布置在多平台即服务上的功能。
Claims (25)
1.一种用于优化多平台即服务上的工作负载的布置的计算机实现的方法,所述方法包括:
针对相应工作负载,设置标识产生用于运行所述相应工作负载的最低成本的相应平台的平台索引;
针对所述相应工作负载,确定是否满足强制约束;
响应于确定满足所述强制约束,检查尽力而为约束;
确定不满足所述尽力而为约束的一组工作负载;
响应于所述一组工作负载不为空,针对所述一组工作负载,确定产生所述最低成本并且使得所述尽力而为约束能够被满足的一组候选平台;
确定标识所述候选平台中的相应候选平台的升级的平台索引,并且计算所述一组工作负载的升级成本;
从所述一组工作负载中选择具有最低升级成本的工作负载;
通过为具有所述最低升级成本的工作负载设置升级的平台索引,升级具有所述最低升级成本的工作负载;以及
执行求解优化问题的下一迭代,直到找到所述相应工作负载在所述相应平台上的最优布置。
2.根据权利要求1所述的计算机实现的方法,还包括:
响应于确定不满足所述强制约束,确定所述相应工作负载在所述相应平台上的先前布置是否满足所述强制约束,其中,所述先前布置是先前迭代中的所述优化问题的解;
响应于确定所述先前布置满足所述强制约束,输出所述先前布置作为所述最优布置;以及
响应于确定所述先前布置不满足所述强制约束,不输出最优布置。
3.根据权利要求1所述的计算机实现的方法,还包括:
响应于所述一组工作负载为空,输出当前布置作为所述相应工作负载在所述相应平台上的最优布置,其中,所述当前布置是当前迭代中的所述优化问题的解。
4.根据权利要求1所述的计算机实现的方法,还包括:
响应于所述一组工作负载中的工作负载不具有满足所述尽力而为约束的平台,将所述工作负载标记为不能用于升级。
5.根据权利要求1所述的计算机实现的方法,还包括:
确定所述一组工作负载是否包括对于更新可行的至少一个工作负载;
响应于确定所述一组工作负载不包括对于升级可行的工作负载,将当前布置设置为所述相应工作负载在所述相应平台上的所述最优布置,其中,所述当前布置是当前迭代中的所述优化问题的解。
6.根据权利要求1所述的计算机实现的方法,其中,所述优化问题的目标是最小化用于在所述相应平台上运行所述相应工作负载的总成本。
7.根据权利要求1所述的计算机实现的方法,其中,所述强制约束中的第一个要求用于运行任何工作负载的成本不超过剩余货币预算,所述强制约束中的第二个要求用于在所述相应平台上运行所述相应工作负载的总成本不超过总货币预算,所述强制约束中的第三个要求用于运行工作负载的所选择的平台有资格运行所述工作负载,并且所述强制约束中的第四个要求不超过任何平台的资源消耗最大限度;其中,所述尽力而为约束中的一个要求对于任何工作负载估计的完成持续时间不超过所需的完成持续时间。
8.一种计算机程序产品,用于优化多平台即服务上的工作负载的布置,所述计算机程序产品包括计算机可读存储介质,所述计算机可读存储介质具有随其体现的程序指令,所述程序指令可由一个或多个处理器执行,所述程序指令可执行以:
针对相应工作负载,设置标识产生用于运行所述相应工作负载的最低成本的相应平台的平台索引;
针对所述相应工作负载,确定是否满足强制约束;
响应于确定满足所述强制约束,检查尽力而为约束;
确定不满足所述尽力而为约束的一组工作负载;
响应于所述一组工作负载不为空,针对所述一组工作负载,确定产生所述最低成本并且使得所述尽力而为约束能够被满足的一组候选平台;
确定标识所述候选平台中的相应候选平台的升级的平台索引,并且计算所述一组工作负载的升级成本;
从所述一组工作负载中选择具有最低升级成本的工作负载;
通过为具有所述最低升级成本的工作负载设置升级的平台索引,升级具有所述最低升级成本的工作负载;以及
执行求解优化问题的下一迭代,直到找到所述相应工作负载在所述相应平台上的最优布置。
9.根据权利要求8所述的计算机程序产品,还包括可执行以进行以下操作的程序指令:
响应于确定不满足所述强制约束,确定所述相应工作负载在所述相应平台上的先前布置是否满足所述强制约束,其中,所述先前布置是先前迭代中的所述优化问题的解;
响应于确定所述先前布置满足所述强制约束,输出所述先前布置作为所述最优布置;以及
响应于确定所述先前布置不满足所述强制约束,不输出最优布置。
10.根据权利要求8所述的计算机程序产品,还包括可执行以进行以下操作的程序指令:
响应于所述一组工作负载为空,输出当前布置作为所述相应工作负载在所述相应平台上的最优布置,其中,所述当前布置是当前迭代中的所述优化问题的解。
11.根据权利要求8所述的计算机程序产品,还包括可执行以进行以下操作的程序指令:
响应于所述一组工作负载中的工作负载不具有满足所述尽力而为约束的平台,将所述工作负载标记为不能用于升级。
12.根据权利要求8所述的计算机程序产品,还包括可执行以进行以下操作的程序指令:
确定所述一组工作负载是否包括对于更新可行的至少一个工作负载;
响应于确定所述一组工作负载不包括对于升级可行的工作负载,将当前布置设置为所述相应工作负载在所述相应平台上的所述最优布置,其中,所述当前布置是当前迭代中的所述优化问题的解。
13.根据权利要求8所述的计算机程序产品,其中,所述优化问题的目标是最小化用于在所述相应平台上运行所述相应工作负载的总成本;其中,所述强制约束中的第一个要求用于运行任何工作负载的成本不超过剩余货币预算,所述强制约束中的第二个要求总成本不超过总货币预算,所述强制约束中的第三个要求用于运行工作负载的所选择的平台有资格运行所述工作负载,并且所述强制约束中的第四个要求不超过任何平台的资源消耗最大限度;其中,所述尽力而为约束中的一个要求对于任何工作负载估计的完成持续时间不超过所需的完成持续时间。
14.一种用于优化多平台即服务上的工作负载的布置的计算机系统,所述计算机系统包括一个或多个处理器、一个或多个计算机可读有形存储设备以及存储在所述一个或多个计算机可读有形存储设备中的至少一个计算机可读有形存储设备上以供所述一个或多个处理器中的至少一个处理器执行的程序指令,所述程序指令可执行以:
针对相应工作负载,设置标识产生用于运行所述相应工作负载的最低成本的相应平台的平台索引;
针对所述相应工作负载,确定是否满足强制约束;
响应于确定满足所述强制约束,检查尽力而为约束;
确定不满足所述尽力而为约束的一组工作负载;
响应于所述一组工作负载不为空,针对所述一组工作负载,确定产生所述最低成本并且使得所述尽力而为约束能够被满足的一组候选平台;
确定标识所述候选平台中的相应候选平台的升级的平台索引,并且计算所述一组工作负载的升级成本;
从所述一组工作负载中选择具有最低升级成本的工作负载;
通过为具有所述最低升级成本的工作负载设置升级的平台索引,升级具有所述最低升级成本的工作负载;以及
执行求解优化问题的下一迭代,直到找到所述相应工作负载在所述相应平台上的最优布置。
15.根据权利要求14所述的计算机系统,还包括可执行以进行以下操作的程序指令:
响应于确定不满足所述强制约束,确定所述相应工作负载在所述相应平台上的先前布置是否满足所述强制约束,其中,所述先前布置是先前迭代中的所述优化问题的解;
响应于确定所述先前布置满足所述强制约束,输出所述先前布置作为所述最优布置;以及
响应于确定所述先前布置不满足所述强制约束,不输出最优布置。
16.根据权利要求14所述的计算机系统,还包括可执行以进行以下操作的程序指令:
响应于所述一组工作负载为空,输出当前布置作为所述相应工作负载在所述相应平台上的最优布置,其中,所述当前布置是当前迭代中的所述优化问题的解。
17.根据权利要求14所述的计算机系统,还包括可执行以进行以下操作的程序指令:
响应于所述一组工作负载中的工作负载不具有满足所述尽力而为约束的平台,将所述工作负载标记为不能用于升级。
18.根据权利要求14所述的计算机系统,还包括可执行以进行以下操作的程序指令:
确定所述一组工作负载是否包括对于更新可行的至少一个工作负载;
响应于确定所述一组工作负载不包括对于升级可行的工作负载,将当前布置设置为所述相应工作负载在所述相应平台上的所述最优布置,其中,所述当前布置是当前迭代中的所述优化问题的解。
19.根据权利要求14所述的计算机系统,其中,所述优化问题的目标是最小化用于在所述相应平台上运行所述相应工作负载的总成本;其中,所述强制约束中的第一个要求用于运行任何工作负载的成本不超过剩余货币预算,所述强制约束中的第二个要求总成本不超过总货币预算,所述强制约束中的第三个要求用于运行工作负载的所选择的平台有资格运行所述工作负载,并且所述强制约束中的第四个要求不超过任何平台的资源消耗最大限度;其中,所述尽力而为约束中的一个要求对于任何工作负载估计的完成持续时间不超过所需的完成持续时间。
20.一种多平台即服务的系统,包括:
相应工作负载,包括未决工作负载和运行工作负载;
相应平台,包括远程平台和本地平台;
用于映射相应工作负载和相应平台的系统;
用于映射相应工作负载和相应平台的系统包括一个或多个处理器、一个或多个计算机可读有形存储设备以及存储在所述一个或多个计算机可读有形存储设备中的至少一个计算机可读有形存储设备上以供所述一个或多个处理器中的至少一个处理器执行的程序指令,所述程序指令可执行以:
针对相应工作负载,设置标识产生用于运行所述相应工作负载的最低成本的相应平台的平台索引;
针对所述相应工作负载,确定是否满足强制约束;
响应于确定满足所述强制约束,检查尽力而为约束;
确定不满足所述尽力而为约束的一组工作负载;
响应于所述一组工作负载不为空,针对所述一组工作负载,确定产生所述最低成本并且使得所述尽力而为约束能够被满足的一组候选平台;
确定标识所述候选平台中的相应候选平台的升级的平台索引,并且计算所述一组工作负载的升级成本;
从所述一组工作负载中选择具有最低升级成本的工作负载;
通过为具有所述最低升级成本的工作负载设置升级的平台索引,升级具有所述最低升级成本的工作负载;以及
执行求解优化问题的下一迭代,直到找到所述相应工作负载在所述相应平台上的最优布置。
21.根据权利要求20所述的多平台即服务的系统,还包括可执行以进行以下操作的程序指令:
响应于确定不满足所述强制约束,确定所述相应工作负载在所述相应平台上的先前布置是否满足所述强制约束,其中,所述先前布置是先前迭代中的所述优化问题的解;
响应于确定所述先前布置满足所述强制约束,输出所述先前布置作为所述最优布置;以及
响应于确定所述先前布置不满足所述强制约束,不输出最优布置。
22.根据权利要求20所述的多平台即服务的系统,还包括可执行以进行以下操作的程序指令:
响应于所述一组工作负载为空,输出当前布置作为所述相应工作负载在所述相应平台上的最优布置,其中,所述当前布置是当前迭代中的所述优化问题的解。
23.根据权利要求20所述的多平台即服务的系统,还包括可执行以进行以下操作的程序指令:
响应于所述一组工作负载中的工作负载不具有满足所述尽力而为约束的平台,将所述工作负载标记为不能用于升级。
24.根据权利要求20所述的多平台即服务的系统,还包括可执行以进行以下操作的程序指令:
确定所述一组工作负载是否包括对于更新可行的至少一个工作负载;
响应于确定所述一组工作负载不包括对于升级可行的工作负载,将当前布置设置为所述相应工作负载在所述相应平台上的所述最优布置,其中,所述当前布置是当前迭代中的所述优化问题的解。
25.根据权利要求20所述的多平台即服务的系统,其中,所述优化问题的目标是最小化用于在所述相应平台上运行所述相应工作负载的总成本;其中,所述强制约束中的第一个要求用于运行任何工作负载的成本不超过剩余货币预算,所述强制约束中的第二个要求总成本不超过总货币预算,所述强制约束中的第三个要求用于运行工作负载的所选择的平台有资格运行所述工作负载,并且所述强制约束中的第四个要求不超过任何平台的资源消耗最大限度;其中,所述尽力而为约束中的一个要求对于任何工作负载估计的完成持续时间不超过所需的完成持续时间。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/113,102 | 2020-12-06 | ||
US17/113,102 US11693697B2 (en) | 2020-12-06 | 2020-12-06 | Optimizing placements of workloads on multiple platforms as a service based on costs and service levels |
PCT/CN2021/126243 WO2022116738A1 (en) | 2020-12-06 | 2021-10-26 | Optimizing placements of workloads on multiple platforms as a service based on costs and service levels |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116601604A true CN116601604A (zh) | 2023-08-15 |
Family
ID=81849174
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180081913.9A Pending CN116601604A (zh) | 2020-12-06 | 2021-10-26 | 基于成本和服务级别优化多平台即服务的工作负载的布置 |
Country Status (8)
Country | Link |
---|---|
US (1) | US11693697B2 (zh) |
JP (1) | JP2023551702A (zh) |
KR (1) | KR20230092013A (zh) |
CN (1) | CN116601604A (zh) |
CA (1) | CA3192548A1 (zh) |
DE (1) | DE112021006333T5 (zh) |
GB (1) | GB2616169A (zh) |
WO (1) | WO2022116738A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220414577A1 (en) * | 2021-06-28 | 2022-12-29 | Dell Products L.P. | System and method for performance-centric workload placement in a hybrid cloud environment |
Family Cites Families (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3688462B2 (ja) * | 1998-04-13 | 2005-08-31 | 株式会社東芝 | 情報処理装置及び方法並びに情報処理用プログラムを記録した記録媒体 |
US7571154B2 (en) | 2005-01-31 | 2009-08-04 | Cassatt Corporation | Autonomic control of a distributed computing system using an application matrix to control application deployment |
US9128760B2 (en) | 2010-07-26 | 2015-09-08 | International Business Machines Corporation | Dynamically adjusting priority by providing a longer duration of use of a shared resource |
US9323561B2 (en) | 2010-08-13 | 2016-04-26 | International Business Machines Corporation | Calibrating cloud computing environments |
US8645529B2 (en) | 2010-10-06 | 2014-02-04 | Infosys Limited | Automated service level management of applications in cloud computing environment |
US8924539B2 (en) | 2010-11-24 | 2014-12-30 | Red Hat, Inc. | Combinatorial optimization of multiple resources across a set of cloud-based networks |
US9195509B2 (en) | 2011-01-05 | 2015-11-24 | International Business Machines Corporation | Identifying optimal platforms for workload placement in a networked computing environment |
US8868749B2 (en) | 2011-01-18 | 2014-10-21 | International Business Machines Corporation | Workload placement on an optimal platform in a networked computing environment |
US9495649B2 (en) | 2011-05-24 | 2016-11-15 | International Business Machines Corporation | Workload-to-cloud migration analysis based on cloud aspects |
CN103092683B (zh) * | 2011-11-07 | 2017-12-26 | Sap欧洲公司 | 用于数据分析的基于启发式的调度 |
US8996765B2 (en) | 2011-12-27 | 2015-03-31 | Intel Corporation | Methods and apparatus to manage workload memory allocation |
US8732291B2 (en) * | 2012-01-13 | 2014-05-20 | Accenture Global Services Limited | Performance interference model for managing consolidated workloads in QOS-aware clouds |
US9262231B2 (en) | 2012-08-07 | 2016-02-16 | Advanced Micro Devices, Inc. | System and method for modifying a hardware configuration of a cloud computing system |
US8978035B2 (en) | 2012-09-06 | 2015-03-10 | Red Hat, Inc. | Scaling of application resources in a multi-tenant platform-as-a-service environment in a cloud computing system |
US9537973B2 (en) | 2012-11-01 | 2017-01-03 | Microsoft Technology Licensing, Llc | CDN load balancing in the cloud |
US9635088B2 (en) | 2012-11-26 | 2017-04-25 | Accenture Global Services Limited | Method and system for managing user state for applications deployed on platform as a service (PaaS) clouds |
US9223608B2 (en) | 2012-12-14 | 2015-12-29 | Vmware, Inc. | Systems and methods for finding solutions in distributed load balancing |
CN103095853B (zh) * | 2013-02-27 | 2016-08-03 | 北京航空航天大学 | 云数据中心计算能力管理系统 |
US9246840B2 (en) | 2013-12-13 | 2016-01-26 | International Business Machines Corporation | Dynamically move heterogeneous cloud resources based on workload analysis |
US10671947B2 (en) * | 2014-03-07 | 2020-06-02 | Netflix, Inc. | Distributing tasks to workers in a crowd-sourcing workforce |
US9760952B2 (en) | 2014-06-12 | 2017-09-12 | International Business Machines Corporation | Application service aggregation and management |
US20160043906A1 (en) | 2014-08-08 | 2016-02-11 | Telstra Corporation Limited | System and method for processing cloud platform characteristics |
CN104410995B (zh) * | 2014-10-29 | 2018-11-09 | 上海交通大学 | 参与式感知系统中任务最优分配的方法 |
US9424097B1 (en) | 2015-03-17 | 2016-08-23 | International Business Machines Corporation | Dynamically managing workload placements in virtualized environments based on current user globalization customization requests |
CN105068863B (zh) | 2015-07-16 | 2018-08-17 | 福州大学 | 多云环境下带截止日期约束工作流的基于代价驱动调度方法 |
US20170041386A1 (en) * | 2015-08-05 | 2017-02-09 | International Business Machines Corporation | Provisioning a target hosting environment |
CN106055395B (zh) | 2016-05-18 | 2019-07-09 | 中南大学 | 一种基于蚁群优化算法的云环境中截止时间约束工作流调度方法 |
US10585693B2 (en) | 2016-09-30 | 2020-03-10 | Uchicago Argonne, Llc | Systems and methods for metric driven deployments to cloud service providers |
US10698735B2 (en) | 2018-02-14 | 2020-06-30 | Citrix Systems, Inc. | Auto-scaling for allocation of cloud service resources in application deployments |
CN109547555B (zh) * | 2018-03-01 | 2022-01-04 | 重庆大学 | 基于公平性准则的非平衡边缘云网络接入与资源分配方法 |
US10768998B2 (en) | 2018-04-05 | 2020-09-08 | International Business Machines Corporation | Workload management with data access awareness in a computing cluster |
US10715594B2 (en) | 2018-05-14 | 2020-07-14 | Vmware, Inc. | Systems and methods for update propagation between nodes in a distributed system |
KR102062037B1 (ko) | 2018-05-16 | 2020-01-03 | 국민대학교산학협력단 | 클라우드 기반의 배치 서비스 제공 장치 및 방법 |
US11169846B2 (en) | 2018-08-29 | 2021-11-09 | Tibco Software Inc. | System and method for managing tasks and task workload items between address spaces and logical partitions |
US11175964B2 (en) | 2019-02-01 | 2021-11-16 | Virtustream Ip Holding Company Llc | Partner enablement services for managed service automation |
WO2020169182A1 (en) | 2019-02-19 | 2020-08-27 | Nokia Solutions And Networks Oy | Method and apparatus for allocating tasks |
US11388054B2 (en) | 2019-04-30 | 2022-07-12 | Intel Corporation | Modular I/O configurations for edge computing using disaggregated chiplets |
US11283635B2 (en) | 2019-09-28 | 2022-03-22 | Intel Corporation | Dynamic sharing in secure memory environments using edge service sidecars |
US11159609B2 (en) | 2020-03-27 | 2021-10-26 | Intel Corporation | Method, system and product to implement deterministic on-boarding and scheduling of virtualized workloads for edge computing |
CN111984269B (zh) | 2020-08-20 | 2024-01-23 | 第四范式(北京)技术有限公司 | 提供应用构建服务的方法及应用构建平台 |
-
2020
- 2020-12-06 US US17/113,102 patent/US11693697B2/en active Active
-
2021
- 2021-10-26 GB GB2308253.0A patent/GB2616169A/en not_active Withdrawn
- 2021-10-26 JP JP2023532844A patent/JP2023551702A/ja active Pending
- 2021-10-26 CN CN202180081913.9A patent/CN116601604A/zh active Pending
- 2021-10-26 DE DE112021006333.2T patent/DE112021006333T5/de active Pending
- 2021-10-26 CA CA3192548A patent/CA3192548A1/en active Pending
- 2021-10-26 KR KR1020237018319A patent/KR20230092013A/ko unknown
- 2021-10-26 WO PCT/CN2021/126243 patent/WO2022116738A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
CA3192548A1 (en) | 2022-06-09 |
JP2023551702A (ja) | 2023-12-12 |
KR20230092013A (ko) | 2023-06-23 |
GB2616169A (en) | 2023-08-30 |
DE112021006333T5 (de) | 2023-10-26 |
US20220179694A1 (en) | 2022-06-09 |
GB202308253D0 (en) | 2023-07-19 |
WO2022116738A1 (en) | 2022-06-09 |
US11693697B2 (en) | 2023-07-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10958515B2 (en) | Assessment and dynamic provisioning of computing resources for multi-tiered application | |
US10691647B2 (en) | Distributed file system metering and hardware resource usage | |
WO2022037238A1 (en) | Microservice placement in hybrid multi-cloud using graph matching | |
US9348650B2 (en) | Determining an optimal computing environment for running an image based on performance of similar images | |
US11593180B2 (en) | Cluster selection for workload deployment | |
US10956221B2 (en) | Estimating resource requests for workloads to offload to host systems in a computing environment | |
US10705873B2 (en) | Predictive virtual server scheduling and optimization of dynamic consumable resources to achieve priority-based workload performance objectives | |
US10841369B2 (en) | Determining allocatable host system resources to remove from a cluster and return to a host service provider | |
US20190212995A1 (en) | Risk Aware Application Placement Modeling and Optimization in High Turnover DevOps Environments | |
JP2021504780A (ja) | 分散コンピューティング環境における自動対角スケーリングためのアプリケーションの優先順位付け | |
JP2023509369A (ja) | マルチクラウド環境におけるワークロードの実施 | |
JP7182836B2 (ja) | 分散コンピューティング環境における作業負荷の自動対角スケーリング | |
WO2022116738A1 (en) | Optimizing placements of workloads on multiple platforms as a service based on costs and service levels | |
US11366694B1 (en) | Estimating attributes of running workloads on platforms in a system of multiple platforms as a service | |
US10877814B2 (en) | Profiling workloads in host systems allocated to a cluster to determine adjustments to allocation of host systems to the cluster | |
US11704156B2 (en) | Determining optimal placements of workloads on multiple platforms as a service in response to a triggering event | |
US11080632B2 (en) | Optimization of steady state cost for multi-site high availability application deployment of management and managed intrastructure | |
JP2022089807A (ja) | コンピュータ実装方法およびコンピュータプログラム製品(サービスとしての複数のプラットフォームを含むシステムにおいて、プラットフォーム上でワークロードを実行する際の属性の推定) | |
US11954524B2 (en) | Compliance aware application scheduling | |
US11281983B2 (en) | Multi-agent system for efficient decentralized information aggregation by modeling other agents' behavior | |
CN114647557A (zh) | 虚拟机计算能力的自动评估 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |