站長資訊網
最全最豐富的資訊網站

Enhanced SWAP內存管理 OpenHarmony構建新的內存管理優化方案——ESWAP

  OpenHarmony是面向全場景泛終端設備的操作系統,終端設備內存性能的強弱會直接影響用戶的體驗。終端設備的內存差異很大,對于內存比較小的終端設備,內存優化方案無疑是增強內存性能、提升用戶體驗的關鍵。針對傳統內存方案及管理機制的不足,OpenHarmony構建了一套完善的內存解決方案——ESWAP。

  1. 傳統內存方案及管理機制

  在傳統的Linux內存優化方案中,終端設備通常采用SWAP及ZRAM內存方案。

  1.1 SWAP

  SWAP即內存交換技術或虛擬內存技術,如圖1所示,在系統的物理內存不足時,把內存中的一部分不常用的內存空間釋放出來,以增大系統可用內存供當前運行的程序使用。這些被釋放的數據被臨時保存到SWAP分區中,等到需要使用時,再從SWAP分區中恢復到內存中。

Enhanced SWAP內存管理 OpenHarmony構建新的內存管理優化方案——ESWAP

  圖1 SWAP虛擬內存技術

  從圖1中不難看出,SWAP內存交換技術增大了設備內用內存,但是,SWAP內存換入/換出時會遭遇IO性能瓶頸,嚴重時甚至會影響用戶的使用體驗,并且flash存儲器件的頻繁讀寫也會縮減其壽命。

  1.2 ZRAM

  ZRAM即內存壓縮技術,如圖2所示,在系統的物理內存不足時,將系統物理內存的一部分劃分出來作為ZRAM分區,然后把不常用的匿名頁壓縮后放到ZRAM分區里,相當于犧牲了一些CPU效率,以增大系統可用內存供當前運行的程序使用。等到需要使用時,再從ZRAM分區中將數據解壓出來。

Enhanced SWAP內存管理 OpenHarmony構建新的內存管理優化方案——ESWAP

  圖2 ZRAM內存壓縮技術

  雖然ZRAM在一定程度上增大了設備內用內存,但是如果沒有合適的方式來對內存進行管理,負面影響也會非常明顯,將會造成內存頁頻繁的壓縮/解壓縮,從而搶占正常業務的CPU時間,增加系統的功耗。并且,如果壓縮/解壓速度不夠快的話,會直接影響用戶的使用體驗。

  1.3 內存管理機制

  除了內存方案不足,傳統的內存分配及管理方式,無法感知業務特性及數據的重要性。如果終端設備多個進程或業務共用一塊內存,當內存負載越來越重,進行內存數據回收時,會頻繁出現數據搬移,以及內存震蕩的現象。這些現象會加重內核管理內存的開銷,并導致系統CPU負載長期處于高負載的狀態,從而增加系統功耗。

  2. OpenHarmony內存解決方案

  針對原有內存方案的不足,OpenHarmony構建了一套完善的內存解決方案ESWAP,打通了上層系統到內核的調用棧,讓內核能在上層配置的指導下,對每一塊內存數據進行合理的管理。

  下面我們將為大家介紹ESWAP解決方案以及其關鍵技術的解析。

  2.1 ESWAP方案介紹

  ESWAP(Enhanced SWAP)是OpenHarmony針對內存優化問題提供的一套完善的內存解決方案,結合內存壓縮和內存交換技術,定制了一套合理高效的調度管理策略,使壓縮和交換兩者的工作能夠高效且平衡。ESWAP基于關聯性的數據聚合技術及上層指導策略,將內存劃分為不同的分組進行管理,通過回收優先級來區分不同分組下內存的活躍程度,優先壓縮、換出較不活躍的內存數據,以提升數據交換性能,減少壽命沖擊。

  ESWAP解決方案的整體框架如圖3所示:

