CN105808319B - 一种控制内存气球的方法、装置和系统 - Google Patents
一种控制内存气球的方法、装置和系统 Download PDFInfo
- Publication number
- CN105808319B CN105808319B CN201610128691.2A CN201610128691A CN105808319B CN 105808319 B CN105808319 B CN 105808319B CN 201610128691 A CN201610128691 A CN 201610128691A CN 105808319 B CN105808319 B CN 105808319B
- Authority
- CN
- China
- Prior art keywords
- memory
- balloon
- virtual machine
- value
- memory value
- 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.)
- Active
Links
Images
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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种控制内存气球的方法、装置和系统,以解决由于无法控制客户虚拟机内存气球的操作结束时间,造成客户虚拟机内存处理耗时过长的问题。该方法为,物理主机服务器生成客户虚拟机的定时设置策略,所述定时设置策略为预设时长内的内存气球压缩信息,安装在客户虚拟机上的气球驱动接收到物理主机服务器发送的定时设置策略时,开启计时;基于所述内存气球压缩信息,进行相应的内存气球操作,直到第一预设条件和第二预设条件中任一条件满足时为止,这样客户虚拟机根据物理主机服务器发送的定时设置策略来进行相应的内存气球操作,能够解决内存气球操作过程中,由于业务压力造成的客户虚拟机上内存气球操作耗时过长的问题。
Description
技术领域
本发明涉及计算机领域,尤其涉及一种控制内存气球的方法、装置和系统。
背景技术
内存气球技术是虚拟化场景中的一种常用的内存复用技术。内存气球技术指的是物理主机(host)服务器主动回收客户虚拟机(guest)暂时不用的物理内存,分配给需要复用内存的客户虚拟机。内存的回收和分配均为物理主机服务器动态执行,客户虚拟机上的应用无感知。所有客户虚拟机使用的内存总量不能超过该服务器的物理内存总量。
现有技术中,在使用内存气球时,物理主机服务器通过监控客户虚拟机的内存使用情况,向客户虚拟机中的气球(balloon)驱动发送消息,所述消息中携带指定客户虚拟机可占用的目标内存容量值。当物理主机的内存使用紧张,空余内存不足时,可以请求客户虚拟机回收利用已分配给客户虚拟机的部分内存,客户虚拟机就会释放其空闲的内存,客户虚拟机的balloon驱动执行内存气球增加操作,增加的气球内存即为被释放出来的内存,从而让物理主机服务器回收内存气球中的内存可用于其他进程或其他客户虚拟机;当客户虚拟机中的空余内存不足时,客户虚拟机的balloon驱动执行内存气球压缩操作,释放出内存气球中的部分内存,让客户虚拟机使用更多的内存,从而控制了客户虚拟机实际使用的内存量。
由此可知,现有的使用内存气球技术来控制客户虚拟机的内存容量时,需要通过外部监控来设置客户虚拟机可占用的目标内存容量值,无法控制客户虚拟机内存气球的操作结束时间,使客户虚拟机内部在所运行的业务压力较大的场景下,会存在气球驱动占用或释放内存很慢的情况,造成客户虚拟机内存处理耗时过长的问题。
发明内容
本发明实施例提供一种控制内存气球的方法、装置和系统,以解决由于无法控制客户虚拟机内存气球的操作结束时间,造成客户虚拟机内存处理耗时过长的问题。
本发明实施例提供的具体技术方案如下:
第一方面,提供一种控制内存气球的方法,包括:
安装在客户虚拟机上的气球驱动接收到物理主机服务器发送的定时设置策略时,开启计时,所述定时设置策略为预设时长内的内存气球压缩信息,所述内存气球压缩信息用于确定客户虚拟机能够使用的目标内存值;
所述气球驱动基于所述内存气球压缩信息,确定所述客户虚拟机的目标内存值;
所述气球驱动获取所述客户虚拟机当前允许使用的可用内存值,在所述可用内存值大于所述目标内存值时,进行内存气球增加操作,直到第一预设条件和第二预设条件中任一条件满足时为止;在所述可用内存值小于所述目标内存值时,进行内存气球收缩操作,直到第一预设条件和第二预设条件中任一条件满足时为止;
其中,所述第一预设条件为所述客户虚拟机允许使用的可用内存值等于所述客户虚拟机的目标内存值,所述第二预设条件为计时达到预设时长。
在第一方面的基础上,可选的,所述气球驱动基于所述内存气球压缩信息,确定所述客户虚拟机的目标内存值,包括:
在所述内存气球压缩信息为内存气球压缩量时,确定所述客户虚拟机的目标内存值等于所述内存气球压缩信息,其中,所述内存气球压缩量为所述客户虚拟机能够使用的目标内存值;
在所述内存气球压缩信息为内存气球压缩比时,确定所述客户虚拟机的目标内存值等于所述内存气球压缩信息与所述客户虚拟机的初始内存值的乘积,其中,所述内存气球压缩比为内存气球压缩量与所述客户虚拟机的初始内存值的比值,所述客户虚拟机的初始内存值为所述客户虚拟机初始化过程中所述物理主机服务器分配的内存值。
在第一方面的基础上,可选的,所述方法还包括:
所述气球驱动在所述内存气球增加操作停止后,确定停止内存气球增加操作时刻的计时是否满足第二预设条件,若是,则向所述物理主机服务器反馈内存气球增加操作的执行结果为失败;否则,向所述物理主机服务器反馈内存气球增加操作的执行结果为成功;
所述气球驱动在所述内存气球收缩操作停止后,确定停止内存气球收缩操作时刻的计时是否满足第二预设条件,若是,则向所述物理主机服务器反馈内内存气球收缩操作的执行结果为失败;否则,向所述物理主机服务器反馈内存气球收缩操作的执行结果为成功。
第二方面,提供一种控制内存气球的方法,包括:
物理主机服务器生成客户虚拟机的定时设置策略,所述定时设置策略为预设时长内的内存气球压缩信息,所述内存气球压缩信息用于确定客户虚拟机能够使用的目标内存值;
所述物理主机服务器将所述定时设置策略发送给安装在物理主机上的客户虚拟机的气球驱动。
在第二方面的基础上,可选的,在所述内存气球压缩信息为内存气球压缩量或存气球压缩比,其中,所述内存气球压缩量为所述客户虚拟机能够使用的目标内存值,所述内存气球压缩比为内存气球压缩量与所述客户虚拟机的初始内存值的比值。
在第二方面的基础上,可选的,物理主机服务器生成内存气球的定时设置策略,包括:
所述物理主机服务器检测所述客户虚拟机的实际使用内存值,基于所述客户虚拟机的实际使用内存值、初始内存值和允许使用的可用内存值,生成内存气球的定时设置策略。
第三方面,提供一种应用在客户虚拟机上的控制内存气球的装置,包括:
接收单元,用于接收到物理主机服务器发送的定时设置策略,开启计时,所述定时设置策略为预设时长内的内存气球压缩信息,所述内存气球压缩信息用于确定客户虚拟机能够使用的目标内存值;
确定单元,用于基于所述内存气球压缩信息,确定所述客户虚拟机的目标内存值;
处理单元,用于获取所述客户虚拟机当前允许使用的可用内存值,在所述可用内存值大于所述目标内存值时,进行内存气球增加操作,直到第一预设条件和第二预设条件中任一条件满足时为止;在所述可用内存值小于所述目标内存值时,进行内存气球收缩操作,直到第一预设条件和第二预设条件中任一条件满足时为止;
其中,所述第一预设条件为所述客户虚拟机允许使用的可用内存值等于所述客户虚拟机的目标内存值,所述第二预设条件为计时达到预设时长。
在第三方面的基础上,可选的,所述确定单元基于所述内存气球压缩信息,确定所述客户虚拟机的目标内存值时,具体用于:
在所述内存气球压缩信息为内存气球压缩量时,确定所述客户虚拟机的目标内存值等于所述内存气球压缩信息,其中,所述内存气球压缩量为所述客户虚拟机能够使用的目标内存值;
在所述内存气球压缩信息为内存气球压缩比时,确定所述客户虚拟机的目标内存值等于所述内存气球压缩信息与所述客户虚拟机的初始内存值的乘积,其中,所述内存气球压缩比为内存气球压缩量与所述客户虚拟机的初始内存值的比值,所述客户虚拟机的初始内存值为所述客户虚拟机初始化过程中所述物理主机服务器分配的内存值。
在第三方面的基础上,可选的,所述处理单元还用于:
在所述内存气球增加操作停止后,确定停止内存气球增加操作时刻的计时是否满足第二预设条件,若是,则向所述物理主机服务器反馈内存气球增加操作的执行结果为失败;否则,向所述物理主机服务器反馈内存气球增加操作的执行结果为成功;
在所述内存气球收缩操作停止后,确定停止内存气球收缩操作时刻的计时是否满足第二预设条件,若是,则向所述物理主机服务器反馈内内存气球收缩操作的执行结果为失败;否则,向所述物理主机服务器反馈内存气球收缩操作的执行结果为成功。
第四方面,提供一种控制内存气球的装置,包括:
生成单元,用于生成客户虚拟机的定时设置策略,所述定时设置策略为预设时长内的内存气球压缩信息,所述内存气球压缩信息用于确定客户虚拟机能够使用的目标内存值;
发送单元,用于将所述定时设置策略发送给安装在物理主机上的客户虚拟机的气球驱动。
在第四方面的基础上,可选的,在所述内存气球压缩信息为内存气球压缩量或存气球压缩比,其中,所述内存气球压缩量为所述客户虚拟机能够使用的目标内存值,所述内存气球压缩比为内存气球压缩量与所述客户虚拟机的初始内存值的比值。
在第四方面的基础上,可选的,所述生成单元在生成内存气球的定时设置策略时,具体用于:
检测所述客户虚拟机的实际使用内存值和允许使用的可用内存值,基于所述客户虚拟机的实际使用内存值、初始内存值和允许使用的可用内存值,生成内存气球的定时设置策略。
第五方面,提供一种控制内存气球的系统,包括:如第三方面所述的装置和如第四方面所述的装置。
本发明实施例提供的控制内存气球的方案,能够使部署在物理主机上的客户虚拟机根据物理主机服务器发送的定时设置策略来进行相应的内存气球操作,能够解决内存气球操作过程中,由于业务压力造成的客户虚拟机上内存气球操作耗时过长的问题,能够控制客户虚拟机上内存气球操作的处理时间。
附图说明
图1为本发明实施例中的balloon驱动运行场景示意图;
图2为本发明实施例中控制内存气球的方法流程图;
图3为Linux系统中Balloon驱动获取客户虚拟机允许使用的可用内存值示意图;
图4为本发明实施中应用在客户虚拟机上的控制内存气球的装置结构示意图;
图5为本发明实施中一种控制内存气球的设备结构示意图;
图6为本发明实施中另一种控制内存气球的装置结构示意图;
图7为本发明实施中另一种控制内存气球的设备结构示意图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,并不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
首先,对本申请中的部分用语进行解释说明,以便于本领域技术人员理解。
1)、客户虚拟机(Virtual Machine,VM),通过软件模拟的具有完整硬件系统功能的,在物理服务器上划分出来的一台或者多台虚拟化的计算机系统。
2)、虚拟机管理器(hypervisor),一种运行在基础物理服务器和操作系统之间的中间软件层,可允许多个操作系统和应用共享硬件,也可叫做VMM(virtual machinemonitor),即虚拟机监视器。hypervisor是一种在虚拟环境中的“元”操作系统。可以访问服务器上包括磁盘和内存在内的所有物理设备。Hypervisors不但协调着这些硬件资源的访问,也同时在各个客户虚拟机之间施加防护。当服务器启动并执行Hypervisor时,它会加载所有客户虚拟机客户端的操作系统同时会分配给每一台客户虚拟机适量的内存,CPU,网络和磁盘,并加载所有虚拟机的客户操作系统。
3)、Balloon驱动,为了实现balloon技术,安装在操作系统((Operating System,OS)中的一种驱动。利用预装在客户虚拟机中的前端驱动程序,偷取guest OS的内存贡献给VMM以供其他虚拟机使用.反向易然。
4)、Balloon操作,根据当前客户虚拟的使用内存和初始内存,进行内存收缩或者内存扩张的操作。
参阅图1所示,图1为本发明实施例中的balloon驱动运行场景示意图。其中,balloon驱动安装在guest上,通过消息总线与物理主机的控制程序进行通信,物理主机服务器启动并执行Hypervisor时,加载客户虚拟机客户端的操作系统,所述balloon驱动和Hypervisor均部署在物理主机上。
本发明实施例提供一种控制内存气球的方法和装置,以解决现有技术中由于无法控制客户虚拟机内存气球的操作结束时间,造成客户虚拟机内存处理耗时过长的问题。其中,方法和装置是基于同一发明构思的,由于方法及装置解决问题的原理相似,因此装置与方法的实施可以相互参见,重复之处不再赘述。
参阅图2所示,本发明实施例提供一种控制内存气球的方法流程图,该方法包括如下步骤:
步骤20:物理主机服务器生成客户虚拟机的定时设置策略,所述定时设置策略为预设时长内的内存气球压缩信息,所述内存气球压缩信息用于确定客户虚拟机能够使用的目标内存值。
在本发明实施例中,客户虚拟机在初始化设置时,由物理主机服务器分配的内存值称为初始内存值,初始内存值用符号D表示,客户虚拟机中的应用程序等占用的内存值称为实际使用内存值,实际使用内存值用符号A表示,当前客户虚拟机允许使用的可用内存值用符号B表示,气球占用的内存值用C表示,且满足关系式D=B+C。客户虚拟机能够使用的目标内存值用X表示,X通过定时设置策略中的内存气球压缩信息来确定,在成功执行完毕气球操作后,客户虚拟机允许使用的可用内存值B=X,气球占用的内存值C=D-X。
其中,所述定时设置策略为预设时长内的内存气球压缩信息。所述内存气球压缩信息用于确定客户虚拟机能够使用的目标内存值。
可选的,所述内存气球压缩信息可以采用内存气球压缩量表征,也可以采用存气球压缩比来表征。其中,所述内存气球压缩量为所述客户虚拟机能够使用的目标内存值,所述内存气球压缩比为内存气球压缩量与所述客户虚拟机的初始内存值的比值。
例如,内存气球压缩信息采用内存气球压缩量,即guest允许使用的目标内存。对应消息结构为
Struct{
Int Max_memory=D;
String strategy=traget;
String Param=M;//M为任意设定值
Time Time=N;//N为任意设定值
}
例如,内存气球压缩信息采用内存气球压缩比,即guest允许使用的目标内存/初始内存。对应消息结构为
Struct{
Int Max_memory=D;
String strategy=percentage;
String Param=P;///P为任意大于0小于1的设定值
Time Time=Q;//Q为任意设定值
}
具体的,物理主机服务器生成客户虚拟机的定时设置策略,可以通过如下方式实现:
所述物理主机服务器检测所述客户虚拟机的实际使用内存值和允许使用的可用内存值,基于所述客户虚拟机的实际使用内存值、初始内存值和允许使用的可用内存值,生成内存气球的定时设置策略。
例如,物理主机服务器检测所述客户虚拟机的实际使用内存值A=800M,所述客户虚拟机的初始内存值为D=4G=4000M,所述客户虚拟机当前允许使用的可用内存值B=4G,气球驱动占用内存值C=0,此时所述客户虚拟机的内存空余较多,生成的定时设置策略为40S(秒)的内存气球压缩量为1800M,此时可以执行Balloon扩张操作,内存气球压缩量即客户虚拟机能够使用的目标内存值,就是客户虚拟机中应用程序除balloon驱动可以申请的最多内存,这里就是balloon驱动在执行气球动作结束后,客户虚拟机可以看到的内存,因此,内存气球增加的内存等于气球操作结束后气球占用的内存C,此时C=4G-1800M=2200M,内存气球增加的内存可以让物理主机服务器回收,可用于其他进程或其他客户虚拟机。
步骤21:所述物理主机服务器将所述定时设置策略发送给安装在物理主机上的客户虚拟机的气球驱动。
可选的,所述定时设置策略通过物理主机与客户虚拟机之间的消息总线来传递。
步骤22:安装在客户虚拟机上的气球驱动接收到物理主机服务器发送的定时设置策略时,开启计时。
步骤23:所述气球驱动基于所述定时设置策略,确定所述客户虚拟机的目标内存值。
具体的,所述气球驱动基于所述定时设置策略,确定所述客户虚拟机的目标内存值,包括以下两种实现方式:
第一种方式为:在所述内存气球压缩信息为内存气球压缩量时,确定所述客户虚拟机的目标内存值等于所述内存气球压缩信息。
第二种方式为:在所述内存气球压缩信息为内存气球压缩比时,确定所述客户虚拟机的目标内存值等于所述内存气球压缩信息与所述客户虚拟机的初始内存值的乘积,所述客户虚拟机的初始内存值为所述客户虚拟机初始化过程中所述物理主机服务器分配的内存值。
步骤24:所述气球驱动获取所述客户虚拟机当前允许使用的可用内存值,在所述可用内存值大于所述目标内存值时,进行内存气球增加操作,直到第一预设条件和第二预设条件中任一条件满足时为止;在所述可用内存值小于所述目标内存值时,进行内存气球收缩操作,直到第一预设条件和第二预设条件中任一条件满足时为止。
其中,所述第一预设条件为所述客户虚拟机允许使用的可用内存值等于所述客户虚拟机的目标内存值,所述第二预设条件为计时达到预设时长。
例如,对于Linux系统,Balloon驱动查看/proc/meminfo文件,参见图3,获得当前客户虚拟机允许使用的可用内存值B。
进一步的,执行完毕内存气球的Balloon操作后,气球驱动需要经此次Balloon操作执行结果通过消息总线反馈至物理主机服务器。
具体的,所述气球驱动在所述内存气球增加操作停止后,确定停止内存气球增加操作时刻的计时是否满足第二预设条件,若是,则向所述物理主机服务器反馈内存气球增加操作的执行结果为失败;否则,向所述物理主机服务器反馈内存气球增加操作的执行结果为成功;
所述气球驱动在所述内存气球收缩操作停止后,确定停止内存气球收缩操作时刻的计时是否满足第二预设条件,若是,则向所述物理主机服务器反馈内内存气球收缩操作的执行结果为失败;否则,向所述物理主机服务器反馈内存气球收缩操作的执行结果为成功。
可选的,Balloon操作执行结果还包括当前客户虚拟机可允许使用的可用内存值B,当前客户虚拟机已经使用的实际使用内存值A,本次balloon操作方式(收缩或者增加),本次balloon操作后,balloon的占用内存C,对应消息结构为
Struct{
Int total;//当前guest允许使用的可用内存值B
Int memory;//当前guest已经使用的实际使用内存值A
Int current;//本次balloon操作后的balloon的占用内存C
String option;//收缩或者增加
}
例如,针对上述例子,物理主机服务器检测所述客户虚拟机的实际使用内存值A=800M,所述客户虚拟机的初始内存值为D=4G=4000M,定时设置策略为40S(秒)的内存气球压缩量为1800M,成功执行完毕气球扩张操作后,客户虚拟机上报已使用内存还是原来的800M,允许使用的内存是1800M,本次操作位气球扩张,气球驱动占用的内存为2.2G。
基于上述实施例,参阅图4所示,本发明实施例提供一种应用在客户虚拟机上的控制内存气球的装置,包括:接收单元40、确定单元41和处理单元42,其中:
接收单元40,用于接收到物理主机服务器发送的定时设置策略,开启计时,所述定时设置策略为预设时长内的内存气球压缩信息,所述内存气球压缩信息用于确定客户虚拟机能够使用的目标内存值;
确定单元41,用于基于所述内存气球压缩信息,确定所述客户虚拟机的目标内存值;
处理单元42,用于获取所述客户虚拟机当前允许使用的可用内存值,在所述可用内存值大于所述目标内存值时,进行内存气球增加操作,直到第一预设条件和第二预设条件中任一条件满足时为止;在所述可用内存值小于所述目标内存值时,进行内存气球收缩操作,直到第一预设条件和第二预设条件中任一条件满足时为止;
其中,所述第一预设条件为所述客户虚拟机允许使用的可用内存值等于所述客户虚拟机的目标内存值,所述第二预设条件为计时达到预设时长。
可选的,所述确定单元41基于所述内存气球压缩信息,确定所述客户虚拟机的目标内存值时,具体用于:
在所述内存气球压缩信息为内存气球压缩量时,确定所述客户虚拟机的目标内存值等于所述内存气球压缩信息,其中,所述内存气球压缩量为所述客户虚拟机能够使用的目标内存值;
在所述内存气球压缩信息为内存气球压缩比时,确定所述客户虚拟机的目标内存值等于所述内存气球压缩信息与所述客户虚拟机的初始内存值的乘积,其中,所述内存气球压缩比为内存气球压缩量与所述客户虚拟机的初始内存值的比值,所述客户虚拟机的初始内存值为所述客户虚拟机初始化过程中所述物理主机服务器分配的内存值。
可选的,所述处理单元42还用于:
在所述内存气球增加操作停止后,确定停止内存气球增加操作时刻的计时是否满足第二预设条件,若是,则向所述物理主机服务器反馈内存气球增加操作的执行结果为失败;否则,向所述物理主机服务器反馈内存气球增加操作的执行结果为成功;
在所述内存气球收缩操作停止后,确定停止内存气球收缩操作时刻的计时是否满足第二预设条件,若是,则向所述物理主机服务器反馈内内存气球收缩操作的执行结果为失败;否则,向所述物理主机服务器反馈内存气球收缩操作的执行结果为成功。
本发明实施例还提供了一种控制内存气球的设备,如图5所示,图5为本发明实施例中设备的结构示意图,该设备包括处理器502、存储器501。处理器502以及存储器501相互连接。本发明实施例中不限定上述部件之间的具体连接介质。本发明实施例在图5中以存储器501、处理器502之间通过总线503连接,总线在图5中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本发明实施例中存储器501,用于存储处理器502执行的程序代码,可以是易失性存储器(英文:volatile memory),例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器501也可以是非易失性存储器(英文:non-volatile memory),例如只读存储器(英文:read-only memory,缩写:ROM),快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD)、或者存储器501是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器501可以是上述存储器的组合。
本发明实施例中处理器502,可以是一个中央处理单元(英文:centralprocessing unit,简称CPU)。
处理器502用于调动所述存储器501中存储的程序代码或指令,以执行:接收到物理主机服务器发送的定时设置策略,开启计时,所述定时设置策略为预设时长内的内存气球压缩信息,所述内存气球压缩信息用于确定客户虚拟机能够使用的目标内存值;基于所述内存气球压缩信息,确定所述客户虚拟机的目标内存值;获取所述客户虚拟机当前允许使用的可用内存值,在所述可用内存值大于所述目标内存值时,进行内存气球增加操作,直到第一预设条件和第二预设条件中任一条件满足时为止;在所述可用内存值小于所述目标内存值时,进行内存气球收缩操作,直到第一预设条件和第二预设条件中任一条件满足时为止;其中,所述第一预设条件为所述客户虚拟机允许使用的可用内存值等于所述客户虚拟机的目标内存值,所述第二预设条件为计时达到预设时长。
基于上述实施例,参阅图6所示,本发明实施例提供一种应用在物理主机服务器上的控制内存气球的装置,包括:生成单元60和发送单元61,其中:
生成单元60,用于生成客户虚拟机的定时设置策略,所述定时设置策略为预设时长内的内存气球压缩信息,所述内存气球压缩信息用于确定客户虚拟机能够使用的目标内存值;
发送单元61,用于将所述定时设置策略发送给安装在物理主机上的客户虚拟机的气球驱动。
可选的,在所述内存气球压缩信息为内存气球压缩量或存气球压缩比,其中,所述内存气球压缩量为所述客户虚拟机能够使用的目标内存值,所述内存气球压缩比为内存气球压缩量与所述客户虚拟机的初始内存值的比值。
可选的,所述生成单元60在生成内存气球的定时设置策略时,具体用于:
检测所述客户虚拟机的实际使用内存值和允许使用的可用内存值,基于所述客户虚拟机的实际使用内存值、初始内存值和允许使用的可用内存值,生成内存气球的定时设置策略。
本发明实施例还提供了一种控制内存气球的设备,如图7所示,图7为本发明实施例中设备的结构示意图,该设备包括处理器702、存储器701。处理器702以及存储器701相互连接。本发明实施例中不限定上述部件之间的具体连接介质。本发明实施例在图7中以存储器701、处理器702之间通过总线703连接,总线在图7中以粗线表示,其它部件之间的连接方式,仅是进行示意性说明,并不引以为限。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本发明实施例中存储器701,用于存储处理器702执行的程序代码,可以是易失性存储器,例如随机存取存储器(英文:random-access memory,缩写:RAM);存储器701也可以是非易失性存储器(英文:non-volatile memory),例如只读存储器(英文:read-onlymemory,缩写:ROM),快闪存储器(英文:flash memory),硬盘(英文:hard disk drive,缩写:HDD)或固态硬盘(英文:solid-state drive,缩写:SSD)、或者存储器701是能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器701可以是上述存储器的组合。
本发明实施例中处理器702,可以是一个中央处理单元(英文:centralprocessing unit,简称CPU)。
处理器702用于调动所述存储器701中存储的程序代码或指令,以执行:生成客户虚拟机的定时设置策略,所述定时设置策略为预设时长内的内存气球压缩信息,所述内存气球压缩信息用于确定客户虚拟机能够使用的目标内存值;将所述定时设置策略发送给安装在物理主机上的客户虚拟机的气球驱动,即发送至如图4所示的装置或如图5所示的设备。
基于上述实施例,本发明实施例中提供一种控制内存气球的系统,包括第一装置和第二装置,第一装置和第二装置之间通过消息总线通信,第一装置为如图4所示的装置或如图5所示的设备,第二装置为如图6所示的装置或如图7所示的设备。
综上所述,本发明实施例中,物理主机服务器生成客户虚拟机的定时设置策略,所述定时设置策略为预设时长内的内存气球压缩信息,所述内存气球压缩信息用于确定客户虚拟机能够使用的目标内存值;所述物理主机服务器将所述定时设置策略发送给安装在物理主机上的客户虚拟机的气球驱动,安装在客户虚拟机上的气球驱动接收到物理主机服务器发送的定时设置策略时,开启计时;基于所述内存气球压缩信息,确定所述客户虚拟机的目标内存值;获取所述客户虚拟机当前允许使用的可用内存值,在所述可用内存值大于所述目标内存值时,进行内存气球增加操作,直到第一预设条件和第二预设条件中任一条件满足时为止;在所述可用内存值小于所述目标内存值时,进行内存气球收缩操作,直到第一预设条件和第二预设条件中任一条件满足时为止;其中,所述第一预设条件为所述客户虚拟机允许使用的可用内存值等于所述客户虚拟机的目标内存值,所述第二预设条件为计时达到预设时长,这样客户虚拟机根据物理主机服务器发送的定时设置策略来进行相应的内存气球操作,能够解决内存气球操作过程中,由于业务压力造成的客户虚拟机上内存气球操作耗时过长的问题。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明实施例进行各种改动和变型而不脱离本发明实施例的精神和范围。这样,倘若本发明实施例的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (9)
1.一种控制内存气球的方法,其特征在于,包括:
安装在客户虚拟机上的气球驱动接收到物理主机服务器发送的定时设置策略时,开启计时,所述定时设置策略为预设时长内的内存气球压缩信息,所述内存气球压缩信息用于确定客户虚拟机能够使用的目标内存值;所述内存气球压缩信息为内存气球压缩量或内存气球压缩比,其中,所述内存气球压缩量为所述客户虚拟机能够使用的目标内存值,或者,所述内存气球压缩比与所述客户虚拟机的初始内存值的乘积为所述客户虚拟机能够使用的所述目标内存值,所述内存气球压缩比为内存气球压缩量与所述客户虚拟机的初始内存值的比值;
所述气球驱动基于所述定时设置策略,确定所述客户虚拟机的目标内存值;
所述气球驱动获取所述客户虚拟机当前允许使用的可用内存值,在所述可用内存值大于所述目标内存值时,进行内存气球增加操作,直到第一预设条件和第二预设条件中任一条件满足时为止;在所述可用内存值小于所述目标内存值时,进行内存气球收缩操作,直到第一预设条件和第二预设条件中任一条件满足时为止;
其中,所述第一预设条件为所述客户虚拟机允许使用的可用内存值等于所述客户虚拟机的目标内存值,所述第二预设条件为计时达到预设时长。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
所述气球驱动在所述内存气球增加操作停止后,确定停止内存气球增加操作时刻的计时是否满足第二预设条件,若是,则向所述物理主机服务器反馈内存气球增加操作的执行结果为失败;否则,向所述物理主机服务器反馈内存气球增加操作的执行结果为成功;
所述气球驱动在所述内存气球收缩操作停止后,确定停止内存气球收缩操作时刻的计时是否满足第二预设条件,若是,则向所述物理主机服务器反馈内内存气球收缩操作的执行结果为失败;否则,向所述物理主机服务器反馈内存气球收缩操作的执行结果为成功。
3.一种控制内存气球的方法,其特征在于,包括:
物理主机服务器生成客户虚拟机的定时设置策略,所述定时设置策略为预设时长内的内存气球压缩信息,所述内存气球压缩信息用于确定客户虚拟机能够使用的目标内存值;所述内存气球压缩信息为内存气球压缩量或内存气球压缩比,其中,所述内存气球压缩量为所述客户虚拟机能够使用的目标内存值,或者,所述内存气球压缩比与所述客户虚拟机的初始内存值的乘积为所述客户虚拟机能够使用的所述目标内存值,所述内存气球压缩比为内存气球压缩量与所述客户虚拟机的初始内存值的比值;
所述物理主机服务器将所述定时设置策略发送给安装在物理主机上的客户虚拟机的气球驱动。
4.如权利要求3所述的方法,其特征在于,物理主机服务器生成内存气球的定时设置策略,包括:
所述物理主机服务器检测所述客户虚拟机的实际使用内存值,基于所述客户虚拟机的实际使用内存值、初始内存值和允许使用的可用内存值,生成内存气球的定时设置策略。
5.一种应用在客户虚拟机上的控制内存气球的装置,其特征在于,包括:
接收单元,用于接收到物理主机服务器发送的定时设置策略,开启计时,所述定时设置策略为预设时长内的内存气球压缩信息,所述内存气球压缩信息用于确定客户虚拟机能够使用的目标内存值;所述内存气球压缩信息为内存气球压缩量或内存气球压缩比,其中,所述内存气球压缩量为所述客户虚拟机能够使用的目标内存值,或者,所述内存气球压缩比与所述客户虚拟机的初始内存值的乘积为所述客户虚拟机能够使用的所述目标内存值,所述内存气球压缩比为内存气球压缩量与所述客户虚拟机的初始内存值的比值;
确定单元,用于基于所述内存气球压缩信息,确定所述客户虚拟机的目标内存值;
处理单元,用于获取所述客户虚拟机当前允许使用的可用内存值,在所述可用内存值大于所述目标内存值时,进行内存气球增加操作,直到第一预设条件和第二预设条件中任一条件满足时为止;在所述可用内存值小于所述目标内存值时,进行内存气球收缩操作,直到第一预设条件和第二预设条件中任一条件满足时为止;
其中,所述第一预设条件为所述客户虚拟机允许使用的可用内存值等于所述客户虚拟机的目标内存值,所述第二预设条件为计时达到预设时长。
6.如权利要求5所述的装置,其特征在于,所述处理单元还用于:
在所述内存气球增加操作停止后,确定停止内存气球增加操作时刻的计时是否满足第二预设条件,若是,则向所述物理主机服务器反馈内存气球增加操作的执行结果为失败;否则,向所述物理主机服务器反馈内存气球增加操作的执行结果为成功;
在所述内存气球收缩操作停止后,确定停止内存气球收缩操作时刻的计时是否满足第二预设条件,若是,则向所述物理主机服务器反馈内内存气球收缩操作的执行结果为失败;否则,向所述物理主机服务器反馈内存气球收缩操作的执行结果为成功。
7.一种控制内存气球的装置,其特征在于,包括:
生成单元,用于生成客户虚拟机的定时设置策略,所述定时设置策略为预设时长内的内存气球压缩信息,所述内存气球压缩信息用于确定客户虚拟机能够使用的目标内存值;所述内存气球压缩信息为内存气球压缩量或内存气球压缩比,其中,所述内存气球压缩量为所述客户虚拟机能够使用的目标内存值,或者,所述内存气球压缩比与所述客户虚拟机的初始内存值的乘积为所述客户虚拟机能够使用的所述目标内存值,所述内存气球压缩比为内存气球压缩量与所述客户虚拟机的初始内存值的比值;
发送单元,用于将所述定时设置策略发送给安装在物理主机上的客户虚拟机的气球驱动。
8.如权利要求7所述的装置,其特征在于,所述生成单元在生成内存气球的定时设置策略时,具体用于:
检测所述客户虚拟机的实际使用内存值和允许使用的可用内存值,基于所述客户虚拟机的实际使用内存值、初始内存值和允许使用的可用内存值,生成内存气球的定时设置策略。
9.一种控制内存气球的系统,其特征在于,包括:如权利要求5-6所述的装置和如权利要求7-8所述的装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610128691.2A CN105808319B (zh) | 2016-03-07 | 2016-03-07 | 一种控制内存气球的方法、装置和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610128691.2A CN105808319B (zh) | 2016-03-07 | 2016-03-07 | 一种控制内存气球的方法、装置和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105808319A CN105808319A (zh) | 2016-07-27 |
CN105808319B true CN105808319B (zh) | 2020-01-10 |
Family
ID=56466831
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610128691.2A Active CN105808319B (zh) | 2016-03-07 | 2016-03-07 | 一种控制内存气球的方法、装置和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105808319B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598697A (zh) * | 2016-11-14 | 2017-04-26 | 中国石油化工股份有限公司 | 一种虚拟机的虚拟内存动态调配方法 |
CN106897110B (zh) * | 2017-02-23 | 2021-04-20 | 郑州云海信息技术有限公司 | 一种容器调度方法及管理节点调度器 |
CN109324893B (zh) * | 2018-08-07 | 2021-08-31 | 华为技术有限公司 | 分配内存的方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101971146A (zh) * | 2007-09-07 | 2011-02-09 | 甲骨文国际公司 | 改进作为管理程序来宾而运行的虚拟机中内存使用情况的系统和方法 |
CN103092678A (zh) * | 2013-01-22 | 2013-05-08 | 华中科技大学 | 一种多增量虚拟机内存管理系统和方法 |
CN103430159A (zh) * | 2011-03-13 | 2013-12-04 | 国际商业机器公司 | 虚拟化计算环境中的动态内存管理 |
WO2015132753A1 (en) * | 2014-03-07 | 2015-09-11 | Eco4Cloud S.R.L. | Method for memory management in virtual machines, and corresponding system and computer program product |
CN105183567A (zh) * | 2015-10-21 | 2015-12-23 | 南京大学 | 基于共享内存的云取证证据获取方法及系统 |
CN105204948A (zh) * | 2015-10-29 | 2015-12-30 | 广州云宏信息科技股份有限公司 | 虚拟机物理内存配置方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8850156B2 (en) * | 2010-11-03 | 2014-09-30 | Huawei Technologies Co., Ltd. | Method and system for managing virtual machine storage space and physical host |
-
2016
- 2016-03-07 CN CN201610128691.2A patent/CN105808319B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101971146A (zh) * | 2007-09-07 | 2011-02-09 | 甲骨文国际公司 | 改进作为管理程序来宾而运行的虚拟机中内存使用情况的系统和方法 |
CN103430159A (zh) * | 2011-03-13 | 2013-12-04 | 国际商业机器公司 | 虚拟化计算环境中的动态内存管理 |
CN103092678A (zh) * | 2013-01-22 | 2013-05-08 | 华中科技大学 | 一种多增量虚拟机内存管理系统和方法 |
WO2015132753A1 (en) * | 2014-03-07 | 2015-09-11 | Eco4Cloud S.R.L. | Method for memory management in virtual machines, and corresponding system and computer program product |
CN105183567A (zh) * | 2015-10-21 | 2015-12-23 | 南京大学 | 基于共享内存的云取证证据获取方法及系统 |
CN105204948A (zh) * | 2015-10-29 | 2015-12-30 | 广州云宏信息科技股份有限公司 | 虚拟机物理内存配置方法及装置 |
Non-Patent Citations (1)
Title |
---|
Memory resource management in VMware ESX server;Waldspurger C A;《ACM SIGOPS Operating Systems Review2002》;20021231;第181-194页 * |
Also Published As
Publication number | Publication date |
---|---|
CN105808319A (zh) | 2016-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10776215B2 (en) | Snapshot generating method, system, and apparatus | |
US9823877B2 (en) | Virtual machine backup from storage snapshot | |
US9672075B2 (en) | Method, apparatus, and system for implementing hot migration of virtual machine | |
US9811369B2 (en) | Method and system for physical computer system virtualization | |
US9268590B2 (en) | Provisioning a cluster of distributed computing platform based on placement strategy | |
US10459802B2 (en) | Backup image restore | |
JP6458146B2 (ja) | 計算機及びメモリ領域管理方法 | |
CN105808319B (zh) | 一种控制内存气球的方法、装置和系统 | |
WO2015132753A1 (en) | Method for memory management in virtual machines, and corresponding system and computer program product | |
KR101673299B1 (ko) | 운영 시스템 복구 방법 및 장치, 그리고 단말기기 | |
KR101585160B1 (ko) | 독립실행환경을 제공하는 분산 컴퓨팅 시스템 및 분산 컴퓨팅 시스템의 제어방법 | |
EP3992805A1 (en) | Live migration method for virtual machine and communication device | |
KR102168994B1 (ko) | 클라우드 컴퓨팅 환경에서 클라우드 호스트를 삭제하는 방법, 장치, 서버 및 저장 매체 | |
CN104239120A (zh) | 一种虚拟机的状态信息同步的方法、装置及系统 | |
CN106815067B (zh) | 带i/o虚拟化的虚拟机在线迁移方法、装置 | |
JP6449487B2 (ja) | ソフトウェアセキュリティ検証方法、デバイス、およびシステム | |
CN106844035B (zh) | 一种实现云服务器资源释放或恢复的方法及装置 | |
JP6859463B2 (ja) | 仮想マシンを起動させるための方法、装置、デバイス及び媒体 | |
CN104954452A (zh) | 一种虚拟化环境下密码卡资源动态控制方法 | |
CN107766122B (zh) | 一种宿主机的可用内存空间设置方法和装置 | |
CN105740041A (zh) | 一种虚拟机在线迁移方法和装置 | |
CN107066336B (zh) | 一种任务处理方法及电子设备、资源管理装置 | |
JP2023069058A (ja) | 情報処理装置、車両、情報処理方法、及び情報処理プログラム | |
CN106445658B (zh) | 用于在超级管理程序下运行变换的客户系统的方法和设备 | |
JP2023102188A (ja) | 情報処理装置、車両、情報処理方法、及び情報処理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220217 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technology Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |