本文發(fā)表于FAST 2022。探討緩存文件管理方法。本文通過(guò)一個(gè)輕量級(jí)的基于機(jī)器學(xué)習(xí)的分類引擎來(lái)篩選和個(gè)性化管理緩存文件,實(shí)驗(yàn)在華為P9和Mate30兩部手機(jī)上進(jìn)行,驗(yàn)證I/O性能和存儲(chǔ)壽命。結(jié)果表明其具有很好的實(shí)用價(jià)值。
背景
由于應(yīng)用程序的動(dòng)態(tài)特性和整體系統(tǒng)優(yōu)化,大部分移動(dòng)應(yīng)用程序都需要從網(wǎng)絡(luò)中下載文件或數(shù)據(jù)。即使現(xiàn)代通信網(wǎng)絡(luò)具有更高的帶寬,許多應(yīng)用程序仍然嚴(yán)重依賴移動(dòng)設(shè)備上緩存的數(shù)據(jù),以避免通過(guò)網(wǎng)絡(luò)重新下載數(shù)據(jù),并滿足其執(zhí)行延遲需求。當(dāng)前的移動(dòng)設(shè)備首先將緩存文件存儲(chǔ)在主存中,然后將它們寫回閃存。這些應(yīng)用程序的緩存數(shù)據(jù)通常作為緩存文件進(jìn)行管理,并且可以快速地重新訪問(wèn)。
問(wèn)題
1. 緩存文件請(qǐng)求的空間越來(lái)越大。
即使部分移動(dòng)系統(tǒng)和用戶會(huì)對(duì)部分緩存文件進(jìn)行刪除,但是由于緩存文件的保存而造成的額外閃存寫已經(jīng)發(fā)生,對(duì)閃存性能和壽命的損害也無(wú)法避免;同時(shí),實(shí)驗(yàn)顯示現(xiàn)實(shí)緩存文件寫入移動(dòng)設(shè)備存儲(chǔ)中的數(shù)據(jù)量占總寫入量的64%,頻繁的緩存文件的寫入和刪除都會(huì)引起閃存的IO爭(zhēng)用用降低系統(tǒng)效率,影響閃存壽命。
圖1 不同應(yīng)用緩存寫次數(shù)和寫量占比
2. 當(dāng)前的安卓系統(tǒng)沒(méi)有考慮緩存文件之間的差異性。
緩存文件根據(jù)其訪問(wèn)模式和生命周期可以分為三類:閱后即焚文件,下載后不會(huì)被再次訪問(wèn),因此可以在訪問(wèn)之后直接刪除;瞬態(tài)文件,下載后短時(shí)間內(nèi)會(huì)頻繁訪問(wèn),但過(guò)一段時(shí)間舊不會(huì)被再次訪問(wèn);長(zhǎng)壽文件,下載后的很長(zhǎng)一段時(shí)間后還會(huì)被再次訪問(wèn)。實(shí)驗(yàn)結(jié)果顯示由93%的緩存文件都是閱后即焚文件和瞬態(tài)文件,不需要存儲(chǔ)到閃存中去,但是當(dāng)前的系統(tǒng)對(duì)所有的緩存文件都采取持久化到閃存的策略,實(shí)際上造成了存儲(chǔ)空間的極大浪費(fèi),嚴(yán)重影響閃存壽命和性能。
CacheSifter設(shè)計(jì)與實(shí)現(xiàn)
1. 設(shè)計(jì)原則(1)用戶應(yīng)用透明,不影響應(yīng)用的正常運(yùn)行;
(2)在線分類,對(duì)于閱后即焚文件和瞬態(tài)文件避免存儲(chǔ)到閃存中;
(3)自適應(yīng)內(nèi)存管理,根據(jù)內(nèi)存的使用情況自動(dòng)調(diào)整不同應(yīng)用的緩存對(duì)于內(nèi)存的占用;
(4)適應(yīng)用戶行為的改變,當(dāng)用戶訪問(wèn)模式改變時(shí)可以重新分類已經(jīng)做過(guò)分類的文件;
(5)確保系統(tǒng)安全性,刪除緩存文件不會(huì)導(dǎo)致應(yīng)用程序崩潰或用戶數(shù)據(jù)丟失。
2. 基本框架
用一個(gè)輕量級(jí)的機(jī)器學(xué)習(xí)模型進(jìn)行緩存文件的在線分類,并根據(jù)不同的文件類型采取不同的存儲(chǔ)策略:對(duì)于閱后即焚文件,在分類之后立即刪除;對(duì)于瞬態(tài)文件,分類之后由內(nèi)存中的鏈表進(jìn)行管理,超出活動(dòng)時(shí)長(zhǎng)則進(jìn)行刪除操作;對(duì)于長(zhǎng)壽文件,利用安卓的基本LRU驅(qū)逐機(jī)制,自動(dòng)寫回后端閃存,并會(huì)在應(yīng)用程序?qū)⒃撐募е髲拈W存中刪除。對(duì)于一些重要的緩存文件或者刪除會(huì)影響系統(tǒng)安全的文件維護(hù)一個(gè)安全鏈表,避免誤刪的操作。
圖2 系統(tǒng)框架
CacheSifter優(yōu)勢(shì)
1. 避免在閃存中存儲(chǔ)閱后即焚文件和瞬態(tài)緩存文件,可以減少對(duì)閃存空間的不必要的數(shù)據(jù)寫,大大改善閃存性能和壽命;2. 直接從DRAM訪問(wèn)瞬態(tài)文件,提高這部分文件的訪問(wèn)速度和性能;3. 利用輕量級(jí)的機(jī)器學(xué)習(xí)模型來(lái)優(yōu)化緩存文件的管理,引入的代價(jià)極小,可以實(shí)現(xiàn)用戶透明的目標(biāo)。
評(píng)估
評(píng)估實(shí)驗(yàn)在華為P9和Mate30兩部手機(jī)上進(jìn)行,由于CacheSifter的平臺(tái)獨(dú)立性,結(jié)果顯示在兩部手機(jī)上的實(shí)驗(yàn)數(shù)據(jù)差異不大。
由于內(nèi)存使用和分類時(shí)間的限制,本文在一個(gè)模型中只能關(guān)注一個(gè)優(yōu)化指標(biāo),因此使用了兩個(gè)模型來(lái)進(jìn)行訓(xùn)練以分別保證訓(xùn)練的高準(zhǔn)確率或高召回率:高召回率模型旨在減少緩存文件的回寫,并將重新下載的開(kāi)銷最小到最低;而高精度模型則旨在以最小的錯(cuò)誤分類來(lái)減少緩存文件的回寫。
為了評(píng)估Cache Sifter的有效性,我們?cè)O(shè)計(jì)實(shí)驗(yàn)來(lái)驗(yàn)證本文的方法在緩存回寫數(shù)據(jù)量的減少、閃存壽命的改善、密集IO下讀寫性能的提高等指標(biāo)上的結(jié)果。
1. 緩存文件寫回?cái)?shù)據(jù)量顯著減小
該實(shí)驗(yàn)主要對(duì)緩存寫的減少和總IO的減少進(jìn)行評(píng)估。
在P9上,高召回模型和高精度模型將緩存文件的寫平均減少了62%和59.5%。兩種模型也顯著減少了總i/o的數(shù)量,即平均分別為29.7%和31.2%;在Mate30上,兩種模型也都大大減少了緩存文件的回寫,即平均分別為88.3%和85.5%。兩種模型的I/Os數(shù)量也減少得更多,即平均分別為47.7%和46.6%。而之所以在兩部手機(jī)上具有不同的優(yōu)化效果,主要還是因?yàn)橛脩粜袨楹拖到y(tǒng)默認(rèn)管理機(jī)制的不同。
圖3 緩存寫回?cái)?shù)據(jù)量減少的實(shí)驗(yàn)結(jié)果
2. 閃存壽命顯著改善
通過(guò)代入寫放大系數(shù)、預(yù)留空間因子、以及PE循環(huán)次數(shù)可以大致估算出閃存的壽命。以P9為例,通過(guò)計(jì)算可以得出兩種模型的平均I/O量可分別減少53.2%和54.7%。因此,使用壽命可以平均分別提高113.7%和120.8%。可以看出本文的方法可以有效提升閃存壽命。
3. 密集IO下讀寫性能提升
通過(guò)制造IO密集內(nèi)存條件,測(cè)試了不同實(shí)驗(yàn)組(不做緩存管理的基本組,高召回率實(shí)驗(yàn)組,高準(zhǔn)確率實(shí)驗(yàn)組,不生成緩存文件的實(shí)驗(yàn)組)在讀寫一個(gè)512MB文件時(shí)的讀寫延遲。實(shí)驗(yàn)結(jié)果如圖4:
圖4 讀寫性能的提升(a)和IO數(shù)據(jù)量的減少(b)
可以看到在IO密集情況下(2G內(nèi)存),與基本組相比,高召回率模型的讀寫延遲平均分別降低了13.9%和18.4%,而使用高精度模型的讀寫延遲分別降低了14.4%和25.5%。這是因?yàn)镃acheSifter會(huì)使得由應(yīng)用程序生成的緩存文件回寫顯著減小,從而改善了內(nèi)存不足或IO密集情況下的IO爭(zhēng)用。因此當(dāng)內(nèi)存充足(至少2.5G)時(shí),這種改善會(huì)由于IO爭(zhēng)用的不明顯而無(wú)法體現(xiàn)。
總結(jié)
文章提出了一種緩存文件管理方案CacheSifter,通過(guò)一個(gè)輕量級(jí)的基于機(jī)器學(xué)習(xí)的分類引擎來(lái)篩選和個(gè)性化管理緩存文件,實(shí)驗(yàn)結(jié)果可以證明該方法對(duì)I/O性能和存儲(chǔ)壽命都提供了顯著的好處,但開(kāi)銷很小,具有很好的實(shí)用價(jià)值。
The End
致 謝
感謝本次論文解讀者,來(lái)自華東師范大學(xué)的準(zhǔn)研究生張祎,主要研究方向?yàn)殚W存緩存管理技術(shù)研究。
原文標(biāo)題:移動(dòng)設(shè)備中的緩存文件管理
文章出處:【微信公眾號(hào):SSDFans】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
原文標(biāo)題:移動(dòng)設(shè)備中的緩存文件管理
文章出處:【微信號(hào):SSDFans,微信公眾號(hào):SSDFans】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論