CN118363875A - 内存回收方法、装置、设备、介质及产品 - Google Patents
内存回收方法、装置、设备、介质及产品 Download PDFInfo
- Publication number
- CN118363875A CN118363875A CN202310089221.XA CN202310089221A CN118363875A CN 118363875 A CN118363875 A CN 118363875A CN 202310089221 A CN202310089221 A CN 202310089221A CN 118363875 A CN118363875 A CN 118363875A
- Authority
- CN
- China
- Prior art keywords
- swap
- level
- memory
- equipment
- target data
- 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
- 238000000034 method Methods 0.000 title claims abstract description 88
- 238000011084 recovery Methods 0.000 title claims abstract description 30
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 claims abstract description 48
- 238000004064 recycling Methods 0.000 claims abstract description 16
- 238000012544 monitoring process Methods 0.000 claims abstract description 11
- 238000013508 migration Methods 0.000 claims description 27
- 230000005012 migration Effects 0.000 claims description 27
- 238000013507 mapping Methods 0.000 claims description 9
- 238000004891 communication Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 11
- 230000008569 process Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 8
- 230000015556 catabolic process Effects 0.000 description 5
- 238000006731 degradation reaction Methods 0.000 description 5
- 230000007547 defect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000011664 signaling Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 102100025851 Acyl-coenzyme A thioesterase 2, mitochondrial Human genes 0.000 description 1
- 102100025848 Acyl-coenzyme A thioesterase 8 Human genes 0.000 description 1
- 101100107935 Homo sapiens ACOT2 gene Proteins 0.000 description 1
- 101000720381 Homo sapiens Acyl-coenzyme A thioesterase 8 Proteins 0.000 description 1
- 101001056699 Homo sapiens Intersectin-2 Proteins 0.000 description 1
- 101000654583 Homo sapiens Splicing factor, suppressor of white-apricot homolog Proteins 0.000 description 1
- 102100025505 Intersectin-2 Human genes 0.000 description 1
- 101100107938 Mus musculus Acot3 gene Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000008021 deposition Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本申请公开了一种内存回收方法、装置、设备、存储介质及产品,属于内存回收技术领域。该方法由计算机系统执行,计算机系统中包括至少两级交换SWAP设备,方法包括:监测至少两级SWAP设备的存储占用量,至少两级SWAP设备包括上级SWAP设备和下级SWAP设备;在上级SWAP设备的存储占用量达到水位线阈值的情况下,确定上级SWAP设备中存储的最近最少使用的目标数据;将目标数据,从上级SWAP设备中迁移到下级SWAP设备。该方法通过将囤积在上级SWAP设备中的最近最少使用的目标数据换出到下级SWAP设备中,实现将使用频率相对较高的内存回收数据换出到上级SWAP设备中。
Description
技术领域
本申请实施例涉及内存回收技术领域,特别涉及一种内存回收方法、装置、设备、存储介质及产品。
背景技术
计算机系统中的应用程序为了提高性能,大多采用内存密集型策略,即尽量利用内存,提高缓存性能,因而存在大量应用程序长时间占据内存的情况。但随着计算机系统的内存逐渐被消耗,应用程序无法获取更多内存进行使用,因此需要进行内存回收。
相关技术中,通过将计算机系统中的部分内存回收数据换出到SWAP(交换)设备中,以降低计算机系统的内存压力。计算机系统中支持至少两级SWAP设备,每个SWAP设备具有不同的优先级,从而具有不同的使用顺序。SWAP设备的使用规则是优先使用具有第一优先级的SWAP设备,在具有第一优先级的SWAP设备被使用完毕的情况下,继续使用具有第二优先级的SWAP设备。其中,优先级越高的SWAP设备的访问速度越快。
但由于计算机系统中长时间不使用的内存回收数据一旦被换出到具有第一优先级的SWAP设备后就长时间不会再被换入,因此上述方法会导致大量长时间不使用的内存回收数据囤积在具有第一优先级的SWAP设备上,从而使得具有第一优先级的SWAP设备不可用,而使用频率相对较高的内存回收数据只能换出到次级SWAP设备中,从而影响频率相对较高的内存回收数据在换入时的速度。
发明内容
本申请提供了一种内存回收方法、装置、设备、存储介质及产品。所述技术方案如下:
根据本申请的一方面,提供了一种内存回收方法,所述方法由计算机系统执行,所述计算机系统中包括至少两级交换SWAP设备,所述方法包括:
监测所述至少两级SWAP设备的存储占用量,所述至少两级SWAP设备包括上级SWAP设备和下级SWAP设备;
在所述上级SWAP设备的存储占用量达到水位线阈值的情况下,确定所述上级SWAP设备中存储的最近最少使用的目标数据;
将所述目标数据,从所述上级SWAP设备中迁移到所述下级SWAP设备。
根据本申请的另一方面,提供了一种内存回收装置,所述装置中包括至少两级交换SWAP设备,所述装置包括:
监测模块,用于监测所述至少两级SWAP设备的存储占用量,所述至少两级SWAP设备包括上级SWAP设备和下级SWAP设备;
确定模块,用于在所述上级SWAP设备的存储占用量达到水位线阈值的情况下,确定所述上级SWAP设备中存储的最近最少使用的目标数据;
迁移模块,用于将所述目标数据,从所述上级SWAP设备中迁移到所述下级SWAP设备。
根据本申请的另一方面,提供了一种计算机设备,所述计算机设备包括:处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行,以实现如上方面所述的内存回收方法。
根据本申请的另一方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如上方面所述的内存回收方法。
根据本申请的另一方面,提供了一种计算机程序产品,该计算机程序产品包括至少一段程序,所述至少一段程序存储在计算机可读存储介质中;计算机设备的处理器从所述计算机可读存储介质中读取所述至少一段程序,所述处理器执行所述至少一段程序,使得所述计算机设备执行如上方面所述的内存回收方法。
本申请提供的技术方案带来的有益效果至少包括:
通过监测至少两级SWAP设备的存储占用量,在上级SWAP设备的存储占用量达到水位线阈值的情况下,将上级SWAP设备中存储的最近最少使用的目标数据迁移到下级SWAP设备中,实现将囤积在上级SWAP设备中的最近最少使用的目标数据换出到下级SWAP设备中,使上级SWAP设备中的存储空间得以释放,从而实现将使用频率相对较高的内存回收数据换出到上级SWAP设备中,避免因多级SWAP设备的使用不平衡而导致计算机系统的性能下降。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的计算机系统的结构框图;
图2是本申请一个示例性实施例提供的内存回收方法的结构框图;
图3是本申请一个示例性实施例提供的内存回收方法的流程图;
图4是本申请一个示例性实施例提供的内存回收方法的示意图;
图5是本申请一个示例性实施例提供的内存回收方法的流程图;
图6是本申请一个示例性实施例提供的内存回收方法的示意图;
图7是本申请一个示例性实施例提供的内存回收方法的流程图;
图8是本申请一个示例性实施例提供的内存回收方法的示意图;
图9是本申请一个示例性实施例提供的内存回收方法的流程图;
图10是本申请一个示例性实施例提供的内存回收方法的流程图;
图11是本申请一个示例性实施例提供的内存回收方法的流程图;
图12是本申请一个示例性实施例提供的内存回收装置的框图;
图13是本申请一个示例性实施例提供的计算机设备的框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请实施例中涉及的名词进行简单介绍:
SWAP(交换):是指在计算机系统的物理内存不够用的时候,把物理内存中的一部分存储空间释放出来,临时保存到预先设定好的存储空间中。
SWAP设备:是指计算机系统中的内存数据的临时存放空间,用于从物理内存中内存数据,使获得更多空闲物理内存。在计算机系统的物理内存不够用的时候,则将物理内存中的一部分内存数据换出到SWAP设备中。
多级SWAP设备:是指在计算机系统中,使用顺序具有不同优先级的SWAP设备。一般情况下,计算机系统在换出内存数据时会优先使用优先级高的SWAP设备,在优先级高的SWAP设备被使用完毕的情况下,才使用优先级低的SWAP设备。其中,优先级越高的SWAP设备的访问速度越快。
最近最少使用(Least Recently Used,LRU):是指计算机系统中的一种常用算法。通过维护一个LRU链表,计算机系统可以快速找出最近最久未使用的一项内存数据。
换出占位项(SWAP Entry):是指SWAP设备中用于存储或记录对应内存回收数据的物理地址的项,包括内存回收数据所处的SWAP设备的标识符、内存回收数据在SWAP设备中的偏移量等信息。
图1示出了本申请一个示例性实施例提供的计算机系统100的结构框图。该计算机系统100包括一个服务器或由几个服务器组成集群。
服务器包括硬件层110、操作系统层120和应用层130。
硬件层110包括电源、中央处理器(Central Processing Unit,CPU)、内存、硬盘、网络设备、输入/输出设备(I/O设备)、风扇、光驱中的至少一个。如图1以包括CPU111、内存112和硬盘113为例。硬件层110中还设置有用于临时存放计算机系统100的内存回收数据的虚拟内存空间,该虚拟内存也称为SWAP设备1131。该SWAP设备1131主要用于在计算机系统100中的物理内存不够用时,将物理内存中的部分内存空间释放出来,并将释放出的部分内存空间中的内存回收数据保存到SWAP设备1131中。本申请实施例中以SWAP设备是硬盘为例进行说明。本领域内的技术人员应该能够知晓,该SWAP设备还可以是计算机系统中预留的内存区域。
计算机系统中包括多个SWAP设备,每个SWAP设备具有不同的使用优先级,一般情况下会优先使用优先级高的SWAP设备,在优先级高的SWAP设备被使用完毕的情况下,才使用优先级低的SWAP设备。示例性,由图1所示的计算机系统100中包括SWAP设备1132、SWAP设备1133和SWAP设备1134。其中,SWAP设备1132的优先级高于SWAP设备1133的优先级,SWAP设备1133的优先级高于SWAP设备1134。计算机系统100优先使用SWAP设备1132将内存空间中的内存回收数据换出,如图1所示,SWAP设备1132中包括长时间不使用的内存回收数据11321和使用频率相对较高的内存回收数据11322,长时间不使用的内存回收数据11321和使用频率相对较高的内存回收数据11322将SWAP设备1132中的空闲空间全部使用完毕。因此,计算机系统100继续使用SWAP设备1133将内存空间中的内存回收数据换出,如图1所示,SWAP设备1133中包括长时间不使用的内存回收数据11331、使用频率相对较高的内存回收数据11332以及剩余空闲空间11333。在SWAP设备1133中的空闲空间还未全部使用完毕的情况下,计算机系统100不继续使用SWAP设备1134,因此SWAP设备1134中只包括空闲空间11341。本申请实施例中,以内存优化(ZRAM)设备、非易失性存储(Non-Volatile MemoryExpress,NVME)设备和机械硬盘(Hard Disk Drive,HDD)三级SWAP设备为例。其中,ZRAM的优先级最高,且访问速度最快;NVME的优先级小于ZRAM的优先级,且NVME的访问速度小于ZRAM的访问速度;SDD/HDD/Hybrid的优先级最低,小于NVME的优先级;且SDD/HDD/Hybrid的访问速度最慢,小于NVME的访问速度。在不使用本申请提出的内存回收方法时,依靠计算机系统中原有的SWAP设备平衡机制,很快就会导致具有最高优先级的SWAP设备中沉积大量长时间不使用的内存回收数据。
操作系统层120主要用于实现计算机系统100中对多种资源的分配和对多个进程的管理。本申请实施例中,以包括Linux操作系统为例。
应用层130包括在计算机系统100中运行的一个或多个应用程序。如图1所示,包括应用程序1301。每个应用程序又包括一个或多个进程。本领域技术人员可以知晓,该应用程序的数量可以更多或更少,比如上述应用程序可以仅为一个,或者上述应用程序为几十个或几百个,或者更多数量。本申请实施例对应用程序的数量不加以限定。
图2示出了本申请一个示例性实施例提供的内存回收方法的结构图。该方法包括计算机系统中的物理内存141和SWAP设备143。
物理内存141中包括至少一个或一组内存数据,示例性的,如图2所示,包括内存数据1、内存数据2、内存数据3、内存数据4和内存数据5。本领域技术人员可以知晓,该内存数据的数量可以更多或更少,比如上述内存数据可以仅为一个,或者上述内存数据为几十个或几百个,或者更多数量。本申请实施例对内存数据的数量不加以限定。在计算机系统中,物理内存141对应一个内存映射表142,内存映射表142中包括对应内存数据的页表项(PageTable Entry,PTE),该PTE用于存储或记录对应的内存数据在计算机系统中的位置。示例性的,如PTE1对应内存数据1、PTE2对应内存数据2、PTE3对应内存数据3。
物理内存141通过将其中的内存数据换出到SWAP设备143中,以实现内存回收。SWAP设备143中包括回收得到的内存回收数据。每个SWAP设备对应维护一个LRU链表,该LRU链表用于维护不同的内存回收数据回收至SWAP设备中的顺序,该顺序一般情况下是依次从最近最少使用的内存回收数据到最近最多使用的内存回收数据。示例性的,如图2所示,SWAP设备143对应维护一个LRU链表144,该LRU链表中存储或记录有换出占位项,示例性的,LRU链表144中记录有换出占位项1、换出占位项2、换出占位项3和换出占位项4,其中换出占位项1、换出占位项2、换出占位项3和换出占位项4在LRU链表144中按照顺序排列。该换出占位项用于记录内存回收数据的存储位置信息。该存储位置信息包括内存回收数据所处的SWAP设备的标识符、内存回收数据在SWAP设备中的偏移量等信息。
内存回收数据被从物理内存141中换出到SWAP设备143中时,计算机系统对应分配一个换出占位项,并将该换出占位项插入到LRU链表144中。内存回收数据被从SWAP设备143中重新换入到物理内存141中时,计算机系统则重新在内存映射表142中写入一个新的PTE。
图3是本申请一个示例性实施例提供的内存回收方法的流程图。该方法由计算机系统执行,该计算机系统包括至少两级交换SWAP设备,该方法包括:
步骤220:监测至少两级SWAP设备的存储占用量;
监测计算机系统中的至少两级SWAP设备的存储占用量。该至少两级SWAP设备根据优先级的不同包括上级SWAP设备和下级SWAP设备,上级SWAP设备的优先级高于下级SWAP设备的优先级,因此计算机系统在换出物理内存中的内存回收数据时,优先将内存回收数据换出到上级SWAP设备中。
对任意一级SWAP设备的存储占用量分别统计,该存储占用量是指SWAP设备中的空闲空间的使用量,该使用量用于反映SWAP设备中已经存储的内存回收数据。示例性的,如图4所示,以计算机系统中包括上级SWAP设备201和下级SWAP设备202为例进行举例说明。上级SWAP设备201中包括长时间不使用的内存回收数据2011、使用频率相对较高的内存回收数据2012以及剩余空闲空间2013,则上级SWAP设备201的存储占用量为长时间不使用的内存回收数据2011和使用频率相对较高的内存回收数据2012的和。下级SWAP设备202中包括长时间不使用的内存回收数据2021、使用频率相对较高的内存回收数据2022以及剩余空闲空间2023,则下级SWAP设备202的存储占用量为长时间不使用的内存回收数据2021和使用频率相对较高的内存回收数据2022的和。
步骤240:在上级SWAP设备的存储占用量达到水位线阈值的情况下,确定上级SWAP设备中存储的最近最少使用的目标数据;
在上级SWAP设备的存储占用量达到水位线阈值的情况下,确定上级SWAP设备中存储的最近最少使用的目标数据。该水位线阈值是指上级SWAP设备中的空闲空间的使用量阈值,该使用量阈值用于指示上级SWAP设备中的剩余空闲空间不足,当上级SWAP设备的存储占用量小于或等于水位线阈值时,则反映上级SWAP设备中的剩余空闲空间充足,可以继续换出内存回收数据到该上级SWAP设备中;当上级SWAP设备的存储占用量大于水位线阈值时,则反映上级SWAP设备中的剩余空闲空间不足,存在无法继续换出内存回收数据到该上级SWAP设备中的可能性。该水位线阈值可以是计算机系统中提前预设的,也可以是根据计算机系统的运行状况实时调整的,如该水位线阈值可以设置为上级SWAP设备的最大存储空间的60%、80%,如可以根据计算机系统的全局压力阻塞信息(Pressure StallInformation,PSI)值调整,当全局PSI值较小,代表此时计算机系统的资源调度的延时小,则调低水位线阈值以及时回收更多内存;当全局PSI值较大,代表此时计算机系统的资源调度的延时大,则调高水位线阈值避免对计算机系统的正常运行产生影响。
该最近最少使用的目标数据是指上级SWAP设备中存储的长时间不使用的内存回收数据,该最近最少使用的目标数据能够通过上级SWAP设备中维护的LRU链表快速查找得到。示例性的,如图4所示,在上级SWAP设备201的存储占用量达到水位线阈值的情况下,确定上级SWAP设备201中长时间不使用的内存回收数据2011即是最近最少使用的目标数据。
步骤260:将目标数据从上级SWAP设备中迁移到下级SWAP设备。
将上述确定的上级SWAP设备中存储的最近最少使用的目标数据,从上级SWAP设备中迁移到下级SWAP设备。示例性的,如图4所示,确定上级SWAP设备201中存储的最近最少使用的目标数据即是长时间不使用的内存回收数据2011,将该内存回收数据从上级SWAP设备201中迁移到下级SWAP设备202中,以释放上级SWAP设备201中的存储空间。
综上所述,本实施例提供的方法,通过监测至少两级SWAP设备的存储占用量,在上级SWAP设备的存储占用量达到水位线阈值的情况下,将上级SWAP设备中存储的最近最少使用的目标数据迁移到下级SWAP设备中,实现将囤积在上级SWAP设备中的最近最少使用的目标数据换出到下级SWAP设备中,使上级SWAP设备中的存储空间得以释放,避免因多级SWAP设备的使用不平衡而导致计算机系统的性能下降。
图5是本申请一个示例性实施例提供的内存回收方法的流程图。上述步骤260还包括如下至少一个子步骤:
步骤261:确定下级SWAP设备中处于空闲的目标存储位置;
在下级SWAP设备中确定处于空闲的目标存储位置,该目标存储位置是指下级SWAP设备中除去已经存储的物理内存中的长时间不使用的内存回收数据和使用频率相对较高的内存回收数据以外的剩余空闲空间,该剩余空闲空间可以用于继续存储内存回收数据。示例性的,如图4所示,下级SWAP设备202中的剩余空闲空间2023即是目标存储位置。
步骤262:将目标数据从上级SWAP设备中迁移到下级SWAP设备的目标存储位置;
将上述确定的上级SWAP设备中存储的最近最少使用的目标数据,从上级SWAP设备中迁移到下级SWAP设备的目标存储位置。示例性的,如图6所示,确定上级SWAP设备201中存储的最近最少使用的目标数据即是长时间不使用的内存回收数据2011,将该内存回收数据从上级SWAP设备201中迁移到下级SWAP设备202中的剩余空闲空间2023中,以释放上级SWAP设备201中的存储空间。
步骤263:基于目标存储位置,更新下级SWAP设备的LRU链表。
基于下级SWAP设备中处于空闲的目标存储位置,对下级SWAP设备的LRU链表进行更新。本实施例中,任意一个SWAP设备中包括一个LRU链表,该LRU链表用于维护不同的内存回收数据回收至SWAP设备中的顺序,该顺序一般情况下是依次从最近最少使用的内存回收数据到最近最多使用的内存回收数据。在将内存回收数据从上级SWAP设备向下级SWAP设备进行迁移时,上级SWAP设备对应的LRU链表和下级SWAP设备对应的LRU链表需要相应地进行修改,包括在上级SWAP设备的LRU链表中将目标数据对应的换出占位项进行移除,在上级SWAP设备的LRU链表中将目标数据对应的换出占位项进行插入。示例性的,如图6所示,上级SWAP设备201对应LRU链表1,下级SWAP设备202对应LRU链表2。基于下级SWAP设备202的目标存储位置,对下级SWAP设备202的LRU链表2进行更新,将目标存储位置对应的换出占位项插入下级SWAP设备202的LRU链表2中。
综上所述,本实施例提供的方法,通过将目标数据从上级SWAP设备中迁移到下级SWAP设备的目标存储位置,并更新下级SWAP设备的LRU链表,实现将囤积在上级SWAP设备中的最近最少使用的目标数据换出到下级SWAP设备中,使上级SWAP设备中的存储空间得以释放,同时将下级SWAP设备对应的LRU链表进行更新,避免因更新不及时导致计算机系统无法准确确定内存回收数据的存储位置。
图7是本申请一个示例性实施例提供的内存回收方法的流程图。上述步骤263还包括如下至少一个子步骤:
步骤2631:为目标数据分配指向目标存储位置的下级换出占位项;
为上述确定的上级SWAP设备中存储的最近最少使用的目标数据分配指向目标存储位置的下级换出占位项。该换出占位项用于记录内存回收数据的存储位置信息。该存储位置信息包括内存回收数据所处的SWAP设备的标识符、内存回收数据在SWAP设备中的偏移量等信息。内存回收数据被换出到SWAP设备中时,计算机系统对应分配一个换出占位项,并将该换出占位项写入内存回收数据在物理内存中对应的PTE所在的页表位置。示例性的,如图8所示,上级SWAP设备201中的内存回收数据对应换出占位项1,换出占位项1中包括上级SWAP设备201的标识符、对应的内存回收数据的偏移量等。下级SWAP设备202中的内存回收数据对应换出占位项2,换出占位项2中包括下级SWAP设备202的标识符、对应的内存回收数据的偏移量等。
当将目标数据从上级SWAP设备中迁移到下级SWAP设备的目标存储位置时,为目标数据分配指向目标存储位置的下级换出占位项,如换出占位项2。
步骤2632:基于下级换出占位项,更新下级SWAP设备的LRU链表。
基于指向目标存储位置的下级换出占位项,对下级SWAP设备的LRU链表进行更新。本实施例中,任意一个SWAP设备中包括一个LRU链表,该LRU链表用于维护不同的内存回收数据回收至SWAP设备中的顺序,该顺序一般情况下是依次从最近最少使用的内存回收数据到最近最多使用的内存回收数据,该LRU链表按照存入时间依次存储有不同内存回收数据的下级换出占位项。示例性的,如图8所示,根据下级SWAP设备202中对应的下级换出占位项2,对下级SWAP设备的LRU链表2进行更新,将下级换出占位项2添加到LRU链表2中的对应位置处。
综上所述,本实施例提供的方法,通过为目标数据分配指向目标存储位置的下级换出占位项,更新下级SWAP设备的LRU链表,实现根据内存回收数据对应的换出占位项将下级SWAP设备对应的LRU链表进行更新,避免因更新不及时导致计算机系统无法准确确定内存回收数据的存储位置。
图9是本申请一个示例性实施例提供的内存回收方法的流程图。上述步骤240还可以由步骤241实现:
步骤241:在上级SWAP设备的存储占用量达到水位线阈值的情况下,基于上级SWAP设备对应的LRU链表,确定上级SWAP设备中存储的最近最少使用的目标数据。
在上级SWAP设备的存储占用量达到水位线阈值的情况下,基于上级SWAP设备对应的LRU链表,确定上级SWAP设备中存储的最近最少使用的目标数据。该水位线阈值是指上级SWAP设备中的空闲空间的使用量阈值,该使用量阈值用于指示上级SWAP设备中的剩余空闲空间不足,当上级SWAP设备的存储占用量小于或等于水位线阈值时,则反映上级SWAP设备中的剩余空闲空间充足,可以继续换出内存回收数据到该上级SWAP设备中;当上级SWAP设备的存储占用量大于水位线阈值时,则反映上级SWAP设备中的剩余空闲空间不足,存在无法继续换出内存回收数据到该上级SWAP设备中的可能性。该水位线阈值可以是计算机系统中提前预设的,也可以是根据计算机系统的运行状况实时调整的,如该水位线阈值可以设置为上级SWAP设备的最大存储空间的60%、80%。
至少两级SWAP设备分别对应有各自的LRU链表,示例性的,如图6所示,上级SWAP设备201对应LRU链表1,下级SWAP设备202对应LRU链表2。该LRU链表用于维护不同的内存回收数据回收至当前SWAP设备中的顺序,该顺序一般情况下是依次从最近最少使用的内存回收数据到最近最多使用的内存回收数据。在将内存回收数据从上级SWAP设备向下级SWAP设备进行迁移时,上级SWAP设备对应的LRU链表和下级SWAP设备对应的LRU链表需要相应地进行修改,包括在上级SWAP设备的LRU链表中将目标数据对应的换出占位项进行移除,在上级SWAP设备的LRU链表中将目标数据对应的换出占位项进行插入。该最近最少使用的目标数据是指上级SWAP设备中存储的长时间不使用的内存回收数据,该最近最少使用的目标数据能够通过上级SWAP设备中维护的LRU链表快速查找得到。
综上所述,本实施例提供的方法,通过基于上级SWAP设备对应的LRU链表,确定上级SWAP设备中存储的最近最少使用的目标数据,实现将囤积在上级SWAP设备中的最近最少使用的目标数据换出到下级SWAP设备中,使上级SWAP设备中的存储空间得以释放,避免因多级SWAP设备的使用不平衡而导致计算机系统的性能下降。
图10是本申请一个示例性实施例提供的内存回收方法的流程图。该方法由计算机系统执行,该方法还包括:
步骤320:在内存映射表中,将目标数据对应的页表项中的上级换出占位项替换为下级换出占位项。
在计算机系统中,物理内存对应一个内存映射表,该内存映射表中包括对应内存数据的PTE,该PTE用于存储或记录对应的内存数据在物理内存中的位置。在对应的内存数据被从物理内存中换出到SWAP设备中的情况下,计算机系统则重新分配一个换出占位项对应回收得到的内存回收数据,该换出占位项用于记录内存回收数据的存储位置信息。该存储位置信息包括内存回收数据所处的SWAP设备的标识符、内存回收数据在SWAP设备中的偏移量等信息。计算机系统同时将该换出占位项写入内存数据从物理内存中换出前对应的PTE位置处。计算机系统在访问该换出占位项时,会发生页面错误。计算机系统通过捕捉页面错误的信息,实现将内存数据换入到物理内存中,并同时释放SWAP设备上的换出占位项。
当上级SWAP设备中存储的最近最少使用的目标数据,从上级SWAP设备中迁移到下级SWAP设备的目标存储位置时,目标数据对应的上级换出占位项会更新为新的对应的下级换出占位项,此时目标数据对应的位置发生改变。则在内存映射表中,将目标数据对应的页表项中的上级换出占位项也替换为下级换出占位项。
综上所述,本实施例提供的方法,通过在内存映射表中,将目标数据对应的页表项中的上级换出占位项替换为下级换出占位项,实现根据目标数据对应的换出占位项将内存映射表中的上级换出占位项替换为下级换出占位项,避免因更新不及时导致计算机系统无法准确确定内存回收数据的存储位置。
图11是本申请一个示例性实施例提供的内存回收方法的流程图。该方法还包括:
步骤420:在上级SWAP设备的存储占用量达到水位线阈值,且上级SWAP设备具有至少两个下级SWAP设备的情况下,从至少两个下级SWAP设备中选择出本次迁移的目的下级SWAP设备。
该水位线阈值是指上级SWAP设备中的空闲空间的使用量阈值,该使用量阈值用于指示上级SWAP设备中的剩余空闲空间不足,当上级SWAP设备的存储占用量小于或等于水位线阈值时,则反映上级SWAP设备中的剩余空闲空间充足,可以继续换出内存回收数据到该上级SWAP设备中;当上级SWAP设备的存储占用量大于水位线阈值时,则反映上级SWAP设备中的剩余空闲空间不足,存在无法继续换出内存回收数据到该上级SWAP设备中的可能性。该水位线阈值可以是计算机系统中提前预设的,也可以是根据计算机系统的运行状况实时调整的,如该水位线阈值可以设置为上级SWAP设备的最大存储空间的60%、80%。
在上级SWAP设备的存储占用量达到水位线阈值,且上级SWAP设备具有至少两个下级SWAP设备的情况下,从至少两个下级SWAP设备中选择出本次迁移的目的下级SWAP设备。该至少两个下级SWAP设备是指在计算机系统中的使用顺序的优先级小于该上级SWAP设备的使用顺序的优先级。在至少两个下级SWAP设备中,优先级高的SWAP设备在计算机系统中排列的使用顺序在前,优先级高的SWAP设备在计算机系统中排列的使用顺序在后。
在一些实施例中,将至少两个下级SWAP设备中空闲存储量最大的下级SWAP设备,选择为本次迁移的目的下级SWAP设备。该空闲存储量是指SWAP设备用于存储或换出内存数据的剩余空闲空间。
在一些实施例中,将至少两个下级SWAP设备中优先级最高的下级SWAP设备,选择为本次迁移的目的下级SWAP设备。
在一些实施例中,将至少两个下级SWAP设备中优先级最低的下级SWAP设备,选择为本次迁移的目的下级SWAP设备。
综上所述,本实施例提供的方法,通过在上级SWAP设备具有至少两个下级SWAP设备的情况下,从至少两个下级SWAP设备中选择出本次迁移的目的下级SWAP设备,实现根据能够根据不同的需求选择对应的迁移方式或组合,从而既实现使上级SWAP设备中的存储空间得以释放,又避免因多级SWAP设备的使用不平衡而导致计算机系统的性能下降。
本申请实施例提出了一种基于SWAP设备的特性能够自动评估内存使用热度,并平衡利用多级内存SWAP设备的内存回收方法,实现提高计算机系统的可用内存,同时能够兼顾性能。此方法可以充分利用高性能的SWAP设备,同时保持不同级别的SWAP设备使用率的动态平衡,避免设备使用率不平衡导致而导致的性能下降,并可以自适应任意数量与级别的SWAP设备,且做到将内存数据从SWAP设备换入物理内存时无额外开销。
以下以ZRAM设备作为最高级SWAP设备作为一个通用的部署例子。则内存回收策略应该尽可能保证ZRAM设备的优先使用,从而保证换出和换入的性能。经过计算机系统的长期运行,ZRAM设备经常会被大量冷页(长时间不使用的内存数据)所占据,而无法完全被使用,导致热页(使用频率相对较高的内存数据)被挤压到下级SWAP设备。同时,ZRAM设备中本身也拥有常驻内存,因而导致内存无法被彻底释放。
示例性的,以ZRAM、NVME和HDD三级SWAP设备为例。其中,ZRAM设备性能最优异,且为最高优先级设备,NVME设备,HDD设备次之。在不使用本申请提出的内存回收方法的情况选,很快就会导致最高优先级SWAP设备中沉积大量冷页。
本申请实施例中,为每一个SWAP设备设定了一个水位线阈值,当SWAP设备中的使用用量超过水位线阈值时,自动将最冷的页下刷到较为慢速且廉价的SWAP设备上。该水位线阈值是指上级SWAP设备中的空闲空间的使用量阈值,该使用量阈值用于指示上级SWAP设备中的剩余空闲空间不足,当上级SWAP设备的存储占用量小于或等于水位线阈值时,则反映上级SWAP设备中的剩余空闲空间充足,可以继续换出内存回收数据到该上级SWAP设备中;当上级SWAP设备的存储占用量大于水位线阈值时,则反映上级SWAP设备中的剩余空闲空间不足,存在无法继续换出内存回收数据到该上级SWAP设备中的可能性。该水位线阈值可以是计算机系统中提前预设的,也可以是根据计算机系统的运行状况实时调整的,如该水位线阈值可以设置为上级SWAP设备的最大存储空间的60%、80%,如可以根据计算机系统的全局压力阻塞信息(Pressure Stall Information,PSI)值调整,当全局PSI值较小,代表此时计算机系统的资源调度的延时小,则调低水位线阈值以及时回收更多内存;当全局PSI值较大,代表此时计算机系统的资源调度的延时大,则调高水位线阈值避免对计算机系统的正常运行产生影响。
通过使用本申请实施例提出的内存回收方法,高优先级SWAP设备中的内存回收数据得以释放,该方法包括:将ZRAM设备中的最冷页迁移到NVME设备中,将NVME设备中的最冷页又进一步迁移到HDD设备中。由此,最高优先级的ZRAM设备中的空间得到了释放,使得热页可以优先使用ZRAM设备,既能保证计算机系统的运行性能,又进一步降低了计算机系统的内存压力。
本申请提出的内存回收方法无需修改现有的SWAP设备换出策略,而是通过单独的一套流程进行平衡,侵入性低,确保了逻辑的简单易懂和可维护性。
本申请提出的内存回收方法可以兼容任意多级SWAP设备,无需针对不同速率、不同访问方法的SWAP设备做出改变,在满足了工程设计需求后,可以自动适配所以类型的SWAP设备。
本申请提出的内存回收方法需要实现SWAP设备上被换出的内存页的冷热统计虚拟内存技术是管理内存的基础,每个进程所看到的物理内存均经过了一层页表的映射,每个页表项为指向物理地址的一个PTE。在换出时,选定一个SWAP设备并分配一个换出占位项,将该换出占位项写入原PTE所在的页表位置,并释放原指向的物理内存内存页。该换出占位项记录了该内存页所处的SWAP设备的标识符,以及偏移量等信息。在进程访问该换出占位项时,会发生页面错误,通过捕捉页面错误实现内存数据从SWAP设备换入到物理内存,并释放SWAP设备上的换出占位项。
本申请提出的内存回收方法为每个SWAP设备维护一个LRU链表。在一个内存页被换出到一个SWAP设备时,同步的将该内存页所分配的换出占位项记录在LRU链表中。由于SWAP设备的特性是必须经过页面错误来换入,同时会发生换出占位项的分配与释放,所以也必定会经过LRU链表处理,所以该方法可以高精度确保SWAP设备对应的LRU链表的准确。
基于已经被换出的物理内存内存页,本申请实施例提供的内存回收方法包括:
根据每个SWAP设备各自维护的LRU链表找出冷页,其中最长时间未使用的内存页即为最冷页。确定迁移的目标SWAP设备。SWAP设备原生支持优先级,在配置SWAP设备时可以指定优先级,或者默认情况下,最先挂载的设备则具有最高优先级。在一个相对高性能且优先级高的SWAP设备的使用量到达水位线阈值后,按照优先级找出第一个相对闲置的SWAP设备。在新选择的SWAP设备中,直接分配一个新的换出占位项,并将旧的换出占位项中对应的内容完整复制过去,则新选择的SWAP设备上便有了一个完整的旧的换出占位项的内容副本。修改页表并使新的页表指向新的换出占位项。在完成迁移后,原页表中的PTE仍旧指向旧的SWAP设备中的换出占位项,因此需要修改页表使指向新SWAP设备中的换出占位项。本申请实施例中提供的内存回收方法全程使用异步进程进行迁移,并由该进程直接更改页表项。当再次发生页面错误,需要换入内存数据时,则直接读取迁移后的对应SWAP设备。
本申请实施例中提供的内存回收方法通过维护每个SWAP设备的独立LRU链表进行换出内存页的热度分级管理,通过冷页的迁移,进行多级SWAP设备的自动平衡,设计上兼顾了通用性、性能和精确度。在使用多级SWAP设备的计算机系统中,可以做到对不同优先级的SWAP设备的充分利用,从而降低计算机系统中的内存压力,并保障运行性能。
图12示出了本申请一个示例性实施例提供的内存回收装置的框图。该装置中包括至少两级交换SWAP设备,该装置包括:
监测模块1210,用于监测至少两级SWAP设备的存储占用量,至少两级SWAP设备包括上级SWAP设备和下级SWAP设备。
确定模块1220,用于在上级SWAP设备的存储占用量达到水位线阈值的情况下,确定上级SWAP设备中存储的最近最少使用的目标数据。
迁移模块1230,用于将目标数据,从上级SWAP设备中迁移到下级SWAP设备。
确定模块1220,还用于确定下级SWAP设备中处于空闲的目标存储位置。
迁移模块1230,还用于将目标数据,从上级SWAP设备中迁移到下级SWAP设备的目标存储位置。
该装置还包括:
更新模块1240,用于基于目标存储位置,更新下级SWAP设备的LRU链表。
LRU链表用于维护不同的内存回收数据回收至下级SWAP设备中的顺序。
更新模块1240,还用于为目标数据分配指向目标存储位置的下级换出占位项。
更新模块1240,还用于基于下级换出占位项,更新下级SWAP设备的LRU链表。
LRU链表按照存入时间依次存储有不同内存回收数据的下级换出占位项。
至少两级SWAP设备分别对应有各自的LRU链表,LRU链表用于维护不同的内存回收数据回收至当前SWAP设备中的顺序。
确定模块1220,还用于在上级SWAP设备的存储占用量达到水位线阈值的情况下,基于上级SWAP设备对应的LRU链表,确定上级SWAP设备中存储的最近最少使用的目标数据。
更新模块1240,还用于在内存映射表中,将目标数据对应的页表项中的上级换出占位项替换为下级换出占位项。
其中,页表项用于存储目标数据在物理内存中的存储位置的指向信息,上级换出占位项是目标数据在上级SWAP设备内的存储位置的指向信息,下级换出占位项是目标数据在下级SWAP设备内的存储位置的指向信息。
迁移模块1230,还用于在上级SWAP设备的存储占用量达到水位线阈值,且上级SWAP设备具有至少两个下级SWAP设备的情况下,从至少两个下级SWAP设备中选择出本次迁移的目的下级SWAP设备。
迁移模块1230,还用于将至少两个下级SWAP设备中空闲存储量最大的下级SWAP设备,选择为本次迁移的目的下级SWAP设备。或,将至少两个下级SWAP设备中优先级最高的下级SWAP设备,选择为本次迁移的目的下级SWAP设备。或,将至少两个下级SWAP设备中优先级最低的下级SWAP设备,选择为本次迁移的目的下级SWAP设备。
图13示出了本申请一个示例性实施例提供的计算机设备的结构示意图。示意性的,计算机设备1300包括中央处理单元(Central Processing Unit,CPU)1301、包括随机存取存储器(random access memory,RAM)1302和只读存储器(read-only memory,ROM)1303的系统存储器1304,以及连接系统存储器1304和中央处理单元1301的系统总线1305。所述计算机设备1300还包括帮助计算机内的各个器件之间传输信息的基本输入/输出系统(I/O系统)1306,和用于存储操作系统1313、客户端1314和其他程序模块1315的大容量存储设备1307。
所述基本输入/输出系统1306包括有用于显示信息的显示器1308和用于用户输入信息的诸如鼠标、键盘之类的输入设备1309。其中所述显示器1308和输入设备1309都通过连接到系统总线1305的输入/输出控制器1310连接到中央处理单元1301。所述基本输入/输出系统1306还可以包括输入/输出控制器1310以用于接收和处理来自键盘、鼠标、或电子触控笔等多个其他设备的输入。类似地,输入/输出控制器1310还提供输出到显示屏、打印机或其他类型的输出设备。
所述大容量存储设备1307通过连接到系统总线1305的大容量存储控制器(未示出)连接到中央处理单元1301。所述大容量存储设备1307及其相关联的计算机可读介质为计算机设备1300提供非易失性存储。也就是说,所述大容量存储设备1307可以包括诸如硬盘或者只读光盘(Compact Disc Read-Only Memory,CD-ROM)驱动器之类的计算机可读介质(未示出)。
所述计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、可擦除可编程只读存储器(erasable programmable read-only memory,EPROM)、电可擦除可编程只读存储器(electrically erasable programmable read-only memory,EEPROM)、闪存或其他固态存储其技术,CD-ROM、数字通用光盘(Digital Versatile Disc,DVD)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知所述计算机存储介质不局限于上述几种。上述的系统存储器1304和大容量存储设备1307可以统称为存储器。
根据本申请的各种实施例,所述计算机设备1300还可以通过诸如因特网等网络连接到网络上的远程计算机运行。也即计算机设备1300可以通过连接在所述系统总线1305上的网络接口单元1311连接到网络1312,或者说,也可以使用网络接口单元1311来连接到其他类型的网络或远程计算机系统(未示出)。
本申请一示例性实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有至少一段程序,至少一段程序由处理器加载并执行以实现上述各个方法实施例提供的内存回收方法。
本申请一示例性实施例还提供了一种计算机程序产品,计算机程序产品包括至少一段程序,至少一段程序存储在可读存储介质中;通信设备的处理器从可读存储介质中读取信令,处理器执行信令,使得通信设备执行以实现上述各个方法实施例提供的内存回收方法。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同切换、改进等,均应包含在本申请的保护范围之内。
Claims (15)
1.一种内存回收方法,其特征在于,所述方法由计算机系统执行,所述计算机系统包括至少两级交换SWAP设备,所述方法包括:
监测所述至少两级SWAP设备的存储占用量,所述至少两级SWAP设备包括上级SWAP设备和下级SWAP设备;
在所述上级SWAP设备的存储占用量达到水位线阈值的情况下,确定所述上级SWAP设备中存储的最近最少使用的目标数据;
将所述目标数据,从所述上级SWAP设备中迁移到所述下级SWAP设备。
2.根据权利要求1所述的方法,其特征在于,所述将所述目标数据,从所述上级SWAP设备中迁移到所述下级SWAP设备,包括:
确定所述下级SWAP设备中处于空闲的目标存储位置;
将所述目标数据,从所述上级SWAP设备中迁移到所述下级SWAP设备的所述目标存储位置;
基于所述目标存储位置,更新所述下级SWAP设备的最近最少使用LRU链表,所述LRU链表用于维护不同的内存回收数据回收至所述下级SWAP设备中的顺序。
3.根据权利要求2所述的方法,其特征在于,所述基于所述目标存储位置,更新所述下级SWAP设备的最近最少使用LRU链表,包括:
为所述目标数据分配指向所述目标存储位置的下级换出占位项;
基于所述下级换出占位项,更新所述下级SWAP设备的LRU链表;所述LRU链表按照存入时间依次存储有不同内存回收数据的下级换出占位项。
4.根据权利要求1至3任一所述的方法,其特征在于,所述至少两级SWAP设备分别对应有各自的LRU链表,所述LRU链表用于维护不同的内存回收数据回收至当前SWAP设备中的顺序;
所述在所述上级SWAP设备的存储占用量达到水位线阈值的情况下,确定所述上级SWAP设备中存储的目标数据,包括:
在所述上级SWAP设备的存储占用量达到水位线阈值的情况下,基于所述上级SWAP设备对应的LRU链表,确定所述上级SWAP设备中存储的最近最少使用的目标数据。
5.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
在内存映射表中,将所述目标数据对应的页表项中的上级换出占位项替换为下级换出占位项;
其中,所述页表项用于存储所述目标数据在物理内存中的存储位置的指向信息,所述上级换出占位项是所述目标数据在所述上级SWAP设备内的存储位置的指向信息,所述下级换出占位项是所述目标数据在所述下级SWAP设备内的存储位置的指向信息。
6.根据权利要求1至3任一所述的方法,其特征在于,所述方法还包括:
在所述上级SWAP设备的存储占用量达到水位线阈值,且所述上级SWAP设备具有至少两个下级SWAP设备的情况下,从所述至少两个下级SWAP设备中选择出本次迁移的目的下级SWAP设备。
7.根据权利要求6所述的方法,其特征在于,所述从所述至少两个下级SWAP设备中选择出本次迁移的目的下级SWAP设备,包括:
将所述至少两个下级SWAP设备中空闲存储量最大的下级SWAP设备,选择为本次迁移的目的下级SWAP设备;
或,
将所述至少两个下级SWAP设备中优先级最高的下级SWAP设备,选择为本次迁移的目的下级SWAP设备;
或,
将所述至少两个下级SWAP设备中优先级最低的下级SWAP设备,选择为本次迁移的目的下级SWAP设备。
8.一种内存回收装置,其特征在于,所述装置中包括至少两级SWAP设备,所述装置包括:
监测模块,用于监测所述至少两级SWAP设备的存储占用量,所述至少两级SWAP设备包括上级SWAP设备和下级SWAP设备;
确定模块,用于在所述上级SWAP设备的存储占用量达到水位线阈值的情况下,确定所述上级SWAP设备中存储的最近最少使用的目标数据;
迁移模块,用于将所述目标数据,从所述上级SWAP设备中迁移到所述下级SWAP设备。
9.根据权利要求8所述的装置,其特征在于,所述确定模块,还用于确定所述下级SWAP设备中处于空闲的目标存储位置;
所述迁移模块,还用于将所述目标数据,从所述上级SWAP设备中迁移到所述下级SWAP设备的所述目标存储位置;
所述装置还包括:
更新模块,用于基于所述目标存储位置,更新所述下级SWAP设备的LRU链表,所述LRU链表用于维护不同的内存回收数据回收至所述下级SWAP设备中的顺序。
10.根据权利要求9所述的装置,其特征在于,所述更新模块,还用于为所述目标数据分配指向所述目标存储位置的下级换出占位项;
所述更新模块,还用于基于所述下级换出占位项,更新所述下级SWAP设备的LRU链表;所述LRU链表按照存入时间依次存储有不同内存回收数据的下级换出占位项。
11.根据权利要求8至10任一所述的装置,其特征在于,所述至少两级SWAP设备分别对应有各自的LRU链表,所述LRU链表用于维护不同的内存回收数据回收至当前SWAP设备中的顺序;
所述确定模块,还用于在所述上级SWAP设备的存储占用量达到水位线阈值的情况下,基于所述上级SWAP设备对应的LRU链表,确定所述上级SWAP设备中存储的最近最少使用的目标数据。
12.根据权利要求8至10任一所述的装置,其特征在于,所述更新模块,还用于在内存映射表中,将所述目标数据对应的页表项中的上级换出占位项替换为下级换出占位项;
其中,所述页表项用于存储所述目标数据在物理内存中的存储位置的指向信息,所述上级换出占位项是所述目标数据在所述上级SWAP设备内的存储位置的指向信息,所述下级换出占位项是所述目标数据在所述下级SWAP设备内的存储位置的指向信息。
13.一种计算机设备,其特征在于,所述计算机设备包括:处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行,以实现如权利要求1至7任一项所述的内存回收方法。
14.一种计算机可读存储介质,其特征在于,所述可读存储介质中存储有至少一段程序,所述至少一段程序由处理器加载并执行以实现如权利要求1至7任一项所述的内存回收方法。
15.一种计算机程序产品,其特征在于,所述计算机程序产品包括至少一段程序,所述至少一段程序存储在计算机可读存储介质中;通信设备的处理器从所述计算机可读存储介质中读取所述至少一段程序,所述处理器执行所述至少一段程序,使得所述通信设备执行如权利要求1至7任一项所述的内存回收方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310089221.XA CN118363875A (zh) | 2023-01-18 | 2023-01-18 | 内存回收方法、装置、设备、介质及产品 |
PCT/CN2023/131408 WO2024152705A1 (zh) | 2023-01-18 | 2023-11-14 | 内存回收方法、装置、设备、介质及产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310089221.XA CN118363875A (zh) | 2023-01-18 | 2023-01-18 | 内存回收方法、装置、设备、介质及产品 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118363875A true CN118363875A (zh) | 2024-07-19 |
Family
ID=91877107
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310089221.XA Pending CN118363875A (zh) | 2023-01-18 | 2023-01-18 | 内存回收方法、装置、设备、介质及产品 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118363875A (zh) |
WO (1) | WO2024152705A1 (zh) |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104881241A (zh) * | 2014-02-28 | 2015-09-02 | 华为技术有限公司 | 交换操作的实现方法和装置 |
CN109508301B (zh) * | 2017-09-14 | 2021-10-29 | 中国移动通信集团重庆有限公司 | 终端、应用数据的处理方法、数据处理设备及存储介质 |
CN111522659B (zh) * | 2020-04-15 | 2024-04-19 | 联想(北京)有限公司 | 一种空间使用方法和装置 |
CN113590509B (zh) * | 2020-04-30 | 2024-03-26 | 华为技术有限公司 | 一种页交换的方法、存储系统和电子设备 |
CN114036076A (zh) * | 2021-10-05 | 2022-02-11 | 天津职业技术师范大学(中国职业培训指导教师进修中心) | 动态内存融合与预取技术 |
-
2023
- 2023-01-18 CN CN202310089221.XA patent/CN118363875A/zh active Pending
- 2023-11-14 WO PCT/CN2023/131408 patent/WO2024152705A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024152705A9 (zh) | 2024-09-19 |
WO2024152705A1 (zh) | 2024-07-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105095094B (zh) | 内存管理方法和设备 | |
CN101221536B (zh) | 嵌入式系统的内存管理方法及装置 | |
US7949839B2 (en) | Managing memory pages | |
US9805048B2 (en) | System and method for managing a deduplication table | |
US20150154216A1 (en) | System and methods for prioritizing data in a cache | |
KR20110117099A (ko) | 메모리 장치에서 맵핑 어드레스 테이블을 유지관리하는 방법 | |
CN114372007A (zh) | 存储器系统及控制非易失性存储器的控制方法 | |
JPH0816482A (ja) | フラッシュメモリを用いた記憶装置およびその記憶制御方法 | |
CN103150122B (zh) | 一种磁盘缓存空间管理方法和装置 | |
CN108959113B (zh) | 用于闪存感知堆存储器管理的方法和系统 | |
KR101061483B1 (ko) | 메모리 회로 및 메모리 회로의 엑세스 방법, 메모리 관리 시스템 및 메모리 관리방법 | |
CN113590045B (zh) | 数据分层式存储方法、装置及存储介质 | |
CN103020077A (zh) | 一种电力系统实时数据库内存管理方法 | |
JPH11143779A (ja) | 仮想記憶装置におけるページング処理システム | |
CN118363875A (zh) | 内存回收方法、装置、设备、介质及产品 | |
US12259793B2 (en) | Allocating system RDP metadata space with IO performance priority | |
CN118012341A (zh) | 一种数据存储方法和分布式存储处理系统 | |
CN113867947A (zh) | 一种异构内存分配方法、装置及电子设备 | |
CN118732955B (zh) | 时序数据存储方法、装置、设备、介质及计算机程序产品 | |
CN118363879A (zh) | 内存回收方法、装置、设备、介质及产品 | |
CN115442388B (zh) | 用于分布式存储集群利用率100%的扩容方法、装置及系统 | |
CN112000471B (zh) | 内存优化方法及装置 | |
CN119645651A (zh) | 内存分配方法、装置、计算机设备、存储介质和程序产品 | |
CN119645948A (zh) | 一种配额分配方法、装置及其他设备 | |
CN116382574A (zh) | Buffer管理方法、装置及存储设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |