【技术实现步骤摘要】
虚拟机内存管理的方法及设备
本申请涉及虚拟机
,尤其涉及虚拟机内存管理的方法及设备。
技术介绍
虚拟化技术为云场景的核心技术,在部署有多个虚拟机(VirtualMachine,VM)的系统中,多个虚拟机共享同一个物理主机(PhysicalMachine,PM)的物理资源,如处理器、内存、磁盘和网络设备等。从而可实现以VM为粒度将一台物理主机的物理资源共享给多个用户使用,使多个用户能在安全隔离的前提下方便灵活地使用物理资源,极大提升物理资源的利用率。在虚拟化技术中,分配给每台虚拟机的内存都是固定的。在云计算平台中,不管是从虚拟机还是从物理主机的维度来看,内存使用使用率相对都比较低,例如单台物理主机的内存使用率平均只有40%。通过增加同一个物理主机的虚拟机数量,能有效提升单台物理主机上的虚拟机密度和物理内存地使用率。在虚拟机超量提交(oversummit)场景下,为了保证各个虚拟机的性能和服务质量,虚拟机监控器会根据虚拟机不断变化的外部负载为各个虚拟机动态地分配内存资源。由于不同虚拟机的负载高峰时间可能不同,在绝大多数时间内,物理内存都是充裕的。但是在某些情况下,也可能会发生实际的内存需求大于物理内存的场景。当物理内存不足时,可利用一部分硬盘存储空间作为内存来使用,操作系统在给虚拟机分配的全部内存中选择部分内容存放到磁盘上。由于磁盘的访问速度通常比内存的访问速度慢几个数量级,当需要使用这部分内容时,计算机的性能明显下降,极大影响用户的使用体验。
技术实现思路
本申请实施例提供了虚 ...
【技术保护点】
1.一种虚拟机内存管理的方法,其特征在于,所述方法包括:/n从分配给虚拟机的总内存中识别出所述虚拟机的非操作系统内存;所述总内存包括所述虚拟机的内存和虚拟机监控器的管理内存;所述虚拟机的内存用于存放所述虚拟机的代码和所述虚拟机运行过程中产生的数据,所述虚拟机监控器的管理内存用于存放所述虚拟机监控器管理所述虚拟机所需的数据;所述虚拟机的内存包括所述虚拟机的操作系统的内存和所述虚拟机的非操作系统的内存;所述虚拟机的操作系统的内存用于存放所述虚拟机的操作系统的代码和数据,所述虚拟机的非操作系统的内存表示所述虚拟机的内存中,除所述虚拟机的操作系统的内存之外剩余的内存;/n将所述虚拟机的非操作系统的内存作为可交换内存;所述可交换内存表示允许进行内存交换的内存;/n将所述可交换内存中的数据存放到非易失性存储器。/n
【技术特征摘要】
1.一种虚拟机内存管理的方法,其特征在于,所述方法包括:
从分配给虚拟机的总内存中识别出所述虚拟机的非操作系统内存;所述总内存包括所述虚拟机的内存和虚拟机监控器的管理内存;所述虚拟机的内存用于存放所述虚拟机的代码和所述虚拟机运行过程中产生的数据,所述虚拟机监控器的管理内存用于存放所述虚拟机监控器管理所述虚拟机所需的数据;所述虚拟机的内存包括所述虚拟机的操作系统的内存和所述虚拟机的非操作系统的内存;所述虚拟机的操作系统的内存用于存放所述虚拟机的操作系统的代码和数据,所述虚拟机的非操作系统的内存表示所述虚拟机的内存中,除所述虚拟机的操作系统的内存之外剩余的内存;
将所述虚拟机的非操作系统的内存作为可交换内存;所述可交换内存表示允许进行内存交换的内存;
将所述可交换内存中的数据存放到非易失性存储器。
2.根据权利要求1所述的方法,其特征在于,所述从分配给虚拟机的总内存中识别出所述虚拟机的非操作系统的内存,包括:
从所述分配给所述虚拟机的总内存中,识别出所述虚拟机的内存;
从所述虚拟机的内存中,识别出所述虚拟机的非操作系统的内存作为所述可交换内存。
3.根据权利要求2所述的方法,其特征在于,所述从所述分配给所述虚拟机的总内存中,识别出所述虚拟机的内存之后,还包括:
对所述虚拟机的操作系统的内存和所述虚拟机的非操作系统的内存均增加标记信息;所述标记信息表示允许被标记的内存中的数据进行所述内存交换;
相应的,所述从所述虚拟机的内存中,识别出所述虚拟机的非操作系统的内存作为所述可交换内存,包括:
从所述虚拟机的内存中,识别出所述虚拟机的非操作系统的内存;删除所述虚拟机的操作系统的内存的标记信息,同时保留所述虚拟机的非操作系统的内存的标记信息;
相应的,所述将所述可交换内存中的数据存放到非易失性存储器,包括:
将所述具有所述标记信息的内存中的数据存放到非易失性存储器。
4.根据权利要求2或3所述的方法,其特征在于,所述从所述分配给所述虚拟机的总内存中,识别出所述虚拟机的内存,包括:
确定所述分配给所述虚拟机的总内存中的不同内存段的内存用途;所述内存用途包括供所述虚拟机使用和供所述虚拟机监控器使用;
将供所述虚拟机使用的所有内存段作为所述虚拟机的内存。
5.根据权利要求2-4任一项所述的方法,其特征在于,所述从所述虚拟机的内存中,识别出所述虚拟机的非操作系统的内存作为所述可交换内存,包括:
申请所述虚拟机的内存中的空闲内存,获得所有空闲内存的内存地址;
将所述所有空闲内存的内存地址对应的内存作为所述虚拟机的非操作系统的内存,并用作所述可交换内存。
6.根据权利要求2-5任一项所述的方法,其特征在于,
所述从所述分配给所述虚拟机的总内存中,识别出所述虚拟机的内存,包括:
在所述虚拟机的启动阶段,从所述分配给所述虚拟机的总内存中,识别出所述虚拟机的内存;
所述从所述虚拟机的内存中,识别出所述虚拟机的非操作系统的内存作为所述可交换内存,包括:
在所述虚拟机启动后的运行阶段,从所述虚拟机的内存中,识别出所述虚拟机的非操作系统的内存作为所述可交换内存。
7.根据权利要求1-6任一项所述的方法,其特征在于,所述将所述可交换内存中的数据存放到非易失性存储器,包括:
当所述虚拟机所在物理主机的物理内存处于满负载状态时,将所述可交换内存中的数据存放到非易失性存储器;所述满负载状态表示所述物理内存无空闲空间存储新的内存页。
8.根据权利要求1-6任一项所述的方法,其特征在于,所述将所述可交换内存中的数据存放到非易失性存储器,包括:
当所述虚拟机所在物理主机的物理内存中剩余可用的内存页与所述物理内存总内存页之间的比率达到预设阈值时,将所述可交换内存中的数据存放到非易失性存储器。
9.根据权利要求1-8任一项所述的方法,其特征在于,所述方法还包括:
在所述虚拟机申请分配内存时,确定所述申请分配的内存的内存类型;
当内存类型属于所述虚拟机监控器的管理内存或所述虚拟机的操作系统的内存时,不触发内存回收;
当内存类型属于所述虚拟机的非操作系统的内存时,触发内存回收。
10.一种虚拟机内存管理的方法,其特征在于,所述方法包括:
从分配给虚拟机的总内存中识别出所述虚拟机的内存;所述总内存包括所述虚拟机的内存和虚拟机监控器的管理内存;所述虚拟机的内存用于存放所述虚拟机的代码和所述虚拟机运行过程中产生的数据,所述虚拟机监控器的管理内存用于存放所述虚拟机监控器管理所述虚拟机所需的数据;
将所述虚拟机的内存作为可交换内存;所述可交换内存表示允许进行内存交换的内存;
将所述可交换内存中的数据存放到非易失性存储器。
11.一种用于虚拟机内存管理的设备,其特征在于,所述设备包括:
可交换内存确定模块,用于从分配给虚拟机的总内存中识别出所述虚拟机...
【专利技术属性】
技术研发人员:王志钢,蒋毅飞,马剑,
申请(专利权)人:华为技术有限公司,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。