CN112783661B - 一种适用于容器环境下的内存重删方法及装置 - Google Patents
一种适用于容器环境下的内存重删方法及装置 Download PDFInfo
- Publication number
- CN112783661B CN112783661B CN202110184307.1A CN202110184307A CN112783661B CN 112783661 B CN112783661 B CN 112783661B CN 202110184307 A CN202110184307 A CN 202110184307A CN 112783661 B CN112783661 B CN 112783661B
- Authority
- CN
- China
- Prior art keywords
- page
- processed
- mergeable
- pages
- anonymous
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
Abstract
本申请公开了一种适用于容器环境下的内存重删方法及装置,该方法包括:获取内存中的所有匿名物理页面;对所有所述匿名物理页面进行轻量级的聚类和维护处理得到等待队列;采用分层采样从所述等待队列中获取至少一个待处理页面;将至少一个所述待处理页面进行比较,确定可归并页面;对所述可归并页面进行归并,并释放所述可归并页面所占的内存空间。通过实施本申请,能够减少页面扫描开销、提升页面归并效率。
Description
技术领域
本申请涉及内存管理技术领域,特别是涉及一种适用于容器环境下的内存重删方法及装置。
背景技术
在现有的计算机存储体系架构中,内存和磁盘间存在巨大的访问性能差异。因此存储系统中的内存能够完全承载活跃数据,将会在很大程度上影响云服务的性能,这为系统的内存容量带来了挑战。
由于硬件成本和微电子工艺的约束,系统中实际的内存容量难以扩展,因此内存重删成为了提升系统有效内容容量的方法。尤其在多租户的云计算场景中,如果多个虚拟机或容器使用相同的操作系统、运行时库或运行相似的服务,内存中将会出现大量的重复数据。通过内存重删,这些数据将会保留唯一副本,从而减少内存中的冗余性,使内存的有效容量提升。
但目前许多传统的方法,例如内核相同页面归并(Kernel Samepage Merging,KSM)、UKSM(Ultra KSM)和SmartKSM等内存重删方法,往往是针对虚拟机进行设计的,导致在内存重删时大多数都依赖于用户提供的额外信息或虚拟机的某些特性,而无法在轻量级的容器中使用。
发明内容
为克服上述现有技术存在的不足,本申请之目的在于提供一种适用于容器环境下的内存重删方法及装置,能减少页面扫描开销、提升页面归并效率。
为达上述及其它目的,本申请提出一种适用于容器环境下的内存重删方法,包括如下步骤:
获取内存中的所有匿名物理页面;
对所有所述匿名物理页面进行轻量级的聚类和维护处理,得到等待队列,所述等待队列包括至少一个全局模式区段和局部模式区段,所述全局模式区段包括至少一个具有全局模式的匿名物理页面,所述局部模式区段包括至少一个具有局部模式的匿名物理页面;
采用分层采样从所述等待队列中获取至少一个待处理页面;
将至少一个所述待处理页面进行比较,确定可归并页面;
对所述可归并页面进行归并,并释放所述可归并页面所占的内存空间。
可选的,所述采用分层采样从所述等待队列中获取至少一个待处理页面包括:
使用第一采样率对所述等待队列中的所有匿名物理页面进行第一层采样;
在所述第一层采样结束后,使用第二采样率对所述全局模式区段中的匿名物理页面进行第二层采样,从而获得至少一个待处理页面。
可选的,所述等待队列包括匿名物理页面和链表节点之间的映射关系,所述方法还包括:
获取缺页异常所产生的匿名物理页面;
通过第一钩子函数将所述匿名物理页面加入所述等待队列中,并为所述匿名物理页面分配唯一的链表节点;
将所述匿名物理页面对应的链表节点加入所述等待队列中。
可选的,所述方法还包括:
在归并所述可归并页面之后,生成对应的页面释放请求,所述页面释放请求用于请求移除所述等待队列中的所述可归并页面;
响应所述页面释放请求,通过第二钩子函数将所述可归并页面从所述等待队列中移除;
将所述可归并页面对应的链表节点从所述等待队列中移除。
可选的,所述对所述可归并页面进行归并包括:
利用反向映射机制遍历并修改所有指向所述可归并页面的虚拟页面,将每个所述虚拟页面对应的页表项重定向至新的物理页面。
为达上述及其它目的,本申请还提出一种适用于容器环境下的内存重删装置,包括:
获取单元,用于获取内存中的所有匿名物理页面;
处理单元,用于对所有所述匿名物理页面进行轻量级的聚类和维护处理,得到等待队列,所述等待队列包括至少一个全局模式区段和局部模式区段,所述全局模式区段包括至少一个具有全局模式的匿名物理页面,所述局部模式区段包括至少一个具有局部模式的匿名物理页面;
分层采样单元,用于采用分层采样从所述等待队列中获取至少一个待处理页面;
比较单元,用于将至少一个所述待处理页面进行比较,确定可归并页面;
归并单元,用于对所述可归并页面进行归并,并释放所述可归并页面所占的内存空间。
可选的,所述分层采样单元具体用于:
使用第一采样率对所述等待队列中的所有匿名物理页面进行第一层采样;
在所述第一层采样结束后,使用第二采样率对所述全局模式区段中的匿名物理页面进行第二层采样,从而获得至少一个待处理页面。
可选的,所述等待队列包括匿名物理页面和链表节点之间的映射关系,所述装置还包括加入单元;
所述获取单元,还用于获取缺页异常所产生的匿名物理页面;
所述加入单元,用于通过第一钩子函数将所述匿名物理页面加入所述等待队列中,并为所述匿名物理页面分配唯一的链表节点;
所述加入单元,还用于将所述匿名物理页面对应的链表节点加入所述等待队列中。
可选的,所述装置还包括生成单元和移除单元,
所述生成单元,用于在归并所述可归并页面之后,生成对应的页面释放请求,所述页面释放请求用于请求移除所述等待队列中的所述可归并页面;
所述移除单元,用于响应所述页面释放请求,通过第二钩子函数将所述可归并页面从所述等待队列中移除;
所述移除单元,还用于将所述可归并页面对应的链表节点从所述等待队列中移除。
可选的,所述归并单元具体用于:
利用反向映射机制遍历并修改所有指向所述可归并页面的虚拟页面,将每个所述虚拟页面对应的页表项重定向至新的物理页面。
由上可见本申请提供了一种适用于容器环境下的内存重删方法及装置,能达到以下有益效果:针对容器化环境提出了适用于容器环境下基于物理页面扫描的内存重删算法(Container based Kernel Samepage Merging,CKSM),相比于传统内存重删方法而言,能减少页面扫描开销、不论在同构容器环境下还是异构容器环境下能显著较少内存使用量(即内存占用开销),具体可指峰值内存占用和稳定内存占用。
附图说明
图1是本申请实施例提供的一种适用于容器环境下的内存重删方法的流程示意图。
图2是本申请实施例提供的一种基于物理页面的分类采样示意图。
图3是本申请实施例提供的一种基于物理页面的扫描示意图。
图4是本申请实施例提供的一种基于物理页面的归并示意图。
图5是本申请实施例提供的一种内存重删算法的整体设计概览示意图。
图6是本申请实施例提供的一种适用于容器环境下的内存重删装置的结构示意图。
具体实施方式
以下通过特定的具体实例并结合附图说明本申请的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本申请的其它优点与功效。本申请亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本申请的精神下进行各种修饰与变更。
在申请人提出本申请的过程中发现,新型的以容器为主的容器化环境不同于传统的以虚拟机为主的虚拟化环境,容器相比于虚拟机提供了更弱的资源抽象,使得传统基于虚拟化环境所设计的内存重删算法在容器环境下难以妥善工作。其中,许多传统的方法,例如SmartKSM,往往针对虚拟机进行设计,导致其中大多数都依赖于用户经常提供的额外信息或虚拟机的某些特性,而无法在轻量级的容器中使用。此外,容器化环境中丢失了虚拟机提供的进程抽象,内存重删算法在归并过程中需要直接处理应用进程中复杂的页面映射关系,降低了页面归并的效率。
为解决上述问题,本申请针对容器化环境提出了一种适用于容器环境下基于物理页面扫描的内存重删方法及装置。请参见图1,是本申请实施例提供的一种适用于容器环境下的内存重删方法的流程示意图。如图1所示的方法包括如下实施步骤:
S101、获取内存中的所有匿名物理页面。
本申请有目标性地追踪并记录因为缺页异常/中断产生的所有匿名物理页面,便于后续在内存重删过程中基于物理页面直接获取,有效避免了额外的合法性判断和对不合法页面类型的无效访问。
S102、对所有所述匿名物理页面进行轻量级的聚类和维护处理,得到等待队列,所述等待队列包括至少一个全局模式区段和局部模式区段,所述全局模式区段包括至少一个具有全局模式的匿名物理页面,所述局部模式区段包括至少一个具有局部模式的匿名物理页面。
S103、采用分层采样从所述等待队列中获取至少一个待处理页面。
为了提升内存重删的效率,内存重删算法需要针对不同特征的物理页面采用不同的处理策略。例如,针对具有更高潜在重删可能性的物理页面,分配更高的处理优先级或更多的计算资源和比较机会;针对潜在重删可能性较低的物理页面,则分配更低的处理优先级,减少对其处理的资源占用。
为此,本申请基于物理页面的特征,利用内存操作的时间局部性设计了轻量级的聚类方法使具有相同潜在重删可能性的页面在等待队列中聚集。通过实验发现,内存只能可以发生归并的物理页面,其内容的重复性可以分为两类。第一类具有高重复性,即相同的内容在内存中大量重复,内存中存在很多具有相同重复内容的物理页面,可将其归并在一起,这一重复模式可称为全局模式。第二类具有低重复性,即相同的内容仅存在于少数几个物理页面之间,这一重复模式可称为局部模式。进一步分析可知,全局模式的产生来自于典型的内存操作,例如数据库启动时的全零页面等。因此其产生往往具有很强的时间局限性,即在短时间内接连产生满足全局模式的大量物理页面,换句话说如果一个物理页面满足全局模式在,则其邻近产生的物理页面大概率也满足全局模式。因此,本申请可按照匿名物理页面的产生次序,对其进行轻量级的聚类和维护,以组织等待队列,使得具有全局模式的至少一个匿名物理页面在等待队列中汇聚成连续区段,即全局模式区段。相应地,具有局部模式的至少一个匿名物理页面也可以在等待队列中汇聚成连续区段,即局部模式区段。其中,该全局模式区段和局部模式区段在等待队列中的汇聚位置及数量不做限定,例如全局模式区段和局部模式区段交错汇聚于等待队列中等等。
在页面聚类基础上,本申请还设计了分层采样方法,给予高重删可能性的物理页面高优先级,同时避免低重删可能性的物理页面中的重删机会因为饥饿而被浪费。这里即使得具有全局模式的匿名物理页面能够被优先处理,同时具有局部模式的匿名物理页面也不会发生饥饿。具体的,请参见图2是本申请提供的一种可能的分层采样的过程示意图。如图2中,在第一层采样中,使用一个相对较低的第一采样率对等待队列中的所有匿名物理页面进行第一层采样,从而快速调到局部模式区段,快速进入全局模式区段并作出响应。在第一层采样结束后,当系统负载不高时启动第二层采样,这一次使用相对较高的第二采样率对全局模式区段中的匿名物理页面进行第二层采样,从而充分利用第一层采样中被忽略的重删机会,避免出现页面重删饥饿。需要说明的是,虽然图示仅以2层分层采样示出,但实际应过程中CKSM可使用一个更细粒度的采样层级,例如7层采样等。
本申请涉及的饥饿(starvation),原意是指一个可运行的进程尽管能继续执行,但被调度器无限期地忽视,而不能被调度执行的情况。本申请是指虽然存在可以被重删的物理页面,但因为一直没有被扫描到,所以一直没有发现这个重删机会。本申请涉及的采样率是指每多少个页面进行一次处理,例如以采样率为1:4为例,表示每4个页面处理1个页面,即每间隔3个物理页面获取一个待处理页面,并寻找其可归并对象。
S104、将至少一个所述待处理页面进行比较,确定可归并页面。
本申请按照相应采样率对等待队列中的所有匿名物理页面进行分层采样,可获得相应的待处理页面。将每次采样获得的待处理页面与之前采样获得的未归并待处理页面进行比较,从而确定当前采样获得的待处理页面是否为可归并页面。
举例来说,假设内存系统中有100个匿名物理页面,本申请以1:4采样率分层采样。本申请在分层采样获得匿名物理页面1后,由于系统中之前没有任何可比较的页面,因此本步骤不做页面比较。在获得下一个待处理页面即匿名物理页面5后,可将待处理页面5与匿名物理页面1进行比较,确定页面5与页面1是否为具有相同内容的页面,如果是则确定待处理页面5为匿名物理页面1的可归并页面,依次推理,可对这100个匿名物理页面进行比较确定所需归并的可归并页面。
S105、对所述可归并页面进行归并,并释放所述可归并页面所占的内存空间。
本申请以物理页面为归并操作的执行对象,确保了页面归并操作和内存空间实际释放这一结果之间的直接关联。在本申请确定到一个可归并页面后,将利用反向映射机制遍历并修改所有指向它的虚拟页面,将每个虚拟页面对应的页表项重定向至新的物理页面,并释放可归并页面在内存中所占的内存空间。请参见图3示出一种可能的页面归并的具体示意图。如图3中,以物理页面1和物理页面2为例,本申请确定到物理页面2与之前分层采样所得的物理页面1具有相同内容,即物理页面2为物理页面1的可归并页面,则本申请可将所有指向物理页面2的页表项(图示可为页表项1、页表项2和页表项3)重定向至物理页面1,并释放物理页面2所长的内存空间。
在可选实施例中,本申请还涉及基于物理页面的扫描。其中,基于物理页面的分层采样和基于物理页面的扫描都是在获取下一个待处理页面。两者在工程实现中是揉在一起的,但两者的设计本质不同。从目的上来看,分类采样是为了分辨出具有高重删可能性的物理页面并优先处理,基于物理页面的扫描是为了分辨出可以被重删的物理页面从而避免在无效对象上浪费时间。从逻辑关系上来看,基于物理页面的扫描决定了使用物理页面作为扫描对象,从而要求分类采样针对物理页面这一对象设计相应地聚类和分层采样方法。
请参见图4示出一种可能的基于物理页面扫描的具体流程示意图。如图4中,本申请可获取由于缺页中断产生的匿名物理页面,通过第一钩子函数Hook1实现匿名物理页面的分配,将匿名物理页面加入等待队列中,并为该匿名物理页面分配唯一的链表节点(page-list节点),进而将该匿名物理页面对应的链接节点添加到等待队列中。进一步本申请基于物理页面的分类采样从等待队列中获取下一个待处理页面,并对其进行比较确定可归并页面,进而实现可归并页面的归并。
可选地在归并可归并页面之后,即可归并页面归并成功后,则本申请可基于页面回收机制回收该可归并页面,具体可生成对应的页面释放请求,该请求用于请求移除等待队列中的该可归并页面。进一步本申请可响应该页面释放请求,通过第二钩子函数Hook2将可归并页面从等待队列中移除,根据页面与链表节点之间的映射关系,还可进一步将可归并页面对应的链表节点从等待队列中移除。
为方便用户更好地理解本申请方案,请参见图5示出一种CKSM算法的整体设计概览示意图。如图5所示,本申请采用基于物理页面的分层采样技术从等待队列中获取至少一个待处理页面,同时采用基于物理页面的扫描技术使用物理页面作为可归并操作的扫描对象,寻找可归并页面。在寻找到可归并页面之后,最后实现基于物理页面的归并,即归并可归并页面,直接释放可归并页面所占的内存空间。
通过实施本申请实施例,采用基于物理页面的分类采样能够快速响应具有全局模式的匿名物理页面的内存重删,同时也能避免具有局部模式的匿名物理页面发生饥饿,从而有利于提升内存的峰值重删率和稳定重删率。采用基于物理页面的扫描技术能有效减少页面的平均扫描时间,即节省扫描开销;且不论在同构容器环境下还是异构环境下,采用本申请均能显著地减少内存使用量,即减少稳定内存占用开销和峰值内存占用开销。
请参见图6,是本申请实施例提供的一种适用于容器环境下的内存重删装置的结构示意图。如图6所示的装置包括获取单元601、处理单元602、分层采样单元603、比较单元604和归并单元605。其中,
所述获取单元601,用于获取内存中的所有匿名物理页面;
所述处理单元602,用于对所有所述匿名物理页面进行轻量级的聚类和维护处理,得到等待队列,所述等待队列包括至少一个全局模式区段和局部模式区段,所述全局模式区段包括至少一个具有全局模式的匿名物理页面,所述局部模式区段包括至少一个具有局部模式的匿名物理页面;
所述分层采样单元603,用于采用分层采样从所述等待队列中获取至少一个待处理页面;
所述比较单元604,用于将至少一个所述待处理页面进行比较,确定可归并页面;
所述归并单元605,用于对所述可归并页面进行归并,并释放所述可归并页面所占的内存空间。
可选的,所述分层采样单元603具体用于:
使用第一采样率对所述等待队列中的所有匿名物理页面进行第一层采样;
在所述第一层采样结束后,使用第二采样率对所述全局模式区段中的匿名物理页面进行第二层采样,从而获得至少一个待处理页面;
其中,所述第一采样率低于所述第二采样率。
可选的,所述等待队列包括匿名物理页面和链表节点之间的映射关系,所述装置还包括加入单元606;
所述获取单元601,还用于获取缺页异常所产生的匿名物理页面;
所述加入单元606,用于通过第一钩子函数将所述匿名物理页面加入所述等待队列中,并为所述匿名物理页面分配唯一的链表节点;
所述加入单元606,还用于将所述匿名物理页面对应的链表节点加入所述等待队列中。
可选的,所述装置还包括生成单元607和移除单元608,
所述生成单元607,用于在归并所述可归并页面之后,生成对应的页面释放请求,所述页面释放请求用于请求移除所述等待队列中的所述可归并页面;
所述移除单元608,用于响应所述页面释放请求,通过第二钩子函数将所述可归并页面从所述等待队列中移除;
所述移除单元608,还用于将所述可归并页面对应的链表节点从所述等待队列中移除。
可选的,所述归并单元605具体用于利用反向映射机制遍历并修改所有指向所述可归并页面的虚拟页面,将每个所述虚拟页面对应的页表项重定向至新的物理页面。
通过实施本申请实施例,采用基于物理页面的分类采样能够快速响应具有全局模式的匿名物理页面的内存重删,同时也能避免具有局部模式的匿名物理页面发生饥饿,从而有利于提升内存的峰值重删率和稳定重删率。采用基于物理页面的扫描技术能有效减少页面的平均扫描时间,即节省扫描开销;且不论在同构容器环境下还是异构环境下,采用本申请均能显著地减少内存使用量,即减少稳定内存占用开销和峰值内存占用开销。
上述实施例仅例示性说明本申请的原理及其功效,而非用于限制本申请。任何本领域技术人员均可在不违背本申请的精神及范畴下,对上述实施例进行修饰与改变。因此,本申请的权利保护范围,应如权利要求书所列。
Claims (10)
1.一种适用于容器环境下的内存重删方法,其特征在于,包括:
获取内存中的所有匿名物理页面;
对所有所述匿名物理页面进行轻量级的聚类和维护处理,得到等待队列,所述等待队列包括至少一个全局模式区段和局部模式区段,所述全局模式区段包括至少一个具有全局模式的匿名物理页面,所述局部模式区段包括至少一个具有局部模式的匿名物理页面;所述全局模式具有高重复性,即相同的内容在内存中大量重复,内存中存在很多具有相同重复内容的物理页面;所述局部模式具有低重复性,即相同的内容仅存在于少数几个物理页面之间;所述全局模式区段是指具有全局模式的至少一个匿名物理页面在等待队列中汇聚成连续区段;所述局部模式区段是指具有局部模式的至少一个匿名物理页面也可以在等待队列中汇聚成连续区段;
采用分层采样从所述等待队列中获取至少一个待处理页面;
将至少一个所述待处理页面进行比较,确定可归并页面;当所述待处理页面是页面1时,将所述待处理页面判定为未归并待处理页面;当所述待处理页面为页面2或页面2之后的页面时,将所述待处理页面与所述待处理页面之前采样获得的未归并待处理页面进行比较,从而确定所述待处理页面是否为可归并页面;如果所述待处理页面与所述待处理页面之前采样获得的未归并待处理页面具有相同内容,则判定所述待处理页面为可归并页面;
对所述可归并页面进行归并,并释放所述可归并页面所占的内存空间。
2.根据权利要求1所述的适用于容器环境下的内存重删方法,其特征在于,所述采用分层采样从所述等待队列中获取至少一个待处理页面包括:
使用第一采样率对所述等待队列中的所有匿名物理页面进行第一层采样;
在所述第一层采样结束后,使用第二采样率对所述全局模式区段中的匿名物理页面进行第二层采样,从而获得至少一个待处理页面;
其中,所述第一采样率低于所述第二采样率。
3.根据权利要求1所述的适用于容器环境下的内存重删方法,其特征在于,所述等待队列包括匿名物理页面和链表节点之间的映射关系,所述方法还包括:
获取缺页异常所产生的匿名物理页面;
通过第一钩子函数将所述匿名物理页面加入所述等待队列中,并为所述匿名物理页面分配唯一的链表节点;
将所述匿名物理页面对应的链表节点加入所述等待队列中。
4.根据权利要求3所述的适用于容器环境下的内存重删方法,其特征在于,所述方法还包括:
在归并所述可归并页面之后,生成对应的页面释放请求,所述页面释放请求用于请求移除所述等待队列中的所述可归并页面;
响应所述页面释放请求,通过第二钩子函数将所述可归并页面从所述等待队列中移除;
将所述可归并页面对应的链表节点从所述等待队列中移除。
5.根据权利要求1-4中任一项所述的适用于容器环境下的内存重删方法,其特征在于,所述对所述可归并页面进行归并包括:
利用反向映射机制遍历并修改所有指向所述可归并页面的虚拟页面,将每个所述虚拟页面对应的页表项重定向至新的物理页面。
6.一种适用于容器环境下的内存重删装置,其特征在于,包括:
获取单元,用于获取内存中的所有匿名物理页面;
处理单元,用于对所有所述匿名物理页面进行轻量级的聚类和维护处理,得到等待队列,所述等待队列包括至少一个全局模式区段和局部模式区段,所述全局模式区段包括至少一个具有全局模式的匿名物理页面,所述局部模式区段包括至少一个具有局部模式的匿名物理页面;所述全局模式具有高重复性,即相同的内容在内存中大量重复,内存中存在很多具有相同重复内容的物理页面;所述局部模式具有低重复性,即相同的内容仅存在于少数几个物理页面之间;所述全局模式区段是指具有全局模式的至少一个匿名物理页面在等待队列中汇聚成连续区段;所述局部模式区段是指具有局部模式的至少一个匿名物理页面也可以在等待队列中汇聚成连续区段;
分层采样单元,用于采用分层采样从所述等待队列中获取至少一个待处理页面;
比较单元,用于将至少一个所述待处理页面进行比较,确定可归并页面;当所述待处理页面是页面1时,将所述待处理页面判定为未归并待处理页面;当所述待处理页面为页面2或页面2之后的页面时,将所述待处理页面与所述待处理页面之前采样获得的未归并待处理页面进行比较,从而确定所述待处理页面是否为可归并页面;如果所述待处理页面与所述待处理页面之前采样获得的未归并待处理页面具有相同内容,则判定所述待处理页面为可归并页面;
归并单元,用于对所述可归并页面进行归并,并释放所述可归并页面所占的内存空间。
7.根据权利要求6所述的适用于容器环境下的内存重删装置,其特征在于,所述分层采样单元具体用于:
使用第一采样率对所述等待队列中的所有匿名物理页面进行第一层采样;
在所述第一层采样结束后,使用第二采样率对所述全局模式区段中的匿名物理页面进行第二层采样,从而获得至少一个待处理页面;
其中,所述第一采样率低于所述第二采样率。
8.根据权利要求6所述的适用于容器环境下的内存重删装置,其特征在于,所述等待队列包括匿名物理页面和链表节点之间的映射关系,所述装置还包括加入单元;
所述获取单元,还用于获取缺页异常所产生的匿名物理页面;
所述加入单元,用于通过第一钩子函数将所述匿名物理页面加入所述等待队列中,并为所述匿名物理页面分配唯一的链表节点;
所述加入单元,还用于将所述匿名物理页面对应的链表节点加入所述等待队列中。
9.根据权利要求8所述的适用于容器环境下的内存重删装置,其特征在于,所述装置还包括生成单元和移除单元,
所述生成单元,用于在归并所述可归并页面之后,生成对应的页面释放请求,所述页面释放请求用于请求移除所述等待队列中的所述可归并页面;
所述移除单元,用于响应所述页面释放请求,通过第二钩子函数将所述可归并页面从所述等待队列中移除;
所述移除单元,还用于将所述可归并页面对应的链表节点从所述等待队列中移除。
10.根据权利要求6-9中任一项所述的适用于容器环境下的内存重删装置,其特征在于,所述归并单元具体用于:
利用反向映射机制遍历并修改所有指向所述可归并页面的虚拟页面,将每个所述虚拟页面对应的页表项重定向至新的物理页面。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110184307.1A CN112783661B (zh) | 2021-02-08 | 2021-02-08 | 一种适用于容器环境下的内存重删方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110184307.1A CN112783661B (zh) | 2021-02-08 | 2021-02-08 | 一种适用于容器环境下的内存重删方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112783661A CN112783661A (zh) | 2021-05-11 |
CN112783661B true CN112783661B (zh) | 2022-08-12 |
Family
ID=75761532
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110184307.1A Active CN112783661B (zh) | 2021-02-08 | 2021-02-08 | 一种适用于容器环境下的内存重删方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112783661B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115408138A (zh) * | 2021-05-26 | 2022-11-29 | 华为技术有限公司 | 一种内存页处理方法及其相关设备 |
CN117130718A (zh) * | 2022-05-18 | 2023-11-28 | 中兴通讯股份有限公司 | 内存管理方法、网络设备及计算机可读存储介质 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103020255B (zh) * | 2012-12-21 | 2016-03-02 | 华为技术有限公司 | 分级存储方法和装置 |
US10019323B1 (en) * | 2014-03-25 | 2018-07-10 | EMC IP Holding Company LLC | Method and system for container data recovery in a storage system |
US9626108B2 (en) * | 2014-09-16 | 2017-04-18 | Kove Ip, Llc | Dynamically provisionable and allocatable external memory |
CN104331659A (zh) * | 2014-10-30 | 2015-02-04 | 浪潮电子信息产业股份有限公司 | 一种关键应用主机系统资源应用隔离的设计方法 |
CN104408154B (zh) * | 2014-12-04 | 2018-05-29 | 华为技术有限公司 | 重复数据删除方法及装置 |
CA3051164A1 (en) * | 2016-01-24 | 2017-07-27 | Syed Kamran HASAN | Computer security based on artificial intelligence |
CN106406762A (zh) * | 2016-09-19 | 2017-02-15 | 郑州云海信息技术有限公司 | 一种重复数据删除方法及装置 |
CN108205471B (zh) * | 2017-08-01 | 2021-04-27 | 珠海市魅族科技有限公司 | 内存回收方法及装置、计算机装置及计算机可读存储介质 |
CN111597048B (zh) * | 2020-05-15 | 2022-09-23 | 上海交通大学 | 基于服务质量的微服务调度方法、系统及电子设备 |
-
2021
- 2021-02-08 CN CN202110184307.1A patent/CN112783661B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN112783661A (zh) | 2021-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112783661B (zh) | 一种适用于容器环境下的内存重删方法及装置 | |
CN1096642C (zh) | 高效利用空间的对象加锁的系统和方法 | |
US8346820B2 (en) | Asynchronous distributed garbage collection for replicated storage clusters | |
US8381230B2 (en) | Message passing with queues and channels | |
US10592470B2 (en) | Discovery of calling application for control of file hydration behavior | |
US20170228422A1 (en) | Flexible task scheduler for multiple parallel processing of database data | |
US20150112934A1 (en) | Parallel scanners for log based replication | |
CN104881466A (zh) | 数据分片的处理以及垃圾文件的删除方法和装置 | |
CN112565325A (zh) | 镜像文件管理方法、装置及系统、计算机设备、存储介质 | |
US10545682B1 (en) | System and method having accelerated data recovery | |
CN113760847A (zh) | 日志数据处理方法、装置、设备及存储介质 | |
CN111752945A (zh) | 一种基于容器和层次模型的时序数据库数据交互方法和系统 | |
US10467190B2 (en) | Tracking access pattern of inodes and pre-fetching inodes | |
US11216421B2 (en) | Extensible streams for operations on external systems | |
EP3519993A1 (en) | Tracking access pattern of inodes and pre-fetching inodes | |
WO2024041376A1 (zh) | 分布式图数据处理系统、方法、装置、设备及存储介质 | |
US20110246582A1 (en) | Message Passing with Queues and Channels | |
US9250977B2 (en) | Tiered locking of resources | |
CN111930684A (zh) | 基于hdfs的小文件处理方法、装置、设备及存储介质 | |
JP2012242975A (ja) | 分散並列処理キャッシュ装置及び方法及び資源管理ノード及びプログラム | |
US11281666B2 (en) | Interception of database queries for delegation to an in memory data grid | |
US11340964B2 (en) | Systems and methods for efficient management of advanced functions in software defined storage systems | |
CN111124834B (zh) | 云计算环境下监控数据的接入方法、装置和计算机设备 | |
CN111581157A (zh) | 一种对象存储平台以及对象操作方法、装置和服务器 | |
Ballas et al. | Assessing the computational limits of GraphDBs’ engines-A comparison study between Neo4j and Apache Spark |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |