0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OpenHarmony构建了一套完善的内存解决方案——ESWAP

OpenAtom OpenHarmony 来源:OpenAtom OpenHarmony 作者:OpenAtom OpenHarmony 2022-05-11 10:33 次阅读

OpenAtom OpenHarmony(以下简称“OpenHarmony”)是面向全场景泛终端设备的操作系统,终端设备内存性能的强弱会直接影响用户的体验。终端设备的内存差异很大,对于内存比较小的终端设备,内存优化方案无疑是增强内存性能、提升用户体验的关键。针对传统内存方案及管理机制的不足,OpenHarmony 构建了一套完善的内存解决方案——ESWAP。

1.传统内存方案及管理机制

在传统的 Linux 内存优化方案中,终端设备通常采用 SWAP 及 ZRAM 内存方案。

1.1 SWAP

SWAP 即内存交换技术或虚拟内存技术,如图 1 所示,在系统的物理内存不足时,把内存中的一部分不常用的内存空间释放出来,以增大系统可用内存供当前运行的程序使用。这些被释放的数据被临时保存到 SWAP 分区中,等到需要使用时,再从 SWAP 分区中恢复到内存中。

9021bd4c-c62b-11ec-bce3-dac502259ad0.jpg

图1 SWAP虚拟内存技术

从图 1 中不难看出,SWAP 内存交换技术增大了设备内用内存,但是,SWAP 内存换入/换出时会遭遇 IO 性能瓶颈,严重时甚至会影响用户的使用体验,并且 flash 存储器件的频繁读写也会缩减其寿命。

1.2 ZRAM

ZRAM 即内存压缩技术,如图 2 所示,在系统的物理内存不足时,将系统物理内存的一部分划分出来作为 ZRAM 分区,然后把不常用的匿名页压缩后放到 ZRAM 分区里,相当于牺牲了一些 CPU 效率,以增大系统可用内存供当前运行的程序使用。等到需要使用时,再从 ZRAM 分区中将数据解压出来。

9037495a-c62b-11ec-bce3-dac502259ad0.jpg

图2 ZRAM内存压缩技术

虽然 ZRAM 在一定程度上增大了设备内用内存,但是如果没有合适的方式来对内存进行管理,负面影响也会非常明显,将会造成内存页频繁的压缩/解压缩,从而抢占正常业务的 CPU 时间,增加系统的功耗。并且,如果压缩/解压速度不够快的话,会直接影响用户的使用体验。

1.3 内存管理机制

除了内存方案不足,传统的内存分配及管理方式,无法感知业务特性及数据的重要性。如果终端设备多个进程或业务共用一块内存,当内存负载越来越重,进行内存数据回收时,会频繁出现数据搬移,以及内存震荡的现象。这些现象会加重内核管理内存的开销,并导致系统 CPU 负载长期处于高负载的状态,从而增加系统功耗。

2.OpenHarmony内存解决方案

针对原有内存方案的不足,OpenHarmony 构建了一套完善的内存解决方案 ESWAP,打通了上层系统到内核的调用栈,让内核能在上层配置的指导下,对每一块内存数据进行合理的管理。

下面我们将为大家介绍 ESWAP 解决方案以及其关键技术的解析。

2.1 ESWAP方案介绍

ESWAP(Enhanced SWAP)是 OpenHarmony 针对内存优化问题提供的一套完善的内存解决方案,结合内存压缩和内存交换技术,定制了一套合理高效的调度管理策略,使压缩和交换两者的工作能够高效且平衡。ESWAP 基于关联性的数据聚合技术及上层指导策略,将内存划分为不同的分组进行管理,通过回收优先级来区分不同分组下内存的活跃程度,优先压缩、换出较不活跃的内存数据,以提升数据交换性能,减少寿命冲击。

ESWAP 解决方案的整体框架如图3所示:

905a73bc-c62b-11ec-bce3-dac502259ad0.jpg

图3 ESWAP解决方案

ESWAP 解决方案在全局资源调度子系统中增加了一个系统资源调度模块,通过向账户子系统订阅本地账户的变化来感知当前的账户状态和内存状态,然后根据账户状态给各个账户设置不同的回收优先级、设置目标可用内存量、设置压缩和换出的比例等参数,并将这些参数下发给 ZSWAPD。ZSWAPD 会依据回收优先级判断回收的先后顺序;依据目标可用内存量和当前可用内存量的差值决定回收的量;依据压缩和换出的比例来决定压缩和换出的量,从而实现在达成内存扩展效果前提下的性能和功耗平衡。

2.2 关键技术解析

ESWAP 内存解决方案都用到了哪些关键技术呢?下面为你一一道来。

2.2.1 定制的ZRAM和交换分区

