内存管理方法及装置、终端和存储介质制造方法及图纸

技术编号:35404373 阅读:18 留言:0更新日期:2022-11-03 10:56
本申请实施例提供一种内存管理方法及装置、终端和存储介质,该方法包括将交换分区(swap分区)中的目标块输出至高速缓存(cache),并保留所述交换分区中的所述目标块(extent),所述目标块中存储有压缩的目标冷页面;以及将所述高速缓存中的所述目标块中的所述压缩的目标冷页面解压至内存中。通过在内存与swap分区之间,加一层cache来减少来自swap分区中非必要数据的换入,从而减少冷数据的重复换出,减少IO次数,进而可以延长相应硬盘的寿命。寿命。寿命。

【技术实现步骤摘要】
内存管理方法及装置、终端和存储介质


[0001]本申请涉及内存回收
,尤其涉及一种内存管理方法及装置、终端和存储介质。

技术介绍

[0002]在linux系统中,当物理内存不够用的时候往往会开启交换(swap)分区在硬盘上申请一块空间,系统会将内存中不常访问的页面转移到swap分区上,这样系统就有更多的物理内存为各个进程服务,而当系统需要访问swap分区上存储的数据时,再将swap分区上的页面加载到内存中,起到了扩展物理内存大小的作用。
[0003]当数据频繁的在内存与swap分区换入换出时,会加重系统的输入输出(Input/Output,IO)压力,导致系统运行卡顿,且频繁读写对硬盘寿命也有一定的影响。

技术实现思路