Enhanced SWAP內存管理 OpenHarmony構建新的內存管理優化方案——ESWAP

  圖3 ESWAP解決方案

  ESWAP解決方案在全局資源調度子系統中增加了一個系統資源調度模塊,通過向賬戶子系統訂閱本地賬戶的變化來感知當前的賬戶狀態和內存狀態,然后根據賬戶狀態給各個賬戶設置不同的回收優先級、設置目標可用內存量、設置壓縮和換出的比例等參數,并將這些參數下發給ZSWAPD。ZSWAPD會依據回收優先級判斷回收的先后順序;依據目標可用內存量和當前可用內存量的差值決定回收的量;依據壓縮和換出的比例來決定壓縮和換出的量,從而實現在達成內存擴展效果前提下的性能和功耗平衡。

  2.2 關鍵技術解析

  ESWAP內存解決方案都用到了哪些關鍵技術呢?下面為你一一道來。

  2.2.1 定制的ZRAM和交換分區

  ESWAP結合內存壓縮和內存交換技術,提供了自定義新增存儲分區作為內存交換分區的能力,并在內核中創建了一個常駐進程ZSWAPD,用于將ZRAM壓縮后的匿名頁加密換出到ESWAP存儲分區中,從而能完全地空出一塊可用內存,以此來達到維持Memavailable水線的目標,如圖4所示。

Enhanced SWAP內存管理 OpenHarmony構建新的內存管理優化方案——ESWAP

  圖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下提供了僅對上層回收策略可見的接口。系統開發者可以通過這些接口來定制自己的上層策略,具體接口如下所示:

Enhanced SWAP內存管理 OpenHarmony構建新的內存管理優化方案——ESWAP

  以上就是本文全部內容,ESWAP解決方案仍在不斷建設中,期待廣大開發者加入我們,共同見證全場景智能時代的無限可能!

  感興趣的小伙伴可以通過下面鏈接獲取ESWAP源碼進行深入了解:

  https://gitee.com/openharmony/kernel_linux_5.10/pulls/43

特別提醒:本網信息來自于互聯網,目的在于傳遞更多信息,并不代表本網贊同其觀點。其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,并請自行核實相關內容。本站不承擔此類作品侵權行為的直接責任及連帶責任。如若本網有任何內容侵犯您的權益,請及時聯系我們,本站將會在24小時內處理完畢。

贊(0)
分享到: 更多 (0)
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
国产精品一区二区av| 麻豆精品一区二区综合av| 精品亚洲国产成人| 久久精品国产福利电影网| 国产线视频精品免费观看视频| 日韩人妻高清精品专区| 日韩一区二区三区在线精品| 大伊香蕉在线精品视频人碰人| 99久久国产宗和精品1上映| 免费久久精品国产片香蕉| 久久夜色精品国产噜噜麻豆| 久久亚洲私人国产精品| 久久久久人妻一区精品| 国产日韩精品无码区免费专区国产| 日韩精品一区二区三区老鸭窝 | 四虎精品亚洲一区二区三区| 无码日韩精品一区二区免费暖暖| 国产精品k频道在线看| 精品无码国产污污污免费| 久久精品国产72国产精| 亚洲精品无码久久| 精品久久久久久久久免费影院| 国产精品特级毛片一区二区三区| 一本色道久久综合亚洲精品| 一色屋精品视频在线观看| 亚洲精品高清国产一线久久| 成人区精品人妻一区二区不卡| 免费精品久久久久久中文字幕 | 久久精品国产精品亚洲下载| 精品91自产拍在线观看| 精品91自产拍在线观看| 中文字幕精品视频在线观| 日韩精品人妻一区二区中文八零| 国产揄拍国产精品| 亚洲国产另类久久久精品小说 | 国产成人综合久久精品红| 亚洲国产精品成人AV在线 | 99re这里只有精品国产精品| 国内午夜国产精品小视频| 国产精品无码一区二区三级| 亚洲精品国产自在久久|