一种虚拟机内存分配方法和装置与流程

文档序号:12905966阅读:411来源:国知局
一种虚拟机内存分配方法和装置与流程

本发明实施例涉及虚拟化领域,尤指一种虚拟机内存分配方法和装置。



背景技术:

虚拟化技术指在一台主机上虚拟出多台逻辑计算机,又称为虚拟机。每台虚拟机都有完整的操作系统和硬件系统,可以独立运行,互不影响。虚拟化技术可以极大地提高资源利用效率。在主机上创建虚拟机时会为虚拟机分配固定大小的内存,由于虚拟机运行时对内存资源的需求是动态变化的,固定内存分配可能造成虚拟机内存利用率过低,导致资源浪费;或者内存占用过高,导致虚拟机卡顿。为了解决这个问题,xen、vmware和kvm提供了气球驱动、页面交换和内存共享等底层机制来动态调整虚拟机内存,但还缺乏一种多虚拟机协同管理的内存调度策略。



技术实现要素:

为了解决上述技术问题,本发明实施例提供了一种虚拟机内存分配方法和装置,能够使虚拟机内存利用率保持均衡,提高物理机资源利用效率。

为了达到本发明实施例目的,本发明实施例提供了一种虚拟机内存分配方法,该方法包括:

对物理主机和每台虚拟机的内存使用情况进行监测并周期性采集内存使用信息;

根据内存使用信息以及预设的内存调度参考条件判断多台虚拟机的内存使用是否合理;

根据判断结果确定虚拟机的内存调度策略。

可选地,内存使用信息包括:

物理主机正在使用的物理内存大小pi,其中,i指采集所述内存使用信息第i个周期;以及,

每台虚拟机的操作系统的最大可用内存大小mlij和正在使用的内存大小mij、当前空闲内存大小,以及所述操作系统中所有应用程序已经向系统提交的内存大小;

其中,物理主机上所有虚拟机集合为vj∈vm,0<j<n,n为虚拟机总台数,j指第j台虚拟机,i、j、n均为正整数。

可选地,预设的内存调度参考条件包括:第一关系式、预设的利用率阈值上限δup、预设的利用率阈值下限为δlow,以及预设的加权系数βij;

其中,第一关系式包括:(mij×βij)/mlij。

可选地,根据内存使用信息以及预设的内存调度参考条件判断多台虚拟机的内存使用是否合理包括:

当满足δlow≤(mij×βij)/mlij≤δup时,判定该周期i内虚拟机vj内存使用情况合理;

当满足(mij×βij)/mlij≤δlow时,判定该周期i内虚拟机vj内存处于过剩状态,使用情况不合理;

当满足δup≤(mij×βij)/mlij时,判定该周期i内虚拟机vj内存处于紧缺状态,使用情况不合理。

可选地,根据判断结果确定虚拟机的内存调度策略包括:

当满足δlow≤(mij×βij)/mlij≤δup时,不对第i+1周期内虚拟机vj最大可使用内存ml(i+1)j进行调整,ml(i+1)j=mlij;

当满足(mij×βij)/mlij≤δlow时,调整第i+1周期内虚拟机vj内存ml(i+1)j满足:ml(i+1)j=(δup+δlow)mlij/2;

当满足δup≤(mij×βij)/mlij时,调整第i+1周期内虚拟机vj内存ml(i+1)j满足:ml(i+1)j=mlij+(δup+δlow)mlij/2。

可选地,该方法还包括:在确定出每个虚拟机的内存调度策略后,判断如果依照所述内存调度策略对虚拟机进行内存调度,物理主机内存使用情况是否正常。

可选地,该方法还包括:通过下述的不等式与预设的物理主机内存利用率阈值a的关系判断如果依照所述内存调度策略对虚拟机进行内存调度,所述物理主机内存使用情况是否正常:

本发明实施例还提供了一种虚拟机内存分配装置,该装置包括:采集模块、判断模块和确定模块;

