一种虚拟机内存回收方法及装置制造方法及图纸

技术编号:15690714 阅读:67 留言:0更新日期:2017-06-24 03:19
本申请实施例提供一种虚拟机内存回收方法及装置,所述方法包括:监控虚拟机内存使用状态,确定处于未使用状态的内存;回收所述处于未使用状态的内存,更新内存分配信息。本申请实施例可以有效回收虚拟机占用的内存资源,实现内存资源的高效时分复用,提高系统运行效率。

Virtual machine memory recovery method and device

The embodiment of the application provides memory recovery method and device of a virtual machine, the method includes monitoring virtual machine memory usage, determined in the unused state memory; the recovery is not in use of memory, memory allocation information update. The embodiment of the invention can effectively recover the memory resources occupied by the virtual machine, realize the efficient time division multiplexing of the memory resources, and improve the operation efficiency of the system.

【技术实现步骤摘要】
一种虚拟机内存回收方法及装置
本申请涉及计算机
,尤其涉及一种虚拟机内存回收方法及装置。
技术介绍
随着计算机技术和互联网的快速发展,操作系统虚拟化技术日益成熟,虚拟化系统允许多个操作系统并发运行在同一台物理主机(以下简称物理机)上,所述多个操作系统使用相同的硬件且彼此互不影响。然而,不同的计算机硬件资源在使用时有着不同的特点。对于中央处理器CPU和输入输出(I/O)等天然的时分复用型资源,在使用完毕后,这些资源由虚拟机监控器(英文简称为VMM,英文全称为VirtualMachineMonitor)收回,不会处于继续使用的状态。但对于内存等空间型资源来说,虚拟机第一次使用某个内存页时,会向VMM申请资源,但实际的内存使用情况VMM无法感知,也无法释放掉未使用的内存页,这会造成一些不必要的页面交换和页面合并的开销,影响虚拟机的性能。现有技术中,内核虚拟机(英文简称为KVM,英文全称为Kenel-basedVirtualMachine)为了简化虚拟机资源的管理,把虚拟机抽象成了系统中的一个进程,采用峰值分配的方法限定虚拟机内存分配的上限。这种分配方式会因为内存分配给虚拟机后,内存资源占而不用造成一些不必要的损耗,影响虚拟机的性能。
技术实现思路
本申请实施例提供了一种虚拟机内存回收方法及装置,可以有效回收虚拟机占用的内存资源,实现内存资源的高效时分复用,提高系统运行效率。为此,本申请实施例提供如下技术方案:第一方面,本申请实施例提供了一种虚拟机内存回收方法,包括:监控虚拟机内存使用状态,确定处于未使用状态的内存;回收所述处于未使用状态的内存,更新内存分配信息。在一些实施方式中,所述监控虚拟机内存使用状态,确定处于未使用状态的内存包括:利用虚拟机空闲内存链表记录内存使用状态,根据所述空闲内存链表记录确定处于未使用状态的内存。在一些实施方式中,所述处于未使用状态的内存为通过匿名映射方式分配给虚拟机的内存。在一些实施方式中,所述处于未使用状态的内存为分配时间大于第一设定阈值且使用频率低于第二设定阈值的内存。在一些实施方式中,所述方法还包括:为首次分配给虚拟机且处于未使用状态的内存设置第一标志位;所述根据所述空闲内存链表记录确定处于未使用状态的内存包括:将除设置第一标志位之外的未使用内存确定为处于未使用状态的内存。在一些实施方式中,所述回收所述处于未使用状态的内存,更新内存分配信息包括:锁定所述处于未使用状态的内存,将所述内存进行置零处理,释放所述内存;更新内存分配信息,解锁所述内存,以便于重新分配所述内存。第二方面,本申请实施例提供了一种虚拟机内存回收装置,包括:确定模块,用于监控虚拟机内存使用状态,确定处于未使用状态的内存;回收模块,用于回收所述处于未使用状态的内存,更新内存分配信息。在一些实施方式中,所述确定模块具体用于:利用虚拟机空闲内存链表记录内存使用状态,根据所述空闲内存链表记录确定处于未使用状态的内存。在一些实施方式中,所述回收模块具体用于:锁定所述处于未使用状态的内存,将所述内存进行置零处理,释放所述内存;更新内存分配信息,解锁所述内存,以便于重新分配所述内存。第三方面,本申请实施例提供了一种用于虚拟机内存回收的装置,包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行以下操作的指令:监控虚拟机内存使用状态,确定处于未使用状态的内存;回收所述处于未使用状态的内存,更新内存分配信息。本申请实施例提供的虚拟机内存回收方法及装置,可以监控虚拟机内存使用状态,确定处于未使用状态的内存,并回收所述处于未使用状态的内存,更新内存分配信息,以便重新分配回收的内存。由此,可以有效地对回收分配给虚拟机占而不用的内存,实现内存资源的高效时分复用,提高系统的运行效率。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。图1为本申请实施例提供的虚拟机内存回收方法示意图;图2为本申请实施例提供的虚拟机内存回收架构示意图;图3为本申请实施例提供的虚拟机内存回收装置示意图;图4为本申请实施例提供的用于虚拟机内存回收的装置的示意图。具体实施方式本申请实施例提供了一种虚拟机内存回收方法及装置,可以有效回收虚拟机占用的内存资源,实现内存资源的高效时分复用,提高系统运行效率。为了使本
的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。在本申请实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。其中,本申请实施例涉及的技术术语“物理机”一般用于表示物理实体计算机,为虚拟机提供硬件环境。其中,本申请实施例涉及的技术术语“虚拟机”(英文全称为VirtualMachine)一般指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。一般地,通过物理机和虚拟机的配合,一台计算机上可以安装上多个操作系统,并且多个操作系统间互不影响。下面将结合附图1至附图2对本申请示例性实施例示出的虚拟机内存回收方法进行介绍。参见图1,为本申请一实施例提供的虚拟机内存回收方法流程图。如图1所示,可以包括:S101,监控虚拟机内存使用状态,确定处于未使用状态的内存。在本申请具体实现时,可以监控虚拟机(也可以称之为客户机)内存使用状态,并可以回收虚拟机中处于未使用状态的内存。在一些实施方式中,所述处于未使用状态的内存为通过匿名映射方式分配给虚拟机且处于未使用状态的内存。以Linux操作系统为例进行说明。在Linnux系统中中,一般有两种内存申请方式,分别对应mmap(一般用于将一个文件或者对象映射到内存)和brk(一般用于调用动态内存)两个系统调用。其中,mmap用于将硬盘上的文件映像加载到内存,常用于加载程序和文件,是缓存机制的重要环节。Brk所申请的内存是匿名映射的内存,用于程序动态申请内存的分配,与缓存无关,此类内存大量存在于各种应用程序的内存映射中,可以被回收的也是这部分内存。虚拟机向物理机申请内存成功,若使用完毕所述内存,在虚拟机内部释放掉内存后,这部分内存就处于未使用状态。现有技术中,物理机并不能够感知虚拟机内部内存的使用状态。在本申请中,可以监控虚拟机的内存使用状态,并对处于未使用状态的内存进行分配。具体地,可以通过安装在虚拟机内部的驱动程序,收集整理处于未使用状态的内存,并可以通过一定的筛选机制,去除刚分配但未使用的内存部本文档来自技高网
...
一种虚拟机内存回收方法及装置

【技术保护点】
一种虚拟机内存回收方法,其特征在于,包括:监控虚拟机内存使用状态,确定处于未使用状态的内存;回收所述处于未使用状态的内存,更新内存分配信息。

【技术特征摘要】
1.一种虚拟机内存回收方法,其特征在于,包括:监控虚拟机内存使用状态,确定处于未使用状态的内存;回收所述处于未使用状态的内存,更新内存分配信息。2.根据权利要求1所述的方法,其特征在于,所述监控虚拟机内存使用状态,确定处于未使用状态的内存包括:利用虚拟机空闲内存链表记录内存使用状态,根据所述空闲内存链表记录确定处于未使用状态的内存。3.根据权利要求1或2所述的方法,其特征在于,所述处于未使用状态的内存为通过匿名映射方式分配给虚拟机的内存。4.根据权利要求1或2所述的方法,其特征在于,所述处于未使用状态的内存为分配时间大于第一设定阈值且使用频率低于第二设定阈值的内存。5.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:为首次分配给虚拟机且处于未使用状态的内存设置第一标志位;所述根据所述空闲内存链表记录确定处于未使用状态的内存包括:将除设置第一标志位之外的未使用内存确定为处于未使用状态的内存。6.根据权利要求1所述的方法,其特征在于,所述回收所述处于未使用状态的内存,更新内存分配信息包括:锁定所述处于未使用状态的内存...

【专利技术属性】
技术研发人员:高峰
申请(专利权)人:郑州云海信息技术有限公司
类型:发明
国别省市:河南,41

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1