用于虚拟容器系统内的资源容量评估的方法和装置的制作方法

文档序号:6352095阅读:209来源:国知局
专利名称:用于虚拟容器系统内的资源容量评估的方法和装置的制作方法
技术领域
本发明主要涉及电气、电子和计算机技木,并且更具体地涉及具备虚拟化支持的平台的资源的动态容量。
背景技术
在共享计算机资源时,调度器向ー个或多个可用的处理器或其它资源分配进程。通常,调度器通过匹配作业要求与资源的能力和容量来分配工作,例如批处理作业。传统上,基于当前利用量和固定容量,作业被直接分配给物理资源。然而,近来物理资源常通过一个或多个资源容器(经常被称为“虚拟机”)给出,每ー个资源容器都提供了底层资源的抽象。共享的物理资源可以包括例如处理内核、存储系统和网络通信资源。 在多容器环境中,各种容器通常在容器管理器的监瞀下共享并竞争固定的物理资源,例如处理器周期。容器管理器通常根据规则或策略的集合向容器分配物理资源。容器之间的资源竞争对于调度问题增加了更大的复杂性。容器资源容量的评估在任何调度进程中都是ー个关键步骤。另外,容器可以在执行工作时被添加、删除、挂起或联机。规划这些动作并且评估对现有容器和作业的影响也是重要的活动。然而,在多容器环境中,资源容量的评估很有难度。因此,存在对用于评估虚拟容器的系统内的资源容量的方法和装置的需求。进ー步地也存在对用于评估共享物理容量的所有虚拟容器上的动态资源容量的方法和装置的需求。

发明内容
一般性地,提供了用于评估在多个容器(例如虚拟机)之间存在弾性和竞争的系统中的潜在资源容量(例如用于作业分配)的方法和装置。根据本发明的ー个方面,为竞争较大容器的总容量的多个容器中的至少ー个容器确定动态潜在容量。获得多个竞争容器中的每个容器的当前利用量,并且为每个竞争容器确定平衡容量。平衡容量指示相应容器被授权的容量。基于总容量、一个或多个当前利用量与一个或多个相应平衡容量的比较、以及多个竞争容器中的每个容器的相对资源权重,来确定动态潜在容量。根据本发明的另ー个方面,可选地,当多个容器的集合被改变时或者在分配每项工作元素之后,重新计算动态潜在容量。确定的动态潜在容量能够被用于例如多个父容器之间的容器迁移或者用于工作分配。在一个示范性实施例中,多个容器被分为至少两组。过度利用组包括利用量超过全局平衡容量的容器,而未充分利用组包括利用量低于全局平衡容量的容器。过度利用组的动态潜在容量可被计算为总容量和未充分利用组内的成员的容量之和之间的差值。过度利用组中利用量低于阈值的成员被转移至未充分利用组。对本发明更加完整的理解以及本发明更多的特征和优点应通过參考以下的详细说明内容和附图获得。