[0004]本申请实施例提供一种内存管理方法及装置、终端和存储介质,可以通过在内存与swap分区之间,加一层cache来减少来自swap分区中非必要数据的换入,从而减少冷数据的重复换出,减少IO次数,进而可以延长相应硬盘的寿命。
[0005]第一方面,本申请实施例提供一种内存管理方法,包括:将交换分区(swap分区)中的目标块输出至高速缓存(cache),并保留所述交换分区中的所述目标块(extent),所述目标块中存储有压缩的目标冷页面;以及将所述高速缓存中的所述目标块中的所述压缩的目标冷页面解压至内存中。其中该冷页面也可以称之为非活跃页面。
[0006]进一步地,在所述将交换分区中的目标块输出至高速缓存之前,还包括:根据进程需求信息确定所述目标块,其中,所述进程需求信息包括完整功能需求或部分功能需求;若所述进程需求信息包括所述完整功能需求,所述目标块包括存储所述完整功能需求的对应页的多个连续块;若所述进程需求信息包括所述部分功能需求,所述目标块包括存储所述部分功能需求对应页的块。
[0007]进一步地,所述将交换分区中的目标块输出至高速缓存包括:分配所述进程需求信息所需的空页面;读取所述交换分区中所述进程需求信息所需的所述目标块并存入所述空页面,以得到第一页面;以及将所述第一页面存储所述高速缓存的管理结构中。
[0008]进一步地,在所述将交换分区中存储的所述部分功能需求对应的目标冷页面的块输出至所述高速缓存之前,还包括:若确定所述部分功能需求对应的目标冷页面缓存在所述高速缓存中,则将所述高速缓存中缓存的所述部分功能需求对应的目标冷页面解压到所述内存中。
[0009]进一步地,在所述将交换分区中存储的所述部分功能需求对应的目标冷页面的块输出至所述高速缓存之前,还包括:若确定所述部分功能需求对应的目标冷页面存储在内存压缩分区中,则将所述内存压缩分区中存储的所述部分功能需求对应的目标冷页面解压到所述内存中。
[0010]进一步地,所述方法还包括:若系统当前内存低于第一阈值,则进行若干轮第一内存回收操作,直至所述系统当前内存达到所述第一阈值;其中,每一轮所述第一内存回收操作包括:若确定本轮请求内存回收的目标大小不大于第二阈值,则结束所述内存回收操作;若确定本轮请求内存回收的目标大小大于所述第二阈值,则在所述交换分区中选取一个未经处理的块;以及若确定所述未经处理的块在所述高速缓存中存储有缓存副本,则回收所述未经处理的块对应的所述缓存副本,并进入下一轮所述第一内存回收操作。
[0011]进一步地,所述方法还包括:若所述交换分区的可用空间不满足冷页面换入的分配条件,则进行若干轮第二内存回收操作,直至所述交换分区的可用空间达到第三阈值;
[0012]其中,每一轮所述第二内存回收操作包括:若确定本轮请求内存回收的目标大小不大于第二阈值,则结束所述内存回收操作;若确定本轮请求内存回收的目标大小大于所述第二阈值,则在所述交换分区中选取一个未经处理的块;以及若确定所述未经处理的块在所述高速缓存中存储有缓存副本,则将所述未经处理的块对应的所述缓存副本复制到内存压缩分区(可以为zRAM)中,并回收所述未经处理的块对应的所述缓存副本以及所述交换分区中的所述未经处理的块,并进入下一轮所述第二内存回收操作。
[0013]第二方面,本申请实施例还提供一种内存管理装置,所述装置包括:处理器和存储器,所述存储器用于存储至少一条指令,所述指令由所述处理器加载并执行时以实现第一方面提供的内存管理方法。
[0014]在一种实施方式中,第二方面提供的一种内存管理装置可以为一种芯片。
[0015]第三方面,本申请另一个实施例还提供一种芯片,所述芯片与存储器相连,所述存储器用于存储至少一条程序或指令,所述程序或指令由所述芯片执行时以实现第一方面提供的内存管理方法。
[0016]第四方面,本申请再一个实施例还提供一种终端,该终端可以包括终端本体,还可以包括第二方面提供的内存管理装置或者第三方面提供的芯片。
[0017]第五方面,本申请的再一个实施例提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现第一方面提供的内存管理方法。
[0018]通过上述技术方案,在交换分区中的目标冷页面需要换出到内存中时,可以将交换分区中存储有所述目标冷页面的目标块输出至高速缓存,并保留交换分区中的目标块。进而可以将缓存在高速缓存中的目标块中的目标冷页面解压到内存中,以完成内存交换。通过在内存与swap分区之间,加一层cache来减少来自swap分区中非必要数据的换入,从而减少冷数据的重复换出,减少IO次数,进而可以延长相应硬盘的寿命。
附图说明
[0019]为了更清楚地说明本专利技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0020]图1为现有技术中swap分区内存交换的示意图;
[0021]图2为本申请一个实施例提供的swap分区内存交换的示意图;
[0022]图3为本申请再一个实施例提供的内存管理方法的流程图;
[0023]图3a为本申请一个实施例提供的调用整入接口交换的流程图;
[0024]图3b为本申请再一个实施例提供的调用零入接口交换的流程图;
[0025]图4为本申请再一个实施例提供的cache分区清理的流程图;
[0026]图5为本申请再一个实施例提供的swap分区清理的流程图;
[0027]图6为本申请再一个实施例提供的内存管理装置的结构示意图。
具体实施方式
[0028]为使本专利技术实施例的目的、技术方案和优点更加清楚,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。
[0029]图1为现有技术中swap分区内存交换的示本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种内存管理方法,其特征在于,所述方法包括:将交换分区中的目标块输出至高速缓存,并保留所述交换分区中的所述目标块,所述目标块中存储有压缩的目标冷页面;以及将所述高速缓存中的所述目标块中的所述压缩的目标冷页面解压至内存中。2.根据权利要求1所述的方法,其特征在于,在所述将交换分区中的目标块输出至高速缓存之前,还包括:根据进程需求信息确定所述目标块,其中,所述进程需求信息包括完整功能需求或部分功能需求;若所述进程需求信息包括所述完整功能需求,所述目标块包括存储所述完整功能需求的对应页的多个连续块;若所述进程需求信息包括所述部分功能需求,所述目标块包括存储所述部分功能需求对应页的块。3.根据权利要求2所述的方法,其特征在于,所述将交换分区中的目标块输出至高速缓存包括:分配所述进程需求信息所需的空页面;读取所述交换分区中所述进程需求信息所需的所述目标块并存入所述空页面,以得到第一页面;以及将所述第一页面存储所述高速缓存的管理结构中。4.根据权利要求2所述的方法,其特征在于,在所述将交换分区中存储的所述部分功能需求对应的目标冷页面的块输出至所述高速缓存之前,还包括:若确定所述部分功能需求对应的目标冷页面缓存在所述高速缓存中,则将所述高速缓存中缓存的所述部分功能需求对应的目标冷页面解压到所述内存中。5.根据权利要求2所述的方法,其特征在于,在所述将交换分区中存储的所述部分功能需求对应的目标冷页面的块输出至所述高速缓存之前,还包括:若确定所述部分功能需求对应的目标冷页面存储在内存压缩分区中,则将所述内存压缩分区中存储的所述部分功能需求对应的目标冷页面解压到所述内存中。6.根据权利要求1所述的方法,其特征在于,所述方法还包括:若系统当前内存低于第一阈值,则进行若干轮第一...

【专利技术属性】
技术研发人员:常演
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1