背景
內(nèi)存交換技術(shù)是當(dāng)內(nèi)存緊缺的時(shí)候,將內(nèi)存中的頁(yè)面交換到交換設(shè)備中(如zRAM,SSD等)。隨著SSD的性能越來(lái)越好,越來(lái)越多的交換設(shè)備采用SSD。然而對(duì)于塊SSD來(lái)說(shuō),數(shù)據(jù)頻繁寫(xiě)入更新會(huì)導(dǎo)致頻繁觸發(fā)垃圾回收(GC)進(jìn)行空閑空間的回收。而其中的有效數(shù)據(jù)搬移會(huì)導(dǎo)致額外的寫(xiě)放大,因此垃圾回收的效率決定了對(duì)壽命的影響程度。Zoned Namespace (ZNS)是一種新型SSD存儲(chǔ)接口特性。一個(gè)ZNS SSD是由一系列邏輯可尋址zone(區(qū)域)組成,而每個(gè)區(qū)域物理上與SSD擦除粒度Block是對(duì)齊的。區(qū)域內(nèi)的讀可以是隨機(jī)的,但是寫(xiě)必須是順序的。
動(dòng)機(jī)
對(duì)于數(shù)據(jù)中心而言,交換性能十分關(guān)鍵。因此本文針對(duì)于交換邏輯和SSD行為之間的相互作用進(jìn)行分析,并得出4點(diǎn)重要發(fā)現(xiàn)。
發(fā)現(xiàn)1:塊SSD執(zhí)行GC時(shí)無(wú)法感知到已解除分配的交換槽(swap-slots)。
塊設(shè)備SSD通常使用TRIM命令來(lái)使設(shè)備感知到交換槽的釋放,然而對(duì)降低由于內(nèi)存交換導(dǎo)致的GC開(kāi)銷(xiāo)效果并不明顯。這是因?yàn)閷?duì)于傳統(tǒng)大粒度TRIM而言,連續(xù)512個(gè)邏輯地址頁(yè)面的TRIM比較難以達(dá)到,故而TRIM指令的下發(fā)很少,使得效果并不明顯;同時(shí)對(duì)于小粒度TRIM而言,由于TRIM本身帶有的開(kāi)銷(xiāo)(如命令下發(fā),元數(shù)據(jù)加載修改開(kāi)銷(xiāo)等),使得其效果也并不是很理想。圖1展示了實(shí)驗(yàn)結(jié)果。

圖1 TRIM對(duì)設(shè)備性能的影響
發(fā)現(xiàn)2:交換緩存無(wú)法感知到GC。
圖2展示了設(shè)備使用率對(duì)讀性能的影響。理論情況下不同設(shè)備使用率對(duì)讀性能應(yīng)該沒(méi)有影響,然而經(jīng)過(guò)測(cè)試發(fā)現(xiàn)當(dāng)設(shè)備使用率高的時(shí)候讀性能和寫(xiě)放大系數(shù)發(fā)生了變化。這跟交換緩存實(shí)現(xiàn)的原理有關(guān)。當(dāng)設(shè)備使用率超過(guò)50%時(shí),所有交換讀請(qǐng)求不會(huì)存放在交換緩存中,此時(shí)swap-slot會(huì)被釋放。當(dāng)內(nèi)存中逐出該數(shù)據(jù)時(shí),則需要重新將數(shù)據(jù)寫(xiě)入交換設(shè)備中。這樣設(shè)計(jì)的原因有二,一是避免swap-slot過(guò)多帶來(lái)的管理開(kāi)銷(xiāo),二是避免設(shè)備垃圾回收時(shí)搬移過(guò)多的數(shù)據(jù)量。圖3展示了交換緩存中截?cái)嚅撝祵?duì)性能設(shè)壽命的影響。其中發(fā)現(xiàn)對(duì)讀負(fù)載,閾值越大表現(xiàn)越好,因?yàn)楸苊饬藬?shù)據(jù)的額外寫(xiě)入;對(duì)讀寫(xiě)混合負(fù)載,閾值越小表現(xiàn)越好,因?yàn)榧皶r(shí)無(wú)效外存數(shù)據(jù)則會(huì)提升垃圾回收效率,提高性能。而對(duì)于靜態(tài)閾值無(wú)法很好地滿足不同工作負(fù)載的表現(xiàn)。

圖2 設(shè)備使用率對(duì)讀性能的影響

圖3 交換緩存截?cái)嚅撝祵?duì)性能和壽命的影響
發(fā)現(xiàn)3:GC無(wú)法感知到頁(yè)面訪問(wèn)特征。
對(duì)于TRIM而言,常見(jiàn)使用大粒度TRIM來(lái)降低開(kāi)銷(xiāo)。然而對(duì)于傾斜度較大的負(fù)載,無(wú)效掉的數(shù)據(jù)往往無(wú)法十分連續(xù)。這會(huì)影響TRIM的下發(fā),從而影響GC效率。經(jīng)過(guò)測(cè)試發(fā)現(xiàn),采用均衡負(fù)載時(shí),換出帶寬為480MB/s;然而對(duì)于傾斜負(fù)載(512-slots TRIM)時(shí),換出帶寬為195MB/s,同時(shí)對(duì)于傾斜負(fù)載(8-slots TRIM)換出帶寬為324MB/s。因此針對(duì)不同頁(yè)面訪問(wèn)特征,GC無(wú)法很好的感知到,導(dǎo)致整體性能下降。
發(fā)現(xiàn)4:GC無(wú)法感知到操作系統(tǒng)的性能隔離。
圖4顯示了不同進(jìn)程的換入帶寬。CG.A為純讀進(jìn)程,CG.B為讀寫(xiě)混合進(jìn)程。通過(guò)圖中可以發(fā)現(xiàn),不同進(jìn)程之間的性能會(huì)被相互影響。而理想狀態(tài)下不同進(jìn)程之間的性能應(yīng)該不受到影響,如讀寫(xiě)混合負(fù)載引發(fā)的GC不應(yīng)該影響純讀負(fù)載的性能。

圖4 進(jìn)程之間性能的相互影響
方法
為了解決上述的四個(gè)問(wèn)題,ZNS SSD在本文中被使用。這是因?yàn)閆NS SSD隨著設(shè)備使用率的提升依然保持著穩(wěn)定的性能,如圖5所示。本文提出ZNSwap,其中有三個(gè)關(guān)鍵設(shè)計(jì)目標(biāo):1. 實(shí)現(xiàn)資源高效的主機(jī)端GC:降低主機(jī)端GC最為消耗資源的反向映射表的開(kāi)銷(xiāo)。2. ZNGC-OS一體化:ZNGC可以直接獲取操作系統(tǒng)暴露的信息來(lái)優(yōu)化swap性能,避免TRIM的開(kāi)銷(xiāo)。3. 交換數(shù)據(jù)放置策略:通過(guò)一系列接口實(shí)現(xiàn)每個(gè)核之間的性能隔離、冷熱數(shù)據(jù)間的性能隔離和進(jìn)程之間的性能隔離。

圖5 ZNS SSD隨著設(shè)備使用率的不同性能的變化
1. ZNGC:ZNGC中實(shí)現(xiàn)了反向映射的設(shè)計(jì),通過(guò)在頁(yè)面的OOB區(qū)域中存儲(chǔ)結(jié)構(gòu)體來(lái)進(jìn)行反向映射,而非通過(guò)記錄地址轉(zhuǎn)換表,從而節(jié)省開(kāi)銷(xiāo)。具體結(jié)構(gòu)體設(shè)計(jì)如圖6所示。

圖6 Linux反向映射設(shè)計(jì),陰影部分為ZNGC反向映射時(shí)所需要用到的結(jié)構(gòu)體
2. ZNGC-swap一體化:其中包括四個(gè)部分內(nèi)容。a)物理zone(空間)信息:每個(gè)空間與swap-slots的映射相關(guān)聯(lián),映射存儲(chǔ)了每個(gè)swap-slot的狀態(tài)。這樣ZNGC和OS就可以立馬知道swap-slot的狀態(tài)轉(zhuǎn)變,不需要TRIM和截?cái)嚅撝祦?lái)管理交換緩存。b)交換空間抽象:可以被用來(lái)swap-slot分配的活躍空間通過(guò)交換空間抽象進(jìn)行暴露,從而避免管理物理空間的復(fù)雜性。c)ZNSwap策略:提供一系列接口使得可以定制化空間分配策略和回收策略。d)接口:本文定義了三個(gè)標(biāo)準(zhǔn)api,核策略、冷熱策略和進(jìn)程策略,分別是對(duì)每個(gè)核的數(shù)據(jù)、冷熱數(shù)據(jù)和進(jìn)程數(shù)據(jù)進(jìn)行性能隔離。

圖7 ZNGC 策略接口
實(shí)驗(yàn)結(jié)果
ZNGC-交換子系統(tǒng)收益:換出帶寬實(shí)驗(yàn)結(jié)果如圖8所示。正如預(yù)期,隨著設(shè)備使用率的提升GC負(fù)擔(dān)越重。同時(shí),該文章衡量了80%設(shè)備使用率時(shí),CPU的最大開(kāi)銷(xiāo)。發(fā)現(xiàn),ZNGC的CPU開(kāi)銷(xiāo)小,同時(shí)交換性能表現(xiàn)更好。同時(shí)跟采用截?cái)嚅撝迪啾?,ZNSwap可以達(dá)到圖3中的ideal。

圖8 換出帶寬和寫(xiě)放大與設(shè)備使用率的關(guān)系
進(jìn)程交換性能隔離:同時(shí)運(yùn)行兩個(gè)進(jìn)程,一個(gè)只讀,一個(gè)只寫(xiě),觀察兩個(gè)進(jìn)程的換入性能。結(jié)果如圖9所示。使用進(jìn)程策略,可以使得ZNswap在該條件下達(dá)到最優(yōu)帶寬。

圖9 進(jìn)程性能隔離實(shí)驗(yàn)結(jié)果
總結(jié)
本篇文章針對(duì)基于塊SSD開(kāi)啟內(nèi)存交換進(jìn)行分析后得出四個(gè)結(jié)論,塊SSD垃圾回收時(shí)所存在的缺陷。進(jìn)而提出使用ZNS SSD,并進(jìn)行內(nèi)存交換的優(yōu)化設(shè)計(jì)。具體包括資源搞笑的主機(jī)端GC、ZNGC-OS一體化和交換數(shù)據(jù)放置策略。通過(guò)最終的實(shí)驗(yàn)結(jié)果可以得出,ZNswap可以得到較好的性能和較低的寫(xiě)放大,同時(shí)也實(shí)現(xiàn)了較好的性能隔離。
審核編輯:劉清
-
存儲(chǔ)器
+關(guān)注
關(guān)注
39文章
7716瀏覽量
170985 -
交換機(jī)
+關(guān)注
關(guān)注
23文章
2881瀏覽量
104039 -
SSD
+關(guān)注
關(guān)注
21文章
3064瀏覽量
121882 -
SWAP
+關(guān)注
關(guān)注
0文章
52瀏覽量
13565
原文標(biāo)題:?ZNSwap: 探索內(nèi)存交換的新出路
文章出處:【微信號(hào):SSDFans,微信公眾號(hào):SSDFans】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
PC不景氣,英特爾或要靠云計(jì)算和物聯(lián)網(wǎng)賺錢(qián)了
LED照明新出路,智能化成賣(mài)點(diǎn)
微組裝技術(shù)大逃脫:從難題困境中尋找創(chuàng)新出路
[分享]我們Hotmail.com認(rèn)為,恩格斯Hotmail Com這部著作的書(shū)名
危機(jī)之后,看中國(guó)行業(yè)領(lǐng)頭羊指點(diǎn)本土手機(jī)技術(shù)提升新出路
固網(wǎng)寬帶存量空間還在緊縮,三大運(yùn)營(yíng)商探索智慧家庭新道路
專訪鄭梁:富昌電子1688超級(jí)店走出電子元器件電商新出路
NFC技術(shù)或成新零售新出路
光伏取暖能否成為光伏新出路?
自動(dòng)駕駛可以在礦區(qū)運(yùn)輸上做些什么
探索長(zhǎng)三角產(chǎn)業(yè)數(shù)智化發(fā)展新出路
邊緣計(jì)算設(shè)備,手機(jī)循環(huán)經(jīng)濟(jì)的新出路
如何解決內(nèi)存碎片與內(nèi)存交換效率慢的問(wèn)題
如何使用反射內(nèi)存交換機(jī)
楊玉崗: 磁性元件行業(yè)如何尋找新出路?

探索內(nèi)存交換的新出路
評(píng)論