图I提供了常规示范性作业调度器的概要图;图2提供了另外的常规示范性作业调度器的概要图;图3示出了用于两个示范性容器的各种类型的容器容量;图4示出了为两个竞争的示范性容器分配资源;图5示出了用于并入本发明特征的潜在容量评估进程的实施例的示范性伪代码;图6提供了用于为三个容器的示范性集合分配资源的示例;图7是根据本发明的评估空闲容量的装置的示意性方块图;以及 图8示出了可以有效用于实现本发明的ー个或多个方面和/或元素的计算机系统。
具体实施例方式本发明提供了用于评估在多个容器(例如虚拟机)之间存在弾性和竞争的系统中的潜在资源容量(例如用于作业分配)的方法和装置。图I提供了常规示范性作业调度器100的概要图。如图I所示,作业队列110内存储的一项或多项作业由作业调度器120处理,以把每项给定作业分配给ー个或多个可用物理资源,例如物理计算平台150。物理资源150可以包括例如处理内核、存储系统和网络通信资源。如前所述,调度器120通过匹配作业要求与资源150的能力和容量来分配作业。如图I所示,物理资源150通过ー个或多个资源容器130给出,每个资源容器都提供了底层资源150的抽象。示范性容器130通常在容器管理器140的监瞀下共享这些底层物理资源150。容器130经常要为底层资源150而彼此竞争。图I中的作业调度器100使用了单层容器130。图2提供了另外的常规示范性作业调度器200的概要图。如图2所示,特定容器(例如容器230-1)能够托管ー个或多个另外的容器210-1到210-N以及ー个或多个容器管理器220。本发明认识到,在多容器环境中,各种容器130、230共享和竞争固定的平台资源150、250。容器130、230的资源容量评估在由调度器120执行的调度进程中是ー个关键步骤。根据本发明的ー个方面,为具有多个容器130、230的系统评估潜在资源容量。图3示出了用于两个示范性容器A,B的各种类型的容器容量。如图3所示,具有固定尺寸的父容器320 (或平台)提供了总物理容量。总物理容量被动态地分配给容器A和B。在容器A上有示范性作业运行。容器A上运行的示范性作业具有利用量JA。两个示范性容器A,B均具有潜在容量(PC)。例如,容器A具有潜在容量PCA。如本文中所使用的,潜在容量相应于每个容器当前能够利用的量(例如最大可用容量)。潜在容量取决于系统状态以及管理器在竞争期间如何分配资源。如图3所示,容器A上运行的作业消耗资源量J。两个示范性容器A、B具有空闲容量(FC)。例如容器A具有空闲容量FCa。如本文中所使用的,空闲容量是每个容器内可达潜在容量的剩余资源(例如可用于新工作的容量)。因此,容器的潜在容量可以表达如下
PC=J+FC.空闲容量因此可以根据潜在容量和利用量来计算。要注意的是,根据系统状态,所有容器的潜在容量之和可能会超过底层平台的物理容量。通常,根据物理容量、容器属性、状态和所有容器上的利用量来计算每个容器A、B的潜在容量。每个容器的空闲容量常常是作业调度算法中的关键參数。例如,代表性的常规调度方法把每项作业分配给具有最大空闲容量的平台。用这种方式,调度提供了基本负载平衡,在可用机器中分配作业。在物理资源调度的常规情况下,平台的空闲容量可以从利用量监测器直接获得。然而,对于竞争容器的调度,由于空闲容量取决于由容器管理器140、240实施的规则和策略,所以空闲容量无法根据当前系统状态(例如所有容器内的资源的利用量)获得。计算虚拟容器的潜在容量如前所述,本发明提供了用于评估具有多个容器130、230的系统内的潜在容量的 方法和装置。根据本发明的ー个方面,给定当前系统状态并使用容器管理器140用来对容器130、230间的需求进行仲裁的规则,来评估每个容器130、230的潜在资源容量。该潜在容量随后在作业分配算法中被应用以便为要运行的每项作业或作业元素选择容器。以下结合图5进ー步介绍用于评估容器130、230的潜在容量的示范性算法。估算的资源消耗量在向容器130、230分配每项作业时,系统状态改变,这在调度下一项作业时必须被考虑。这在例如一次调度ー组作业并且在分配下一项作业之前没有足够的时间来评估每项作业安排的效果时可能会有问题。每项作业在执行期间消耗的给定资源的量平均来说可以是已知的。因此,在把一项作业分配给ー个容器之后,该容器的空闲容量使用情况可以利用平均资源消耗量进行调节。在一个示范性实施例中,当无法得到平均资源消耗量时,例如可以基于该类型的作业最近的资源消耗量的平均值来进行估算。作业的资源消耗量常常是变量。因此,在进ー步的变形中,潜在容量和空闲容量根据作业的统计使用情况和系统中的竞争作业来进行分配。例如,假设空闲容量在90%的时间内都处于0. 8或者低于0. 8的值。而在另一种变形中,当无法得到平均资源消耗量时,例如可以基于平衡点容量来使用默认量。根据本发明的另ー个方面,基于对资源竞争进行仲裁的特定容器模型来评估每个容器130、230的潜在资源容量。如本文中所使用的,术语“平衡资源”指示在所有容器全局竞争的限制下分配给每个容器的资源。平衡点是全局竞争下的重要方面。另外,平衡点被用于以下结合图5进ー步介绍的示范性算法,以基于定义在全局或局部竞争的情况下如何在容器间公平地分配资源的容器属性的集合来计算空闲容量。竞争容器的资源分配图4示出了对于竞争的两个示范性容器1、2的资源分配。图4中在每个坐标轴上示出了竞争总容量I的各个容器1、2的利用量UpU2 (例如UjU2=I)。第一条线410指示在利用量U1沿水平轴增加时利用量U2的潜在容量。类似地,第二条线420指示利用量U2的相应潜在容量。每个容器1、2都具有相应的最大利用量lmt。另外,如图4所示,每个容器1、2都具有相应的保留利用量res。而且,如图4所示,每个容器1、2都具有相应的潜在容
量CiO两个潜在容量的交点Ci(C1=C2)即为平衡点430,在这里系统状态在全局竞争下收敛。换句话说,平衡点430就是两个容器1、2都试图使用超过其各自平衡点430的资源的位置。平衡点430可以根据每个容器的利用量是高于还是低于其平衡点而有效用于划分系统的状态。通常,容器I在最大利用量Imtl处启动。随着容器2得到利用,两个容器都向平衡点430移动。如下所述,平衡点430将空间划分成四个区域。潜在容量评估进程图5示出了用于并入本发明特征的潜在容量评估进程500的实施例的示范性伪代码。通常,示范性潜在容量评估进程500评估容器130、230的潜在容量。如图5所示,指示 当前容器的下标idx ;平台的总物理容量pCap ;指示姆个容器i的当前利用量的数组Ui ;指示姆个容器i的保留(最小)容量的数组Rsi ;指示姆个容器i的最大容量的数组Imti ;以及指示每个容器i的权重或相对份额的数组Wi在步骤I期间被传送给示范性潜在容量评估进程500。在步骤2期间,基于容器属性以及根据指定份额高于容器最小容量的分配容量,为每个容器计算平衡容量(<)。在步骤3期间,初始化当前容器的利用量变量Uidx(例如初始化为无穷大)。潜在容量评估进程500将如下所述来计算潜在动态容量cidx。在示范性实施例中,潜在容量评估进程500在步骤4期间把成员容器分成两组。第一组workG包括利用量超过指定全局平衡容量的成员以及当前成员。第二组unchgG包括其余的成员。在示范性实施例中,容量从第一组的ー个或多个成员中取得(因为它们使用了比被授权使用的容量更多的容量)。进入并重复进行从步骤4到9的循环,直到(在步骤9中检测时)不再有成员从ー组转移至另ー组为止。在步骤6期间,为第一组重新计算潜在容量,同时保持第二组的潜在容量。通过这种方式,第一(过度利用)组(相对于平衡容量)的可用容量被计算为总容量pCap和第二(未充分利用)组内的成员的容量之和之间的差值。在步骤7和8期间,使用增量组incG,以把过度利用组中利用量小于其平衡容量(也就是容器被授权多少容量)的成员转移至未充分利用组(当前成员除外)。如果在步骤10期间确定当前成员仍在过度利用组内,那么,在步骤11期间,基于容器属性和根据份额分配的容量而返回当前成员的潜在容量。然而,如果在步骤10期间确定当前成员不在过度利用组内,那么在步骤13期间返回当前成员的潜在容量。以下结合图6中的示例来进ー步介绍潜在容量评估进程500。图6提供了如何为三个容器(虚拟机)VMl到VM3的示范性集合评估平衡容量、潜在容量和空闲容量的示例600。如图6所示,每个容器VM1-VM3的保留容量、份额和当前利用量在前三项记录610、620、630中给出。如上所述,份额是每个容器被用于分配竞争资源的相对权重。记录640相应于所有三个容器VMl到VM3的平衡容量的计算,如在潜在容量评估进程500的第6行所确定的。这导致平衡容量ど,它是每个容器VMl到VM3単独尝试获得尽可能多的资源时所能接收的容量。在此,存在总物理容量1,并且每个容器具有0. 3的保留容量。因此,还剩下0.1与容器权重成比例地共享。因此,处于平衡的每个容器都接收其0. 3的保留容量加上其在0. I中的份额。例如,容器VM2已经从总共6份份额中分配到2份。因此,容器VM2的平衡容量在记录640中通过将容器VM2的最小保留容量(0. 3)与总保留之后的剩余物理容量(也就是总物理容量I减去分配给所有容器的总保留量(每个容器0. 3))的(基于指定份额的)按比例部分相加来进行计算。如上结合图5所述,平衡容量在步骤6的循环中进行计算,直到不再有成员从ー组转移至另ー组为止。对于容器VM1,平衡容量的计算在记录640所示的初始计算之后完成,因为容器VM2和VM3的当前利用量(记录630)都低于确定的平衡容量(并且因此容器VM2和VM3的容量都不能重新分配给容器VMl)。例如,记录630中容器VM2的当前容量0. 3低于记录640中给出的容器VM2的相应确定平衡容量0. 333。 对于容器VM2,平衡容量的计算如记录650所示在潜在容量评估进程500的第二次迭代循环期间继续。由于容器VM3的当前利用量(记录630)低于记录640中容器VM3的确定平衡容量,所以容器VM3的容量不能被重新分配给容器VM2。因此,容器VM3在计算容器VM2的平衡容量时在记录650中不被考虑。因此,容器VM3的当前利用量被从可用物理容量中移除,从而留下将在记录650内在容器VMl和VM2间分配的有效物理容量0. 75。容器VMl的当前利用量超过其平衡容量,因此,容器VM2被授权与容器VMl竞争。因此,容器VMl和VM2竞争高于其自身保留容量0. 3和VM3的当前利用量0. 25的资源。如记录650所示,容器VM2的平衡容量通过将容器VM2的最小保留量(0. 3)与总保留之后的剩余物理容量(也就是考虑的容器VMl和VM2可用的总物理容量0. 75减去分配给考虑的容器VMl和VM2的总保留量(每个容器0. 3))的(基于考虑的容器VMl和VM2的指定份额的)按比例部分相加来进行计算。记录650的结果是容器VM2内的作业能够潜在地获得0. 4的平台资源。容器VM2的最终潜在容量在记录670中列出。类似地,对于容器VM3,平衡容量的计算如记录660所示在另一次迭代循环期间继续。由于容器VM2的当前利用量(记录630)低于记录640中容器VM2的确定平衡容量,所以容器VM2的容量不能被重新分配给容器VM3。因此,容器VM2在计算容器VM3的平衡容量时在记录660中不被考虑。因此,容器VM2的当前利用量被从可用物理容量中移除,从而留下要在记录660内在容器VMl和VM3间分配的有效物理容量0. 7。如记录660所示,容器VM3的平衡容量通过将容器VM3的最小保留量(0. 3)与总保留之后的剰余物理容量(也就是考虑的容器VMl和VM3可用的总物理容量0. 7减去分配给考虑的容器VMl和VM3的总保留量(每个容器0. 3))的(基于考虑的容器VMl和VM3的指定份额的)按比例部分相加来进行计算。容器VM3被确保有0.3的保留容量。因此,共享的利用量是0. 1(1-0. 3-0. 3-0. 3)。这就导致VM3的潜在容量为0. 375。每个容器VMl到VM3的潜在容量和空闲容量在记录670、680中给出。图7是根据本发明的评估空闲容量的装置700的示意性方块图。如图7所示,空闲容量评估块740从块730获得利用量的測量值并从数据存储器750获得容器信息(例如属性和策略)。这些数值例如由图5中的潜在容量评估进程500处理,以根据队列710内的请求来分配资源720。
示范性系统和制品的细节正如本领域技术人员能够理解的那样,本发明的各方面可以实施为系统、方法或计算机程序产品。因此,本发明的应用可以采用完全为硬件的实施例、完全为软件的实施例(包括固件、常驻软件、微型代码等)或者组合软件和硬件应用的实施例的形式,它们基本上在本文中全都可以被称为“电路”、“模块”或“系統”。而且,本发明的应用可以采用在其上实施有计算机可读取程序代码的ー种或多种计算机可读取介质内实施的计算机程序产品的形式。本发明的一个或多个实施例或其元素可以被实施为包括存储器和耦合至存储器的至少ー个处理器并且可操作用于执行示范性方法步骤的装置的形式。一个或多个实施例可以使用在通用计算机或工作站上运行的软件。图8示出了可以有效用于实现本发明的ー个或多个方面和/或元素的计算机系统800。參照图8,这 样的实施方式可以使用例如处理器802、存储器804以及例如由显示器806和键盘808构成的输入/输出接ロ。如本文中所用的术语“处理器”应被理解为包括任何处理设备例如包括CPU(中央处理单元)和/或其它形式处理电路的处理设备。而且,术语“处理器”可以表示多于ー个的个体处理器。术语“存储器”应被理解为包括与处理器或CPU相关联的存储器例如RAM(随机访问存储器)、R0M(只读存储器)、固定存储设备(例如硬盘驱动器)、可移动存储设备(例如磁盘)、闪存存储器等。另外,如本文中所用的术语“输入/输出接ロ”应被理解为包括例如用于向处理单元输入数据的ー种或多种机构(例如鼠标),以及用于提供与处理单元相关联的结果的一种或多种机构(例如打印机)。处理器802、存储器804和输入/输出接ロ(例如显示器806和键盘808)可以通过作为数据处理单元812的一部分的总线810互连。例如通过总线810的适当互连也可以被设置用于网络接ロ 814,例如网卡,其可以被设置用干与计算机网络对接,以及用于媒体接ロ 816,例如磁盘或CD-ROM驱动器,其可以被设置用干与媒体818对接。模数转换器820可以被设置用于接收模拟输入,例如模拟视频馈送并将其数字化。这样的转换器可以与系统总线810互连。因此,包括用于如本文中所述执行本发明方法的指令或代码的计算机软件可以被存储在一个或多个相关联的存储设备(例如ROM、固定或可移动存储器)内并且在准备要使用时部分或全部载入(例如载入到RAM内)并由CPU执行。这样的软件可以包括但不限于固件、常驻软件、微代码等。适用于存储和/或执行程序代码的数据处理系统可以包括通过系统总线810直接或间接耦合至存储元件804的至少ー个处理器802。存储元件可以包括在实际执行程序代码期间使用的本地内存、大容量存储器以及为了减少执行期间必须从大容量存储器中检索的时间码次数而提供至少部分程序代码临时存储的高速缓存存储器。输入/输出或I/O设备(包括但不限于键盘808、显示器806、点击设备等)可以直接(例如通过总线810)或通过中介I/O控制器(为了清楚而省略)耦合至系统。网络适配器,例如网络接ロ 814也可以被耦合至系统以使数据处理系统能够通过中介的专用网络或公用网络被耦合至其它的数据处理系统或远程打印机或存储设备。调制解调器、线缆调制解调器和以太网卡指示当前可用的几种网络适配器类型。如本文中所用,包括权利要求在内,“服务器”包括运行服务器程序的物理数据处理系统(例如图8中所示的系统821)。应该理解这样的物理服务器可以包括也可以不包括显示器和键盘。如上所述,本发明的应用可以采用在其上实施有计算机可读取程序代码的ー种或多种计算机可读取介质内实施的计算机程序产品的形式。可以使用一种或多种计算机可读取介质的任意組合。计算机可读取介质可以是计算机可读取信号介质或者计算机可读取存储介质。计算机可读取存储介质例如可以是但不局限于电、磁、光学、电磁、红外或半导体系统、装置或设备,或者是上述类型的任意适用组合。媒体块818是ー个非限制性的示例。计算机可读取存储介质的更多具体示例(非穷举性列表)可以包括以下内容具有一条或多条线路的电连接,便携式计算机磁盘,硬盘,随机存取存储器(RAM),只读存储器(R0M),可擦除可编程只读存储器(EPR0M或闪存存储器),光纤,便携光盘只读存储器(CD-ROM),光存储设备,磁存储设备或上述内容的任意适用组合。在本文献的语境中,计算机可读取存储介质可以是能够包含或者存储程序以供使用或者与指令执行系统、装置或设备结合使用的任何实体介质。
计算机可读取信号介质可以包括例如在基带中或者作为载波的一部分与其中实施的计算机可读取程序代码一起传播的数据信号。这样的传播信号可以采用多种形式中的任何ー种,包括但不限于电磁信号、光信号或其任意合适的组合。计算机可读取信号介质可以是并非计算机可读取存储介质并且能够通信、传播或者输送程序以供使用或者与指令执行系统、装置或设备结合使用的任意计算机可读取介质。在计算机可读取介质上实施的程序代码可以利用任意合适的介质传输,包括但不限于无线、有线线路、光纤光缆、RF等或者上述内容任意合适的组合。用于实现本发明应用中操作的计算机程序代码可以用一种或多种编程语言的任意组合编写,包括面向对象的编程语言例如Java、Smalltalk、C++等以及传统的过程编程语言例如C编程语言或类似的编程语言。程序代码可以完全在用户的计算机上运行,部分在用户的计算机上运行,作为单独的软件包运行,部分在用户的计算机上运行并且部分在远程计算机上运行,或者完全在远程计算机或服务器上运行。在后两种情形中,远程计算机可以通过任何类型的网络连接至用户的计算机,包括局域网(LAN)或广域网(WAN),或者连接可以通往外部计算机(例如使用互联网服务供应商通过互联网实现)。以下根据本发明的实施例參照方法、装置(系统)和计算机程序产品的流程图和/或方块图来介绍本发明的各种应用。应该理解流程图和/或方块图中的每ー个模块以及流程图和/或方块图中的模块组合都可以由计算机程序指令实现。这些计算机程序指令可以被提供给通用计算机、专用计算机或用于生产机械的其它可编程数据处理装置的处理器以使得通过计算机或其它可编程数据处理装置的处理器执行的指令建立起用于实现流程图和/或方块图中的一个或多个模块中列举的功能/动作的方法。这些计算机程序指令也可以被存储在能够引导计算机、其它可编程数据处理装置或以特定方式工作的其它设备的计算机可读取介质内,以使存储在计算机可读取介质内的指令生产出的制品包括有实现了流程图和/或方块图中的一个或多个模块中列举的功能/动作的指令。计算机程序指令也可以被载入到计算机、其它可编程数据处理装置或其它设备上以促使在计算机、其它可编程装置或其它设备上执行一系列操作步骤,从而生成计算机实现的过程,以使得在计算机或其它可编程装置上执行的指令提供用于实现在流程图和/或方块图中的一个或多个模块中列举的功能/动作的过程。附图中的流程图和方块图根据本发明的不同实施例示出了系统、方法和计算机程序产品的结构、功能和可以实施的操作。在这方面,流程图或方块图中的每ー个模块均可表示程序块、程序段或代码部分,其中包括用于实现ー种或多种特定逻辑功能的一条或多条可执行指令。还应该注意到在某些可选的实施方式中,模块中注明的功能可以脱离附图中标明的顺序完成。例如,相继示出的两个模块实际上可以基本上同时执行,或者这两个模块有时可以用相反的顺序执行,这取决于所涉及到的功能。还应该注意到方块图和/或流程图中的每ー个模块以及方块图和/或流程图中的模块组合均可通过专用的基于硬件的系统实现以执行特定功能或动作,或者通过专用硬件和计算机指令的组合来实现。本文中所述的方法步骤可以如本文中所述被关联至例如编程用于实施这些步骤的通用计算机或者用于实现这些步骤的硬件。而且,本文中所述包括例如获取数据流并将数据流编码的方法步骤也可以被关联至由此获得数据流的物理传感器例如摄像头或麦克风。
应该注意的是本文中所述的任何方法均可包括附加步骤,这些附加步骤提供了包括在计算机可读取存储介质上实施的不同软件模块的系统。方法步骤可以随后利用如上所述在ー个或多个硬件处理器802上执行的系统中不同的软件模块和/或子模块来完成。在某些情况下,专用硬件可以被用于实施本文中介绍的ー种或多种功能。而且,计算机程序产品可以包括计算机可读取存储介质以及适合用于实施以完成本文中所述ー个或多个方法步骤的指令,包括提供具有不同软件模块的系统。在任何情况下,都应该理解本文中所述部件可以用各种形式的硬件、软件或其组合来实施,例如专用集成电路(ASICS)、功能电路、一台或多台适当编程的通用数字计算机和相关存储器等。根据本文中提供的本发明的教导,本领域普通技术人员应该能够得出本发明部件其它的实施方式。本文中所用术语仅仅是为了描述特定的实施例,而并不是要限制本发明。如本文中所用,単数形式“一”、“ー个”和“这个”应理解为也包括复数形式,除非上下文中清楚地另有说明。进ー步应该理解的是术语“包括”和/或“包含”在本说明书中使用时明确了所述特征、整体、步骤、操作、元件和/或部件的存在,但是并不排除存在或加有ー个或多个其它的特征、整体、步骤、操作、元件、部件和/或其群组。以下权利要求中的相应结构、材料、动作和所有装置或步骤以及功能元件的等价形式都应理解为包括用于实现与其它权利要求中明确主张的元素相结合的功能的任意结构、材料或动作。本发明的说明书是为了解释和说明而提供,并不是为了穷举或者将本发明限制为所公开的形式。多种修改和变形对于本领域技术人员来说显而易见且并不背离本发明的保护范围和实质。选择和介绍实施例是为了清楚地解释本发明的原理和实际应用,并且使本领域技术人员能够理解本发明以得到具有各种修改的适用于特定预期用途的不同实施例。
权利要求
1.一种用于确定竞争更大容器的总容量的多个容器中的至少ー个容器的动态潜在容量的方法,所述方法包括 获得所述多个竞争容器中的每个容器的当前利用量; 确定所述多个竞争容器中的每个容器的平衡容量,其中,所述平衡容量指示所述相应容器被授权的容量;以及 基于所述总容量、一个或多个所述当前利用量与ー个或多个所述相应平衡容量的比较、以及所述多个竞争容器中的每个容器的相对资源权重,来确定所述动态潜在容量。
2.如权利要求I所述的方法,其中,所述获得步骤进一歩包括获得所述多个容器中的每个容器的最小容量的步骤。
3.如权利要求2所述的方法,其中,根据所述相对权重来分配高于所述最小容量的容量。
4.如权利要求I所述的方法,其中,所述获得步骤进一歩包括获得最大容量的步骤。
5.如权利要求I所述的方法,进ー步包括更大的第二父容器内的多个所述更大容器。
6.如权利要求I所述的方法,进ー步包括当所述多个容器的集合改变时重新计算所述动态潜在容量的步骤。
7.如权利要求I所述的方法,其中,所述动态潜在容量被用于多个父容器之间的容器迁移。
8.如权利要求I所述的方法,其中,所述动态潜在容量被用于工作分配。
9.如权利要求8所述的方法,其中,所述工作基于空闲容量进行分配。
10.如权利要求I所述的方法,进ー步包括在分配每个工作元素之后重新计算所述动态潜在容量的步骤。
11.如权利要求I所述的方法,进ー步包括把所述多个容器分成至少两组的步骤,其中,过度利用组包括利用量超过全局平衡容量的容器。
12.如权利要求11所述的方法,进ー步包括把所述过度利用组的所述动态潜在容量计算为所述总容量和未充分利用组内的成员的容量之和之间的差值的步骤。
13.如权利要求12所述的方法,进ー步包括把所述过度利用组中利用量低于阈值的成员转移至所述未充分利用组的步骤。
14.一种用于确定竞争更大容器的总容量的多个容器中的至少ー个容器的动态潜在容量的装置,所述装置包括 存储器;以及 耦合至存储器的至少ー个处理器,可操作用于 获得所述多个竞争容器中的每个容器的当前利用量; 确定所述多个竞争容器中的每个容器的平衡容量,其中,所述平衡容量指示所述相应容器被授权的容量;以及 基于所述总容量、一个或多个所述当前利用量与ー个或多个所述相应平衡容量的比较、以及所述多个竞争容器中的每个容器的相对资源权重,来确定所述动态潜在容量。
15.如权利要求14所述的装置,其中,所述处理器被进ー步配置成获得所述多个容器中的每个容器的最小容量。
16.如权利要求15所述的装置,其中,根据所述相对权重来分配高于所述最小容量的容量。
17.如权利要求14所述的装置,进ー步包括更大的第二父容器内的多个所述更大容器。
18.如权利要求14所述的装置,其中,所述处理器被进ー步配置成当所述多个容器的集合改变时重新计算所述动态潜在容量。
19.如权利要求14所述的装置,其中,所述动态潜在容量被用于多个父容器之间的容器迁移。
20.如权利要求14所述的装置,其中,所述动态潜在容量被用于工作分配。
21.如权利要求20所述的装置,其中,所述工作基于空闲容量进行分配。
22.如权利要求14所述的装置,其中,所述处理器被进ー步配置成当分配每项工作元素之后重新计算所述动态潜在容量。
23.如权利要求14所述的装置,其中,所述处理器被进ー步配置成把所述多个容器分成至少两组,其中,过度利用组包括利用量超过全局平衡容量的容器,并且其中,所述过度利用组的所述动态潜在容量被计算为所述总容量和未充分利用组内的成员的容量之和之间的差值。
24.如权利要求23所述的装置,其中,所述处理器被进ー步配置成把所述过度利用组中利用量低于阈值的成员转移至所述未充分利用组。
25.一种用于确定竞争更大容器的总容量的多个容器中的至少ー个容器的动态潜在容量的制品,所述制品包括机器可读存储介质,该机器可读存储介质包含当被执行时完成以下步骤的一个或多个程序 获得所述多个竞争容器中的每个容器的当前利用量; 确定所述多个竞争容器中的每个容器的平衡容量,其中,所述平衡容量指示所述相应容器被授权的容量;以及 基于所述总容量、一个或多个所述当前利用量与ー个或多个所述相应平衡容量的比较、以及所述多个竞争容器中的每个容器的相对资源权重,来确定所述动态潜在容量。
全文摘要
提供了用于评估在多个容器之间具有弹性和竞争的系统中的潜在资源容量的方法和装置。为竞争更大容器的总容量的多个容器中的至少一个容器确定动态潜在容量。获得多个竞争容器中的每个容器的当前利用量,并且为每个竞争容器确定平衡容量。平衡容量指示相应容器被授权的容量。基于总容量、一个或多个当前利用量与一个或多个相应平衡容量的比较、以及多个竞争容器中的每个容器的相对资源权重,来确定动态潜在容量。可选地,当多个容器的集合改变时或者在分配每项工作元素之后,重新计算动态潜在容量。
文档编号G06F9/455GK102822798SQ201080065867
公开日2012年12月12日 申请日期2010年11月12日 优先权日2010年3月31日
发明者F·贝内德蒂, N·鲍伯罗夫, L·L·冯, 刘岩斌, S·R·西拉姆 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1