一种用于资源分配的方法和装置制造方法

文档序号:6501370阅读:89来源:国知局
一种用于资源分配的方法和装置制造方法
【专利摘要】本发明涉及一种用于资源分配的方法和装置,该装置包括:监测模块,用于周期或非周期地收集用于表征所述应用系统当前性能状况的性能数据;资源缩放模块,用于在到达指定的时间处的条件下,根据所述应用系统的历史工作负荷并基于当前用于所述应用系统的虚拟机资源确定满足所述应用系统将要出现的工作负荷而需要改变的虚拟机资源,否则根据所述收集的当前性能数据并基于当前用于所述应用系统的虚拟机资源确定满足所述应用系统现有工作负荷需要改变的虚拟机资源;以及部署模块,用于根据所确定的需要改变的虚拟机资源,调整用于所述应用系统的虚拟机资源。利用该方法和装置,能够及时、准确地向应用系统分配资源。
【专利说明】一种用于资源分配的方法和装置

【技术领域】
[0001]本发明涉及计算机领域,尤其涉及一种用于资源分配的方法和装置。

【背景技术】
[0002]在信息【技术领域】,虚拟机技术得到了广泛应用。虚拟机技术是指在一个物理的计算机上,通过软件模拟出多个虚拟的计算机(简称为虚拟机),这些虚拟机完全就像真正的计算机那样进行工作,在其上可以例如安装操作系统、安装应用程序、访问网络资源等。
[0003]当要在物理的计算机上运行应用系统并向其分配资源时,通常以虚拟机的方式进行分配,这里,应用系统包括应用程序和系统程序,例如但不局限于字处理器、网络浏览器、数据库软件、电子邮件服务、操作系统软件等。常规的资源分配方法采用静态资源分配的方式向应用分配虚拟机。在静态资源分配中,预先估计应用系统可能会出现的尖峰工作负荷,然后向应用系统分配固定数量的虚拟机,其中该固定数量等于处理所估计的尖峰工作负荷所需的虚拟机的数量。
[0004]静态分配存在两个缺点。第一个缺点是能量浪费,通常每一个应用系统不是总是处于尖峰工作负荷状态,从而分配给应用系统的各个虚拟机平均仅在10%-30%时间处于忙碌状态,但虚拟机即使处于空闲状态也会消耗其忙碌时所消耗的能量的60%或更多。第二个缺点是如果应用系统实际出现的工作负荷超出预先估计的尖峰工作负荷则超出的那部分工作负荷将不能被处理。
[0005]为了克服静态分配所存在的问题,人们提出了两种用于资源分配的方法:基于预测的资源分配方法和基于反应的资源分配方法。其中,基于预测的资源分配方法是利用应用系统的历史工作负荷(即应用系统以前实际出现过的工作负荷)来预测应用系统将要出现的工作负荷并基于所预测的工作负荷来增加或缩减用于应用系统的虚拟机,而基于反应的资源分配方法使用反馈控制技术来检测应用系统当前的工作负荷并相应地增加或缩减用于应用系统的虚拟机。
[0006]基于预测的资源分配方法能够提前预测应用系统将要出现的工作负荷,从而能够及时向应用系统分配资源,但其基于历史工作负荷进行预测,因此预测结果不是非常准确。基于反应的资源分配方法能够准确地检测到应用系统的工作负荷,从而能够准确地向应用系统分配与其工作负荷相匹配的资源,但由于资源的分配需要花费时间,因此在应用系统的工作负荷剧烈变化时基于反应的资源分配方法不能及时向应用系统分配资源。


【发明内容】

[0007]考虑到现有技术的上述问题,本发明实施例提出一种用于资源分配的方法和装置,其能够及时、准确地向应用系统分配资源。
[0008]按照本发明实施例的一种用于资源分配的方法,包括:周期或非周期地收集用于表征所述应用系统当前性能状况的性能数据;如果到达指定的时间处,则根据所述应用系统的历史工作负荷并基于当前用于所述应用系统的虚拟机资源确定满足所述应用系统将要出现的工作负荷而需要改变的虚拟机资源,否则,根据所述收集的应用系统的当前性能数据并基于当前用于所述应用系统的虚拟机资源确定满足所述应用系统现有工作负荷需要改变的虚拟机资源;以及根据所确定的需要改变的虚拟机资源,调整用于所述应用系统的虚拟机资源。
[0009]这里需要说明的是,虽然这里把收集应用系统性能数据的步骤写在该方法的最前面,但这并不表示实施该方法必须先手机性能数据。本领域的技术人员知晓只要在依据性能数据确定满足所述应用系统现有工作负荷需要改变的虚拟机资源之前收集该性能数据就可以。另外,这里所说的“现有工作负荷”即为应用系统正在处理的工作负荷。
[0010]优选,所述虚拟机资源为虚拟机的数量;以负荷均衡的方式调度调整后的多个虚拟机来运行所述应用系统。
[0011]优选,所述根据所述应用系统的历史工作负荷并基于当前用于所述应用系统的虚拟机资源确定满足所述应用系统将要出现的工作负荷而需要改变的虚拟机资源的步骤包括:根据所述应用系统的历史工作负荷,预测所述应用系统即将出现的工作负荷;以及计算完成预测的工作负荷所需的虚拟机数量与当前用于所述应用系统的虚拟机数量之差,作为需要改变的虚拟机数量。
[0012]优选,所述收集的当前性能数据包括表征用于所述应用系统的各个虚拟机的资源使用情况的资源数据,并且,所述根据所述收集的应用系统的当前性能状况的性能数据并基于当前用于所述应用系统的虚拟机资源确定满足所述应用系统现有工作负荷需要改变的虚拟机资源的步骤包括:根据所述资源数据,计算当前用于所述应用系统的虚拟机中的第一种虚拟机的数量和第二种虚拟机的数量,其中,所述第一种虚拟机的至少一个资源数据与其所允许的最大值的比值大于指定上限阈值,以及,所述第二种虚拟机的每一个资源数据与其所允许的最大值的比值小于指定下限阈值;和根据所述第一种虚拟机的数量和所述第二种虚拟机的数量,计算在当前用于所述应用系统的虚拟机的基础上满足所述应用系统现有工作负荷而需要改变的虚拟机数量。
[0013]优选,所述收集的当前性能数据还包括所述应用系统的并发请求数和/或所述应用系统的请求响应时间,并且所述根据所述收集的应用系统的当前性能数据并基于当前用于所述应用系统的虚拟机资源确定满足所述应用系统现有工作负荷需要改变的虚拟机资源的步骤进一步包括:根据所述第一种虚拟机的数量和所述第二种虚拟机的数量以及所述应用系统的并发请求数和/或所述应用系统的请求响应时间,计算在当前用于所述应用系统的虚拟机的基础上满足所述应用系统现有工作负荷而需要改变的虚拟机数量。
[0014]优选,所述根据所确定的需要改变的虚拟机资源,调整用于所述应用系统的虚拟机资源的步骤包括:如果所述确定的虚拟机数量是正数,则为所述应用系统创建所述确定的虚拟机数量的虚拟机;以及如果所述确定的虚拟机数量是负数,则从当前用于所述应用系统的虚拟机中回收部分虚拟机不再用于所述应用系统,其中所回收的虚拟机数量等于所述确定的虚拟机数量的绝对值。
[0015]优选,所述根据所述收集的当前性能数据并基于当前用于所述应用系统的虚拟机资源确定满足所述应用系统现有工作负荷需要改变的虚拟机资源的步骤是以固定的周期执行的。
[0016]本发明的另外一个实施例还公开了一种用于资源分配的装置,该装置包括:监测模块,用于周期或非周期地收集用于表征所述应用系统当前性能状况的性能数据;资源缩放模块,用于在到达指定的时间处的条件下,根据所述应用系统的历史工作负荷并基于当前用于所述应用系统的虚拟机资源确定满足所述应用系统将要出现的工作负荷而需要改变的虚拟机资源,否则,根据所述收集的当前性能数据并基于当前用于所述应用系统的虚拟机资源确定满足所述应用系统现有工作负荷需要改变的虚拟机资源;以及部署模块,用于根据所确定的需要改变的虚拟机资源,调整用于所述应用系统的虚拟机资源。
[0017]优选,所述装置还包括:负荷均衡模块,用于以负荷均衡的方式调度调整后的多个虚拟机来运行所述应用系统。
[0018]优选,所述资源缩放模块包括:第一计算模块,用于根据所述应用系统的历史工作负荷,预测所述应用系统即将出现的工作负荷;以及第二计算模块,用于计算完成预测的工作负荷所需的虚拟机数量与当前用于所述应用系统的虚拟机数量之差,作为需要改变的虚拟机数量。
[0019]优选,所述收集的性能数据包括表征用于所述应用系统的各个虚拟机的资源使用情况的资源数据,所述资源缩放模块包括:第三计算模块,其用于根据所述资源数据,计算当前用于所述应用系统的虚拟机中的第一种虚拟机的数量和第二种虚拟机的数量,其中,所述第一种虚拟机的至少一个资源数据与其所允许的最大值的比值大于指定上限阈值,以及,所述第二种虚拟机的每一个资源数据与其所允许的最大值的比值小于指定下限阈值;以及第四计算模块,其用于根据所述第一种虚拟机的数量和所述第二种虚拟机的数量,计算在当前用于所述应用系统的虚拟机的基础上满足所述应用系统现有工作负荷而需要改变的虚拟机数量。
[0020]优选,所述性能数据还包括所述应用系统的并发请求数和/或所述应用系统的请求响应时间,并且所述第四计算模块进一步用于:根据所述第一种虚拟机的数量和所述第二种虚拟机的数量以及所述应用系统的并发请求数和/或所述应用系统的请求响应时间,计算在当前用于所述应用系统的虚拟机的基础上满足所述应用系统现有工作负荷而需要改变的虚拟机数量。
[0021]优选,所述部署模块包括:创建模块,用于如果所述确定的虚拟机数量是正数,则为所述应用系统创建所述确定的虚拟机数量的虚拟机;以及回收模块,用于如果所述确定的虚拟机数量是负数,则从当前用于所述应用系统的虚拟机中回收虚拟机不再用于所述应用系统,其中所回收的虚拟机数量等于所述确定的需要改变的虚拟机数量的绝对值。
[0022]优选,所述根据所述收集的当前性能数据并基于当前用于所述应用系统的虚拟机资源确定满足所述应用系统现有工作负荷需要改变的虚拟机资源的步骤是以固定的周期执行的。
[0023]从上面的描述可以看出,本发明实施例的方案组合基于预测的资源分配方法和基于反应的资源分配方法来调整用于应用系统的虚拟机,由于基于预测的资源分配方法能够及时调整用于应用系统的虚拟机和基于反应的资源分配方法能够准确地调整用于应用系统的虚拟机,因此,与现有技术相比,本发明实施例的方案可以及时、准确地向应用系统分配资源。

