OpenHarmony是面向全場(chǎng)景泛終端設(shè)備的操作系統(tǒng),終端設(shè)備內(nèi)存性能的強(qiáng)弱會(huì)直接影響用戶的體驗(yàn)。終端設(shè)備的內(nèi)存差異很大,對(duì)于內(nèi)存比較小的終端設(shè)備,內(nèi)存優(yōu)化方案無疑是增強(qiáng)內(nèi)存性能、提升用戶體驗(yàn)的關(guān)鍵。針對(duì)傳統(tǒng)內(nèi)存方案及管理機(jī)制的不足,OpenHarmony構(gòu)建了一套完善的內(nèi)存解決方案——ESWAP。
1. 傳統(tǒng)內(nèi)存方案及管理機(jī)制
在傳統(tǒng)的Linux內(nèi)存優(yōu)化方案中,終端設(shè)備通常采用SWAP及ZRAM內(nèi)存方案。
1.1 SWAP
SWAP即內(nèi)存交換技術(shù)或虛擬內(nèi)存技術(shù),如圖1所示,在系統(tǒng)的物理內(nèi)存不足時(shí),把內(nèi)存中的一部分不常用的內(nèi)存空間釋放出來,以增大系統(tǒng)可用內(nèi)存供當(dāng)前運(yùn)行的程序使用。這些被釋放的數(shù)據(jù)被臨時(shí)保存到SWAP分區(qū)中,等到需要使用時(shí),再從SWAP分區(qū)中恢復(fù)到內(nèi)存中。

圖1 SWAP虛擬內(nèi)存技術(shù)
從圖1中不難看出,SWAP內(nèi)存交換技術(shù)增大了設(shè)備內(nèi)用內(nèi)存,但是,SWAP內(nèi)存換入/換出時(shí)會(huì)遭遇IO性能瓶頸,嚴(yán)重時(shí)甚至?xí)绊懹脩舻氖褂皿w驗(yàn),并且flash存儲(chǔ)器件的頻繁讀寫也會(huì)縮減其壽命。
1.2 ZRAM
ZRAM即內(nèi)存壓縮技術(shù),如圖2所示,在系統(tǒng)的物理內(nèi)存不足時(shí),將系統(tǒng)物理內(nèi)存的一部分劃分出來作為ZRAM分區(qū),然后把不常用的匿名頁壓縮后放到ZRAM分區(qū)里,相當(dāng)于犧牲了一些CPU效率,以增大系統(tǒng)可用內(nèi)存供當(dāng)前運(yùn)行的程序使用。等到需要使用時(shí),再從ZRAM分區(qū)中將數(shù)據(jù)解壓出來。

圖2 ZRAM內(nèi)存壓縮技術(shù)
雖然ZRAM在一定程度上增大了設(shè)備內(nèi)用內(nèi)存,但是如果沒有合適的方式來對(duì)內(nèi)存進(jìn)行管理,負(fù)面影響也會(huì)非常明顯,將會(huì)造成內(nèi)存頁頻繁的壓縮/解壓縮,從而搶占正常業(yè)務(wù)的CPU時(shí)間,增加系統(tǒng)的功耗。并且,如果壓縮/解壓速度不夠快的話,會(huì)直接影響用戶的使用體驗(yàn)。
1.3 內(nèi)存管理機(jī)制
除了內(nèi)存方案不足,傳統(tǒng)的內(nèi)存分配及管理方式,無法感知業(yè)務(wù)特性及數(shù)據(jù)的重要性。如果終端設(shè)備多個(gè)進(jìn)程或業(yè)務(wù)共用一塊內(nèi)存,當(dāng)內(nèi)存負(fù)載越來越重,進(jìn)行內(nèi)存數(shù)據(jù)回收時(shí),會(huì)頻繁出現(xiàn)數(shù)據(jù)搬移,以及內(nèi)存震蕩的現(xiàn)象。這些現(xiàn)象會(huì)加重內(nèi)核管理內(nèi)存的開銷,并導(dǎo)致系統(tǒng)CPU負(fù)載長(zhǎng)期處于高負(fù)載的狀態(tài),從而增加系統(tǒng)功耗。
2. OpenHarmony內(nèi)存解決方案
針對(duì)原有內(nèi)存方案的不足,OpenHarmony構(gòu)建了一套完善的內(nèi)存解決方案ESWAP,打通了上層系統(tǒng)到內(nèi)核的調(diào)用棧,讓內(nèi)核能在上層配置的指導(dǎo)下,對(duì)每一塊內(nèi)存數(shù)據(jù)進(jìn)行合理的管理。
下面我們將為大家介紹ESWAP解決方案以及其關(guān)鍵技術(shù)的解析。
2.1 ESWAP方案介紹
ESWAP(Enhanced SWAP)是OpenHarmony針對(duì)內(nèi)存優(yōu)化問題提供的一套完善的內(nèi)存解決方案,結(jié)合內(nèi)存壓縮和內(nèi)存交換技術(shù),定制了一套合理高效的調(diào)度管理策略,使壓縮和交換兩者的工作能夠高效且平衡。ESWAP基于關(guān)聯(lián)性的數(shù)據(jù)聚合技術(shù)及上層指導(dǎo)策略,將內(nèi)存劃分為不同的分組進(jìn)行管理,通過回收優(yōu)先級(jí)來區(qū)分不同分組下內(nèi)存的活躍程度,優(yōu)先壓縮、換出較不活躍的內(nèi)存數(shù)據(jù),以提升數(shù)據(jù)交換性能,減少壽命沖擊。
ESWAP解決方案的整體框架如圖3所示:

圖3 ESWAP解決方案
ESWAP解決方案在全局資源調(diào)度子系統(tǒng)中增加了一個(gè)系統(tǒng)資源調(diào)度模塊,通過向賬戶子系統(tǒng)訂閱本地賬戶的變化來感知當(dāng)前的賬戶狀態(tài)和內(nèi)存狀態(tài),然后根據(jù)賬戶狀態(tài)給各個(gè)賬戶設(shè)置不同的回收優(yōu)先級(jí)、設(shè)置目標(biāo)可用內(nèi)存量、設(shè)置壓縮和換出的比例等參數(shù),并將這些參數(shù)下發(fā)給ZSWAPD。ZSWAPD會(huì)依據(jù)回收優(yōu)先級(jí)判斷回收的先后順序;依據(jù)目標(biāo)可用內(nèi)存量和當(dāng)前可用內(nèi)存量的差值決定回收的量;依據(jù)壓縮和換出的比例來決定壓縮和換出的量,從而實(shí)現(xiàn)在達(dá)成內(nèi)存擴(kuò)展效果前提下的性能和功耗平衡。
2.2 關(guān)鍵技術(shù)解析
ESWAP內(nèi)存解決方案都用到了哪些關(guān)鍵技術(shù)呢?下面為你一一道來。
2.2.1 定制的ZRAM和交換分區(qū)
ESWAP結(jié)合內(nèi)存壓縮和內(nèi)存交換技術(shù),提供了自定義新增存儲(chǔ)分區(qū)作為內(nèi)存交換分區(qū)的能力,并在內(nèi)核中創(chuàng)建了一個(gè)常駐進(jìn)程ZSWAPD,用于將ZRAM壓縮后的匿名頁加密換出到ESWAP存儲(chǔ)分區(qū)中,從而能完全地空出一塊可用內(nèi)存,以此來達(dá)到維持Memavailable水線的目標(biāo),如圖4所示。

