那曲檬骨新材料有限公司

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

    文章

    6892

    瀏覽量

    123739
  • 內存技術
    +關注

    關注

    0

    文章

    28

    瀏覽量

    9866
  • OpenHarmony
    +關注

    關注

    25

    文章

    3744

    瀏覽量

    16574

原文標題:OpenHarmony 3.1 Release版本關鍵特性解析——Enhanced SWAP內存管理

文章出處:【微信號:gh_e4f28cfa3159,微信公眾號:OpenAtom OpenHarmony】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    2K0300 OpenHarmony源碼構建指南

    2K0300 OpenHarmony源碼構建參考如下 2K0300先鋒派OpenHarmony源碼構建指南 2K0300 源碼編譯wiki
    發表于 02-05 09:36

    鴻蒙原生頁面高性能解決方案上線OpenHarmony社區 助力打造高性能原生應用

    隨著HarmonyOS NEXT的正式推出,鴻蒙原生應用開發熱度高漲,數量激增。但在三方應用鴻蒙化進程中,性能問題頻出。為此,HarmonyOS NEXT推出了整套原生頁面高性能解決方案,包括
    發表于 01-02 18:00

    明達助力構建智能變電站新體系

    明達技術提出了一套全面而高效的解決方案,旨在構建一套安全、可靠、高效的遠程運維體系。通過技術創新與管理優化,該方案有效解決了傳統運維模式中的
    的頭像 發表于 12-26 17:28 ?195次閱讀
    明達助力<b class='flag-5'>構建</b>智能變電站新體系

    PLC數據采集解決方案

    問題,這些問題限制了企業生產力的提升和管理效能的增強。因此,打造一套高效率、高可靠性的PLC數據采集解決方案顯得尤為關鍵。 二、解決方案概述 針對工業生產中的數據采集需求,我們提出一套
    的頭像 發表于 10-31 15:58 ?305次閱讀
    PLC數據采集<b class='flag-5'>解決方案</b>

    一套電源ATE自動測試系統如何完成多型號電源模塊測試?

    在使用NSAT-8000電源ATE測試系統后,鑒于不同型號的VPX電源生產工藝、參數有所不同,工程師可根據電源型號搭建相應的測試項目和方案一套系統便完成了該公司多型號的電源模塊測試,減少了測試成本。
    的頭像 發表于 09-18 18:20 ?297次閱讀
    <b class='flag-5'>一套</b>電源ATE自動測試系統如何完成多型號電源模塊測試?

    蜂窩物聯智能畜牧,精準養殖:站式解決方案

    面對我國畜牧業發展道路上的重重障礙——如企業管理水平滯后、環境承載能力受限以及行業信息孤島問題,蜂窩物聯依托先進的物聯網與移動互聯技術,積極構建了一套面向多方的綜合解決方案。該方案不僅
    的頭像 發表于 09-10 17:29 ?473次閱讀
    蜂窩物聯智能畜牧,精準養殖:<b class='flag-5'>一</b>站式<b class='flag-5'>解決方案</b>

    庫室聯管聯控系統DW-S306|是一套智能化系統

    裝備庫室聯管聯控系統,形成一套上下統、功能完善的管理體系,建設個功能完善、運轉有效、規范有序為目標,實現可視化監管、數字化軍械管理、安全
    的頭像 發表于 08-17 16:20 ?211次閱讀
    庫室聯管聯控系統DW-S306|是<b class='flag-5'>一套</b>智能化系統

    水電站泄洪放水預警廣播系統解決方案

    預警廣播系統顯得尤為必要。本文旨在提出一套水電站泄洪放水預警廣播系統的完整解決方案。二、系統概述水電站泄洪放水預警廣播系統是一套集實時監測、數據分析、預警發布、廣
    的頭像 發表于 07-29 15:36 ?506次閱讀
    水電站泄洪放水預警廣播系統<b class='flag-5'>解決方案</b>

    一套完整的養老院人員定位解決方案包含哪些內容?

    成為當今社會關注的重要問題之。在養老院封閉的環境,養老院希望利用智能技術管理與關愛老人的需求越來越迫切。那么,養老院如何完成智能化建設,最大限度地保障老年人的安全? ? ? ? ?養老院人員定位解決方案的項目背景 ? ? ? ?傳統養
    的頭像 發表于 07-17 11:09 ?375次閱讀
    <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 ?914次閱讀
    家用充電樁遠程監控安全管理系統<b class='flag-5'>解決方案</b>

    鴻蒙OpenHarmony【集成三方SDK】 (基于Hi3861開發板)

    OpenHarmony致力于打造一套更加開放完善的IoT生態系統,為此OpenHarmony規劃了組目錄,用于將各廠商的SDK集成到
    的頭像 發表于 04-24 15:11 ?1192次閱讀
    鴻蒙<b class='flag-5'>OpenHarmony</b>【集成三方SDK】 (基于Hi3861開發板)

    介紹一套高效率適配多種電壓輸出的65W快充方案

    本期介紹一套高效率適配多種電壓輸出的65W快充方案。本方案擁有良好的性能和完善的保護功能,且內置抖頻功能,具有良好的EMI性能,適用于充電器,適配器及其他開放式電源等多種應用場合。
    的頭像 發表于 04-19 18:03 ?1528次閱讀
    介紹<b class='flag-5'>一套</b>高效率適配多種電壓輸出的65W快充<b class='flag-5'>方案</b>

    旅游景區雷電預警及防雷工程解決方案

    旅游景區是人們休閑、娛樂的重要場所,然而,雷電天氣的突發可能會給游客和景區帶來安全隱患。因此,建立一套完善的雷電預警方案及景區防雷工程顯得尤為重要。本文將詳細介紹如何制定一套全面的雷電
    的頭像 發表于 04-08 10:46 ?536次閱讀
    旅游景區雷電預警及防雷工程<b class='flag-5'>解決方案</b>

    OpenHarmony 移植:build lite 編譯構建過程

    這些疑惑,會對 build lite 編譯構建過程有個更深入的理解。 1、產品解決方案代碼是如何被調用編譯的 在文件 buildliteBUILD.gn 配置文件中的構建目標 //build/lite
    的頭像 發表于 02-19 16:19 ?1008次閱讀
    游艇会百家乐官网的玩法技巧和规则 | 通吃98| 威尼斯人娱乐网网上百家乐的玩法技巧和规则 | 百家乐赌具哪里最好| 新利百家乐官网的玩法技巧和规则| 百家乐官网输了好多钱| 元游视频棋牌游戏| 富二代百家乐的玩法技巧和规则| 百家乐桌布尼布材质| 波音网百家乐合作| 百家乐作弊视频| 波音百家乐游戏| 百家乐娱乐开户| 百家乐娱乐城主页| 百家乐玩法既规则| 成人百家乐官网的玩法技巧和规则 | 战神百家乐官网的玩法技巧和规则 | 大发888大发8668| 免费百家乐缩水| 百家乐筹码片| 潘多拉百家乐的玩法技巧和规则| 百威百家乐的玩法技巧和规则 | 丰禾线上娱乐| bet365娱乐城| 通道| 保险百家乐官网怎么玩| 百家乐官网玩法注意事项| 川宜百家乐官网破解版| 棋牌百家乐官网程序破解| 百家乐官网澳门赌| 百家乐官网计划工具| 来博百家乐游戏| 澳门百家乐一把决战输赢| 百家乐网上赌局| 百家乐澳门技巧| 威尼斯人娱乐城会员| 大发888舍出同线牌| 君豪棋牌信誉怎么样| 大发888游戏下载中心| 普通牌二八杠分析仪| 网络赌博平台|