【专利附图】

【附图说明】
[0024]本发明的其它特征、特点、优点和益处通过以下结合附图的详细描述将变得更加显而易见。
[0025]图1示出了按照本发明一个实施例的用于资源分配的方法的流程图。
[0026]图2示出了按照本发明一个实施例的用于资源分配的装置的示意图。
[0027]图3示出了按照本发明一个实施例的计算设备的示意图。

【具体实施方式】
[0028]本发明实施例的方案组合基于预测的资源分配方法和基于反应的资源分配方法来调整用于应用系统的虚拟机。基于预测的资源分配方法能够及时调整用于应用系统的虚拟机,而基于反应的资源分配方法能够准确地调整用于应用系统的虚拟机,因此,本发明实施例的方案可以及时、准确地向应用系统分配资源。
[0029]下面,将结合附图详细本发明的各个实施例。
[0030]现在参见图1,其示出了按照本发明一个实施例的用于资源分配的方法的流程图。图1所示的方法可以由计算设备C执行,这里,计算设备C可以是任何具有计算能力的设备,例如但不局限于服务器、台式电脑、笔记本电脑等。
[0031]如图1所示,在步骤S100,计算设备C从当前用于在计算设备C上运行的任一应用系统Y的各个虚拟机中,周期或非周期地收集当前用于应用系统Y的各个虚拟机的中央处理单元(CPU)使用率和内存使用率,作为表征当前用于应用系统Y的各个虚拟机的资源使用情况的资源数据。这里,用于应用系统Y的各个虚拟机的资源数据仅是应用系统Y的用于表征其性能状况的性能数据的其中一种。
[0032]在步骤S104,计算设备C检查自从上一次基于应用系统Y的历史工作负荷(即应用系统Y以前出现过的工作负荷)计算在当前用于应用系统Y的虚拟机的基础上满足应用系统Y即将出现的工作负荷而需要改变的虚拟机数量之后已流逝的时间是否已经达到指定时间长度CD,即检查是否已经到达基于应用系统Y的历史工作负荷来计算在当前用于应用系统Y的虚拟机的基础上满足应用系统Y即将出现的工作负荷而需要改变的虚拟机数量的时间。这里,每一次检查间隔的指定时间长度CD可以是相同的或不相同的。
[0033]在步骤S108,如果步骤S104的检查结果为肯定,即自从上一次基于应用系统Y的历史工作负荷来计算在当前用于应用系统Y的虚拟机的基础上满足应用系统Y即将出现的工作负荷而需要改变的虚拟机数量之后已流逝的时间已经达到指定时间长度CD,则计算设备C利用滑动平均模型(MAM:Moving Averages Model)算法按照以下等式(I)来预测(计算)应用系统Y即将出现的工作负荷:
[0034]X (t) = (X (t-1)+X (t-2) + …+X (t-k))/k 等式(1),
[0035]其中,在等式(I)中,X (t)表示应用系统Y即将出现的工作负荷,X (t-Ι),X (t-2), -,X (t-k)表示应用系统Y以前出现过的k个工作负荷。
[0036]在步骤S112,计算设备C根据每个虚拟机所能承担的最大工作负荷,计算承担所计算的应用系统Y即将出现的工作负荷所需的虚拟机数量或者硬件配置(例如CPU、内存
-rf* ) O
[0037]在步骤S116,计算设备C计算承担应用系统Y即将出现的工作负荷所需的虚拟机数量与当前用于应用系统Y的虚拟机数量之差,作为在当前用于应用系统Y的虚拟机的基础上满足应用系统Y即将出现的工作负荷而需要改变的虚拟机数量,然后,然后流程进行到步骤S132。
[0038]在步骤S120,如果步骤S104的检查结果为否定,即自从上一次基于应用系统Y的历史工作负荷来计算在当前用于应用系统Y的虚拟机的基础上满足应用系统Y即将出现的工作负荷而需要改变的虚拟机数量之后已流逝的时间未达到指定时间长度CD,则计算设备C通过将所收集的当前用于应用系统Y的各个虚拟机的CPU使用率除以CPU使用率所允许的最大值以及将所收集的当前用于应用系统Y的各个虚拟机的内存使用率除以内存使用率所允许的最大值,计算当前用于应用系统Y的各个虚拟机的CPU使用率比值和内存使用率比值。
[0039]在步骤S124,计算设备C计算第一种虚拟机的数量和第二种虚拟机的数量,其中,第一种虚拟机是当前用于应用系统Y的各个虚拟机中的其CPU使用率比值大于第一指定上限阈值或其内存使用率比值大于第二指定上限阈值的虚拟机,而第二种虚拟机是当前用于应用系统Y的各个虚拟机中的其CPU使用率比值小于第一指定下限阈值和其内存使用率比值小于第二指定下限阈值的虚拟机。
[0040]在步骤S128,计算设备C利用所计算的第一种虚拟机的数量和第二种虚拟机的数量,计算在当前用于应用系统Y的虚拟机的基础上满足应用系统Y即将出现的工作负荷而需要改变的虚拟机数量。其中,如果所计算的第一种虚拟机的数量和第二种虚拟机的数量都为零,则将在当前用于应用系统Y的虚拟机的基础上满足应用系统Y现有的工作负荷而需要改变的虚拟机数量设置为零。如果所计算的第一种虚拟机的数量等于当前用于应用系统Y的虚拟机的数量,则将在当前用于应用系统Y的虚拟机的基础上满足应用系统Y现有的的工作负荷而需要改变的虚拟机数量设置为指定数量,即认为在当前用于应用系统Y的虚拟机的基础上增加该指定数量的虚拟机才可以满足应用系统Y即将出现的工作负荷。如果所计算的第二种虚拟机的数量不等于零,则将在当前用于应用系统Y的虚拟机的基础上满足应用系统Y现有的工作负荷而需要改变的虚拟机数量设置为负的第二种虚拟机的数量,然后流程进行到步骤S132。
[0041]在步骤S132,计算设备C根据所计算的在当前用于应用系统Y的虚拟机的基础上满足应用系统Y即将出现的工作负荷而需要改变的虚拟机数量,调整用于应用系统Y的虚拟机。其中,如果所计算的在当前用于应用系统Y的虚拟机的基础上满足应用系统Y即将出现的工作负荷而需要改变的虚拟机数量为正数,则计算设备C为应用系统Y创建和分配新的虚拟机,所创建的虚拟机数量等于所计算的需要改变的虚拟机数量。如果所计算的在当前用于应用系统Y的虚拟机的基础上满足应用系统Y即将出现的工作负荷而需要改变的虚拟机数量为负数,则计算设备C从当前用于应用系统Y的虚拟机中回收部分虚拟机不再用于应用系统Y,其中所回收的虚拟机数量等于所计算的需要改变的虚拟机数量的绝对值。这里,虚拟机的创建需要花费一定的时间,因此,可以假定从开始创建虚拟机起经过指定时间之后虚拟机就能被创建出来,或者,可以通过检测所要创建的虚拟机是否存在来确定虚拟机是否已经被创建出来。这里,所要回收的虚拟机可以选择工作负荷较小的虚拟机。并且所要回收的虚拟机处于空闲状态时可以销毁或不销毁,可以假定从不再向虚拟机分配新的工作负荷起经过预定的时间之后虚拟机就处于空闲状态,或者可以通过检测虚拟机的状态来确定虚拟机是否处于空闲状态。
[0042]在步骤S136,计算设备C以负荷均衡的方式,调度调整后的虚拟机来服务应用系统Y。例如,当从终端接收到一个针对应用系统Y的会话请求时,计算设备C可以从调整后的用于应用系统Y的虚拟机中选择其工作负荷较小的虚拟机来与该终端建立会话。
[0043]其它变型
[0044]本领域技术人员应当理解,虽然在上面的实施例中,基于滑动平均模型(MAM)算法利用应用系统Y以前出现过的工作负荷来计算应用系统Y即将出现的工作负荷,然而,本发明并不局限于此。在本发明的其它一些实施例中,也可以基于任何合适的算法利用应用系统Y以前出现过的工作负荷来预测应用系统Y即将出现的工作负荷,例如指数平滑(ES:Exponential Smoothing)算法、自回归滑动平均模型(ARMA:Auto_Regressive and MovingAverage Model)、差分自回归移动平均模型(ARIMA:Autoregressive Integrated MovingAverage Model)等。
[0045]本领域技术人员应当理解,虽然在上面的实施例中,虚拟机的资源数据是CPU使用率和内存使用率,然而,本发明并不局限于此。在本发明的其它一些实施例中,虚拟机的资源数据可以包括任何与虚拟机的资源使用有关的参数,包括但不局限于以下的至少一个=CPU使用率、内存使用率、活动会话数、与数据库的连接数、HTTP服务器请求速率等。
[0046]本领域技术人员应当理解,虽然在上面的实施例中,应用系统Y的性能数据仅包括用于应用系统Y的虚拟机的资源数据,然而,本发明并不局限于此。在本发明的其它一些实施例中,除了用于应用系统Y的虚拟机的资源数据之外,应用系统Y的性能数据还可以包括其它与应用系统Y的性能数据,例如应用系统Y的并发请求数和/或应用系统Y的请求响应时间。
[0047]在应用系统Y的性能数据包括用于应用系统Y的虚拟机的资源数据以及应用系统Y的并发请求数和/或应用系统Y的请求响应时间的情况下,在前述步骤S128中,计算设备C可以根据第一种虚拟机的数量和第二种虚拟机的数量以及应用系统Y的并发请求数和/或应用系统Y的请求响应时间,计算在当前用于应用系统Y的虚拟机的基础上满足应用系统Y即将出现的工作负荷而需要改变的虚拟机数量。例如,如果应用系统Y的并发请求数大于预定的请求数阈值和/或应用系统Y的请求响应时间大于预定的响应时间阈值,则表明应用系统Y即将出现的工作负荷大于当前用于应用系统Y的虚拟机所能承担的工作负荷,从而不管第一种虚拟机的数量和第二种虚拟机的数量如何,直接将在当前用于应用系统Y的虚拟机的基础上满足应用系统Y即将出现的工作负荷而需要改变的虚拟机数量设置为指定数量;如果(在应用系统Y的性能数据包括用于应用系统Y的虚拟机的资源数据和应用系统Y的并发请求数的情况下)应用系统Y的并发请求数小于预定的请求数阈值、(在应用系统Y的性能数据包括用于应用系统Y的虚拟机的资源数据和应用系统Y的请求响应时间的情况下)应用系统Y的请求响应时间小于预定的响应时间阈值、或者(在应用系统Y的性能数据包括用于应用系统Y的虚拟机的资源数据以及应用系统Y的并发请求数和应用系统Y的请求响应时间的情况下)应用系统Y的并发请求数小于预定的请求数阈值且应用系统Y的请求响应时间小于预定的响应时间阈值,则计算设备C根据第一种虚拟机的数量和第二种虚拟机的数量,计算在当前用于应用系统Y的虚拟机的基础上满足应用系统Y即将出现的工作负荷而需要改变的虚拟机数量。
[0048]本领域技术人员应当理解,虽然在上面的实施例中,计算在当前用于应用系统Y的虚拟机的基础上满足应用系统Y即将出现的工作负荷而需要改变的虚拟机数量并根据所计算的需要改变的虚拟机数量来向应用系统Y创建新的虚拟机或从当前用于应用系统Y的虚拟机中回收部分虚拟机不再用于应用系统Y,然而,本发明并不局限于此。在本发明的其它一些实施例中,也可以计算在当前用于应用系统Y的虚拟机的基础上满足应用系统Y即将出现的工作负荷而需要改变的虚拟机中的资源(例如但不局限于CPU、存储器、IP地址、存储设备、服务器、逻辑地址、网络设备、数据库软件、网络应用服务器软件等)并根据所计算的需要改变的虚拟机中的资源来向用于应用系统Y的虚拟机增加资源或缩减用于应用系统Y的虚拟机中的资源。这里,需要改变的虚拟机数量和需要改变的虚拟机中的资源都属于需要改变的虚拟机资源。
[0049]现在参见图2,其示出了按照本发明一个实施例的用于资源分配的装置的示意图。图2所示的装置可以安装在计算设备中,并且利用软件、硬件(例如集成电路或FPGA等)或软硬件结合的方式来实现。
[0050]如图2所示,用于资源分配的装置200可以包括监测模块210、资源缩放模块220和部署模块230。其中,监测模块210用于周期或非周期地收集应用系统的用于表征其当前性能状况的性能数据。资源缩放模块220用于基于所述应用系统的历史工作负荷或所收集的性能数据,确定在当前用于所述应用系统的虚拟机的基础上满足所述应用系统即将出现的工作负荷而需要改变的虚拟机资源,其中,如果已经到达基于所述应用系统的历史工作负荷执行所述确定的时间,则基于所述应用系统的历史工作负荷执行所述确定,否则基于所收集的性能数据执行所述确定。部署模块230用于根据所确定的虚拟机资源,调整用于所述应用系统的虚拟机的数量或者硬件配置。
[0051]在一种具体实现方式中,装置200还可以包括负荷均衡模块240,用于以负荷均衡的方式调度所述调整后的虚拟机来运行所述应用系统。
[0052]在一种具体实现方式中,所述虚拟机资源是虚拟机数量,以及,资源缩放模块220可以包括第一计算模块222和第二计算模块224。其中,第一计算模块222用于当基于所述应用系统的历史工作负荷执行所述确定时,根据所述应用系统的历史工作负荷,预测所述应用系统即将出现的工作负荷。第二计算模块224用于计算承担所计算的工作负荷所需的虚拟机数量与当前用于所述应用系统的虚拟机数量之差,作为在当前用于所述应用系统的虚拟机的基础上满足所述应用系统即将出现的工作负荷而需要改变的虚拟机数量。
[0053]在一种具体实现方式中,所述虚拟机资源是虚拟机数量,以及,资源缩放模块220可以包括第三计算模块226和第四计算模块228。其中,第三计算模块226用于当基于所收集的性能数据执行所述确定步骤时,如果所述收集的性能数据包括表征用于所述应用系统的各个虚拟机的资源使用情况的资源数据,则根据用于所述应用系统的各个虚拟机的资源数据,计算当前用于所述应用系统的虚拟机中的第一种虚拟机的数量和第二种虚拟机的数量,其中,所述第一种虚拟机的至少一个资源使用相关数据与其所允许的最大值的比值大于指定的上限阈值,以及,所述第二种虚拟机的每一个资源使用相关数据与其所允许的最大值的比值小于指定的下限阈值。第四计算模块228用于根据所述第一种虚拟机的数量和所述第二种虚拟机的数量,计算在当前用于所述应用系统的虚拟机的基础上满足所述应用系统现有工作负荷而需要改变的虚拟机数量。
[0054]在另一种具体实现方式中,如果所述收集的性能数据还包括所述应用系统的并发请求数和/或所述应用系统的请求响应时间,则第四计算模块228可以进一步用于:根据所述第一种虚拟机的数量和所述第二种虚拟机的数量以及所述应用系统的并发请求数和/或所述应用系统的请求响应时间,计算在当前用于所述应用系统的虚拟机的基础上满足所述应用系统现有工作负荷而需要改变的虚拟机数量。
[0055]在一种具体实现方式中,所述虚拟机资源是虚拟机数量,以及,部署模块230可以包括创建模块232和回收模块234。其中,创建模块232用于如果所述确定的虚拟机数量是正数,则向所述应用系统创建所述确定的虚拟机数量的虚拟机。回收模块234用于如果所述确定的虚拟机数量是负数,则从当前用于所述应用系统的虚拟机中回收部分虚拟机不再用于所述应用系统,其中所回收的虚拟机数量等于所述确定的虚拟机数量的绝对值。
[0056]现在参见图3,其示出了按照本发明一个实施例的计算设备的示意图。如图3所示,计算设备300可以包括用于存储可执行指令的存储器310和处理器320。其中,处理器320根据存储器310所存储的可执行指令,执行装置200的各个模块所执行的操作。
[0057]本发明实施例还提供一种机器可读介质,其上存储可执行指令,当该可执行指令被执行时,使得机器实现处理器320的功能。
[0058]本领域技术人员应当理解,上面公开的各个实施例可以在不偏离发明实质的情况下做出各种变形和修改。因此,本发明的保护范围应当由所附的权利要求书来限定。
【权利要求】
1.一种为应用系统分配虚拟机资源的方法,包括: 周期或非周期地收集用于表征所述应用系统当前性能状况的性能数据; 如果到达指定的时间处,则根据所述应用系统的历史工作负荷并基于当前用于所述应用系统的虚拟机资源确定满足所述应用系统将要出现的工作负荷而需要改变的虚拟机资源,否则,根据所述收集的应用系统的当前性能数据并基于当前用于所述应用系统的虚拟机资源确定满足所述应用系统现有工作负荷需要改变的虚拟机资源;以及 根据所确定的需要改变的虚拟机资源,调整用于所述应用系统的虚拟机资源。
2.如权利要求1所述的方法,其中,所述虚拟机资源为虚拟机的数量。
3.如权利要求2所述的方法,其中,还包括:以负荷均衡的方式调度调整后的多个虚拟机来运行所述应用系统。
4.如权利要求2所述的方法,其中所述根据所述应用系统的历史工作负荷并基于当前用于所述应用系统的虚拟机资源确定满足所述应用系统将要出现的工作负荷而需要改变的虚拟机资源的步骤包括:根据所述应用系统的历史工作负荷,预测所述应用系统即将出现的工作负荷;以及计算完成预测的工作负荷所需的虚拟机数量与当前用于所述应用系统的虚拟机数量之差,作为需要改变的虚拟机数量。
5.如 权利要求2所述的方法,其中,所述收集的当前性能数据包括表征用于所述应用系统的各个虚拟机的资源使用情况的资源数据, 并且,所述根据所述收集的应用系统的当前性能状况的性能数据并基于当前用于所述应用系统的虚拟机资源确定满足所述应用系统现有工作负荷需要改变的虚拟机资源的步骤包括: 根据所述资源数据,计算当前用于所述应用系统的虚拟机中的第一种虚拟机的数量和第二种虚拟机的数量,其中,所述第一种虚拟机的至少一个资源数据与其所允许的最大值的比值大于指定上限阈值,以及,所述第二种虚拟机的每一个资源数据与其所允许的最大值的比值小于指定下限阈值;和根据所述第一种虚拟机的数量和所述第二种虚拟机的数量,计算在当前用于所述应用系统的虚拟机的基础上满足所述应用系统现有工作负荷而需要改变的虚拟机数量。
6.如权利要求2所述的方法,其中,所述收集的当前性能数据还包括所述应用系统的并发请求数和/或所述应用系统的请求响应时间, 并且所述根据所述收集的应用系统的当前性能数据并基于当前用于所述应用系统的虚拟机资源确定满足所述应用系统现有工作负荷需要改变的虚拟机资源的步骤进一步包括: 根据所述第一种虚拟机的数量和所述第二种虚拟机的数量以及所述应用系统的并发请求数和/或所述应用系统的请求响应时间,计算在当前用于所述应用系统的虚拟机的基础上满足所述应用系统现有工作负荷而需要改变的虚拟机数量。
7.如权利要求2所述的方法,其中, 所述根据所确定的需要改变的虚拟机资源,调整用于所述应用系统的虚拟机资源的步骤包括: 如果所述确定的虚拟机数量是正数,则为所述应用系统创建所述确定的虚拟机数量的虚拟机;以及如果所述确定的虚拟机数量是负数,则从当前用于所述应用系统的虚拟机中回收部分虚拟机不再用于所述应用系统,其中所回收的虚拟机数量等于所述确定的虚拟机数量的绝对值。
8.如权利要求1所述的方法,其中,所述根据所述收集的当前性能数据并基于当前用于所述应用系统的虚拟机资源确定满足所述应用系统现有工作负荷需要改变的虚拟机资源的步骤是以固定的周期执行的。
9.一种用于资源分配的装置,包括: 监测模块,用于周期或非周期地收集用于表征所述应用系统当前性能状况的性能数据; 资源缩放模块,用于在到达指定的时间处的条件下,根据所述应用系统的历史工作负荷并基于当前用于所述应用系统的虚拟机资源确定满足所述应用系统将要出现的工作负荷而需要改变的虚拟机资源,否则,根据所述收集的当前性能数据并基于当前用于所述应用系统的虚拟机资源确定满足所述应用系统现有工作负荷需要改变的虚拟机资源;以及 部署模块,用于根据所确定的需要改变的虚拟机资源,调整用于所述应用系统的虚拟机资源。
10.如权利要求9所述的装置,其中所述虚拟机资源是虚拟机的数量。
11.如权 利要求10所述的装置,其中,还包括:负荷均衡模块,用于以负荷均衡的方式调度调整后的多个虚拟机来运行所述应用系统。
12.如权利要求10所述的装置,所述资源缩放模块包括: 第一计算模块,用于根据所述应用系统的历史工作负荷,预测所述应用系统即将出现的工作负荷;以及 第二计算模块,用于计算完成预测的工作负荷所需的虚拟机数量与当前用于所述应用系统的虚拟机数量之差,作为需要改变的虚拟机数量。
13.如权利要求10所述的装置,其中所述收集的性能数据包括表征用于所述应用系统的各个虚拟机的资源使用情况的资源数据, 所述资源缩放模块包括: 第三计算模块,其用于根据所述资源数据,计算当前用于所述应用系统的虚拟机中的第一种虚拟机的数量和第二种虚拟机的数量,其中,所述第一种虚拟机的至少一个资源数据与其所允许的最大值的比值大于指定上限阈值,以及,所述第二种虚拟机的每一个资源数据与其所允许的最大值的比值小于指定下限阈值;以及第四计算模块,其用于根据所述第一种虚拟机的数量和所述第二种虚拟机的数量,计算在当前用于所述应用系统的虚拟机的基础上满足所述应用系统现有工作负荷而需要改变的虚拟机数量。
14.如权利要求10所述的装置,其中, 所述性能数据还包括所述应用系统的并发请求数和/或所述应用系统的请求响应时间,并且所述第四计算模块进一步用于:根据所述第一种虚拟机的数量和所述第二种虚拟机的数量以及所述应用系统的并发请求数和/或所述应用系统的请求响应时间,计算在当前用于所述应用系统的虚拟机的基础上满足所述应用系统现有工作负荷而需要改变的虚拟机数量。
15.如权利要求10所述的装置,其中,所述部署模块包括: 创建模块,用于如果所述确定的虚拟机数量是正数,则为所述应用系统创建所述确定的虚拟机数量的虚拟机;以及 回收模块,用于如果所述确定的虚拟机数量是负数,则从当前用于所述应用系统的虚拟机中回收虚拟机不再用于所述应用系统,其中所回收的虚拟机数量等于所述确定的需要改变的虚拟机数量的绝对值。
16.如权利要求10所述的装置,其中,所述根据所述收集的当前性能数据并基于当前用于所述应用系统的虚拟机资源确定满足所述应用系统现有工作负荷需要改变的虚拟机资源的步骤是以固定的周期执行的。
【文档编号】G06F9/50GK104077189SQ201310109842
【公开日】2014年10月1日 申请日期:2013年3月29日 优先权日:2013年3月29日
【发明者】刘彦, 戚威 申请人:西门子公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1