圖4 ESWAP技術(shù)
同時(shí),ESWAP模塊還可以記錄每個(gè)匿名頁的冷熱特征信息,并將這些數(shù)據(jù)通過關(guān)聯(lián)性、冷熱順序進(jìn)行相應(yīng)的存放,使ESWAP交換區(qū)中連續(xù)存放的匿名頁具有時(shí)間和空間局部性。因此在匿名頁換入時(shí),可以將交換區(qū)中的相鄰匿名頁一并讀入ZRAM,以此來保證數(shù)據(jù)的存取速度,提升IO性能。
2.2.2 動(dòng)態(tài)的內(nèi)存回收機(jī)制
OpenHarmony提供了一種額外的內(nèi)存回收機(jī)制ZSWAPD,并創(chuàng)建了“buffer”來作為衡量當(dāng)前系統(tǒng)內(nèi)存能力的指標(biāo)。buffer指的是當(dāng)前系統(tǒng)能提供的最大可用內(nèi)存。ZSWAPD會(huì)根據(jù)buffer量以及上文所述的各種策略,來對(duì)匿名頁進(jìn)行壓縮換出以回收。同時(shí),ZSWAPD還能根據(jù)內(nèi)存冷熱分離的合理性以及內(nèi)存回收狀態(tài), 動(dòng)態(tài)地控制ZRAM和ESWAP之間的平衡,從而獲得更高的能效比。
2.2.3 靈活的內(nèi)存回收策略
OpenHarmony基于Memcg分組進(jìn)行了回收策略的增強(qiáng),使用回收優(yōu)先級(jí)來指導(dǎo)ZSWAPD回收的先后順序?;厥詹呗詫⒓榷ǖ腷uffer相關(guān)配置下發(fā)給ZSWAPD,來指導(dǎo)其回收適當(dāng)數(shù)量的內(nèi)存。此外,由于匿名頁可能存儲(chǔ)在RAM、ZRAM、ESWAP三個(gè)模塊中, 上層可以根據(jù)需要,通過靈活地配置交換策略,控制這三個(gè)模塊中存儲(chǔ)的比例,避免頻繁換入換出帶來的負(fù)面影響。
至此,ESWAP的三項(xiàng)關(guān)鍵技術(shù)就介紹完了,我們來總結(jié)一下:
● 定制的ZRAM和交換分區(qū):將數(shù)據(jù)通過關(guān)聯(lián)性、冷熱順序進(jìn)行存放,保證了數(shù)據(jù)的存取速度,提升了IO性能。
● 動(dòng)態(tài)的內(nèi)存回收機(jī)制:從回收優(yōu)先級(jí)、可用內(nèi)存量、壓縮和交換比例三個(gè)維度動(dòng)態(tài)地控制數(shù)據(jù)回收,從而獲得更高的能效比。
● 靈活的內(nèi)存回收策略:靈活地控制RAM、ZRAM、ESWAP三個(gè)模塊數(shù)據(jù)存儲(chǔ)的比例,保證了各個(gè)模塊的平衡。
2.3 ESWAP相關(guān)接口
ESWAP解決方案支持系統(tǒng)開發(fā)者定制自己的回收策略,并在/dev/memcg下提供了僅對(duì)上層回收策略可見的接口。系統(tǒng)開發(fā)者可以通過這些接口來定制自己的上層策略,具體接口如下所示:

以上就是本文全部?jī)?nèi)容,ESWAP解決方案仍在不斷建設(shè)中,期待廣大開發(fā)者加入我們,共同見證全場(chǎng)景智能時(shí)代的無限可能!
感興趣的小伙伴可以通過下面鏈接獲取ESWAP源碼進(jìn)行深入了解:
https://gitee.com/openharmony/kernel_linux_5.10/pulls/43
特別提醒:本網(wǎng)信息來自于互聯(lián)網(wǎng),目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)。其原創(chuàng)性以及文中陳述文字和內(nèi)容未經(jīng)本站證實(shí),對(duì)本文以及其中全部或者部分內(nèi)容、文字的真實(shí)性、完整性、及時(shí)性本站不作任何保證或承諾,并請(qǐng)自行核實(shí)相關(guān)內(nèi)容。本站不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。如若本網(wǎng)有任何內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系我們,本站將會(huì)在24小時(shí)內(nèi)處理完畢。
相關(guān)推薦
- 華納云香港高防服務(wù)器150G防御4.6折促銷,低至6888元/月,CN2大帶寬直連清洗,終身循環(huán)折扣
- RakSmart服務(wù)器成本優(yōu)化策略
- 2025年國(guó)內(nèi)免費(fèi)AI工具推薦:文章生成與圖像創(chuàng)作全攻略
- 自媒體推廣實(shí)時(shí)監(jiān)控從服務(wù)器帶寬到用戶行為解決方法
- 站長(zhǎng)必讀:從“流量思維”到“IP思維”的品牌升級(jí)之路
- 從流量變現(xiàn)到信任變現(xiàn):個(gè)人站長(zhǎng)的私域運(yùn)營(yíng)方法論
- 傳統(tǒng)網(wǎng)站如何借力短視頻?從SEO到“內(nèi)容種草”的轉(zhuǎn)型策略
- AI時(shí)代,個(gè)人站長(zhǎng)如何用AI工具實(shí)現(xiàn)“一人公司”