采集模块,用于对物理主机和每台虚拟机的内存使用情况进行监测并周期性采集内存使用信息;

判断模块,用于根据内存使用信息以及预设的内存调度参考条件判断多台虚拟机的内存使用是否合理;

确定模块,用于根据判断结果确定虚拟机的内存调度策略。

可选地,内存使用信息包括:

物理主机正在使用的物理内存大小pi,其中,i指采集所述内存使用信息第i个周期;以及,

每台虚拟机的操作系统的最大可用内存大小mlij和正在使用的内存大小mij、当前空闲内存大小,以及所述操作系统中所有应用程序已经向系统提交的内存大小;

其中,物理主机上所有虚拟机集合为vj∈vm,0<j<n,n为虚拟机总台数,j指第j台虚拟机,i、j、n均为正整数。

可选地,预设的内存调度参考条件包括:第一关系式、预设的利用率阈值上限δup、预设的利用率阈值下限为δlow,以及预设的加权系数βij;

其中,第一关系式包括:(mij×βij)/mlij。

可选地,判断模块根据内存使用信息以及预设的内存调度参考条件判断多台虚拟机的内存使用是否合理包括:

当满足δlow≤(mij×βij)/mlij≤δup时,判定该周期i内虚拟机vj内存使用情况合理;

当满足(mij×βij)/mlij≤δlow时,判定该周期i内虚拟机vj内存处于过剩状态,使用情况不合理;

当满足δup≤(mij×βij)/mlij时,判定该周期i内虚拟机vj内存处于紧缺状态,使用情况不合理。

可选地,确定模块根据判断结果确定虚拟机的内存调度策略包括:

当满足δlow≤(mij×βij)/mlij≤δup时,不对第i+1周期内虚拟机vj最大可使用内存ml(i+1)j进行调整,ml(i+1)j=mlij;

当满足(mij×βij)/mlij≤δlow时,调整第i+1周期内虚拟机vj内存ml(i+1)j满足:ml(i+1)j=(δup+δlow)mlij/2;

当满足δup≤(mij×βij)/mlij时,调整第i+1周期内虚拟机vj内存ml(i+1)j满足:ml(i+1)j=mlij+(δup+δlow)mlij/2。

可选地,该判断模块还用于:在确定出每个虚拟机的内存调度策略后,判断如果依照所述内存调度策略对虚拟机进行内存调度,物理主机内存使用情况是否正常。

可选地,该判断模块还用于:通过下述的不等式与预设的物理主机内存利用率阈值a的关系判断如果依照所述内存调度策略对虚拟机进行内存调度,所述物理主机内存使用情况是否正常:

本发明实施例包括:对物理主机和每台虚拟机的内存使用情况进行监测并周期性采集内存使用信息;根据所述内存使用信息以及预设的内存调度参考条件判断多台虚拟机的内存使用是否合理;根据判断结果确定虚拟机的内存调度策略。通过本发明实施例方案,使虚拟机内存利用率保持均衡,提高了物理机资源利用效率。

本发明实施例的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明实施例而了解。本发明实施例的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明实施例技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明实施例的技术方案,并不构成对本发明实施例技术方案的限制。

图1为本发明实施例的虚拟机内存分配方法流程图;

图2为本发明实施例的虚拟机内存分配装置组成框图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行。并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

为了达到本发明实施例目的,本发明实施例提供了一种虚拟机内存分配方法,该方法包括s101-s103:

s101、对物理主机和每台虚拟机的内存使用情况进行监测并周期性采集内存使用信息。

在本发明实施例中,为了实现对虚拟机内存的合理分配,首先需要对物理主机和每台虚拟机的内存使用情况进行监测,并对其内存使用信息进行实时采集,以便根据采集的内存使用信息有针对性地调整后续采样周期内虚拟机的内存分配情况。

可选地,内存使用信息可以包括但不限于:

物理主机正在使用的物理内存大小pi和空闲内存大小fi,其中,i指采集所述内存使用信息第i个周期;以及,

每台虚拟机的操作系统的最大可用内存大小mlij和正在使用的内存大小mij、当前空闲内存大小,以及所述操作系统中所有应用程序已经向系统提交的内存大小;

其中,物理主机上所有虚拟机集合为vj∈vm,0<j<n,n为虚拟机总台数,j指第j台虚拟机,i、j、n均为正整数。

在本发明实施例中,可以根据不同的应用场景和具体需求对上述内存使用信息中的各项进行有针对性地采集,对于其具体项不做限制。

s102、根据内存使用信息以及预设的内存调度参考条件判断多台虚拟机的内存使用是否合理。

可选地,预设的内存调度参考条件包括:第一关系式、预设的利用率阈值上限δup、预设的利用率阈值下限为δlow,以及预设的加权系数βij;

其中,第一关系式包括:(mij×βij)/mlij。

在本发明实施例中,可以预先设置内存调度参考条件,以便根据该参考条件对采集到的内存使用信息进行衡量。例如,可以预先设置内存利用率的上下限,如上述的利用率阈值上限δup和利用率阈值下限为δlow,超出该阈值上限或下限则可以认为虚拟机内存使用不合理,需要进行内存调度。还可以预先设置内存使用信息中不同的项分别对应的加权系数,例如上述的加权系数βij,以便对于内存使用信息波动较大的虚拟机用于留出内存安全余量。另外可以设置合理的衡量算法,以根据上述的各种参考条件对内存使用信息进行衡量,该衡量算法可以采用但不限于上述的第一关系式。

可选地,根据内存使用信息以及预设的内存调度参考条件判断多台虚拟机的内存使用是否合理可以包括:

当满足δlow≤(mij×βij)/mlij≤δup时,判定该周期i内虚拟机vj内存使用情况合理;

当满足(mij×βij)/mlij≤δlow时,判定该周期i内虚拟机vj内存处于过剩状态,内存资源严重浪费,使用情况不合理;

当满足δup≤(mij×βij)/mlij时,判定该周期i内虚拟机vj内存处于紧缺状态,需要分配更多的内存,使用情况不合理。

s103、根据判断结果确定虚拟机的内存调度策略。

在本发明实施例中,通过上述步骤判断出不同虚拟机在不同的采样周期内的内存使用情况以后,便可以根据该内存使用情况对不同的虚拟机进行内存调整,以便该虚拟机在一个采样周期内能够根据调整后的内存情况进行工作,提高工作效率。

可选地,根据判断结果确定虚拟机的内存调度策略可以包括:

当满足δlow≤(mij×βij)/mlij≤δup时,不对第i+1周期内虚拟机vj最大可使用内存ml(i+1)j进行调整,ml(i+1)j=mlij;

当满足(mij×βij)/mlij≤δlow时,调整第i+1周期内虚拟机vj内存ml(i+1)j满足:ml(i+1)j=(δup+δlow)mlij/2;

当满足δup≤(mij×βij)/mlij时,调整第i+1周期内虚拟机vj内存ml(i+1)j满足:ml(i+1)j=mlij+(δup+δlow)mlij/2。

可选地,该方法还包括:在确定出每个虚拟机的内存调度策略后,判断如果依照内存调度策略对虚拟机进行内存调度,物理主机内存使用情况是否正常。

可选地,该方法还包括:通过下述的不等式与预设的物理主机内存利用率阈值a的关系判断如果依照内存调度策略对虚拟机进行内存调度,物理主机内存使用情况是否正常:

在本发明实施例中,该预设的物理主机内存利用率阈值a可以根据不同的应用场景自行定义,对于其具体数值不做限制,可选地,a=90%。

如果说明物理主机内存利用率不超过90%,内存使用情况正常,可以依照内存调度策略进行虚拟机内存调度;

如果说明物理主机内存利用率会超过90%,处于内存紧缺状态,内存调度策略不合理,则应该告警或选择虚拟机进行迁移。

在本发明实施例中,在内存调度策略可用的情况下,根据根据上述的内存调度策略进行i+1周期内的虚拟机内存动态分配和调度。

本发明实施例通过对物理主机和虚拟机内存使用情况进行监控和周期性的信息采集,根据调度算法确定虚拟机内存调度策略,对内存利用率过低的虚拟机减少内存分配,对内存利用率过高的虚拟机,分配更多的内存,从而使虚拟机内存利用率保持均衡,提高了物理机资源利用效率。

本发明实施例还提供了一种虚拟机内存分配装置1,需要说明的是,上述的方法实施例中的任何实施例均适用于该装置实施例中,在此不再一一赘述。如图2所示,该装置可以包括:采集模块11、判断模块12和确定模块13;

采集模块11,用于对物理主机和每台虚拟机的内存使用情况进行监测并周期性采集内存使用信息;

判断模块12,用于根据内存使用信息以及预设的内存调度参考条件判断多台虚拟机的内存使用是否合理;

确定模块13,用于根据判断结果确定虚拟机的内存调度策略。

可选地,内存使用信息包括:

物理主机正在使用的物理内存大小pi和空闲内存大小fi,其中,i指采集所述内存使用信息第i个周期;以及,

每台虚拟机的操作系统的最大可用内存大小mlij和正在使用的内存大小mij、当前空闲内存大小,以及所述操作系统中所有应用程序已经向系统提交的内存大小;

其中,物理主机上所有虚拟机集合为vj∈vm,0<j<n,n为虚拟机总台数,j指第j台虚拟机,i、j、n均为正整数。

可选地,预设的内存调度参考条件包括:第一关系式、预设的利用率阈值上限δup、预设的利用率阈值下限为δlow,以及预设的加权系数βij;

其中,第一关系式包括:(mij×βij)/mlij。

可选地,判断模块12根据内存使用信息以及预设的内存调度参考条件判断多台虚拟机的内存使用是否合理包括:

当满足δlow≤(mij×βij)/mlij≤δup时,判定该周期i内虚拟机vj内存使用情况合理;

当满足(mij×βij)/mlij≤δlow时,判定该周期i内虚拟机vj内存处于过剩状态,使用情况不合理;

当满足δup≤(mij×βij)/mlij时,判定该周期i内虚拟机vj内存处于紧缺状态,使用情况不合理。

可选地,确定模块13根据判断结果确定虚拟机的内存调度策略包括:

当满足δlow≤(mij×βij)/mlij≤δup时,不对第i+1周期内虚拟机vj最大可使用内存ml(i+1)j进行调整,ml(i+1)j=mlij;

当满足(mij×βij)/mlij≤δlow时,调整第i+1周期内虚拟机vj内存ml(i+1)j满足:ml(i+1)j=(δup+δlow)mlij/2;

当满足δup≤(mij×βij)/mlij时,调整第i+1周期内虚拟机vj内存ml(i+1)j满足:ml(i+1)j=mlij+(δup+δlow)mlij/2。

可选地,该判断模块12还用于:在确定出每个虚拟机的内存调度策略后,判断如果依照所述内存调度策略对虚拟机进行内存调度,物理主机内存使用情况是否正常。

可选地,该判断模块12还用于:通过下述的不等式与预设的物理主机内存利用率阈值a的关系判断如果依照所述内存调度策略对虚拟机进行内存调度,所述物理主机内存使用情况是否正常:

本发明实施例包括:对物理主机和每台虚拟机的内存使用情况进行监测并周期性采集内存使用信息;根据所述内存使用信息以及预设的内存调度参考条件判断多台虚拟机的内存使用是否合理;根据判断结果确定虚拟机的内存调度策略。通过本发明实施例方案,使虚拟机内存利用率保持均衡,提高了物理机资源利用效率。

虽然本发明实施例所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明实施例。任何本发明实施例所属领域内的技术人员,在不脱离本发明实施例所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明实施例的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

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