CN107766151A - 一种页面换出方法 - Google Patents
一种页面换出方法 Download PDFInfo
- Publication number
- CN107766151A CN107766151A CN201710900255.7A CN201710900255A CN107766151A CN 107766151 A CN107766151 A CN 107766151A CN 201710900255 A CN201710900255 A CN 201710900255A CN 107766151 A CN107766151 A CN 107766151A
- Authority
- CN
- China
- Prior art keywords
- target process
- memory
- internal memory
- page
- watermark
- 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
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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (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
本发明提供了本发明实施例提供了一种页面换出方法,所述的方法包括:S1:设置内存水位标记;S2:操作系统检测内存是否低于内存水位标记,若是,启动内存回收线程,若否,继续检测;S3:操作系统检测进程换出策略标志是否存在,若是,将目标进程换出到磁盘,若否,设置进程换出策略标志;S4:重复步骤S2‑S3,直至所有进程执行完毕。在空闲内存紧张时,选出目标进程,把目标进程的所有内存页换出到磁盘,释放内存空间,避免在内存压力大时,不停的杀死进程。
Description
技术领域
本发明涉及计算机技术领域,具体的说是一种页面换出方法。
背景技术
Linux操作系统采用请求调页机制为用户态的进程分配物理内存页框,但请求调页没有办法强制进程释放不再使用的页框,所以无论计算机上的可用物理内存有多少都是不够的。因而,页框回收(PFRA)在Linux内存管理中一直占据非常重要的地位。
页框回收算法基于一些一般原则和启发式准则建立LRU(最近最少使用)链表,每次从LRU链表尾部选择回收的目标页。目标页有不同的处理方法,其中有三类必须由交换子系统处理,即进程匿名线性区(用户态堆栈)的页;进程私有内存映射的脏页;IPC共享内存的页。LRU链表的设计是以页为回收内存的最小单位,本发明涉及的是进程为回收内存的最小单位,选出的进程整个换出到磁盘,其中包含多页。
现有页框回收算法的技术方案采用的是LRU链表,LRU链表包括活动链表与非活动链表。现有的页框回收算法虽然会尽量保留一定的空闲页框数,但虚拟内存子系统的压力可能变得很高,以至于所有可用内存耗尽,这很快会造成系统内的所有工作冻结。为了应对这种突发情况,现有叶框回收算法使用所谓的内存不足(out of memory,OOM)删除程序,该程序选择系统中的一个进程,强力删除它并释放页框,所以,现有页框回收算法的一个缺点是在内存压力大时,可能不停的有进程被杀死。
发明内容
为了解决上述问题,提供了一种页面换出方法,在空闲内存紧张时,选出目标进程,把目标进程的所有内存页换出到磁盘,释放内存空间,避免在内存压力大时,不停的杀死进程。
本发明实施例提供了一种页面换出方法,所述的方法包括:
S1:设置内存水位标记;
S2:操作系统检测内存是否低于内存水位标记,若是,启动内存回收线程,若否,继续检测;
S3:操作系统检测进程换出策略标志是否存在,若是,将目标进程换出到磁盘,若否,设置进程换出策略标志;
S4:重复步骤S2-S3,直至所有进程执行完毕。
进一步的,步骤S3中,将目标进程换出到磁盘的具体实现过程为:
选择非活动进程为目标进程;
计算目标进程的关键值;
选择关键值最大的目标进程作为换出进程;
扫描换出进程的页表,并将该页表换出到磁盘。
进一步的,关键值score的计算公式为:score=X*优先级+Y*占用内存数+Z*最近调度时间,其中,X是目标进程优先级的权重系数,Y是目标进程占用内存数的权重系数,Z是目标进程最近调度时间的权重系数。
进一步的,所述的内存水位标记包括高水位标记、低水位标记和最小水位标记。
进一步的,步骤S2中,操作系统检测内存是否位于低水位标记和最小水位标记之间,若是,启动内存回收线程,若否,继续检测。
发明内容中提供的效果仅仅是实施例的效果,而不是发明所有的全部效果,上述技术方案中的一个技术方案具有如下优点或有益效果:
1、本方案利用内存水位标记判断空闲内存是否紧张,并在空闲内存紧张时,选出目标进程,把目标进程的所有内存页换出到磁盘,释放内存空间,避免在内存压力大时,不停的杀死进程。同时,采用以进程为单位的页面换出策略,大大提高了页面回收的效率。
2、进程关键值score的计算,考虑进程优先级,进程占用的内存大小,进程最近调度时间三个维度,选出的进程既考虑了系统的页面回收效率,也减少交换失效情况的发生。
附图说明
图1是本发明实施例1的方法流程图;
图2是本发明实施例2的方法流程图。
具体实施方式
为能清楚说明本方案的技术特点,下面通过具体实施方式,并结合其附图,对本发明进行详细阐述。下文的公开提供了许多不同的实施例或例子用来实现本发明的不同结构。为了简化本发明的公开,下文中对特定例子的部件和设置进行描述。此外,本发明可以在不同例子中重复参考数字和/或字母。这种重复是为了简化和清楚的目的,其本身不指示所讨论各种实施例和/或设置之间的关系。应当注意,在附图中所图示的部件不一定按比例绘制。本发明省略了对公知组件和处理技术及工艺的描述以避免不必要地限制本发明。
实施例1
如图1所示一种页面换出方法,所述的方法包括以下步骤:
S1:设置内存水位标记。根据实际内存的大小,内存水位标记既可以是一个固定数值,也可以是内存实际大小的一个百分比,比如内存为4G,既可以设置内存水位标记为固定值500M,也可以设定内存水位标记为内存的10%,即0.4G。
S2:根据步骤S1中设定的数值,操作系统检测内存是否低于内存水位标记,若检测到内存低于内存水位标记,说明内存紧缺,就会唤醒并启动内存回收线程,执行回收程序,若检测到内存高于内存水位标记,说明内存不紧缺,内存回收线程不会被唤醒,操作系统继续继续检测内存。
S3:内存回收线程执行完回收程序后,操作系统继续检测进程换出策略标志是否存在,如果没有检测到进程换出策略,需要设置进程换出策略标志;如果检测到进程换出策略,需要将目标进程换出到磁盘,具体过程为:
1)选择非活动进程为目标进程。
2)计算目标进程的关键值,关键值score的计算公式为:score=X*优先级+Y*占用内存数+Z*最近调度时间,其中,X是目标进程优先级的权重系数,Y是目标进程占用内存数的权重系数,Z是目标进程最近调度时间的权重系数。在实际应用中,X、Y、Z根据经验取值,在不同的应用场景取值不同,一般满足X+Y+Z=1。
3)选择关键值最大的目标进程作为换出进程。
4)扫描换出进程的页表,并将该页表换出到磁盘。
S4:重复步骤S2-S3,直至所有进程执行完毕。
实施例2
如图2所示一种页面换出方法,所述的方法包括以下步骤:
S1:设置内存水位标记为高水位标记high、低水位标记low和最小水位标记min。剩余内存在high以上表示内存剩余较多,目前内存使用压力不大;high-low的范围表示目前剩余内存存在一定压力;low-min表示内存开始有较大使用压力,剩余内存不多了;min是最小的水位标记,当剩余内存达到这个状态时,就说明内存面临很大压力。小于min这部分内存,内核是保留给特定情况下使用的,一般不会分配。
S2:在操作系统的内存回收线程(kswapd)因内存紧缺被唤醒,当kswapd执行完回收过程后,剩余空闲内存在low-min之间,设置进程换出策略标志为1,kswapd结束,等待下次调用。
S3:当kswapd再次唤醒,执行回收过程。剩余空闲内存如果在low-min之间,判断进程换出策略标志是否已为1,如果为1,则执行进程为单位的页面换出策略;如果进程换出策略标志为0,则置1,结束kswapd,等待下次调用;如果剩余空闲内存大于low,则进程换出策略标志置0。
执行进程为单位的页面换出策略,其具体过程为:
1)选择非活动进程为目标进程。
2)计算目标进程的关键值,关键值score的计算公式为:score=X*优先级+Y*占用内存数+Z*最近调度时间,其中,X是目标进程优先级的权重系数,Y是目标进程占用内存数的权重系数,Z是目标进程最近调度时间的权重系数。在实际应用中,X、Y、Z根据经验取值,在不同的应用场景取值不同,一般满足X+Y+Z=1。
3)选择关键值最大的目标进程作为换出进程。
4)扫描换出进程的页表,并将该页表换出到磁盘。
S4:重复步骤S2-S3,直至所有进程执行完毕。
尽管说明书及附图和实施例对本发明创造已进行了详细的说明,但是,本领域技术人员应当理解,仍然可以对本发明创造进行修改或者等同替换;而一切不脱离本发明创造的精神和范围的技术方案及其改进,其均涵盖在本发明创造专利的保护范围当中。
Claims (5)
1.一种页面换出方法,其特征是:所述的方法包括:
S1:设置内存水位标记;
S2:操作系统检测内存是否低于内存水位标记,若是,启动内存回收线程,若否,继续检测;
S3:操作系统检测进程换出策略标志是否存在,若是,将目标进程换出到磁盘,若否,设置进程换出策略标志;
S4:重复步骤S2-S3,直至所有进程执行完毕。
2.根据权利要求1所述的一种页面换出方法,其特征是:步骤S3中,将目标进程换出到磁盘的具体实现过程为:
选择非活动进程为目标进程;
计算目标进程的关键值;
选择关键值最大的目标进程作为换出进程;
扫描换出进程的页表,并将该页表换出到磁盘。
3.根据权利要求2所述的一种页面换出方法,其特征是:关键值score的计算公式为:score=X*优先级+Y*占用内存数+Z*最近调度时间,其中,X是目标进程优先级的权重系数,Y是目标进程占用内存数的权重系数,Z是目标进程最近调度时间的权重系数。
4.根据权利要求1所述的一种页面换出方法,其特征是:所述的内存水位标记包括高水位标记、低水位标记和最小水位标记。
5.根据权利要求4所述的一种页面换出方法,其特征是:步骤S2中,操作系统检测内存是否位于低水位标记和最小水位标记之间,若是,启动内存回收线程,若否,继续检测。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710900255.7A CN107766151A (zh) | 2017-09-28 | 2017-09-28 | 一种页面换出方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710900255.7A CN107766151A (zh) | 2017-09-28 | 2017-09-28 | 一种页面换出方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107766151A true CN107766151A (zh) | 2018-03-06 |
Family
ID=61266208
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710900255.7A Pending CN107766151A (zh) | 2017-09-28 | 2017-09-28 | 一种页面换出方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107766151A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408405A (zh) * | 2018-10-15 | 2019-03-01 | Oppo广东移动通信有限公司 | 内存页交换方法、装置、终端及存储介质 |
CN111078406A (zh) * | 2019-12-10 | 2020-04-28 | Oppo(重庆)智能科技有限公司 | 内存管理方法、装置、存储介质及电子设备 |
CN111078586A (zh) * | 2019-12-10 | 2020-04-28 | Oppo(重庆)智能科技有限公司 | 内存回收方法、装置、存储介质及电子设备 |
WO2022078105A1 (zh) * | 2020-10-12 | 2022-04-21 | 华为技术有限公司 | 内存管理方法、电子设备以及计算机可读存储介质 |
WO2024060711A1 (zh) * | 2022-09-20 | 2024-03-28 | 华为技术有限公司 | 一种页面换出方法、装置、设备及数据处理系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101403992A (zh) * | 2008-07-18 | 2009-04-08 | 华为技术有限公司 | 实现远程内存交换的方法、装置及系统 |
CN102521173A (zh) * | 2011-11-17 | 2012-06-27 | 曙光信息产业(北京)有限公司 | 一种自动将缓存在易失介质中的数据写回方法 |
CN103631726A (zh) * | 2013-11-28 | 2014-03-12 | 北京锐安科技有限公司 | 一种串接流式计算节点的文件处理方法及装置 |
CN104007993A (zh) * | 2014-06-11 | 2014-08-27 | 中国科学院信息工程研究所 | 一种Linux系统内存敏感数据的清除方法及装置 |
CN104281528A (zh) * | 2013-07-09 | 2015-01-14 | 浙江大华技术股份有限公司 | 一种数据存储方法及装置 |
CN105373421A (zh) * | 2014-07-29 | 2016-03-02 | 华为技术有限公司 | 终端和终端中处理数据的方法 |
CN106294019A (zh) * | 2016-08-11 | 2017-01-04 | 浪潮(北京)电子信息产业有限公司 | 一种操作系统镜像保存和恢复方法及装置 |
CN106484472A (zh) * | 2016-09-29 | 2017-03-08 | 华为技术有限公司 | 一种内存回收方法及终端 |
CN106528216A (zh) * | 2016-10-26 | 2017-03-22 | 深圳市金立通信设备有限公司 | 一种启动应用程序的方法及终端 |
CN106681933A (zh) * | 2016-11-16 | 2017-05-17 | 深圳市金立通信设备有限公司 | 一种内存管理方法及终端 |
-
2017
- 2017-09-28 CN CN201710900255.7A patent/CN107766151A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101403992A (zh) * | 2008-07-18 | 2009-04-08 | 华为技术有限公司 | 实现远程内存交换的方法、装置及系统 |
CN102521173A (zh) * | 2011-11-17 | 2012-06-27 | 曙光信息产业(北京)有限公司 | 一种自动将缓存在易失介质中的数据写回方法 |
CN104281528A (zh) * | 2013-07-09 | 2015-01-14 | 浙江大华技术股份有限公司 | 一种数据存储方法及装置 |
CN103631726A (zh) * | 2013-11-28 | 2014-03-12 | 北京锐安科技有限公司 | 一种串接流式计算节点的文件处理方法及装置 |
CN104007993A (zh) * | 2014-06-11 | 2014-08-27 | 中国科学院信息工程研究所 | 一种Linux系统内存敏感数据的清除方法及装置 |
CN105373421A (zh) * | 2014-07-29 | 2016-03-02 | 华为技术有限公司 | 终端和终端中处理数据的方法 |
CN106294019A (zh) * | 2016-08-11 | 2017-01-04 | 浪潮(北京)电子信息产业有限公司 | 一种操作系统镜像保存和恢复方法及装置 |
CN106484472A (zh) * | 2016-09-29 | 2017-03-08 | 华为技术有限公司 | 一种内存回收方法及终端 |
CN106528216A (zh) * | 2016-10-26 | 2017-03-22 | 深圳市金立通信设备有限公司 | 一种启动应用程序的方法及终端 |
CN106681933A (zh) * | 2016-11-16 | 2017-05-17 | 深圳市金立通信设备有限公司 | 一种内存管理方法及终端 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109408405A (zh) * | 2018-10-15 | 2019-03-01 | Oppo广东移动通信有限公司 | 内存页交换方法、装置、终端及存储介质 |
CN109408405B (zh) * | 2018-10-15 | 2021-03-09 | Oppo广东移动通信有限公司 | 内存页交换方法、装置、终端及存储介质 |
CN111078406A (zh) * | 2019-12-10 | 2020-04-28 | Oppo(重庆)智能科技有限公司 | 内存管理方法、装置、存储介质及电子设备 |
CN111078586A (zh) * | 2019-12-10 | 2020-04-28 | Oppo(重庆)智能科技有限公司 | 内存回收方法、装置、存储介质及电子设备 |
CN111078586B (zh) * | 2019-12-10 | 2022-03-01 | Oppo(重庆)智能科技有限公司 | 内存回收方法、装置、存储介质及电子设备 |
WO2022078105A1 (zh) * | 2020-10-12 | 2022-04-21 | 华为技术有限公司 | 内存管理方法、电子设备以及计算机可读存储介质 |
WO2024060711A1 (zh) * | 2022-09-20 | 2024-03-28 | 华为技术有限公司 | 一种页面换出方法、装置、设备及数据处理系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107766151A (zh) | 一种页面换出方法 | |
JP5674613B2 (ja) | 制御システム、制御方法およびプログラム | |
RU2012141563A (ru) | Устройство обработки данных и способ переноса рабочей нагрузки между исходной и целевой компоновкой схем обработки | |
US8108629B2 (en) | Method and computer for reducing power consumption of a memory | |
Butt et al. | The performance impact of kernel prefetching on buffer cache replacement algorithms | |
US20160154742A1 (en) | Dynamic pinning of virtual pages shared between different type processors of a heterogeneous computing platform | |
JP2010211696A5 (ja) | プログラムおよび情報処理装置 | |
US20110066830A1 (en) | Cache prefill on thread migration | |
US8966171B2 (en) | Access optimization method for main memory database based on page-coloring | |
US20140189411A1 (en) | Power control for cache structures | |
CN103299281B (zh) | 防止硬件事务存储器系统非故意丢失事务数据 | |
KR20160130707A (ko) | 캐시의 콘텐츠 트랙킹 | |
CN105718474B (zh) | 用于对MySQL数据库的并发操作进行控制的方法及装置 | |
TW200609730A (en) | Information processing apparatus and information processing method | |
CN103885815A (zh) | 一种基于热页迁移的虚拟机动态缓存方法 | |
CN104156321B (zh) | 一种数据预取的方法以及装置 | |
US20120226832A1 (en) | Data transfer device, ft server and data transfer method | |
CN107153455A (zh) | 缓存功率管理 | |
US9483400B2 (en) | Multiplexed memory for segments and pages | |
US10489306B2 (en) | Apparatus and method for processing data, including cache entry replacement performed based upon content data read from candidates selected using victim selection | |
CN108762916A (zh) | 一种内存管理方法、装置、设备及计算机可读存储介质 | |
JP2008234320A (ja) | キャッシュ制御回路 | |
CN104850423A (zh) | 识别android系统下应用程序启动阶段的方法 | |
JP5380695B2 (ja) | メモリ管理方法、計算機システム及びメモリ管理プログラム | |
CN103150179B (zh) | 一种类unix操作系统获取交换空间的方法及装置 |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180306 |