ESWAP 结合内存压缩和内存交换技术,提供了自定义新增存储分区作为内存交换分区的能力,并在内核中创建了一个常驻进程 ZSWAPD,用于将 ZRAM 压缩后的匿名页加密换出到 ESWAP 存储分区中,从而能完全地空出一块可用内存,以此来达到维持 Memavailable 水线的目标,如图 4 所示。

9071d872-c62b-11ec-bce3-dac502259ad0.jpg

图4 ESWAP技术

同时,ESWAP 模块还可以记录每个匿名页的冷热特征信息,并将这些数据通过关联性、冷热顺序进行相应的存放,使 ESWAP 交换区中连续存放的匿名页具有时间和空间局部性。因此在匿名页换入时,可以将交换区中的相邻匿名页一并读入 ZRAM,以此来保证数据的存取速度,提升 IO 性能。

2.2.2 动态的内存回收机制

OpenHarmony 提供了一种额外的内存回收机制 ZSWAPD,并创建了“buffer”来作为衡量当前系统内存能力的指标。buffer 指的是当前系统能提供的最大可用内存。ZSWAPD 会根据 buffer 量以及上文所述的各种策略,来对匿名页进行压缩换出以回收。同时,ZSWAPD 还能根据内存冷热分离的合理性以及内存回收状态, 动态地控制 ZRAM 和 ESWAP 之间的平衡,从而获得更高的能效比。

2.2.3 灵活的内存回收策略

OpenHarmony 基于 Memcg 分组进行了回收策略的增强,使用回收优先级来指导 ZSWAPD 回收的先后顺序。回收策略将既定的 buffer 相关配置下发给 ZSWAPD,来指导其回收适当数量的内存。此外,由于匿名页可能存储在 RAM、ZRAM、ESWAP 三个模块中, 上层可以根据需要,通过灵活地配置交换策略,控制这三个模块中存储的比例,避免频繁换入换出带来的负面影响。

至此,ESWAP 的三项关键技术就介绍完了,我们来总结一下:

●定制的 ZRAM 和交换分区:将数据通过关联性、冷热顺序进行存放,保证了数据的存取速度,提升了 IO 性能。

●动态的内存回收机制:从回收优先级、可用内存量、压缩和交换比例三个维度动态地控制数据回收,从而获得更高的能效比。

●灵活的内存回收策略:灵活地控制 RAM、ZRAM、ESWAP 三个模块数据存储的比例,保证了各个模块的平衡。

2.3 ESWAP相关接口

ESWAP 解决方案支持系统开发者定制自己的回收策略,并在 /dev/memcg 下提供了仅对上层回收策略可见的接口。系统开发者可以通过这些接口来定制自己的上层策略,具体接口如下所示:

908ce84c-c62b-11ec-bce3-dac502259ad0.jpg

以上就是本文全部内容,ESWAP 解决方案仍在不断建设中,期待广大开发者加入我们,共同见证全场景智能时代的无限可能!感兴趣的小伙伴可以通过下面链接获取ESWAP源码进行深入了解:

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 操作系统
    +关注

    关注

    37

    文章

    6836

    浏览量

    123363
  • 内存技术
    +关注

    关注

    0

    文章

    28

    浏览量

    9851
  • OpenHarmony
    +关注

    关注

    25

    文章

    3724

    浏览量

    16351

原文标题:OpenHarmony 3.1 Release版本关键特性解析——Enhanced SWAP内存管理

文章出处:【微信号:gh_e4f28cfa3159,微信公众号:OpenAtom OpenHarmony】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    鸿蒙原生页面高性能解决方案上线OpenHarmony社区 助力打造高性能原生应用

    随着HarmonyOS NEXT的正式推出,鸿蒙原生应用开发热度高涨,数量激增。但在三方应用鸿蒙化进程中,性能问题频出。为此,HarmonyOS NEXT推出了整套原生页面高性能解决方案,包括
    发表于 01-02 18:00

    明达助力构建智能变电站新体系

    明达技术提出了一套全面而高效的解决方案,旨在构建一套安全、可靠、高效的远程运维体系。通过技术创新与管理优化,该方案有效解决了传统运维模式中的
    的头像 发表于 12-26 17:28 110次阅读
    明达助力<b class='flag-5'>构建</b>智能变电站新体系

    PLC数据采集解决方案

    问题,这些问题限制了企业生产力的提升和管理效能的增强。因此,打造一套高效率、高可靠性的PLC数据采集解决方案显得尤为关键。 二、解决方案概述 针对工业生产中的数据采集需求,我们提出一套
    的头像 发表于 10-31 15:58 247次阅读
    PLC数据采集<b class='flag-5'>解决方案</b>

    一套电源ATE自动测试系统如何完成多型号电源模块测试?

    在使用NSAT-8000电源ATE测试系统后,鉴于不同型号的VPX电源生产工艺、参数有所不同,工程师可根据电源型号搭建相应的测试项目和方案一套系统便完成了该公司多型号的电源模块测试,减少了测试成本。
    的头像 发表于 09-18 18:20 256次阅读
    <b class='flag-5'>一套</b>电源ATE自动测试系统如何完成多型号电源模块测试?

    蜂窝物联智能畜牧,精准养殖:站式解决方案

    面对我国畜牧业发展道路上的重重障碍——如企业管理水平滞后、环境承载能力受限以及行业信息孤岛问题,蜂窝物联依托先进的物联网与移动互联技术,积极构建了一套面向多方的综合解决方案。该方案不仅
    的头像 发表于 09-10 17:29 424次阅读
    蜂窝物联智能畜牧,精准养殖:<b class='flag-5'>一</b>站式<b class='flag-5'>解决方案</b>

    库室联管联控系统DW-S306|是一套智能化系统

    装备库室联管联控系统,形成一套上下统、功能完善的管理体系,建设个功能完善、运转有效、规范有序为目标,实现可视化监管、数字化军械管理、安全
    的头像 发表于 08-17 16:20 188次阅读
    库室联管联控系统DW-S306|是<b class='flag-5'>一套</b>智能化系统

    水电站泄洪放水预警广播系统解决方案

    预警广播系统显得尤为必要。本文旨在提出一套水电站泄洪放水预警广播系统的完整解决方案。二、系统概述水电站泄洪放水预警广播系统是一套集实时监测、数据分析、预警发布、广
    的头像 发表于 07-29 15:36 412次阅读
    水电站泄洪放水预警广播系统<b class='flag-5'>解决方案</b>

    一套完整的养老院人员定位解决方案包含哪些内容?

    成为当今社会关注的重要问题之。在养老院封闭的环境,养老院希望利用智能技术管理与关爱老人的需求越来越迫切。那么,养老院如何完成智能化建设,最大限度地保障老年人的安全?        养老院人员定位解决方案的项目背景        传统养
    的头像 发表于 07-17 11:09 338次阅读
    <b class='flag-5'>一套</b>完整的养老院人员定位<b class='flag-5'>解决方案</b>包含哪些内容?

    在不同的电脑上启动同一套代码时,出现编译路径错误的提示怎么解决?

    不同的电脑上安装esp-idf的路径不同时,启动同一套代码时会出现: 无法找到“D:\\Espressif\\tools\\xtensa-esp32-elf\\esp-2022r1-11.2.0
    发表于 06-11 06:54

    家用充电桩远程监控安全管理系统解决方案

    家用充电桩远程监控安全管理系统解决方案 在当今电动汽车日益普及的背景下,家用充电桩的安全管理成为了广大车主关注的重点问题。为了实现对充电桩的高效、精准、远程监控,一套完善的家用充电桩远程监控安全管理
    的头像 发表于 05-15 16:19 838次阅读
    家用充电桩远程监控安全管理系统<b class='flag-5'>解决方案</b>

    鸿蒙OpenHarmony【集成三方SDK】 (基于Hi3861开发板)

    OpenHarmony致力于打造一套更加开放完善的IoT生态系统,为此OpenHarmony规划了组目录,用于将各厂商的SDK集成到
    的头像 发表于 04-24 15:11 1139次阅读
    鸿蒙<b class='flag-5'>OpenHarmony</b>【集成三方SDK】 (基于Hi3861开发板)

    介绍一套高效率适配多种电压输出的65W快充方案

    本期介绍一套高效率适配多种电压输出的65W快充方案。本方案拥有良好的性能和完善的保护功能,且内置抖频功能,具有良好的EMI性能,适用于充电器,适配器及其他开放式电源等多种应用场合。
    的头像 发表于 04-19 18:03 1423次阅读
    介绍<b class='flag-5'>一套</b>高效率适配多种电压输出的65W快充<b class='flag-5'>方案</b>

    旅游景区雷电预警及防雷工程解决方案

    旅游景区是人们休闲、娱乐的重要场所,然而,雷电天气的突发可能会给游客和景区带来安全隐患。因此,建立一套完善的雷电预警方案及景区防雷工程显得尤为重要。本文将详细介绍如何制定一套全面的雷电
    的头像 发表于 04-08 10:46 492次阅读
    旅游景区雷电预警及防雷工程<b class='flag-5'>解决方案</b>

    OpenHarmony 移植:build lite 编译构建过程

    这些疑惑,会对 build lite 编译构建过程有个更深入的理解。 1、产品解决方案代码是如何被调用编译的 在文件 buildliteBUILD.gn 配置文件中的构建目标 //build/lite
    的头像 发表于 02-19 16:19 972次阅读

    深入探讨工业AI/ML技术的发展趋势及相关解决方案

    芯科科技已经创建了一套完整的硬件和软件解决方案,可支持开发用于工业市场的工业AI/ML解决方案。具体来说,我们的Sub-GHz、蓝牙和802.15.4产品内置了硬件加速功能,可优化边缘
    的头像 发表于 01-29 09:42 492次阅读