CN117850985A - 一种虚拟机内存资源管理方法、装置、设备及介质 - Google Patents
一种虚拟机内存资源管理方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN117850985A CN117850985A CN202410257472.9A CN202410257472A CN117850985A CN 117850985 A CN117850985 A CN 117850985A CN 202410257472 A CN202410257472 A CN 202410257472A CN 117850985 A CN117850985 A CN 117850985A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- memory
- page table
- physical host
- extended page
- 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.)
- Pending
Links
- 230000015654 memory Effects 0.000 title claims abstract description 300
- 238000007726 management method Methods 0.000 title claims description 24
- 238000013507 mapping Methods 0.000 claims abstract description 105
- 230000000694 effects Effects 0.000 claims abstract description 39
- 238000000034 method Methods 0.000 claims abstract description 38
- 238000012544 monitoring process Methods 0.000 claims abstract description 17
- 230000004044 response Effects 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 11
- 238000012545 processing Methods 0.000 claims description 9
- 238000011084 recovery Methods 0.000 claims description 8
- 230000004048 modification Effects 0.000 claims description 3
- 238000012986 modification Methods 0.000 claims description 3
- 238000013519 translation Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- YQYRYHNCVCFNHU-UHFFFAOYSA-N 1-ethyl-4-phenyl-3,6-dihydro-2h-pyridine Chemical compound C1N(CC)CCC(C=2C=CC=CC=2)=C1 YQYRYHNCVCFNHU-UHFFFAOYSA-N 0.000 description 5
- 230000014509 gene expression Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及计算机技术领域,提出虚拟机内存资源管理方法、装置、设备及介质。其中,方法包括:为物理主机上运行的虚拟机创建扩展页表,基于虚拟机的内存需求在扩展页表中创建虚拟机的内存页面映射到物理主机的内存的初始映射关系;监控全部虚拟机的内存页面在预设时间内的访问情况,以计算虚拟机的内存页面在预设时间内的活跃度;若虚拟机的内存页面在预设时间内的活跃度满足预设条件,将扩展页表记录的初始映射关系修改为映射到磁盘文件;若对与磁盘文件建立映射关系的目标内存页面访问,从磁盘文件的对应位置读取目标内存页面的数据,在扩展页表中将目标内存页面恢复为映射到物理主机的对应内存。本方案提高了内存资源利用率和可扩展性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种虚拟机内存资源管理方法、装置、设备及介质。
背景技术
虚拟化技术将物理资源抽象为虚拟资源,一个物理主机上可以运行多个虚拟机,每个虚拟机有各自的操作系统和应用程序,若虚拟机的内存需求超过物理主机的内存容量,由于内存不足会导致性能下降。因此,为了提高内存资源的利用率,允许物理主机分配给虚拟机的内存总量超过物理主机的实际内存总量,将不常用或者不活跃的内存页面从物理主机回收或者交换到磁盘文件中,从而释放物理主机的内存空间。
现有技术中,通过透明页共享和内存膨胀技术可以有效地回收冗余或者多余的内存,但可能导致虚拟机之间的干扰和竞争,并且回收效果有限;内存压缩技术可以减少内存的开销,但会增加CPU(Central Processing Unit,中央处理器)的负载和延迟;管理程序内存交换技术会给虚拟机带来最大的性能损失和风险。因此,需要提供一种在保证虚拟机性能和稳定性的同时,提高内存资源利用率和可扩展性的内存资源管理方法。
发明内容
有鉴于此,有必要针对以上技术问题,提供一种虚拟机内存资源管理方法、装置、设备及介质。
根据本发明的第一方面,提供了一种虚拟机内存资源管理方法,所述虚拟机内存资源管理方法包括:
为物理主机上运行的虚拟机创建扩展页表,并基于所述虚拟机的内存需求在所述扩展页表中创建所述虚拟机的内存页面映射到所述物理主机的内存的初始映射关系;
监控全部所述虚拟机的内存页面在预设时间内的访问情况,基于所述访问情况计算所述虚拟机的内存页面在所述预设时间内的活跃度;
若所述虚拟机的内存页面在所述预设时间内的活跃度满足预设条件,将所述扩展页表记录的所述初始映射关系修改为映射到磁盘文件;
响应于对与所述磁盘文件建立映射关系的目标内存页面进行访问,从所述磁盘文件的对应位置读取所述目标内存页面的数据,并在所述扩展页表中将所述目标内存页面的映射关系恢复为映射到所述物理主机的对应内存。
在一些实施例中,所述为物理主机上运行的虚拟机创建扩展页表的步骤,包括:
为物理主机上运行的虚拟机创建扩展页表结构,在所述扩展页表结构中创建若干项,通过对所述若干项的不同赋值创建若干扩展页表;
为所述物理主机上运行的虚拟机创建用于指向所述若干扩展页表中对应扩展页表的第一指针,基于所述第一指针指向对应扩展页表。
在一些实施例中,所述若干项包括:
扩展页表当前是否有效、扩展页表当前是否可读写、当前映射关系类型以及映射的对应地址。
在一些实施例中,所述当前映射关系类型包括:
所述虚拟机的内存与所述物理主机的内存之间的映射以及所述虚拟机的内存与磁盘文件之间的映射。
在一些实施例中,所述方法还包括:
对所述虚拟机对应的VMCS结构的若干字段进行设置,以开启所述虚拟机的扩展页表模式。
在一些实施例中,所述虚拟机对应的VMCS结构的若干字段包括:
用于将所述VMCS结构指向所述物理主机的内存的对应地址的VMCS指针、虚拟机控制字段、虚拟机状态字段以及虚拟机退出信息字段。
在一些实施例中,所述虚拟机控制字段包括用于控制所述虚拟机运行和转换的参数。
在一些实施例中,所述虚拟机状态字段包括用于保存和恢复所述虚拟机状态的参数。
在一些实施例中,所述虚拟机退出信息字段包括用于记录和处理所述虚拟机退出原因和结果的参数。
在一些实施例中,所述为所述物理主机上运行的虚拟机创建用于指向所述若干扩展页表中对应扩展页表的第一指针,基于所述第一指针指向对应扩展页表的步骤,包括:
为所述物理主机上运行的虚拟机创建用于指向所述若干扩展页表中对应扩展页表的第一指针,将所述第一指针存储在所述VMCS结构中的虚拟机控制字段中,设置所述VMCS结构中的虚拟机控制字段,以将所述虚拟机指向对应扩展页表。
在一些实施例中,所述基于所述虚拟机的内存需求在所述扩展页表中创建所述虚拟机的内存页面映射到所述物理主机的内存的初始映射关系的步骤,包括:
基于所述虚拟机的内存需求设置所述扩展页表当前有效;
将所述扩展页表的当前映射关系类型设置为所述虚拟机的内存与所述物理主机的内存之间的映射,以创建初始映射关系。
在一些实施例中,所述监控全部所述虚拟机的内存页面在预设时间内的访问情况的步骤,包括:
统计所述虚拟机的内存页面在预设时间内的访问次数和访问时间。
在一些实施例中,所述基于所述访问情况计算所述虚拟机的内存页面在所述预设时间内的活跃度的步骤,包括:
基于所述虚拟机的内存页面在所述预设时间内的访问次数和访问时间计算所述虚拟机的内存页面在所述预设时间内的使用频率;
基于所述虚拟机的内存页面在所述预设时间内的使用频率计算所述对应的活跃度。
在一些实施例中,所述若所述虚拟机的内存页面在所述预设时间内的活跃度满足预设条件,将所述扩展页表记录的所述初始映射关系修改为映射到磁盘文件的步骤,包括:
将所述虚拟机的内存页面在所述预设时间内的活跃度与预设的活跃度阈值进行比较;
响应于所述虚拟机在所述预设时间内存在活跃度低于预设的活跃度阈值的内存页面,将活跃度低于所述活跃度阈值的内存页面在所述扩展页表中的映射关系由映射到所述物理主机的对应内存修改为映射到所述磁盘文件的对应位置。
在一些实施例中,所述响应于对与所述磁盘文件建立映射关系的目标内存页面进行访问,从所述磁盘文件的对应位置读取所述目标内存页面的数据的步骤,包括:
响应于对与所述磁盘文件建立映射关系的目标内存页面进行访问,触发所述物理主机的处理器产生扩展页面违规异常,并将所述扩展页面违规异常的信息存储在所述VMCS结构的虚拟机退出信息字段中;
虚拟机管理器基于所述VMCS结构的虚拟机退出信息字段中存储的所述扩展页面违规异常的信息从所述磁盘文件的对应位置读取所述目标内存页面的数据。
在一些实施例中,所述在所述扩展页表中将所述目标内存页面的映射关系恢复为映射到所述物理主机的对应内存的步骤,包括:
所述虚拟机管理器将从所述磁盘文件的对应位置读取的数据写入所述物理主机的对应内存中,并将所述扩展页表中目标内存页面的映射关系由映射到所述磁盘文件的对应位置恢复为映射到所述物理主机的对应内存。
在一些实施例中,所述虚拟机内存资源管理方法还包括:
响应于所述扩展页表中目标内存页面的映射关系恢复为映射到所述物理主机的对应内存,所述虚拟机管理器恢复所述虚拟机的运行,并返回到所述监控所述虚拟机的内存页面在预设时间内的访问情况的步骤。
根据本发明的第二方面,提供了一种虚拟机内存资源管理装置,所述装置包括:
扩展页表创建模块,用于为物理主机上运行的虚拟机创建扩展页表,并基于所述虚拟机的内存需求在所述扩展页表中创建所述虚拟机的内存页面映射到所述物理主机的内存的初始映射关系;
监测模块,用于监控全部所述虚拟机的内存页面在预设时间内的访问情况,基于所述访问情况计算所述虚拟机的内存页面在所述预设时间内的活跃度;
扩展页表修改模块,用于若所述虚拟机的内存页面在所述预设时间内的活跃度满足预设条件,将所述扩展页表记录的所述初始映射关系修改为映射到磁盘文件;
扩展页表恢复模块,用于响应于对与所述磁盘文件建立映射关系的目标内存页面进行访问,从所述磁盘文件的对应位置读取所述目标内存页面的数据,并在所述扩展页表中将所述目标内存页面的映射关系恢复为映射到所述物理主机的对应内存。
根据本发明的第三方面,还提供了一种电子设备,该电子设备包括:
至少一个处理器;以及
存储器,存储器存储有可在处理器上运行的计算机程序,处理器执行程序时执行前述的虚拟机内存资源管理方法。
根据本发明的第四方面,还提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机程序,计算机程序被处理器执行时执行前述的虚拟机内存资源管理方法。
上述一种虚拟机内存资源管理方法,在扩展页表中创建虚拟机的内存页面映射到物理主机的初始映射关系,根据全部虚拟机的内存页面在预设时间内的访问情况计算虚拟机在预设时间内的活跃度并将满足预设条件的扩展页表中记录的初始映射关系修改为映射到磁盘文件,当对与磁盘文件建立映射关系的目标内存页面访问,从磁盘文件中读取完数据之后,在扩展页表中将该目标内存页面的映射关系恢复为映射到物理主机。通过扩展页表方式实现了虚拟机的内存页面动态映射到磁盘文件或者物理主机的内存,无需借助其它内存回收或者交换技术,保证了虚拟机性能和稳定性,并且提高了内存资源利用率和可扩展性,有利于虚拟机的高效运行和快速响应,增加了虚拟机的内存页面交换的灵活性和安全性,根据不同的场景和需求,可以动态调整虚拟机的内存页面映射关系,避免不必要的开销和风险。
此外,本发明还提供了一种虚拟机内存资源管理装置、一种电子设备和一种计算机可读存储介质,同样能实现上述技术效果,这里不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1为本发明一个实施例提供的一种虚拟机内存资源管理方法的流程图;
图2为本发明的一个实施例提供的物理主机上运行的虚拟机分别与物理主机以及磁盘文件的映射关系示意图;
图3为本发明另一个实施例提供的一种虚拟机内存资源管理装置的结构示意图;
图4为本发明另一个实施例提供的一种虚拟机内存资源管理装置的系统架构图;
图5为本发明另一个实施例中电子设备的内部结构图;
图6为本发明另一个实施例中计算机可读存储介质结构图。
具体实施方式
为使本发明的目标、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
在一个实施例中,请参照图1所示,本发明提供了一种虚拟机内存资源管理方法100,具体来说,所述虚拟机内存资源管理方法包括以下步骤:
步骤101,为物理主机上运行的虚拟机创建扩展页表,并基于所述虚拟机的内存需求在所述扩展页表中创建所述虚拟机的内存页面映射到所述物理主机的内存的初始映射关系;
步骤102,监控全部所述虚拟机的内存页面在预设时间内的访问情况,基于所述访问情况计算所述虚拟机的内存页面在所述预设时间内的活跃度;
步骤103,若所述虚拟机的内存页面在所述预设时间内的活跃度满足预设条件,将所述扩展页表记录的所述初始映射关系修改为映射到磁盘文件;
步骤104,响应于对与所述磁盘文件建立映射关系的目标内存页面进行访问,从所述磁盘文件的对应位置读取所述目标内存页面的数据,并在所述扩展页表中将所述目标内存页面的映射关系恢复为映射到所述物理主机的对应内存。
上述一种虚拟机内存资源管理方法,通过扩展页表方式实现了虚拟机的内存页面动态映射到磁盘文件或者物理主机的内存,无需借助其它内存回收或者交换技术,保证了虚拟机性能和稳定性,并且提高了内存资源利用率和可扩展性,有利于虚拟机的高效运行和快速响应,增加了虚拟机的内存页面交换的灵活性和安全性,根据不同的场景和需求,可以动态调整虚拟机的内存页面映射关系,避免不必要的开销和风险。
为了进一步对本发明技术方案的理解,请参考图2,图2示出的为本发明另一个实施例提供的物理主机上运行的虚拟机分别与物理主机以及磁盘文件的映射关系示意图,如图2,在本实施例中,物理主机上运行了2个虚拟机,虚拟机1和虚拟机2,其中,每个虚拟机的虚拟机虚拟地址(Guest Vritual Address,GVA)映射到虚拟机物理地址(Guest PhysicalAddress,GPA),在虚拟机运行过程中,根据虚拟机内存页面的使用频率和活跃度,虚拟机物理地址动态映射到物理主机的物理地址(Hard Physical Address,HPA)或者磁盘文件地址(Disk File Address,DFA),并且设置相应的属性和权限。
根据本发明的若干实施例,请参照图2,所述为物理主机上运行的虚拟机创建扩展页表的步骤,包括:
为物理主机上运行的虚拟机创建扩展页表结构,在所述扩展页表结构中创建若干项,通过对所述若干项的不同赋值创建若干扩展页表;
为所述物理主机上运行的虚拟机创建用于指向所述若干扩展页表中对应扩展页表的第一指针,基于所述第一指针指向对应扩展页表。
通过对扩展页表结构中的若干项的不同赋值以及第一指针创建对应与每一个虚拟机的扩展页表,实现物理主机上运行的每一个虚拟机有一个与之对应的扩展页表,有利于对虚拟机内存页面交换粒度和频率的灵活控制。
根据本发明的若干实施例,所述若干项包括:
扩展页表当前是否有效、扩展页表当前是否可读写、当前映射关系类型以及映射的对应地址。
对于扩展页表结构中的若干项可以根据实际使用需求和使用场景进行灵活设置,避免不必要的开销和风险。
在一些实施例中,为物理主机上运行的若干虚拟机创建扩展页表结构,根据虚拟机的内存需求和内存分配情况,为GPA与HPA之间的映射关系创建扩展页表结构,并设置相应的属性和权限。其中,扩展页表结构包括若干项,具体地,包括:
有效位(Valid Bit),表示该扩展页表当前是否有效;
读权限位(Read Permission Bit),表示该扩展页表当前是否允许读操作;
写权限位(Write Permission Bit),表示该扩展页表当前是否允许写操作;
执行权限位(Execute Permission Bit),表示该扩展页表当前是否允许执行操作;
类型位(Type Bit),表示当前对应的映射关系是映射到HPA还是DFA;
地址字段(Address Field),表示当前对应的映射地址是HPA的对应地址还是DFA的具体地址。
根据本发明的若干实施例,所述当前映射关系类型包括:
所述虚拟机的内存与所述物理主机的内存之间的映射以及所述虚拟机的内存与磁盘文件之间的映射。
根据物理主机的内存容量和虚拟机的内存需求对虚拟机内存页面进行动态映射,提高了内存资源利用率和可扩展性,可以在物理主机内存不足的情况下,运行更多的虚拟机,提供更多的服务。
在一些实施例中,扩展页表中的类型位包括的映射关系类型包括映射到HPA或者映射到DFA。
根据本发明的若干实施例,所述方法还包括:
对所述虚拟机对应的VMCS结构的若干字段进行设置,以开启所述虚拟机的扩展页表模式。
其中,VMCS(Virtual Machine Control Structure,虚拟机控制结构)结构是一种用于存储虚拟机状态和控制信息的数据结构,由虚拟机管理器(Virtual MachineManager,VMM)进行管理和维护。通过将VMCS结构中的VMCS_PROC_BASED_CTLS2字段中的第1位设置为1,可以开启虚拟机的扩展页表功能。
当虚拟机运行时,CPU可以根据扩展页表结构进行地址转换和访问控制,根据虚拟机内存页面的使用频率和活跃度以及预设条件,对扩展页表中的映射关系进行动态修改,以将不常用的内存页面映射到磁盘文件并设置相应的属性和权限,可以根据不同的场景和需求,动态调整虚拟机的内存页面映射关系,避免不必要的开销和风险。
根据本发明的若干实施例,所述虚拟机对应的VMCS结构的若干字段包括:
用于将所述VMCS结构指向所述物理主机的内存的对应地址的VMCS指针、虚拟机控制字段、虚拟机状态字段以及虚拟机退出信息字段。
对于VMCS结构中的若干字段可以根据实际使用需求和使用场景进行灵活设置,避免不必要的开销和风险。
根据本发明的若干实施例,所述虚拟机控制字段包括用于控制所述虚拟机运行和转换的参数。
根据本发明的若干实施例,所述虚拟机状态字段包括用于保存和恢复所述虚拟机状态的参数。
根据本发明的若干实施例,所述虚拟机退出信息字段包括用于记录和处理所述虚拟机退出原因和结果的参数。
在一些实施例中,每一个虚拟机有对应的VMCS结构,具体包括:
VMCS指针(VMCS Pointer),表示该VMCS结构在物理主机内存中的对应地址;
虚拟机控制字段(VM Control Fields),包括用于控制虚拟机运行和转换的参数,比如启用扩展页表功能、设置EPTP指针等;
虚拟机状态字段(VM State Fields),包括用于保存和恢复虚拟机状态的参数,比如虚拟机寄存器、页表、中断等;
虚拟机退出信息字段(VM Exit Information Fields),包括用于记录和处理虚拟机退出原因和结果的参数,比如退出原因、退出码、退出数据等。
根据本发明的若干实施例,所述为所述物理主机上运行的虚拟机创建用于指向所述若干扩展页表中对应扩展页表的第一指针,基于所述第一指针指向对应扩展页表的步骤,包括:
为所述物理主机上运行的虚拟机创建用于指向所述若干扩展页表中对应扩展页表的第一指针,将所述第一指针存储在所述VMCS结构中的虚拟机控制字段中,设置所述VMCS结构中的虚拟机控制字段,以将所述虚拟机指向对应扩展页表。
在一些实施例中,为每一个虚拟机创建一个EPTP指针,用于指向对应的扩展页表,将该EPTP指针存储在VMCS结构中的VMCS_EPTP字段中。
根据本发明的若干实施例,所述基于所述虚拟机的内存需求在所述扩展页表中创建所述虚拟机的内存页面映射到所述物理主机的内存的初始映射关系的步骤,包括:
基于所述虚拟机的内存需求设置所述扩展页表当前有效;
将所述扩展页表的当前映射关系类型设置为所述虚拟机的内存与所述物理主机的内存之间的映射,以创建初始映射关系。
通过对扩展页表中的页表项的设置创建初始映射关系,有利于实现在物理主机内存充足的条件下,优选映射到物理主机的内存中,有利于提高内存资源的利用率以及提高映射效率。
根据本发明的若干实施例,所述监控全部所述虚拟机的内存页面在预设时间内的访问情况的步骤,包括:
统计所述虚拟机的内存页面在预设时间内的访问次数和访问时间。
根据本发明的若干实施例,所述基于所述访问情况计算所述虚拟机的内存页面在所述预设时间内的活跃度的步骤,包括:
基于所述虚拟机的内存页面在所述预设时间内的访问次数和访问时间计算所述虚拟机的内存页面在所述预设时间内的使用频率;
基于所述虚拟机的内存页面在所述预设时间内的使用频率计算所述对应的活跃度。
根据本发明的若干实施例,所述若所述虚拟机的内存页面在所述预设时间内的活跃度满足预设条件,将所述扩展页表记录的所述初始映射关系修改为映射到磁盘文件的步骤,包括:
将所述虚拟机的内存页面在所述预设时间内的活跃度与预设的活跃度阈值进行比较;
响应于所述虚拟机在所述预设时间内存在活跃度低于预设的活跃度阈值的内存页面,将活跃度低于所述活跃度阈值的内存页面在所述扩展页表中的映射关系由映射到所述物理主机的对应内存修改为映射到所述磁盘文件的对应位置。
根据虚拟机内存页面的使用频率和活跃度以及预设条件,对扩展页表中的映射关系进行动态修改,以将不常用的内存页面映射到磁盘文件并设置相应的属性和权限,可以根据不同的场景和需求,动态调整虚拟机的内存页面映射关系,避免不必要的开销和风险。
在一些实施例中,统计每一个虚拟机的内存页面在预设时间内的访问次数和最近访问时间,并基于二者计算每一个虚拟机的内存页面的使用频率和活跃度,根据预设的活跃度阈值判断每个虚拟机是否存在活跃度低于活跃度阈值的内存页面,若存在,则将活跃度低于活跃度阈值的内存页面的映射关系修改为映射到磁盘文件中,具体地,在扩展页表修改为指向磁盘文件中相应位置的地址,并设置相应的属性和权限。比如,若一个虚拟机的内存页面在预设时间内未被访问或者访问次数低于预设访问次数阈值,则可以将该内存页面的映射关系修改为映射到磁盘文件中,将扩展页表中的有效位设置为0(表示无效),或者将扩展页表中的类型位设置为1(表示当前映射关系为映射到DFA)。
根据本发明的若干实施例,所述响应于对与所述磁盘文件建立映射关系的目标内存页面进行访问,从所述磁盘文件的对应位置读取所述目标内存页面的数据的步骤,包括:
响应于对与所述磁盘文件建立映射关系的目标内存页面进行访问,触发所述物理主机的处理器产生扩展页面违规异常,并将所述扩展页面违规异常的信息存储在所述VMCS结构的虚拟机退出信息字段中;
虚拟机管理器基于所述VMCS结构的虚拟机退出信息字段中存储的所述扩展页面违规异常的信息从所述磁盘文件的对应位置读取所述目标内存页面的数据。
增加了对扩展页面异常违规的处理,有利于增强虚拟机运行的稳定性和安全性。
在一些实施例中,当虚拟机访问映射到磁盘文件的内存页面,CPU会产生扩展页表违规(EPT Violation)异常,并将相关信息存储在VMCS结构中。比如,当虚拟机访问一个内存页表,虚拟机对应的扩展页表的有效位为0(表示无效),则CPU会产生扩展页表违规异常,并将相关信息存储在VMCS结构中,可以将退出原因设置为扩展页表违规,将退出码设置为该扩展页表的页表项的地址;将退出数据设置为该扩展页表的页表项的内容。
根据本发明的若干实施例,所述在所述扩展页表中将所述目标内存页面的映射关系恢复为映射到所述物理主机的对应内存的步骤,包括:
所述虚拟机管理器将从所述磁盘文件的对应位置读取的数据写入所述物理主机的对应内存中,并将所述扩展页表中目标内存页面的映射关系由映射到所述磁盘文件的对应位置恢复为映射到所述物理主机的对应内存。
对于与磁盘文件产生映射的内存页面,若被虚拟机访问,则恢复其与物理主机对应内存的映射关系,可以保证虚拟机的高效运行和快速响应。
在一些实施例中,CPU产生扩展页表违规异常后会架构控制权交给VMM,VMM根据VMCS结构中存储的信息从磁盘文件中读取对应的内存页面的数据并将其写入物理主机的对应内存中,VMM将该内存页面在扩展页表中的映射关系恢复为指向物理主机内存中相应位置的地址,并设置相应的属性和权限。比如,可以将扩展页表的有效位设置为1(表示有效);将扩展页表的类型位设置为0(表示当前映射关系为映射到HPA);将地址字段设置为HPA的具体地址。
根据本发明的若干实施例,所述虚拟机内存资源管理方法还包括:
响应于所述扩展页表中目标内存页面的映射关系恢复为映射到所述物理主机的对应内存,所述虚拟机管理器恢复所述虚拟机的运行,并返回到所述监控所述虚拟机的内存页面在预设时间内的访问情况的步骤。
在一些实施例中,请参照图3所示,本发明还提供了一种虚拟机内存资源管理装置200,所述装置包括:扩展页表创建模块201,用于为物理主机上运行的虚拟机创建扩展页表,并基于所述虚拟机的内存需求在所述扩展页表中创建所述虚拟机的内存页面映射到所述物理主机的内存的初始映射关系;监测模块202,用于监控全部所述虚拟机的内存页面在预设时间内的访问情况,基于所述访问情况计算所述虚拟机的内存页面在所述预设时间内的活跃度;扩展页表修改模块203,用于若所述虚拟机的内存页面在所述预设时间内的活跃度满足预设条件,将所述扩展页表记录的所述初始映射关系修改为映射到磁盘文件;扩展页表恢复模块204,用于响应于对与所述磁盘文件建立映射关系的目标内存页面进行访问,从所述磁盘文件的对应位置读取所述目标内存页面的数据,并在所述扩展页表中将所述目标内存页面的映射关系恢复为映射到所述物理主机的对应内存。
为了对本发明提供的一种虚拟机内存资源管理装置的进一步理解,请参照图4,图4示出的为本发明另一个实施例提供的一种虚拟机内存资源管理装置的系统架构图,如图4所示,一种虚拟机内存资源管理装置包括:扩展页表创建模块,用于为每个虚拟机构建扩展页表结构,以及根据虚拟机的内存需求和分配情况,设置相应的权限和属性;扩展页表指针模块,用于为每个虚拟机创建一个EPTP指针,指向其对应的扩展页表,并将该EPTP指针存储在VMCS结构中的VMCS_EPTP字段中;扩展页表开启模块,用于开启虚拟机的扩展页表模式,通过将VMCS结构中的VMCS_PROC_BASED_CTLS2字段的第1位设置为1来启用EPT功能;扩展页表监控模块,用于在虚拟机运行过程中,监控和分析虚拟机内存页面的使用频率和活跃度,以动态地修改扩展页表的页表项中的内容,将不常用的内存页面映射到磁盘文件并设置相应的属性和权限,以实现虚拟机的内存页面的动态映射;扩展页表置换模块:用于当虚拟机访问映射到磁盘文件的内存页面时,根据扩展页表的页表项中的信息,从磁盘文件中读取对应数据并恢复原来映射关系,以实现虚拟机的内存页面的动态映射和恢复;扩展页表处理模块,用于当发生扩展页表缺页或者扩展页表违规时,处理扩展页表相关的错误和异常,根据VMCS结构中的相关信息进行相应的处理,如分配新的内存页面、修改扩展页表的页表项、恢复虚拟机运行等。
本发明提出的一种虚拟机内存资源管理装置,通过扩展页表方式实现了虚拟机的内存页面动态映射到磁盘文件或者物理主机的内存,无需借助其它内存回收或者交换技术,保证了虚拟机性能和稳定性,并且提高了内存资源利用率和可扩展性,有利于虚拟机的高效运行和快速响应,增加了虚拟机的内存页面交换的灵活性和安全性,根据不同的场景和需求,可以动态调整虚拟机的内存页面映射关系,避免不必要的开销和风险。
需要说明的是,关于一种虚拟机内存资源管理装置的具体限定可以参见上文中对一种虚拟机内存资源管理方法的限定,在此不再赘述。上述一种电池放电优化装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于电子设备中的处理器中,也可以以软件形式存储于电子设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
根据本发明的另一方面,提供了一种电子设备,该电子设备可以是服务器,其内部结构图请参照图5所示。该电子设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该电子设备的处理器用于提供计算和控制能力。该电子设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该电子设备的数据库用于存储数据。该电子设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时实现以上所述的虚拟机内存资源管理方法。
根据本发明的又一方面,提供了一种计算机可读存储介质,请参照图6所示,其上存储有计算机程序,计算机程序被处理器执行时实现以上所述的虚拟机内存资源管理方法。
应当理解,在相互不冲突的情况下,以上针对本发明的方法阐述的所有实施方式、特征和优势同样地适用于根据本发明的装置、设备和介质。为了本公开文件的简洁起见,在此不再重复阐述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink) DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (20)
1.一种虚拟机内存资源管理方法,其特征在于,所述虚拟机内存资源管理方法包括:
为物理主机上运行的虚拟机创建扩展页表,并基于所述虚拟机的内存需求在所述扩展页表中创建所述虚拟机的内存页面映射到所述物理主机的内存的初始映射关系;
监控全部所述虚拟机的内存页面在预设时间内的访问情况,基于所述访问情况计算所述虚拟机的内存页面在所述预设时间内的活跃度;
若所述虚拟机的内存页面在所述预设时间内的活跃度满足预设条件,将所述扩展页表记录的所述初始映射关系修改为映射到磁盘文件;
响应于对与所述磁盘文件建立映射关系的目标内存页面进行访问,从所述磁盘文件的对应位置读取所述目标内存页面的数据,并在所述扩展页表中将所述目标内存页面的映射关系恢复为映射到所述物理主机的对应内存。
2.根据权利要求1所述的虚拟机内存资源管理方法,其特征在于,所述为物理主机上运行的虚拟机创建扩展页表的步骤,包括:
为物理主机上运行的虚拟机创建扩展页表结构,在所述扩展页表结构中创建若干项,通过对所述若干项的不同赋值创建若干扩展页表;
为所述物理主机上运行的虚拟机创建用于指向所述若干扩展页表中对应扩展页表的第一指针,基于所述第一指针指向对应扩展页表。
3.根据权利要求2所述的虚拟机内存资源管理方法,其特征在于,所述若干项包括:
扩展页表当前是否有效、扩展页表当前是否可读写、当前映射关系类型以及映射的对应地址。
4.根据权利要求3所述的虚拟机内存资源管理方法,其特征在于,所述当前映射关系类型包括:
所述虚拟机的内存与所述物理主机的内存之间的映射以及所述虚拟机的内存与磁盘文件之间的映射。
5.根据权利要求2所述的虚拟机内存资源管理方法,其特征在于,所述方法还包括:
对所述虚拟机对应的VMCS结构的若干字段进行设置,以开启所述虚拟机的扩展页表模式。
6.根据权利要求5所述的虚拟机内存资源管理方法,其特征在于,所述虚拟机对应的VMCS结构的若干字段包括:
用于将所述VMCS结构指向所述物理主机的内存的对应地址的VMCS指针、虚拟机控制字段、虚拟机状态字段以及虚拟机退出信息字段。
7.根据权利要求6所述的虚拟机内存资源管理方法,其特征在于,所述虚拟机控制字段包括用于控制所述虚拟机运行和转换的参数。
8.根据权利要求7所述的虚拟机内存资源管理方法,其特征在于,所述虚拟机状态字段包括用于保存和恢复所述虚拟机状态的参数。
9.根据权利要求8所述的虚拟机内存资源管理方法,其特征在于,所述虚拟机退出信息字段包括用于记录和处理所述虚拟机退出原因和结果的参数。
10.根据权利要求9所述的虚拟机内存资源管理方法,其特征在于,所述为所述物理主机上运行的虚拟机创建用于指向所述若干扩展页表中对应扩展页表的第一指针,基于所述第一指针指向对应扩展页表的步骤,包括:
为所述物理主机上运行的虚拟机创建用于指向所述若干扩展页表中对应扩展页表的第一指针,将所述第一指针存储在所述VMCS结构中的虚拟机控制字段中,设置所述VMCS结构中的虚拟机控制字段,以将所述虚拟机指向对应扩展页表。
11.根据权利要求4所述的虚拟机内存资源管理方法,其特征在于,所述基于所述虚拟机的内存需求在所述扩展页表中创建所述虚拟机的内存页面映射到所述物理主机的内存的初始映射关系的步骤,包括:
基于所述虚拟机的内存需求设置所述扩展页表当前有效;
将所述扩展页表的当前映射关系类型设置为所述虚拟机的内存与所述物理主机的内存之间的映射,以创建初始映射关系。
12.根据权利要求1所述的虚拟机内存资源管理方法,其特征在于,所述监控全部所述虚拟机的内存页面在预设时间内的访问情况的步骤,包括:
统计所述虚拟机的内存页面在预设时间内的访问次数和访问时间。
13.根据权利要求12所述的虚拟机内存资源管理方法,其特征在于,所述基于所述访问情况计算所述虚拟机的内存页面在所述预设时间内的活跃度的步骤,包括:
基于所述虚拟机的内存页面在所述预设时间内的访问次数和访问时间计算所述虚拟机的内存页面在所述预设时间内的使用频率;
基于所述虚拟机的内存页面在所述预设时间内的使用频率计算所述对应的活跃度。
14.根据权利要求1所述的虚拟机内存资源管理方法,其特征在于,所述若所述虚拟机的内存页面在所述预设时间内的活跃度满足预设条件,将所述扩展页表记录的所述初始映射关系修改为映射到磁盘文件的步骤,包括:
将所述虚拟机的内存页面在所述预设时间内的活跃度与预设的活跃度阈值进行比较;
响应于所述虚拟机在所述预设时间内存在活跃度低于预设的活跃度阈值的内存页面,将活跃度低于所述活跃度阈值的内存页面在所述扩展页表中的映射关系由映射到所述物理主机的对应内存修改为映射到磁盘文件的对应位置。
15.根据权利要求9所述的虚拟机内存资源管理方法,其特征在于,所述响应于对与所述磁盘文件建立映射关系的目标内存页面进行访问,从所述磁盘文件的对应位置读取所述目标内存页面的数据的步骤,包括:
响应于对与所述磁盘文件建立映射关系的目标内存页面进行访问,触发所述物理主机的处理器产生扩展页面违规异常,并将所述扩展页面违规异常的信息存储在所述VMCS结构的虚拟机退出信息字段中;
虚拟机管理器基于所述VMCS结构的虚拟机退出信息字段中存储的所述扩展页面违规异常的信息从所述磁盘文件的对应位置读取所述目标内存页面的数据。
16.根据权利要求15所述的虚拟机内存资源管理方法,其特征在于,所述在所述扩展页表中将所述目标内存页面的映射关系恢复为映射到所述物理主机的对应内存的步骤,包括:
所述虚拟机管理器将从所述磁盘文件的对应位置读取的数据写入所述物理主机的对应内存中,并将所述扩展页表中目标内存页面的映射关系由映射到所述磁盘文件的对应位置恢复为映射到所述物理主机的对应内存。
17.根据权利要求16所述的虚拟机内存资源管理方法,其特征在于,所述虚拟机内存资源管理方法还包括:
响应于所述扩展页表中目标内存页面的映射关系恢复为映射到所述物理主机的对应内存,所述虚拟机管理器恢复所述虚拟机的运行,并返回到所述监控所述虚拟机的内存页面在预设时间内的访问情况的步骤。
18.一种虚拟机内存资源管理装置,其特征在于,包括:
扩展页表创建模块,用于为物理主机上运行的虚拟机创建扩展页表,并基于所述虚拟机的内存需求在所述扩展页表中创建所述虚拟机的内存页面映射到所述物理主机的内存的初始映射关系;
监测模块,用于监控全部所述虚拟机的内存页面在预设时间内的访问情况,基于所述访问情况计算所述虚拟机的内存页面在所述预设时间内的活跃度;
扩展页表修改模块,用于若所述虚拟机的内存页面在所述预设时间内的活跃度满足预设条件,将所述扩展页表记录的所述初始映射关系修改为映射到磁盘文件;
扩展页表恢复模块,用于响应于对与所述磁盘文件建立映射关系的目标内存页面进行访问,从所述磁盘文件的对应位置读取所述目标内存页面的数据,并在所述扩展页表中将所述目标内存页面的映射关系恢复为映射到所述物理主机的对应内存。
19. 一种电子设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器中运行的计算机程序,所述处理器执行所述程序时执行权利要求1-17任意一项所述的虚拟机内存资源管理方法。
20.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行权利要求1-17任意一项所述的虚拟机内存资源管理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410257472.9A CN117850985A (zh) | 2024-03-07 | 2024-03-07 | 一种虚拟机内存资源管理方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410257472.9A CN117850985A (zh) | 2024-03-07 | 2024-03-07 | 一种虚拟机内存资源管理方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117850985A true CN117850985A (zh) | 2024-04-09 |
Family
ID=90538672
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410257472.9A Pending CN117850985A (zh) | 2024-03-07 | 2024-03-07 | 一种虚拟机内存资源管理方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117850985A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101158924A (zh) * | 2007-11-27 | 2008-04-09 | 北京大学 | 一种虚拟机管理器的动态内存映射方法 |
US20130205106A1 (en) * | 2012-02-06 | 2013-08-08 | Vmware, Inc. | Mapping guest pages to disk blocks to improve virtual machine management processes |
US9063866B1 (en) * | 2010-07-12 | 2015-06-23 | Vmware, Inc. | Page table data structure for online classification of memory pages based on activity level |
CN107341115A (zh) * | 2017-06-30 | 2017-11-10 | 联想(北京)有限公司 | 虚拟机内存访问方法、系统和电子设备 |
CN107391225A (zh) * | 2017-07-13 | 2017-11-24 | 北京航空航天大学 | 一种基于多ept列表的监控方法和系统 |
US20180011797A1 (en) * | 2016-07-06 | 2018-01-11 | Massclouds Innovation Research Institute (Beijing) Of Information Technology | Memory sharing method of virtual machines based on combination of ksm and pass-through |
CN110597451A (zh) * | 2018-06-12 | 2019-12-20 | 华为技术有限公司 | 一种虚拟化缓存的实现方法及物理机 |
CN115061781A (zh) * | 2022-06-23 | 2022-09-16 | 阿里巴巴(中国)有限公司 | 页表处理方法和装置 |
CN116302491A (zh) * | 2023-01-17 | 2023-06-23 | 阿里云计算有限公司 | 内存管理方法、装置、计算机设备及存储介质 |
-
2024
- 2024-03-07 CN CN202410257472.9A patent/CN117850985A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101158924A (zh) * | 2007-11-27 | 2008-04-09 | 北京大学 | 一种虚拟机管理器的动态内存映射方法 |
US9063866B1 (en) * | 2010-07-12 | 2015-06-23 | Vmware, Inc. | Page table data structure for online classification of memory pages based on activity level |
US20130205106A1 (en) * | 2012-02-06 | 2013-08-08 | Vmware, Inc. | Mapping guest pages to disk blocks to improve virtual machine management processes |
US20180011797A1 (en) * | 2016-07-06 | 2018-01-11 | Massclouds Innovation Research Institute (Beijing) Of Information Technology | Memory sharing method of virtual machines based on combination of ksm and pass-through |
CN107341115A (zh) * | 2017-06-30 | 2017-11-10 | 联想(北京)有限公司 | 虚拟机内存访问方法、系统和电子设备 |
CN107391225A (zh) * | 2017-07-13 | 2017-11-24 | 北京航空航天大学 | 一种基于多ept列表的监控方法和系统 |
CN110597451A (zh) * | 2018-06-12 | 2019-12-20 | 华为技术有限公司 | 一种虚拟化缓存的实现方法及物理机 |
CN115061781A (zh) * | 2022-06-23 | 2022-09-16 | 阿里巴巴(中国)有限公司 | 页表处理方法和装置 |
CN116302491A (zh) * | 2023-01-17 | 2023-06-23 | 阿里云计算有限公司 | 内存管理方法、装置、计算机设备及存储介质 |
Non-Patent Citations (2)
Title |
---|
WANG, XIAOLIN ET AL.: "Selective Hardware/Software Memory Virtualization", ACM SIGPLAN NOTICES, 31 July 2011 (2011-07-31), pages 217 - 226 * |
陈昊罡;汪小林;王振林;张彬彬;罗英伟;李晓明;: "DMM:虚拟机的动态内存映射模型", 中国科学:信息科学, no. 12, 15 December 2010 (2010-12-15), pages 1543 - 1558 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6789156B1 (en) | Content-based, transparent sharing of memory units | |
US10552337B2 (en) | Memory management and device | |
US8453015B2 (en) | Memory allocation for crash dump | |
US11243706B2 (en) | Fragment management method and fragment management apparatus | |
US9223719B2 (en) | Integrating data from symmetric and asymmetric memory | |
US11593186B2 (en) | Multi-level caching to deploy local volatile memory, local persistent memory, and remote persistent memory | |
EP3276494B1 (en) | Memory space management | |
US20220214907A1 (en) | Virtual machine memory management method and device | |
US10261918B2 (en) | Process running method and apparatus | |
US20130151805A1 (en) | Reorganization of software images based on predicted use thereof | |
CN115904212A (zh) | 数据处理的方法、装置、处理器和混合内存系统 | |
US10891073B2 (en) | Storage apparatuses for virtualized system and methods for operating the same | |
WO2006130768A2 (en) | Transactional file system with client partitioning | |
US9317306B2 (en) | Computer device and memory management method thereof | |
US11403213B2 (en) | Reducing fragmentation of computer memory | |
CN112634975A (zh) | 一种数据存储纠错方法、装置及电子设备 | |
CN117850985A (zh) | 一种虚拟机内存资源管理方法、装置、设备及介质 | |
KR101701378B1 (ko) | 가상 머신과 파일을 공유하는 가상화 장치 및 그 방법 | |
CN114168225A (zh) | 固态硬盘映射表延迟更新方法、装置、计算机设备及存储介质 | |
CN113961302A (zh) | 资源分配方法、装置、电子设备及存储介质 | |
CN107273188B (zh) | 一种虚拟机中央处理单元cpu绑定方法及装置 | |
CN114860439A (zh) | 一种内存分配方法、宿主机、分布式系统及程序产品 | |
CN115061954B (zh) | 一种缺页中断处理方法、计算设备及存储介质 | |
US20230012693A1 (en) | Optimized hypervisor paging | |
CN117608493A (zh) | 虚拟机磁盘缓存的处理方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |