[发明专利]一种Linux操作系统下的水位线自调整方法及系统有效

专利信息
申请号: 202310495310.4 申请日: 2023-05-05
公开(公告)号: CN116225976B 公开(公告)日: 2023-08-08
发明(设计)人: 刘金龙;张铎;孙科;孙立明 申请(专利权)人: 麒麟软件有限公司
主分类号: G06F12/02 分类号: G06F12/02
代理公司: 湖南兆弘专利事务所(普通合伙) 43008 代理人: 谭武艺
地址: 300459 天津市滨海新区高*** 国省代码: 天津;12
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 linux 操作系统 水位 调整 方法 系统
【说明书】:

发明公开了一种Linux操作系统下的水位线自调整方法及系统,包括采样内存的空闲页面数量,且在启动内存回收后计算内存页面的回收效率,若回收效率小于设定值则根据当前的时间窗口内采样得到的空闲页面数量、采样时间构建预测模型预测内存耗尽的时间;在内存耗尽的时间到来之前,若空闲页面数量位于高水位线、低水位线之间则判定空闲内存即将耗尽,并通过改变水位线的高度来提前触发异步回收进程进行页面回收;若内存发生严重碎片化,则启用内存规整来消除内存碎片。本发明旨在避免出现系统卡顿和操作延迟,减少页面回收造成的CPU资源浪费,保障操作系统运行的稳定性。

技术领域

本发明涉及操作系统领域的内存管理技术,具体涉及一种Linux操作系统下的水位线自调整方法及系统。

背景技术

Linux内核以不同大小的页面(不同大小的页块在内核中用阶0~10来表示,是2的次方数,阶越高表示页面越大,高阶页是由2n个物理连续页组成的组,其中n是页序)为单位来管理物理内存和虚拟内存,称为基本页面page,每个阶各自维护一个链表,这些页面被分配给用户和内核任务使用。当处理来自较慢磁盘设备的大量数据时,Linux内核使用页面缓存技术来缓存内容,但用于页面缓存的内存必须来自系统其余部分使用的同一内存池。内核将所有当前未使用的内存分配给页面缓存。由于内核需要为其它任务分配更多的内存,它可以从页面缓存中回收页面,因为页面缓存中的内容可以在需要时从磁盘中恢复。当内核在内存中申请不到足够数量的空闲页面时,空闲页面的数量低于低水位线以下,就会发生内存回收。当页面被回收时,任何连续的页都会被组合在一起,通过规整来形成更高阶的页面。

Linux内核通过页面回收和内存规整结合水位线(watermark)来恢复空闲内存不足的情况:当系统的空闲内存数量低于低水位线(low watermark)时,内存管理机制通过启用异步回收进程(kswapd)进行异步内存回收来将缓存中存在的可回收页面释放出来回收。若回收回来的页面都是低阶页面,会造成内存出现碎片化而无法分配高阶页块的情况。此时内核将通过启用kcompactd线程完成内存碎片规整,将低阶的连续页面通过合并成高阶的页面块,来恢复高阶空闲页面的数量。如果空闲内存的数量继续消耗,低于最低水位线(min watermark),此时任何的分配请求都必须在完成前同步执行回收或者规整机制,以满足内存申请的需要。后一种同步方法被称为“直接”路径,并且此时系统会因为等待内存被回收而出现卡顿,运行速度相当慢,而且内存调用中产生的相应停顿也会导致其正在执行的操作延迟增加,造成系统和数据的不确定性,对系统性能产生影响。如果异步回收和内存规整可以比内存消耗的速度更快,则可以避免直接内存回收出现杀进程的现象,也不会出现卡顿和操作延迟。相反,如果内存的消耗速度比它可能被回收的速度更快,当达到最低水位线以下时,就必然会发生直接内存回收来杀掉占用内存比较大的进程,或者出现因申请不到足够的可用内存造成长时间的等待,反映的现象就是系统卡顿,操作延迟。此时,最理想的方式就是通过提高水位线,提前激活异步回收进程回收内存,满足内存申请的需求,避免卡顿和延迟现象的发生。但是,如果系统不是真正的内存耗尽,可能由于内存碎片化的原因而造成申请不到高阶内存块,这样操作将导致过度回收,造成CPU资源消耗(kswapd进程就是利用CPU资源来回收内存资源)。这种情况就需要首先通过内存规整的方式将低阶页面合并成高阶页面块,以满足系统对高阶页面块的申请需求,而不是过度增加水线,造成系统预留内存增加,内核反复进行内存回收,导致CPU资源占据和浪费。不同工作负载具有不同的内存消耗模式这一事实将进一步加剧这种情况。一些工作负载以稳定的速率分配和释放内存,例如读取磁盘块、视频渲染、释放已渲染数据并获取更多数据进行渲染的媒体流程序。科学计算和建模等其他工作负载可能会在一段时间内分配大量页面以从磁盘读取数据,然后对这些累积的数据进行数据计算,同时分配较小的内存量,最后可能会释放之前保存数据的所有内存,开始下一次建模运行。仍然有一些工作负载,如事务处理,会出现内存分配请求的周期性峰值,这些请求会在很长一段时间内反复出现。这使得很难定义适用于大量工作负载的静态水位线。长时间运行的工作负载在其生命周期中也可能具有不同的内存消耗模式,这使得静态水位线的设置充其量是一种折中方案,因为其无法满足各种负载场景的需求。

发明内容

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于麒麟软件有限公司,未经麒麟软件有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202310495310.4/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top