CN112035253B - 一种linux系统页缓存回收方法及相关装置 - Google Patents

一种linux系统页缓存回收方法及相关装置 Download PDF

Info

Publication number
CN112035253B
CN112035253B CN202010879784.5A CN202010879784A CN112035253B CN 112035253 B CN112035253 B CN 112035253B CN 202010879784 A CN202010879784 A CN 202010879784A CN 112035253 B CN112035253 B CN 112035253B
Authority
CN
China
Prior art keywords
page cache
value
page
linux system
cache
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
Application number
CN202010879784.5A
Other languages
English (en)
Other versions
CN112035253A (zh
Inventor
王垒
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Inspur Power Commercial Systems Co Ltd
Original Assignee
Inspur Power Commercial Systems Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Inspur Power Commercial Systems Co Ltd filed Critical Inspur Power Commercial Systems Co Ltd
Priority to CN202010879784.5A priority Critical patent/CN112035253B/zh
Publication of CN112035253A publication Critical patent/CN112035253A/zh
Application granted granted Critical
Publication of CN112035253B publication Critical patent/CN112035253B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation 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/5022Mechanisms to release resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明公开了一种linux系统页缓存回收方法,包括获取linux系统内活跃文件页缓存值、非活跃文件页缓存值、以及脏页缓存值;将活跃文件页缓存值加非活跃文件页缓存值减脏页缓存值,得到可回收页缓存值;根据可回收页缓存值确定待回收页缓存值;当待回收页缓存值与linux系统内存值的比大于第一阈值时,调用页缓存回收线程回收linux系统的页缓存。通过活跃文件页缓存值、非活跃文件页缓存值、以及脏页缓存值,可以准确计算出实际可回收页缓存的大小;通过单独的页缓存回收线程回收linux系统的页缓存,从而使得该页缓存回收过程不再受限。本发明还提供了一种装置、设备以及存储介质,同样具有上述有益效果。

Description

一种linux系统页缓存回收方法及相关装置
技术领域
本发明涉及linux系统技术领域,特别是涉及一种linux系统页缓存回收方法、一种linux系统页缓存回收装置、一种linux系统页缓存回收设备以及一种计算机可读存储介质。
背景技术
众所周知,linux页缓存是基于内存页的、面向文件的一种缓存机制。通常情况下页缓存会提高系统性能;但当页缓存缓存过多文件,占用系统大量内存,使得系统剩余内存不足,页缓存可能会对性能带来负面影响,甚至导致OOM(out of memory,内存不足)内存错误。
通常情况下,linux系统采用页面交换(swap)和页面回收(page reclaim)实现内存回收。页面交换需要将内核数据写入硬盘swap交换区,会产生磁盘IO,页面回收效率较低。页面回收机制似乎能够快速回收内存页,但某些系统场景下,例如中断上下文中,内存分配时无法调用页面回收,因此可能会导致OOM(out of memory,内存不足)内存错误。所以如何对linux系统内页缓存回收的过程进行限制是本领域技术人员急需解决的问题。
发明内容
本发明的目的是提供一种linux系统页缓存回收方法,可以。
为解决上述技术问题,本发明提供一种linux系统页缓存回收方法,包括:
获取linux系统内活跃文件页缓存值、非活跃文件页缓存值、以及脏页缓存值;
将所述活跃文件页缓存值加所述非活跃文件页缓存值减所述脏页缓存值,得到可回收页缓存值;
根据所述可回收页缓存值确定待回收页缓存值;
当所述待回收页缓存值与所述linux系统内存值的比大于第一阈值时,调用页缓存回收线程回收所述linux系统的页缓存。
可选的,所述当所述待回收页缓存值与所述linux系统内存值的比大于第一阈值时,调用页缓存回收线程回收所述linux系统的页缓存包括:
当所述待回收页缓存值与所述linux系统内存值的比大于第一阈值时,调用页缓存回收线程回收所述linux系统的非活跃文件页缓存。
可选的,在所述调用页缓存回收线程回收所述linux系统的非活跃文件页缓存之后,还包括:
当所述非活跃文件页缓存值与所述linux系统内存值的比小于第二阈值时,调用所述页缓存回收线程,沿预设优先级参数从低到高的顺序回收所述linux系统的活跃文件页缓存。
可选的,所述根据所述可回收页缓存值确定待回收页缓存值包括:
将所述可回收页缓存值乘以预设的回收系数,得到所述待回收页缓存值。
本发明还提供了一种linux系统页缓存回收装置,包括:
获取模块:用于获取linux系统内活跃文件页缓存值、非活跃文件页缓存值、以及脏页缓存值;
可回收页缓存模块:将所述活跃文件页缓存值加所述非活跃文件页缓存值减所述脏页缓存值,得到可回收页缓存值;
待回收页缓存模块:根据所述可回收页缓存值确定待回收页缓存值;
回收模块:当所述待回收页缓存值与所述linux系统内存值的比大于第一阈值时,调用页缓存回收线程回收所述linux系统的页缓存。
可选的,所述回收模块包括:
非活跃文件页缓存回收单元:用于当所述待回收页缓存值与所述linux系统内存值的比大于第一阈值时,调用页缓存回收线程回收所述linux系统的非活跃文件页缓存。
可选的,所述回收模块还包括:
活跃文件页缓存回收单元:用于当所述非活跃文件页缓存值与所述linux系统内存值的比小于第二阈值时,调用所述页缓存回收线程,沿预设优先级参数从低到高的顺序回收所述linux系统的活跃文件页缓存。
可选的,所述待回收页缓存模块具体用于:
将所述可回收页缓存值乘以预设的回收系数,得到所述待回收页缓存值。
本发明还提供了一种linux系统页缓存回收设备,所述设备包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序时实现如上述任一项所述linux系统页缓存回收方法的步骤。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述任一项所述linux系统页缓存回收方法的步骤。
本发明所提供的一种linux系统页缓存回收方法,包括获取linux系统内活跃文件页缓存值、非活跃文件页缓存值、以及脏页缓存值;将活跃文件页缓存值加非活跃文件页缓存值减脏页缓存值,得到可回收页缓存值;根据可回收页缓存值确定待回收页缓存值;当待回收页缓存值与linux系统内存值的比大于第一阈值时,调用页缓存回收线程回收linux系统的页缓存。
通过活跃文件页缓存值、非活跃文件页缓存值、以及脏页缓存值,可以准确计算出在不影响linux系统内缓存存储数据的前提下,实际可回收页缓存的大小,并在由可回收页缓存值确定出的待回收页缓存值占linux系统内存值过高时,通过单独的页缓存回收线程回收linux系统的页缓存,从而使得该页缓存回收过程不再受限于例如中断上下文等场景,且可以能够灵活有效的保证linux系统业务有足够内存,从而降低页缓存对linux系统性能的负面影响和减少OOM问题发生的概率。
本发明还提供了一种linux系统页缓存回收装置、一种linux系统页缓存回收设备以及一种计算机可读存储介质,同样具有上述有益效果,在此不再进行赘述。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例所提供的一种linux系统页缓存回收方法的流程图;
图2为本发明实施例所提供的一种具体的linux系统页缓存回收方法的流程图;
图3为本发明实施例所提供的一种linux系统页缓存回收装置的结构框图;
图4为本发明实施例所提供的一种linux系统页缓存回收设备的结构框图。
具体实施方式
本发明的核心是提供一种linux系统页缓存回收方法。在现有技术中,linux系统采用页面交换(swap)和页面回收(page reclaim)实现内存回收。页面交换需要将内核数据写入硬盘swap交换区,会产生磁盘IO,页面回收效率较低。页面回收机制似乎能够快速回收内存页,但某些系统场景下,例如中断上下文中,内存分配时无法调用页面回收,因此可能会导致OOM(out of memory,内存不足)内存错误。
而本发明所提供的一种linux系统页缓存回收方法,包括获取linux系统内活跃文件页缓存值、非活跃文件页缓存值、以及脏页缓存值;将活跃文件页缓存值加非活跃文件页缓存值减脏页缓存值,得到可回收页缓存值;根据可回收页缓存值确定待回收页缓存值;当待回收页缓存值与linux系统内存值的比大于第一阈值时,调用页缓存回收线程回收linux系统的页缓存。
通过活跃文件页缓存值、非活跃文件页缓存值、以及脏页缓存值,可以准确计算出在不影响linux系统内缓存存储数据的前提下,实际可回收页缓存的大小,并在由可回收页缓存值确定出的待回收页缓存值占linux系统内存值过高时,通过单独的页缓存回收线程回收linux系统的页缓存,从而使得该页缓存回收过程不再受限于例如中断上下文等场景,且可以能够灵活有效的保证linux系统业务有足够内存,从而降低页缓存对linux系统性能的负面影响和减少OOM问题发生的概率。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例所提供的一种linux系统页缓存回收方法的流程图。
首先需要说明的是,本发明实施例所提供的一种linux系统页缓存回收方法具体是基于OpenPOWER硬件平台,在linux系统提出并实现对页缓存(PageCache)进行限制的方法。有关OpenPOWER硬件平台的具体内容可以参考现有技术,在此不再进行赘述。
在下述步骤之前,通常是在刚启动linux系统时,需要配置系统参数/proc/sys/vm/pagecache_limit,此参数代表页缓存可以使用linux系统内存的比例,例如当此参数为20时,则表示系统内存20%容量可以作为页缓存。通常情况下,该参数的取值为0至100中的整数,0表示没有限制。
具体的,当系统参数/proc/sys/vm/pagecache_limit配置为非零整数,系统会检测页缓存线程是否启动;若未启动则将启动该页缓存回收线程。在本发明实施例中页缓存回收线程具体是在内核新增的内核线程,其主要任务是回收内存。在启动页缓存回收线程之后,通常会直接使页缓存回收线程进入休眠状态,以便在后续步骤中唤醒该页缓存回收线程。
具体的,在本发明实施例中,当需要关闭页缓存回收线程时,通常是修改系统参数/proc/sys/vm/pagecache_limit为0。当系统参数/proc/sys/vm/pagecache_limit配置为0之后,系统会检测页缓存线程是否为启动状态;若为启动状态,则会将页缓存线程关闭。
参见图1,在本发明实施例中,linux系统页缓存回收方法包括:
S101:获取linux系统内活跃文件页缓存值、非活跃文件页缓存值、以及脏页缓存值。
上述活跃文件页缓存值即系统内活跃文件页缓存的大小,非活跃文件页缓存值即系统内非活跃文件页缓存的大小,而脏页缓存值即系统内脏页缓存的大小。有关获取上述活跃文件页缓存值、非活跃文件页缓存值、以及脏页缓存值的具体过程可以参考现有技术,在此不再进行赘述。在本步骤中,通常会获取活跃(NR_ACTIVE_FILE)文件页缓存的大小,并赋值给变量page_active;获取非活跃(NR_INACTIVE_FILE)文件页缓存的大小,并赋值给变量page_inactive;获取脏(NR_FILE_DIRTY)页缓存的大小,并赋值给变量page_dirty。
S102:将活跃文件页缓存值加非活跃文件页缓存值减脏页缓存值,得到可回收页缓存值。
可回收页缓存值即系统内可回收页缓存的大小,在本步骤中,会将活跃文件页缓存值加上非活跃文件页缓存值减去脏页缓存值,得到可回收页缓存值,该可回收页缓存值的计算过程可表示为:
page_reclaim=page_active+page_inactive–page_dirty;
其中,可回收页缓存值为page_reclaim。该可回收页缓存值可以准确表示出系统内真正可以回收的页缓存的大小。
S103:根据可回收页缓存值确定待回收页缓存值。
由于在实际情况中,为了不影响linux系统性能,通常不会一次性将全部可回收页缓存全部回收。相应的在本步骤中,会将上述计算得到的可回收页缓存值缩小为待回收页缓存值,并在后续步骤中根据待回收页缓存值对是否需要进行页缓存回收进行判断。需要说明的是,在本发明实施例中待回收页缓存值需要小于可回收页缓存值。
S104:当待回收页缓存值与linux系统内存值的比大于第一阈值时,调用页缓存回收线程回收linux系统的页缓存。
该第一阈值即由上述系统参数/proc/sys/vm/pagecache_limit所确定,第一阈值通常等于系统参数/proc/sys/vm/pagecache_limit除以100。在本步骤中,当待回收页缓存值与linux系统内存值的比大于第一阈值时,即待回收页缓存值大于linux系统内存值与第一阈值的乘积时,会调用页缓存回收线程区回收linux系统的页缓存。通常情况下,在调用页缓存回收线程之前,在本发明实施例中通常需要唤醒页缓存回收线程,以在本步骤中调用页缓存回收线程回收页缓存。需要说明的是,在本发明实施例中linux系统的页缓存包括上述活跃文件页缓存、非活跃文件页缓存以及脏页缓存。有关页缓存回收的具体过程将在下述发明实施例中做详细介绍,在此不再进行赘述。
本发明实施例所提供的一种linux系统页缓存回收方法,包括获取linux系统内活跃文件页缓存值、非活跃文件页缓存值、以及脏页缓存值;将活跃文件页缓存值加非活跃文件页缓存值减脏页缓存值,得到可回收页缓存值;根据可回收页缓存值确定待回收页缓存值;当待回收页缓存值与linux系统内存值的比大于第一阈值时,调用页缓存回收线程回收linux系统的页缓存。
通过活跃文件页缓存值、非活跃文件页缓存值、以及脏页缓存值,可以准确计算出在不影响linux系统内缓存存储数据的前提下,实际可回收页缓存的大小,并在由可回收页缓存值确定出的待回收页缓存值占linux系统内存值过高时,通过单独的页缓存回收线程回收linux系统的页缓存,从而使得该页缓存回收过程不再受限于例如中断上下文等场景,且可以能够灵活有效的保证linux系统业务有足够内存,从而降低页缓存对linux系统性能的负面影响和减少OOM问题发生的概率。
有关本发明所提供的一种linux系统页缓存回收方法的具体内容将在下述发明实施例中做详细介绍。
请参考图2,图2为本发明实施例所提供的一种具体的linux系统页缓存回收方法的流程图。
参见图2,在本发明实施例中,linux系统页缓存回收方法包括:
S201:获取linux系统内活跃文件页缓存值、非活跃文件页缓存值、以及脏页缓存值。
S202:将活跃文件页缓存值加非活跃文件页缓存值减脏页缓存值,得到可回收页缓存值。
上述S201至S202与上述发明实施例中S101至S102基本一致,详细内容请参考上述发明实施例,在此不再进行赘述。
S203:将可回收页缓存值乘以预设的回收系数,得到待回收页缓存值。
在本发明实施例中,通常会将回收系数设置为3/4左右,此时待回收页缓存值通常仅仅为可回收页缓存值的75%。当然,在本发明实施例中也可以将上阿树回收系数设置为其他的取值;或者是在本发明实施例中直接将可回收页缓存值减去一个定值得到待回收页缓存值均可,在本发明实施例中不做具体限定。
S204:当待回收页缓存值与linux系统内存值的比大于第一阈值时,调用页缓存回收线程回收linux系统的非活跃文件页缓存。
在本步骤中,当需要回收linux系统的页缓存时,具体会调用页缓存回收线程首先回收linux系统的非活跃文件页缓存。而非活跃文件页缓存被回收后,其记载的数据对linux系统性能的影响较小。
S205:当非活跃文件页缓存值与linux系统内存值的比小于第二阈值时,调用页缓存回收线程,沿预设优先级参数从低到高的顺序回收linux系统的活跃文件页缓存。
在本步骤中,当在回收完非活跃文件页缓存之后,若回收的页缓存过低,即非活跃文件页缓存值与linux系统内存值的比小于第二阈值时,例如小于3%,则在本步骤中需要沿预设优先级参数从低到高的顺序回收linux系统的活跃文件页缓存。在linux系统内核中,内存组织形式中有各单位页缓存的优先级参数;通过该优先级参数来确定活跃文件页缓存的优先级。而在本步骤中,当页缓存回收线程需要回收活跃文件页缓存时,需要先根据上述优先级参数排列活跃文件页缓存,在沿优先级从低到高的顺序依次回收linux系统的活跃文件页缓存。通常情况下,本步骤会直至全部回收的页缓存的页缓存值与所述linux系统内存值的比小于所述第二阈值时,结束回收工作。当然,本步骤也可以是在回收预设数量的活跃文件页缓存之后结束亦可,在本发明实施例中不做具体限定。
本发明实施例本发明实施例所提供的一种linux系统页缓存回收方法,会首先回收非活跃文件页缓存,在沿优先级从低到高的顺序回收linux系统的活跃文件页缓存,从而尽可能降低页缓存回收对linux系统性能的影响。
下面对本发明实施例所提供的一种linux系统页缓存回收装置进行介绍,下文描述的页缓存回收装置与上文描述的页缓存回收方法可相互对应参照。
请参考图3,图3为本发明实施例所提供的一种linux系统页缓存回收装置的结构框图。
参见图3,在本发明实施例中,linux系统页缓存回收装置可以包括:
获取模块100:用于获取linux系统内活跃文件页缓存值、非活跃文件页缓存值、以及脏页缓存值。
可回收页缓存模块200:将所述活跃文件页缓存值加所述非活跃文件页缓存值减所述脏页缓存值,得到可回收页缓存值。
待回收页缓存模块300:根据所述可回收页缓存值确定待回收页缓存值。
回收模块400:当所述待回收页缓存值与所述linux系统内存值的比大于第一阈值时,调用页缓存回收线程回收所述linux系统的页缓存。
作为优选的,在本发明实施例中,所述回收模块400可以包括:
非活跃文件页缓存回收单元:用于当所述待回收页缓存值与所述linux系统内存值的比大于第一阈值时,调用页缓存回收线程回收所述linux系统的非活跃文件页缓存。
作为优选的,在本发明实施例中,所述回收模块400可以还包括:
活跃文件页缓存回收单元:用于当所述非活跃文件页缓存值与所述linux系统内存值的比小于第二阈值时,调用所述页缓存回收线程,沿预设优先级参数从低到高的顺序回收所述linux系统的活跃文件页缓存。
作为优选的,在本发明实施例中,所述待回收页缓存模块300具体用于:
将所述可回收页缓存值乘以预设的回收系数,得到所述待回收页缓存值。
本实施例的页缓存回收装置用于实现前述的页缓存回收方法,因此页缓存回收装置中的具体实施方式可见前文中页缓存回收方法的实施例部分,例如,获取模块100,可回收页缓存模块200,待回收页缓存模块300,回收模块400分别用于实现上述页缓存回收方法中步骤S101至S104,所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。
下面对本发明实施例提供的一种linux系统页缓存回收设备进行介绍,下文描述的页缓存回收设备与上文描述的页缓存回收方法以及页缓存回收装置可相互对应参照。
请参考图4,图4为本发明实施例所提供的一种linux系统页缓存回收设备的结构框图。
参照图4,该页缓存回收设备可以包括处理器11和存储器12。
所述存储器12用于存储计算机程序;所述处理器11用于执行所述计算机程序时实现上述发明实施例中所述的linux系统页缓存回收方法。
本实施例的linux系统页缓存回收设备中处理器11用于安装上述发明实施例中所述的linux系统页缓存回收装置,同时处理器11与存储器12相结合可以实现上述任一发明实施例中所述的linux系统页缓存回收方法。因此基于linux系统页缓存回收设备中的具体实施方式可见前文中的linux系统页缓存回收方法的实施例部分,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再赘述。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一发明实施例中所介绍的一种linux系统页缓存回收方法。其余内容可以参照现有技术,在此不再进行展开描述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种linux系统页缓存回收方法、一种linux系统页缓存回收装置、一种linux系统页缓存回收设备以及一种计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (6)

1.一种linux系统页缓存回收方法,其特征在于,包括:
获取linux系统内活跃文件页缓存值、非活跃文件页缓存值、以及脏页缓存值;
将所述活跃文件页缓存值加所述非活跃文件页缓存值减所述脏页缓存值,得到可回收页缓存值;
根据所述可回收页缓存值确定待回收页缓存值;
当所述待回收页缓存值与所述linux系统内存值的比大于第一阈值时,调用页缓存回收线程回收所述linux系统的页缓存;
所述当所述待回收页缓存值与所述linux系统内存值的比大于第一阈值时,调用页缓存回收线程回收所述linux系统的页缓存包括:
当所述待回收页缓存值与所述linux系统内存值的比大于第一阈值时,调用页缓存回收线程回收所述linux系统的非活跃文件页缓存;
当所述非活跃文件页缓存值与所述linux系统内存值的比小于第二阈值时,调用所述页缓存回收线程,沿预设优先级参数从低到高的顺序回收所述linux系统的活跃文件页缓存;
在所述获取linux系统内活跃文件页缓存值、非活跃文件页缓存值、以及脏页缓存值之前,所述方法还包括:
配置所述linux系统的系统参数/proc/sys/vm/pagecache_limit,所述系统参数表示页缓存能够使用linux系统内存的比例,所述第一阈值根据所述系统参数/proc/sys/vm/pagecache_limit确定;
若所述系统参数/proc/sys/vm/pagecache_limit配置为非零整数,检测所述页缓存回收线程是否启动;
若所述页缓存回收线程未启动,则启动所述页缓存回收线程。
2.根据权利要求1所述的方法,其特征在于,所述根据所述可回收页缓存值确定待回收页缓存值包括:
将所述可回收页缓存值乘以预设的回收系数,得到所述待回收页缓存值。
3.一种linux系统页缓存回收装置,其特征在于,包括:
获取模块:用于获取linux系统内活跃文件页缓存值、非活跃文件页缓存值、以及脏页缓存值;
可回收页缓存模块:将所述活跃文件页缓存值加所述非活跃文件页缓存值减所述脏页缓存值,得到可回收页缓存值;
待回收页缓存模块:根据所述可回收页缓存值确定待回收页缓存值;
回收模块:当所述待回收页缓存值与所述linux系统内存值的比大于第一阈值时,调用页缓存回收线程回收所述linux系统的页缓存;
所述回收模块包括:
非活跃文件页缓存回收单元:用于当所述待回收页缓存值与所述linux系统内存值的比大于第一阈值时,调用页缓存回收线程回收所述linux系统的非活跃文件页缓存;
所述回收模块还包括:
活跃文件页缓存回收单元:用于当所述非活跃文件页缓存值与所述linux系统内存值的比小于第二阈值时,调用所述页缓存回收线程,沿预设优先级参数从低到高的顺序回收所述linux系统的活跃文件页缓存;
在所述获取linux系统内活跃文件页缓存值、非活跃文件页缓存值、以及脏页缓存值之前,所述装置还包括:
配置所述linux系统的系统参数/proc/sys/vm/pagecache_limit,所述系统参数表示页缓存能够使用linux系统内存的比例,所述第一阈值根据所述系统参数/proc/sys/vm/pagecache_limit确定;
若所述系统参数/proc/sys/vm/pagecache_limit配置为非零整数,检测所述页缓存回收线程是否启动;
若所述页缓存回收线程未启动,则启动所述页缓存回收线程。
4.根据权利要求3所述的装置,其特征在于,所述待回收页缓存模块具体用于:
将所述可回收页缓存值乘以预设的回收系数,得到所述待回收页缓存值。
5.一种linux系统页缓存回收设备,其特征在于,所述设备包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序时实现如权利要求1至2任一项所述linux系统页缓存回收方法的步骤。
6.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至2任一项所述linux系统页缓存回收方法的步骤。
CN202010879784.5A 2020-08-27 2020-08-27 一种linux系统页缓存回收方法及相关装置 Active CN112035253B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010879784.5A CN112035253B (zh) 2020-08-27 2020-08-27 一种linux系统页缓存回收方法及相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010879784.5A CN112035253B (zh) 2020-08-27 2020-08-27 一种linux系统页缓存回收方法及相关装置

Publications (2)

Publication Number Publication Date
CN112035253A CN112035253A (zh) 2020-12-04
CN112035253B true CN112035253B (zh) 2023-01-20

Family

ID=73586005

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010879784.5A Active CN112035253B (zh) 2020-08-27 2020-08-27 一种linux系统页缓存回收方法及相关装置

Country Status (1)

Country Link
CN (1) CN112035253B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113986540B (zh) * 2021-10-25 2024-05-10 苏州浪潮智能科技有限公司 定时回收linux高速缓存的方法和装置

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140118519A (ko) * 2013-03-29 2014-10-08 이화여자대학교 산학협력단 비휘발성 메모리에 기반하여 저널링 기능을 통합한 버퍼 캐시 장치, 저널링 파일 시스템 및 저널링 방법
CN106843756A (zh) * 2017-01-13 2017-06-13 中国科学院信息工程研究所 基于页面分类的内存页面回收方法及系统
CN107590287A (zh) * 2017-09-26 2018-01-16 郑州云海信息技术有限公司 一种文件系统页缓存回写方法、系统、装置及存储介质
CN109992523A (zh) * 2017-12-29 2019-07-09 广东欧珀移动通信有限公司 内存处理方法和装置、电子设备、计算机可读存储介质
CN110895492A (zh) * 2019-12-11 2020-03-20 Oppo(重庆)智能科技有限公司 设备控制方法、装置、存储介质及电子设备
CN111078586A (zh) * 2019-12-10 2020-04-28 Oppo(重庆)智能科技有限公司 内存回收方法、装置、存储介质及电子设备
CN111274039A (zh) * 2020-02-14 2020-06-12 Oppo广东移动通信有限公司 内存回收方法、装置、存储介质及电子设备
CN111488316A (zh) * 2020-04-12 2020-08-04 杭州迪普科技股份有限公司 文件缓存回收方法及装置

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140118519A (ko) * 2013-03-29 2014-10-08 이화여자대학교 산학협력단 비휘발성 메모리에 기반하여 저널링 기능을 통합한 버퍼 캐시 장치, 저널링 파일 시스템 및 저널링 방법
CN106843756A (zh) * 2017-01-13 2017-06-13 中国科学院信息工程研究所 基于页面分类的内存页面回收方法及系统
CN107590287A (zh) * 2017-09-26 2018-01-16 郑州云海信息技术有限公司 一种文件系统页缓存回写方法、系统、装置及存储介质
CN109992523A (zh) * 2017-12-29 2019-07-09 广东欧珀移动通信有限公司 内存处理方法和装置、电子设备、计算机可读存储介质
CN111078586A (zh) * 2019-12-10 2020-04-28 Oppo(重庆)智能科技有限公司 内存回收方法、装置、存储介质及电子设备
CN110895492A (zh) * 2019-12-11 2020-03-20 Oppo(重庆)智能科技有限公司 设备控制方法、装置、存储介质及电子设备
CN111274039A (zh) * 2020-02-14 2020-06-12 Oppo广东移动通信有限公司 内存回收方法、装置、存储介质及电子设备
CN111488316A (zh) * 2020-04-12 2020-08-04 杭州迪普科技股份有限公司 文件缓存回收方法及装置

Also Published As

Publication number Publication date
CN112035253A (zh) 2020-12-04

Similar Documents

Publication Publication Date Title
EP3514689B1 (en) Memory management method and apparatus
US20060253498A1 (en) Method and apparatus for reclaiming memory from a heap
CN108459898B (zh) 一种资源回收方法及装置
WO2018072408A1 (zh) 一种内存分析方法、装置、系统以及计算设备
CN110888746A (zh) 内存管理方法、装置、存储介质及电子设备
CN111338796B (zh) 应用内存优化方法、装置、终端设备及可读存储介质
CN108984295B (zh) 内存回收方法、计算机装置及计算机可读存储介质
EP3958120A1 (en) Method and device for anonymous page management, terminal device, and readable storage medium
CN111274039B (zh) 内存回收方法、装置、存储介质及电子设备
CN112035253B (zh) 一种linux系统页缓存回收方法及相关装置
CN112306408A (zh) 一种存储块处理方法、装置、设备及存储介质
CN107912063B (zh) 一种内存回收方法及装置
US20100275193A1 (en) Reducing memory usage of kernel memory management structures
CN109815166B (zh) 一种存储数据的动态回收处理方法及存储装置
CN109189739B (zh) 缓存空间回收方法和装置
US8990532B2 (en) Method of managing memory in computer system, computer system and memory managing program
CN111552616A (zh) 一种内存监听方法及装置
CN111488316A (zh) 文件缓存回收方法及装置
CN111475299A (zh) 内存分配方法、装置、存储介质及电子设备
CN112269768A (zh) 一种页面缓存回收方法、装置、设备及存储介质
CN112631510B (zh) 堆栈区域扩充的方法、装置及硬件平台
CN114995756A (zh) 一种虚拟磁盘空间回收方法、装置及介质
CN115587049A (zh) 内存回收方法、装置、电子设备及存储介质
CN110688226B (zh) 一种缓存回收方法、装置、设备及可读存储介质
CN114218126A (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
GR01 Patent grant
GR01 Patent grant