一种虚拟机资源管理方法、系统及相关设备与流程

文档序号:19878609发布日期:2020-02-08 06:42阅读:161来源:国知局
一种虚拟机资源管理方法、系统及相关设备与流程

本发明涉及云服务领域,尤其涉及一种虚拟机资源管理方法、系统及相关设备。



背景技术:

现有的云服务应用提供商(saas)往往采用租赁方式购买云服务平台提供商(paas)的云服务资源。如:云端的虚拟机等为自己的客户提供云服务。

在实际的业务中,saas企业部署的云服务的虚拟机数量往往是固定不变的。实际运用中虚拟机可能会随着业务的增长而出现资源瓶颈,往往的表现是,高峰期服务无法响应,客户的请求反应缓慢等症状,往往在经过一段高峰时期的使用后,会出现业务的低潮期,系统资源会大面积的出现闲置,这显然是一种资源浪费。

有鉴于此,有必要提供一种新的虚拟机资源管理方法。



技术实现要素:

本发明实施例提供了一种虚拟机资源管理方法、系统及相关设备,用于实现虚拟机资源的自动动态管理。

本发明实施例第一方面提供了一种虚拟机资源管理方法,其特征在于,包括:

周期性统计未执行的计算任务的数量d及资源池中已开通的虚拟机的数量x,其中同一虚拟机同时并行执行所述计算任务的数量为n;

若连续a个统计周期内d≥[x*(r+n)+r],则在资源池中新开通z个虚拟机,其中z=[(d-n*x)/r-x],a、r为预设正整数。

可选的,作为一种可能的实施方式,本发明实施例中的虚拟机资源管理方法还包括:

周期性统计资源池中空闲的虚拟机的数量k;

若连续b个统计周期内(k+min-x)≤d/n<k,则在资源池中取消s个虚拟机,其中s=(k–d/n)且s≤(x-min),min为预设正整数。

可选的,作为一种可能的实施方式,本发明实施例中的虚拟机资源管理方法中,若n=1,则当连续a个统计周期内d≥[x*(r+1)+r],则在资源池中新开通z个虚拟机,其中z=[(d-x)/r-x],r为预设正整数;

当连续b个统计周期内(k+min-x)≤d<k,则在资源池中取消s个虚拟机,其中s=(k-d)且s≤(x-min),min为预设正整数。

可选的,作为一种可能的实施方式,本发明实施例中的虚拟机资源管理方法还包括:

为每一种类型的计算任务配置最大执行时间;

若第一虚拟机执行目标计算任务超过对应的最大执行时间,则调用第二虚拟机替代所述第一虚拟机重新执行所述目标计算任务。

可选的,作为一种可能的实施方式,本发明实施例中的虚拟机资源管理方法还包括:

当计算任务执行失败时,判断所述计算任务对应的计算数据是否正确,若不正确,则不重新执行所述计算任务,否则重新执行。

本发明实施例第二方面提供了一种虚拟机资源管理系统,可包括:

第一统计单元,用于周期性统计未执行的计算任务的数量d及资源池中已开通的虚拟机的数量x,其中同一虚拟机同时并行执行所述计算任务的数量为n;

开通单元,若连续a个统计周期内d≥[x*(r+n)+r],则在资源池中新开通z个虚拟机,其中z=[(d-n*x)/r-x],a、r为预设正整数。

可选的,作为一种可能的实施方式,本发明实施例中的虚拟机资源管理系统还包括:

第二统计单元,用于周期性统计资源池中空闲的虚拟机的数量k;

取消单元,若连续b个统计周期内(k+min-x)≤d/n<k,则在资源池中取消s个虚拟机,其中s=(k–d/n)且s≤(x-min),min为预设正整数。

可选的,若n=1,则当连续a个统计周期内d≥[x*(r+1)+r],z=[(d-x)/r-x];当连续b个统计周期内(k+min-x)≤d<k,s=(k-d)且s≤(x-min)。

本发明实施例第三方面提供了一种计算机装置,其特征在于,所述计算机装置包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如第一方面及第一方面中任意一项所述虚拟机资源管理方法的步骤。

本发明实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于:所述计算机程序被处理器执行时实现如第一方面及第一方面中任意一项所述虚拟机资源管理方法的步骤。

从以上技术方案可以看出,本发明实施例具有以下优点:

本发明实施例中,周期性统计未执行的计算任务的数量d及资源池中已开通的虚拟机的数量x,其中同一虚拟机同时并行执行计算任务的数量为n;若连续a个统计周期内d≥[x*(r+n)+r],则在资源池中新开通z个虚拟机,其中z=[(d-n*x)/r-x],r为预设正整数,在云服务高峰期,兼顾硬件资源开通费用与用户需求的平衡,在维护收支平衡的前提下可以动态自动增加虚拟机的数量,达到耗费与用户需求的平衡,提高了用户体验。

附图说明

图1为本发明实施例中一种计算资源调度方法的一个实施例示意图;

图2为本发明实施例中一种计算资源调度系统的一个实施例示意图;

图3为本发明实施例中一种计算机装置的一个实施例示意图。

具体实施方式

本发明实施例提供了一种虚拟机资源管理方法、系统及相关设备,用于实现虚拟机资源的自动动态管理。

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

为了便于理解,下面对本发明实施例中的具体流程进行描述,请参阅图1,本发明实施例中一种虚拟机资源管理方法的一个实施例可包括:

101、周期性统计未执行的计算任务的数量d及资源池中已开通的虚拟机的数量x,其中同一虚拟机同时并行执行计算任务的数量为n;

实际运用中,saas企业部署的云服务业务往往是带有周期性质的,往往会出现一段高峰时期,为了减少计算任务数量高峰期的延时,本发明实施例中可以根据预设的算法对执行计算任务的虚拟机的数量进行动态调整以减少计算任务数量高峰期的延时。

首先,虚拟机资源管理系统需要周期性统计未执行的计算任务的数量d及资源池中已开通的虚拟机的数量x,同一虚拟机往往可以同时并行执行多个计算任务的,例如同一个虚拟机可以通过运行软件流程自动化rpa脚本或是爬虫服务程序同时并行执行多个计算任务,假设并行的计算任务的数量为n。

102、若连续a个统计周期内d≥[x*(r+n)+r],则在资源池中新开通z个虚拟机,其中z=[(d-n*x)/r-x]。

增加虚拟机的数量越多,计算任务的处理延时越低,但虚拟机越多耗费的资源及费用越多,为了达到硬件资源与用户需求的平衡,在增加的虚拟机之后,希望增加的虚拟机至少执行r个计算任务才能弥补硬件资源开通的耗费,其中,r为预设正整数,可以根据实际硬件开通成本进行合理的设置具体数值此处不做限定。

假设开通z个虚拟机,下一周期内虚拟机的总数为(x+z),每个虚拟机处理r个计算任务,则(x+z)*r=(d-n*x),其中n*x为当前周期x个虚拟机正在处理的计算任务,则z=[(d-n*x)/r-x],其中z≥1,则d≥[x*(r+n)+r]。可选的,可以设置开通虚拟机的最大数量max,则(x+z)≤max。

本发明实施例中,周期性统计未执行的计算任务的数量d及资源池中已开通的虚拟机的数量x,其中同一虚拟机同时并行执行计算任务的数量为n;若连续a个统计周期内d≥[x*(r+n)+r],则在资源池中新开通z个虚拟机,其中z=[(d-n*x)/r-x],r为预设正整数,在云服务高峰期,可以动态自动增加虚拟机的数量,达到硬件资源与用户需求的平衡,提高了用户体验。

103、周期性统计资源池中空闲的虚拟机的数量k,若连续b个统计周期内(k+min-x)≤d/n<k,则在资源池中取消s个虚拟机,其中s=(k–d/n)且s≤(x-min)。

saas企业部署的云服务业务往往是带有周期性质的,往往高峰时期之后也有低潮期,可选的,在上述步骤101、102的基础上,虚拟机资源管理系统可以周期性统计资源池中空闲的虚拟机的数量k,若连续b个统计周期内(k+min-x)≤d/n<k,则在资源池中取消s个虚拟机,其中s=(k–d/n)且s≤(x-min),min为预设正整数。

实际运用中,若连续b个统计周期内d/n<k,则说明处于低潮期,可以在资源池中取消s个虚拟机,其中s=(k–d/n),但是为了避免业务波动,至少应该为此min个虚拟机,其中min为预设正整数,则min≤(x-s),代入s=(k–d/n)即(k+min-x)≤d/n。

具体的,若n=1,则上述实施例中,当连续a个统计周期内d≥[x*(r+1)+r],则在资源池中新开通z个虚拟机,其中z=[(d-x)/r-x],r为预设正整数;当连续b个统计周期内(k+min-x)≤d<k,则在资源池中取消s个虚拟机,其中s=(k-d)且s≤(x-min),min为预设正整数。

本发明实施例中,在云服务高峰期,可以动态自动增加虚拟机的数量,达到硬件资源与用户需求的平衡,提高了用户体验。其次,在云服务低潮期,可以动态减少虚拟机的数量,节约了硬件资源。

在上述任一实施例的基础上,为了避免单个虚拟机故障导致计算任务执行延时,本发明实施例中可以设置超时处理机制。可选的,作为一种可能的实施方式,本发明实施例中的计算资源调度方法还可以包括:

为每一种类型的计算任务配置最大执行时间;若第一虚拟机执行目标计算任务超过对应的最大执行时间,则调用第二虚拟机替代第一虚拟机重新执行目标计算任务。当识别到目标计算任务执行超时之后,可以自动调用其他虚拟机重新执行目标计算任务避免长时间延时。

在上述任一实施例的基础上,为了避免单个虚拟机故障导致计算任务执行延时,本发明实施例中可以设置错误重试处理机制。可选的,作为一种可能的实施方式,本发明实施例中的计算资源调度方法还可以包括:

当计算任务执行失败时,判断目标计算任务对应的计算数据(用户输入的数据)是否正确,若不正确,则不重新执行目标计算任务,否则重新执行。实际运用中,计算任务执行失败有两类情况,一类是用户输入的信息数据输入错误,这种情况需要用户重新输入正确的数据才能重新执行目标计算任务;另一类情况是系统故障,无需用户干预,只需要定时重新执行目标计算任务直到执行成功为止。

请参阅图2,本发明实施例还提供了一种虚拟机资源管理系统,可包括:

第一统计单元201,用于周期性统计未执行的计算任务的数量d及资源池中已开通的虚拟机的数量x,其中同一虚拟机同时并行执行计算任务的数量为n;

开通单元202,若连续a个统计周期内d≥[x*(r+n)+r],则在资源池中新开通z个虚拟机,其中z=[(d-n*x)/r-x],r为预设正整数。

可选的,作为一种可能的实施方式,本发明实施例中的虚拟机资源管理系统还包括:

第二统计单元203,用于周期性统计资源池中空闲的虚拟机的数量k;

取消单元204,若连续b个统计周期内(k+min-x)≤d/n<k,则在资源池中取消s个虚拟机,其中s=(k–d/n)且s≤(x-min),min为预设正整数。

可选的,若n=1,则当连续a个统计周期内d≥[x*(r+1)+r],z=[(d-x)/r-x];当连续b个统计周期内(k+min-x)≤d<k,s=(k-d)且s≤(x-min)。

本申请实施例还提供了一种计算机装置,如图3所示,为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。参考图3,计算机装置3包括:存储器310、处理器320、有线或无线网络模块330以及存储在存储器中并可在处理器上运行的计算机程序。处理器执行计算机程序时实现上述各个计算资源调度方法实施例中的步骤,例如图1所示的步骤101至103。或者,处理器执行计算机程序时实现上述各装置实施例中各模块或单元的功能。

本申请实施例中的一些实施例中,处理器用于执行存储器中存储的计算机程序时实现如下步骤:

周期性统计未执行的计算任务的数量d及资源池中已开通的虚拟机的数量x,其中同一虚拟机同时并行执行计算任务的数量为n;

若连续a个统计周期内d≥[x*(r+n)+r],则在资源池中新开通z个虚拟机,其中z=[(d-n*x)/r-x],r为预设正整数。

可选的,本申请的一些实施例中,处理器还可以用于实现如下步骤:

周期性统计资源池中空闲的虚拟机的数量k;

若连续b个统计周期内(k+min-x)≤d/n<k,则在资源池中取消s个虚拟机,其中s=(k–d/n)且s≤(x-min),min为预设正整数。

可选的,本申请的一些实施例中,若n=1,则当连续a个统计周期内d≥[x*(r+1)+r],则在资源池中新开通z个虚拟机,其中z=[(d-x)/r-x],r为预设正整数;

当连续b个统计周期内(k+min-x)≤d<k,则在资源池中取消s个虚拟机,其中s=(k-d)且s≤(x-min),min为预设正整数。

可选的,本申请的一些实施例中,处理器还可以用于实现如下步骤:

为每一种类型的计算任务配置最大执行时间;

若第一虚拟机执行目标计算任务超过对应的最大执行时间,则调用第二虚拟机替代第一虚拟机重新执行目标计算任务。

可选的,本申请的一些实施例中,处理器还可以用于实现如下步骤:

当计算任务执行失败时,判断计算任务对应的计算数据是否正确,若不正确,则不重新执行计算任务,否则重新执行。

本领域技术人员可以理解,图3中示出的结构并不构成对计算机装置的限定,计算机装置3可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置,例如计算机装置还可以包括输入输出设备、总线等。

所称处理器可以是通用处理器、数字信号处理器(digitalsignalprocessor,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现成可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。

存储器可用于存储计算机程序和/或模块,处理器通过运行或执行存储在存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现计算机装置的各种功能。存储器可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器可以包括高速随机存取存储器,还可以包括非易失性存储器,例如硬盘、内存、插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)、至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。

本申请还提供了一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时,可以实现如下步骤:

周期性统计未执行的计算任务的数量d及资源池中已开通的虚拟机的数量x,其中同一虚拟机同时并行执行计算任务的数量为n;

若连续a个统计周期内d≥[x*(r+n)+r],则在资源池中新开通z个虚拟机,其中z=[(d-n*x)/r-x],r为预设正整数。

可选的,本申请的一些实施例中,处理器还可以用于实现如下步骤:

周期性统计资源池中空闲的虚拟机的数量k;

若连续b个统计周期内(k+min-x)≤d/n<k,则在资源池中取消s个虚拟机,其中s=(k–d/n)且s≤(x-min),min为预设正整数。

可选的,本申请的一些实施例中,若n=1,则当连续a个统计周期内d≥[x*(r+1)+r],则在资源池中新开通z个虚拟机,其中z=[(d-x)/r-x],r为预设正整数;

当连续b个统计周期内(k+min-x)≤d<k,则在资源池中取消s个虚拟机,其中s=(k-d)且s≤(x-min),min为预设正整数。

可选的,本申请的一些实施例中,处理器还可以用于实现如下步骤:

为每一种类型的计算任务配置最大执行时间;

若第一虚拟机执行目标计算任务超过对应的最大执行时间,则调用第二虚拟机替代第一虚拟机重新执行目标计算任务。

可选的,本申请的一些实施例中,处理器还可以用于实现如下步骤:

当计算任务执行失败时,判断计算任务对应的计算数据是否正确,若不正确,则不重新执行计算任务,否则重新执行。

所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。

在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1