内存扫描方法及装置制造方法及图纸

技术编号:33706710 阅读:12 留言:0更新日期:2022-06-06 08:30
本说明书实施例提供内存扫描方法及装置,其中,所述方法包括根据预设时间间隔确定预留内存扫描范围;扫描所述预留内存扫描范围内的待扫描预留内存,确定所述待扫描预留内存的当前冷热状态;根据所述待扫描预留内存的当前冷热状态,确定所述待扫描预留内存的当前冷热状态的目标记录表,并将所述待扫描预留内存的当前冷热状态记录至所述目标记录表。具体的,所述方法通过周期性的对宿主机内存中的预留内存进行冷热扫描,并将每次冷热扫描的预留内存的当前冷热状态记录至目标记录表中,使得后续可以根据该目标记录表对预留内存的冷热变化以及老化情况进行查询。以及老化情况进行查询。以及老化情况进行查询。

【技术实现步骤摘要】
内存扫描方法及装置


[0001]本说明书实施例涉及计算机
,特别涉及一种内存扫描方法。

技术介绍

[0002]在新的虚拟化场景下宿主机内存分配架构中,为了节省宿主机内存管理的元数据开销,可以将宿主机的大多数内存都预留出来,以便将来分给虚拟机使用。这部分预留出来的内存,对于宿主机内核不可用,内核原来的Lru等功能无法监测这部分预留出来的内存的冷热情况。由于这部分预留出来的内存往往是给虚拟机使用的,还具有一定的特殊性,为了获取这部分预留出来的内存的访问热度等情况,需要具备对这部分预留出来的内存的冷热程度扫描、信息收集等功能。
[0003]但是,获取到的这部分预留出来的内存的冷热情况,只是当前时刻的冷热情况,无法反映出这部分预留出来的内存冷热的变化情况,或者内存冷热的老化情况。

技术实现思路

[0004]有鉴于此,本说明书实施例提供了一种内存扫描方法。本说明书一个或者多个实施例同时涉及一种内存扫描装置,一种计算设备,一种计算机可读存储介质以及一种计算机程序,以解决现有技术中存在的技术缺陷。
[0005]根据本说明书实施例的第一方面,提供了一种内存扫描方法,应用于宿主机,包括:
[0006]根据预设时间间隔确定预留内存扫描范围,其中,所述预留内存为所述宿主机内存的一部分;
[0007]扫描所述预留内存扫描范围内的待扫描预留内存,确定所述待扫描预留内存的当前冷热状态;
[0008]根据所述待扫描预留内存的当前冷热状态,确定所述待扫描预留内存的当前冷热状态的目标记录表,并将所述待扫描预留内存的当前冷热状态记录至所述目标记录表。
[0009]根据本说明书实施例的第二方面,提供了一种内存扫描装置,应用于宿主机,包括:
[0010]扫描范围确定模块,被配置为根据预设时间间隔确定预留内存扫描范围,其中,所述预留内存为所述宿主机内存的一部分;
[0011]内存扫描模块,被配置为扫描所述预留内存扫描范围内的待扫描预留内存,确定所述待扫描预留内存的当前冷热状态;
[0012]内存状态记录模块,被配置为根据所述待扫描预留内存的当前冷热状态,确定所述待扫描预留内存的当前冷热状态的目标记录表,并将所述待扫描预留内存的当前冷热状态记录至所述目标记录表。
[0013]根据本说明书实施例的第三方面,提供了一种计算设备,包括:
[0014]存储器和处理器;
[0015]所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令,该计算机可执行指令被处理器执行时实现上述内存扫描方法的步骤。
[0016]根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现上述内存扫描方法的步骤。
[0017]根据本说明书实施例的第五方面,提供了一种计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行上述内存扫描方法的步骤。
[0018]本说明书一个实施例实现了一种内存扫描方法及装置,其中,所述方法包括根据预设时间间隔确定预留内存扫描范围,其中,所述预留内存为所述宿主机内存的一部分;扫描所述预留内存扫描范围内的待扫描预留内存,确定所述待扫描预留内存的当前冷热状态;根据所述待扫描预留内存的当前冷热状态,确定所述待扫描预留内存的当前冷热状态的目标记录表,并将所述待扫描预留内存的当前冷热状态记录至所述目标记录表。
[0019]具体的,所述内存扫描方法通过周期性(预设时间间隔)的对宿主机内存中的预留内存进行冷热扫描,并将每次冷热扫描的预留内存的当前冷热状态记录至目标记录表中,使得后续可以根据该目标记录表对预留内存的冷热变化情况进行查询,并且可以根据该目标记录表中预留内存的冷热变化情况确定该预留内存冷热的老化情况。
附图说明
[0020]图1是本说明书一个实施例提供的一种内存扫描方法中的mmap结构体的示意图;
[0021]图2是本说明书一个实施例提供的一种内存扫描方法的流程图;
[0022]图3是本说明书一个实施例提供的一种内存扫描装置的结构示意图;
[0023]图4是本说明书一个实施例提供的一种计算设备的结构框图。
具体实施方式
[0024]在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。
[0025]在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
[0026]应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
[0027]首先,对本说明书一个或多个实施例涉及的名词术语进行解释。
[0028]vmem:一种管理宿主机预留内存的内存管理模块。
[0029]mmap结构体:管理分配给VM(虚拟机)内存信息的一个专用结构体。
[0030]access:页表里面会有一个access位,记录这个页面是否被访问;若该access位被置位,则可以确定这个页面被访问,属于热页;若该access位没有被置位,则可以确定这个页面没有被访问,属于冷页。
[0031]pin操作:绑定内存操作。
[0032]inactive:冷页集合。
[0033]active:热页集合。
[0034]paused表:暂停扫描页的集合。
[0035]pinned表:不参与扫描页的集合。
[0036]paddr:物理地址。
[0037]vaddr:虚拟地址。
[0038]ept页表:kvm虚拟化架构下VM的页表。
[0039]bitmap:内存冷热情况的位图。
[0040]Reserved Memory:预留内存。
[0041]Kernel:内核。
[0042]KVM:一种虚拟化架构。
[0043]vstat:一种收集内存信息的计算机应用程序。
[0044]在本说明书中,提供了一种内存扫描方法,本说明书同时涉及一种内存扫描装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。
...

【技术保护点】

【技术特征摘要】
1.一种内存扫描方法,应用于宿主机,包括:根据预设时间间隔确定预留内存扫描范围,其中,所述预留内存为所述宿主机内存的一部分;扫描所述预留内存扫描范围内的待扫描预留内存,确定所述待扫描预留内存的当前冷热状态;根据所述待扫描预留内存的当前冷热状态,确定所述待扫描预留内存的当前冷热状态的目标记录表,并将所述待扫描预留内存的当前冷热状态记录至所述目标记录表。2.根据权利要求1所述的内存扫描方法,所述扫描所述预留内存扫描范围内的待扫描预留内存,确定所述待扫描预留内存的当前冷热状态,包括:确定所述预留内存扫描范围内的待扫描预留内存的物理内存地址;在确定存在虚拟页表的情况下,通过预设查询方式确定所述待扫描预留内存的物理内存地址对应的虚拟地址;通过所述虚拟地址遍历查询对应的虚拟页表的访问位,根据所述访问位的当前置位状态确定所述待扫描预留内存的当前冷热状态。3.根据权利要求2所述的内存扫描方法,所述确定所述待扫描预留内存的物理内存地址,包括:确定所述预留内存扫描范围对应的目标记录表,其中,所述目标记录表包括目标热页记录表和目标冷页记录表;确定所述目标热页记录表中所述待扫描预留内存的物理内存地址;以及在所述目标冷页记录表中所有的待扫描预留内存均扫描结束,且所述目标冷页记录表或者所述目标热页记录表满足预设扫描条件的情况下,确定所述目标热页记录表中所述待扫描预留内存的物理内存地址。4.根据权利要求2或3所述的内存扫描方法,所述通过预设查询方式确定所述待扫描预留内存的物理内存地址对应的虚拟地址,包括:在确定所述待扫描预留内存的物理内存地址存在对应的缓存内存映射结构的情况下,根据所述缓存内存映射结构确定所述待扫描预留内存的物理内存地址对应的虚拟地址;或者在确定所述待扫描预留内存的物理内存地址不存在对应的缓存内存映射结构的情况下,获取分配预留内存的内存映射结构链表,并为所述内存映射结构链表添加链表锁;遍历所述内存映射结构链表确定所述待扫描预留内存的物理内存地址对应的内存映射结构;根据所述内存映射结构确定所述待扫描预留内存的物理内存地址对应的虚拟地址,并将所述内存映射结构添加至所述缓存。5.根据权利要求3所述的内存扫描方法,所述通过所述虚拟地址遍历查询对应的虚拟页表的访问位,根据所述访问位的当前置位状态确定所述待扫描预留内存的当前冷热状态,包括:通过所述虚拟地址遍历查询对应的虚拟页表的访问位;在查询成功的情况下,确定所述访问位的当前置位状态;判断所述当前置位状态是否被置位,
若是,则清理所述访问位的当前置位状态,并确定所述待扫描预留内存的当前冷热状态为热状态;若否,根据所述虚拟地址遍历查询对应的内核页表的访问位,并根据所述内存页表的访问位的当前置位状态确定所述待扫描预留内存的当前冷热状态。6.根据权利要求5所述的内存扫描方法,所述根据所述虚拟地址遍历查询对应的内核页表的访问位,并根据所述内存页表的访问位的当前置位状态确定所述待扫描预留内存的当前冷热状态,包括:通过所述虚拟地址遍历查询对应的内核页表的访问位,确定所述内核页表的访问位的当前置位状态;判断所述当前置位状态是否被置位,若是,则清理所述访问位的当前置位状态,并确定所述待扫描预留内存的当前冷热状态为热状态;若否,则确定所述待扫描预留内存的当前冷热状态为冷状态。7.根据权利要求6所述的内存扫描方法,所述根据所述待扫描预留内存的当前冷热状态,确定所述待扫描预留内存的当前冷热状态的目标记录表,并将所述待扫描预留内存的当前冷热状态记录至所述目标记录表,包括:在所述目标热页记录表中的...

【专利技术属性】
技术研发人员:郑豪
申请(专利权)人:阿里巴巴中国有限公司
类型:发明
国别省市:

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

1