亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        一種基于混合頁面的磁盤緩存去重策略

        2019-09-09 03:45:10鄧玉輝
        關(guān)鍵詞:磁盤命中率節(jié)省

        斯 雷,鄧玉輝,2

        1(暨南大學(xué) 信息科學(xué)技術(shù)學(xué)院,廣州 510632)2(中國科學(xué)院 計(jì)算技術(shù)研究所 計(jì)算機(jī)體系結(jié)構(gòu)國家重點(diǎn)實(shí)驗(yàn)室,北京100190) E-mail:tyhdeng@jnu.edu.cn

        1 引 言

        緩存機(jī)制在計(jì)算機(jī)各級存儲系統(tǒng)中廣泛存在,主要是利用數(shù)據(jù)的時(shí)間局部性和空間局部性緩解高速和低速存儲設(shè)備間的性能差異[1].磁盤內(nèi)部的緩存,表現(xiàn)為磁盤控制器上的一塊RAM芯片,在磁盤低速盤片和高速外部接口之間起到緩沖的橋梁作用.研究表明,磁盤緩存大小設(shè)置為磁盤容量的0.1%至0.3%時(shí),能夠達(dá)到最好的效果[2].緩存命中率是衡量緩存好壞的重要指標(biāo),通過改變頁面大小,最大化磁盤緩存的命中率具有重要意義.傳統(tǒng)內(nèi)存及磁盤緩存的頁面大小多為固定的4K大小,而隨著計(jì)算機(jī)的發(fā)展,許多處理器和操作系統(tǒng)已經(jīng)能夠完全支持混合頁機(jī)制.例如,X86平臺能夠支持2M和1G的巨頁大小,ARM平臺能夠支持1M和16M的巨頁大小(1)http://en.wikipedia.org/wiki/Page(computer_memory).

        巨頁的引入,一方面能夠使相同容量的快表(TLB)容納更多的內(nèi)容,增加TLB命中率,極大地減少了由于TLB未命中而帶來的性能開銷.研究[3,4]表明,TLB未命中是導(dǎo)致虛擬化系統(tǒng)和裸機(jī)之間性能差異的主要原因,也成為了內(nèi)存訪問的主要瓶頸之一.另一方面,頁面大小也是影響緩存命中率的重要因素,巨頁能夠擴(kuò)大傳統(tǒng)緩存的頁面大小,最大化緩存的命中率.巨頁是由固定數(shù)量的連續(xù)基頁組成,例如在X86 64位系統(tǒng)中,2M大小的巨頁是由連續(xù)的512個(gè)4K大小的基頁組合而成.隨著頁面變大,頁表項(xiàng)變得更少,相同大小的TLB就能容納更多的內(nèi)容,從而提高TLB命中率.在虛擬環(huán)境中,對于TLB未命中所產(chǎn)生的二維頁表遍歷,隨著巨頁的引入,能夠?qū)⑵渥畲笠么螖?shù)從24減少到15[5].Guilherme[6]提出一種節(jié)能型組相聯(lián)結(jié)構(gòu)的混合快表MIX TLBs,通過巨頁分配機(jī)制能夠同時(shí)支持多種頁面大小,并提高性能達(dá)10%-30%.

        傳統(tǒng)基于LRU算法的緩存系統(tǒng),并不能感知磁盤緩存中的重復(fù)數(shù)據(jù),導(dǎo)致緩存中存在大量的冗余數(shù)據(jù)塊,這對于磁盤中寶貴的緩存空間而言是巨大的浪費(fèi).Castro[7]提出采用數(shù)據(jù)壓縮的方法,減少內(nèi)存交換頻率以節(jié)省緩存容量.然而,對于壓縮算法而言,其本身就需要大量的計(jì)算開銷,當(dāng)壓縮率很低的時(shí)候不僅無法節(jié)省空間還會引入許多額外的計(jì)算和時(shí)間開銷.CacheDedup系統(tǒng)[8]采用重復(fù)數(shù)據(jù)刪除技術(shù)對緩存進(jìn)行去重操作,在緩存中只保留唯一的數(shù)據(jù)塊,大大節(jié)省了緩存容量,并進(jìn)一步提出了去重感知的D-LRU、D-ARC緩存替換算法.

        值得注意的是,巨頁對于去重也有一定的影響.傳統(tǒng)針對基頁的完全去重能夠消除磁盤緩存中的冗余數(shù)據(jù),但隨著頁面變大,完全重復(fù)的巨頁將變得越來越少,去重率將會變得越來越低.為了實(shí)現(xiàn)有效的去重,當(dāng)前許多操作系統(tǒng)主要采用主動去重方法ADA(Aggressive Deduplication Approach),該方法主動地將巨頁拆分為基頁,然后在基頁之間進(jìn)行去重操作[9],例如Linux系統(tǒng)中的KSM.文章[10]實(shí)驗(yàn)結(jié)果表明,ADA方法能夠節(jié)省13.7%~47.9%的內(nèi)存空間,而以巨頁為單位的去重僅能節(jié)省0.8%~5.9%的空間.雖然ADA方法節(jié)省了更多的存儲空間,但對于拆分的巨頁進(jìn)行訪問會顯著減少TLB的命中率,降低了訪問性能.并且,當(dāng)前許多操作系統(tǒng)并不支持對已拆分巨頁進(jìn)行重構(gòu).Fan Guo等人提出了一種基于混合頁的內(nèi)存去重方案SmartMD[10],此方案通過利用去重技術(shù)最大限度節(jié)省內(nèi)存容量,同時(shí)保持了內(nèi)存的高訪問性能.

        針對上述問題,本文提出了一種基于混合頁面的磁盤緩存去重策略.首先,在磁盤緩存中引入混合頁機(jī)制.在保留基頁的同時(shí),引入巨頁,自適應(yīng)地調(diào)整巨頁的大小以使緩存命中率最大化.其次,對基頁和巨頁進(jìn)行動態(tài)轉(zhuǎn)換.設(shè)置監(jiān)視程序動態(tài)檢測巨頁的冷熱程度,將重復(fù)率高的冷巨頁拆分為基頁,以提高緩存去重率,最大限度節(jié)省緩存容量;同時(shí),當(dāng)拆分后的巨頁變熱時(shí),對其進(jìn)行重構(gòu)操作,以提高緩存的命中率以及訪問延遲,使命中率和去重率均達(dá)到相對最優(yōu).最后,利用去重技術(shù)對緩存進(jìn)行去重操作.將LRU緩存替換算法與重復(fù)數(shù)據(jù)刪除技術(shù)相結(jié)合,對基頁和巨頁分別進(jìn)行去重操作,在緩存中只保留唯一的數(shù)據(jù)塊,進(jìn)一步節(jié)省緩存容量.

        本文剩余內(nèi)容組織如下.第二部分,介紹了相關(guān)背景知識,主要包括混合頁機(jī)制和緩存去重的相關(guān)概念.第三部分,詳細(xì)描述了本文所提出的基于混合頁面的磁盤緩存去重系統(tǒng)整體設(shè)計(jì)架構(gòu).第四部分,通過對真實(shí)數(shù)據(jù)trace進(jìn)行仿真實(shí)驗(yàn),得到相關(guān)實(shí)驗(yàn)數(shù)據(jù)并進(jìn)行評估與分析.第五部分,得出結(jié)論并進(jìn)行總結(jié).

        2 背景知識

        2.1 混合頁機(jī)制

        頁面大小是由所用處理器體系架構(gòu)決定的,傳統(tǒng)的系統(tǒng)架構(gòu)通常只具有統(tǒng)一的頁面大小,例如為4K大小.然而隨著計(jì)算機(jī)的發(fā)展,現(xiàn)在的體系結(jié)構(gòu)大多都能很好地支持多種頁面大小,如表1列舉出了常見體系結(jié)構(gòu)下的混合頁面大小.系統(tǒng)的頁面大小越小,則頁面的個(gè)數(shù)就越多.例如,對于32位的虛擬地址空間映射到4K大小的頁面,則虛擬頁面?zhèn)€數(shù)為220(232/212),而當(dāng)頁面大小調(diào)整到64K時(shí)就只需要216(232/216)個(gè)頁.程序每次訪問內(nèi)存,從虛擬地址轉(zhuǎn)換為物理地址,需要先訪問TLB,而TLB未命中造成的二維頁表遍歷的代價(jià)異常高,達(dá)到6倍的頁表查找和內(nèi)存訪問,并且隨著主存容量的增加代價(jià)越來越高[11-14].混合頁機(jī)制引入巨頁后,增大了頁面大小,使得相同大小的TLB能夠存放更多的頁,映射到更多的內(nèi)存空間,極大地提高了TLB的命中率.并且混合頁機(jī)制能夠自適應(yīng)地調(diào)整緩存中的頁面大小,從而使緩存命中率達(dá)到最大.

        表1 常見體系架構(gòu)下的混合頁面大小
        Table 1 Page sizes among architectures

        處理器架構(gòu)基頁大小巨頁大小X86-32位4K2M,4MX86-64位4k2M,1GARMv74K64K,1M,16MIA-64位4K8K,64K,256K,1M,4M,16M,256MPower4K64K,16M,16GSPARC v84K256K,16MUltraSPARC8K64K,512K,4M,32M,256M,2G,16G

        2.2 緩存去重操作

        消除緩存冗余數(shù)據(jù)的主要技術(shù)手段是數(shù)據(jù)壓縮[15-17]和重復(fù)數(shù)據(jù)刪除[18,19].數(shù)據(jù)壓縮主要是針對原始數(shù)據(jù)采用更少的位對其進(jìn)行重新編碼,以達(dá)到優(yōu)化存儲空間的目的,常見的主流壓縮算法有LZ77、LZSS、LZ78和LZW四種.但當(dāng)頁面壓縮率很低的時(shí)候,由于引入了大量額外的計(jì)算開銷從而導(dǎo)致不僅無空間節(jié)省的收益,反而付出了巨大代價(jià).

        重復(fù)數(shù)據(jù)刪除技術(shù)則避免了這一弊端,通過對緩存空間進(jìn)行去重檢測,篩選出完全相同的數(shù)據(jù)塊并進(jìn)行刪除操作,在緩存中只保留唯一的副本,從而消除緩存中的冗余數(shù)據(jù),節(jié)省緩存空間.去重技術(shù)按照去重粒度可分為字節(jié)級去重、塊級去重和文件級去重,其中字節(jié)級去重主要是利用Delta編碼來識別重復(fù)數(shù)據(jù),而塊級和文件級則主要是利用哈希算法(如MD5和SHA-1)來識別相應(yīng)的重復(fù)數(shù)據(jù)塊.去重過程主要包括數(shù)據(jù)塊切分、指紋計(jì)算和數(shù)據(jù)塊檢索,首先將數(shù)據(jù)按照固定大小分割為數(shù)據(jù)塊,并為每個(gè)數(shù)據(jù)塊計(jì)算指紋,然后將指紋作為關(guān)鍵字進(jìn)行Hash比對,若匹配成功則為重復(fù)數(shù)據(jù)塊,最后進(jìn)行去重操作.

        傳統(tǒng)基于LRU替換算法的磁盤緩存系統(tǒng),并不能有效識別緩存中的重復(fù)數(shù)據(jù),導(dǎo)致緩存中存在大量冗余數(shù)據(jù).在這種情況下,文章[8]提出了一種新穎的緩存去重方案,將數(shù)據(jù)緩存與去重元數(shù)據(jù)(包括源地址信息和數(shù)據(jù)指紋信息)相結(jié)合,有效地對這兩個(gè)組件進(jìn)行管理.并在此基礎(chǔ)上提出了去重感知的緩存替換算法,顯著提高了緩存命中率并降低了延遲.

        3 系統(tǒng)結(jié)構(gòu)設(shè)計(jì)

        3.1 核心思想

        本文提出的混合頁磁盤緩存去重策略,其主要思想是在磁盤緩存中引入混合頁機(jī)制,這種緩存中的混合頁一方面能夠很好地適配大規(guī)模應(yīng)用程序所采用的巨頁機(jī)制,另一方面能夠針對不同的應(yīng)用負(fù)載自適應(yīng)地動態(tài)調(diào)整緩存頁面的大小.最佳的頁面大小能夠提高緩存命中率,該緩存系統(tǒng)通過混合頁機(jī)制動態(tài)調(diào)整巨頁大小,使頁面大小調(diào)整為一個(gè)合適值,從而讓緩存命中率達(dá)到最大.其次,將混合頁機(jī)制與重復(fù)數(shù)據(jù)刪除技術(shù)相結(jié)合,去除緩存中的冗余數(shù)據(jù),提高緩存利用率.

        我們在傳統(tǒng)的磁盤緩存中增加了巨頁產(chǎn)生器、頁面監(jiān)視器以及去重組件.巨頁產(chǎn)生器主要用于生成巨頁,將連續(xù)的基頁進(jìn)行合并,生成相應(yīng)巨頁.頁面監(jiān)視器用于檢測巨頁和基頁的冷熱程度,并決定是否將巨頁進(jìn)行拆分或?qū)⒁巡鸱值幕撨M(jìn)行重構(gòu).去重組件在緩存寫入磁盤之前進(jìn)行去重操作,在緩存中只保留唯一的副本

        3.2 詳細(xì)設(shè)計(jì)

        圖1給出了混合頁磁盤緩存去重系統(tǒng)的詳細(xì)設(shè)計(jì)圖,整個(gè)系統(tǒng)的關(guān)鍵技術(shù)在于兩個(gè)方面.其一,如何在基頁與巨頁之間進(jìn)行動態(tài)轉(zhuǎn)換.基頁大小由操作系統(tǒng)所決定,巨頁大小需要根據(jù)實(shí)際的應(yīng)用負(fù)載進(jìn)行調(diào)整,而巨頁、基頁之間的轉(zhuǎn)換則需要實(shí)時(shí)地監(jiān)測頁面的冷熱程度.其二,如何將混合頁機(jī)制與重復(fù)數(shù)據(jù)刪除技術(shù)有效地結(jié)合.加入混合頁機(jī)制后,去重難度將進(jìn)一步增加,巨頁、基頁都需要進(jìn)行去重操作才能最大限度節(jié)省緩存空間.

        圖1 混合頁磁盤緩存詳細(xì)設(shè)計(jì)圖Fig.1 Detailed design of mixed page disk cache

        為了解決以上問題,混合頁磁盤緩存去重系統(tǒng)主要分為如下三個(gè)部分:

        1. 將連續(xù)基頁合并為巨頁.

        2. 監(jiān)視基頁和巨頁,并進(jìn)行動態(tài)轉(zhuǎn)換.

        3. 將調(diào)整后的基頁和巨頁進(jìn)行去重操作.

        首先,根據(jù)初始頁地址,將地址連續(xù)的基頁合并為大的巨頁.巨頁的大小是統(tǒng)一的,主要根據(jù)應(yīng)用程序負(fù)載情況動態(tài)確定,例如當(dāng)巨頁大小設(shè)置為2M時(shí),一個(gè)巨頁是由512個(gè)地址連續(xù)的4k大小基頁合并而成,若存在超過512個(gè)連續(xù)的基頁則進(jìn)行合并,否則保持原有基頁.然后,監(jiān)視程序開始工作,檢測巨頁和基頁的冷熱程度.將那些訪問頻率低的冷巨頁拆分為基頁,這樣有利于對拆分的巨頁進(jìn)行去重操作,提高去重率.同時(shí),當(dāng)這些拆分的巨頁變熱時(shí),再對其進(jìn)行重構(gòu)操作,以提高緩存命中率和訪問延遲.最后,對調(diào)整后的基頁和巨頁分別進(jìn)行數(shù)據(jù)指紋的比對,以確定是否為重復(fù)的數(shù)據(jù)塊,從而進(jìn)行重刪操作

        3.3 混合頁動態(tài)轉(zhuǎn)換

        混合頁機(jī)制中有巨頁和基頁之分,它們的各字段也不盡相同.標(biāo)志位tag用1個(gè)bit位來表示,用以標(biāo)識該頁是基頁還是巨頁,當(dāng)該頁為巨頁時(shí)tag等于1,否則tag為0.start_addr字段表示巨頁的起始地址,size字段表示巨頁的大小,基頁并沒有此字段,這是因?yàn)榛撛诔绦驁?zhí)行前就已經(jīng)由操作系統(tǒng)決定,是一個(gè)固定值,在我們的實(shí)驗(yàn)中該基頁大小為4K.巨頁由連續(xù)的基頁組成,并且內(nèi)部對每個(gè)基頁都進(jìn)行了編號.基頁地址轉(zhuǎn)換并未變化,因此對于組成巨頁的每個(gè)基頁,可以通過編號計(jì)算出頁內(nèi)偏移量,然后利用巨頁起始地址得到巨頁內(nèi)部每個(gè)基頁的地址.

        在巨頁產(chǎn)生器生成巨頁后,監(jiān)視程序開始工作,對巨頁和基頁進(jìn)行冷熱檢測.基頁和巨頁都含有一個(gè)degree字段,初始值為0.某頁被訪問時(shí)degree進(jìn)行自加,當(dāng)degree大于1時(shí)表示該頁被重復(fù)訪問,將其視為熱頁,否則即為冷頁.

        算法1.混合頁的相互轉(zhuǎn)換

        輸入:Pagei∈InitialPage,i=0,1,2,…,n

        1.fori=0;i≤n;i++ do

        2. ifPageiisHugePagethen

        3. ifPageiiscoldthen

        4.BasePage←HugePage;//巨頁拆分為基頁

        5. else

        6. continue;

        7. else

        8. ifPageiishotthen

        9.HugePage←BasePage;//基頁重構(gòu)為巨頁

        10. else

        11. continue;

        12.end

        算法 1 描述了巨頁和基頁的動態(tài)轉(zhuǎn)換過程.當(dāng)所檢測的頁為巨頁(由tag標(biāo)志位決定),并且該頁的訪問頻率較低時(shí)(為冷巨頁),則將該巨頁拆分為若干個(gè)連續(xù)的基頁,并對每個(gè)拆分后基頁的各個(gè)字段進(jìn)行相應(yīng)內(nèi)容的填充,而當(dāng)該頁為熱巨頁時(shí),則保留不進(jìn)行操作.同理,當(dāng)所檢測的頁為拆分后的基頁,并且該頁的訪問頻率變得越來越高時(shí)(變成了熱頁),則又將這些拆分后的連續(xù)基頁進(jìn)行重構(gòu)操作,合并為巨頁.值得注意的是,我們的程序并不是對每一個(gè)拆分的熱基頁都進(jìn)行一次重構(gòu),而是將這些連續(xù)的熱基頁進(jìn)行統(tǒng)一的重構(gòu)操作,這樣進(jìn)一步提高了程序的效率,避免了多次冗余的重構(gòu)操作

        算法2.巨頁大小自適應(yīng)調(diào)節(jié)算法

        輸入:InitialHugePageSize;Pagei∈InitialPage,i=0,1,2,…,n

        輸出:HugePageSize;

        1.whilehit_ratio>max_ratiodo

        2. whilei

        3. ifPageiisHugePagethen//巨頁

        4. whilej

        5.Pagei[j].operator();

        6. //統(tǒng)計(jì)巨頁命中率,并記錄

        7.j++;

        8. end

        9. else //基頁

        10.Pagei.operator();

        11. //統(tǒng)計(jì)基頁命中率,并記錄

        12.i++;

        13. end

        14.HugePageSize*=2; //調(diào)整巨頁大小

        15. max_ratio=hit_ratio; //調(diào)整最大命中率

        16.end

        算法 2 描述了巨頁大小的自適應(yīng)算法.程序由初始頁序列開始,若該頁為巨頁,則對組成該巨頁的所有基頁進(jìn)行遍歷,統(tǒng)計(jì)這些頁的命中情況;若為基頁,則無需遍歷,直接統(tǒng)計(jì)該基頁命中情況.之后根據(jù)命中數(shù)據(jù),計(jì)算緩存命中率,并將該命中率與最大命中率進(jìn)行比較.若該命中率就是最大命中率,則程序結(jié)束;否則繼續(xù)調(diào)整巨頁大小,使之成倍數(shù)增加.最終得到最佳的巨頁大小.

        3.4 混合頁去重

        為了消除混合頁中的冗余數(shù)據(jù),提高緩存利用率,我們將重復(fù)數(shù)據(jù)刪除技術(shù)與混合頁機(jī)制有效結(jié)合在一起.雖然傳統(tǒng)基于LRU替換算法的磁盤緩存,實(shí)現(xiàn)簡單,開銷也很小,但卻無法識別緩存中的冗余數(shù)據(jù)塊,導(dǎo)致了對寶貴緩存空間的浪費(fèi).增加去重操作后,原來的地址映射關(guān)系從一對一變成了多對一,不再是源地址到Cache地址的一一映射,同一數(shù)據(jù)塊將映射到多個(gè)源地址.

        首先,我們采用固定分塊的重復(fù)數(shù)據(jù)刪除方法,利用MD5算法對數(shù)據(jù)塊進(jìn)行指紋計(jì)算,相應(yīng)指紋對應(yīng)于頁面的hash值.其次,為了方便有效地對緩存數(shù)據(jù)進(jìn)行管理,系統(tǒng)維護(hù)了兩個(gè)緩存鏈表,分別是數(shù)據(jù)緩存(Data Cache)鏈表和元數(shù)據(jù)緩存(Metadata Cache)鏈表.其中數(shù)據(jù)緩存鏈表用以保存去重后的唯一數(shù)據(jù)塊,而元數(shù)據(jù)緩存則用以保存頁的訪問順序.當(dāng)連續(xù)的基頁合并為巨頁后,該巨頁所對應(yīng)的hash值采用所有基頁hash的均值表示.一方面,可以有效識別巨頁,識別巨頁利用標(biāo)記位和hash值共同決定;另一方面,降低了hash值逐一比對的計(jì)算開銷.數(shù)據(jù)緩存與元數(shù)據(jù)緩存通過指紋索引有效聯(lián)系,當(dāng)識別到重復(fù)數(shù)據(jù)塊后,指紋索引計(jì)數(shù)器開始累加,以統(tǒng)計(jì)相同數(shù)據(jù)塊出現(xiàn)的次數(shù).對于多次出現(xiàn)的相同數(shù)據(jù)塊,將其指向數(shù)據(jù)緩存中相應(yīng)的唯一數(shù)據(jù)塊,達(dá)到去重目的.

        緩存中所采用的是較為簡單的LRU頁面替換算法,將最近最久未使用的頁面替換出去.由于該實(shí)驗(yàn)主要與傳統(tǒng)LRU磁盤緩存作對比,可比性較高,并且開銷較小,易于實(shí)現(xiàn).對于巨頁和基頁兩種不同的頁面信息,為了進(jìn)一步提高緩存整體的去重率,使去重達(dá)到最好的效果,我們將其分別進(jìn)行去重操作.當(dāng)巨頁、基頁的拆分和重構(gòu)操作完成后,去重工作開始執(zhí)行.一方面,將冷巨頁進(jìn)行拆分后再執(zhí)行去重,去重的粒度相對變小,能夠識別更小粒度的重復(fù)數(shù)據(jù)頁,提高去重率.另一方面,將變熱的基頁進(jìn)行合并后再進(jìn)行去重,避免了對每一個(gè)基頁的單獨(dú)操作,保證去重率的同時(shí),減少了時(shí)間開銷.

        4 實(shí)驗(yàn)結(jié)果及分析

        4.1 實(shí)驗(yàn)環(huán)境

        我們使用CentOS系統(tǒng)的服務(wù)器作為實(shí)驗(yàn)平臺,其內(nèi)核版本為Linux release 7.2.1511,處理器為Intel(R) Xeon(R) CPU E5-2403的4核CPU,主頻大小為1.80GHz,內(nèi)存為10GB,500GB大小的硬盤空間.

        表2 實(shí)驗(yàn)數(shù)據(jù)集特征
        Table 2 Feature of experimental data set

        名稱工作集大小(GB)總I/O大小(GB)寫/讀比例唯一數(shù)據(jù)大小(GB)測試所用I/O數(shù)WebVM2.154.53.623.4185210Homes5.967.331.544.41961599Mail57.117418.1171.320382880

        選用美國佛羅里達(dá)國際大學(xué)(FIU)收集的系統(tǒng)IO作為我們的測試數(shù)據(jù)集,表2列舉了這些Trace數(shù)據(jù)的特征.其中WebVM收集于管理學(xué)院在線郵件代理和在線課程網(wǎng)站,Homes來自研究工作小組的日?;顒?包括開發(fā)、測試、實(shí)驗(yàn)、繪圖等操作),Mail則是從學(xué)院的電子郵件服務(wù)器收集得到.通過這些真實(shí)Trace記錄,利用程序模擬了基于混合頁磁盤緩存的工作過程.分別測試不同的磁盤緩存大小(如:32M,64M,128M,256M,512M)以及各種巨頁大小(如:8K,16K,32K,64K等)下緩存的讀寫命中情況、延遲時(shí)間等參數(shù).最終針對這些數(shù)據(jù)進(jìn)行分析和處理,得到相應(yīng)結(jié)論.

        4.2 巨頁大小調(diào)整

        我們分別在三種不同類型的應(yīng)用負(fù)載下測試了巨頁大小對緩存讀寫命中率的影響.圖5(a)給出了在不同磁盤緩存大小下(如:32M,64M,128M,256M,512M),各種巨頁大小(如:8K,16K,32K,64K,128K,256K)所對應(yīng)的寫命中情況.對于實(shí)驗(yàn)所采用數(shù)據(jù)集類型,其巨頁大小普遍偏小,在未達(dá)到MB級別情況下,命中率已經(jīng)能夠最大化.總的來說,隨著緩存大小逐漸增加,緩存命中率呈現(xiàn)遞增的趨勢,在512M的緩存大小時(shí)達(dá)到最大命中率.同時(shí),隨著巨頁大小逐漸增加,緩存命中率呈現(xiàn)先增加后減小的趨勢,均會在某一個(gè)巨頁大小命中率達(dá)到最大值.此時(shí)的巨頁大小,就是程序自適應(yīng)調(diào)節(jié)的最終結(jié)果,也是使命中率最大的最佳巨頁大小.例如,對于WebVM Trace數(shù)據(jù)集,其巨頁大小調(diào)節(jié)為16k;Mail Trace其巨頁大小為64K;Homes Trace巨頁大小為32K.

        圖5(b)呈現(xiàn)的是在不同磁盤緩存大小下,各種巨頁大小相對應(yīng)的讀命中情況.總的趨勢與寫命中類似,但由于所選用的數(shù)據(jù)集中讀請求相對寫請求少得多,因此讀命中率也相對較小.值得注意的是,對于同一個(gè)數(shù)據(jù)集,當(dāng)寫命中達(dá)到最大時(shí),讀命中并未達(dá)到最大,因?yàn)閿?shù)據(jù)集中寫請求起到主導(dǎo)作用,我們選擇適應(yīng)寫命中.例如,對于Mail Trace數(shù)據(jù)集,最佳巨頁大小任然為64K,此時(shí)讀命中雖然并非最大化,卻也最接近最大值.

        4.3 命中率

        命中率是衡量緩存優(yōu)劣的重要指標(biāo),在磁盤緩存中引入混合頁機(jī)制后有效提升了緩存的命中率.一方面,緩存命中率會隨著緩存大小逐漸遞增;另一方面,對于不同的巨頁大小命中率也具有一定規(guī)律.我們對于三種不同的工作負(fù)載(WebVM、Mail、Homes),分別在最佳巨頁大小的情況下,測試其讀寫命中率(如圖2所示),并將其與傳統(tǒng)只具有基頁的磁盤緩存進(jìn)行對比分析.

        圖2 不同巨頁大小讀寫命中率的變化情況Fig.2 Changes in the hit ratio of different huge page sizes

        圖3 WebVM數(shù)據(jù)集,傳統(tǒng)頁與混合頁讀寫命中率對比Fig.3 Comparison of hit ratio between base and mix page(WebVM)

        圖3表示的是對于WebVM數(shù)據(jù)集,混合頁模式與傳統(tǒng)磁盤緩存,在不同緩存大小下,其讀寫命中率對比情況.總的來說,混合頁模式的磁盤緩存命中率均比傳統(tǒng)磁盤提高許多,并隨著緩存大小的增加呈遞增趨勢.例如,圖3(a)中,其寫命中率最高可提升53.6%;圖3(b)中,其讀命中率最高可提升2.36倍.此外,也具有一定的特殊情況,例如對于寫命中率,當(dāng)緩存容量增大至512M時(shí),此時(shí)混合頁模式的磁盤緩存寫命中比傳統(tǒng)磁盤略低,主要是因?yàn)閷τ?12M的緩存大小,此時(shí)的巨頁大小并非為最佳值,而是采用的近似值16K.而對于讀命中率,當(dāng)緩存大小增大到256M時(shí),此時(shí)混合頁模式的磁盤緩存讀命中率略低.原因主要在于,采用混合頁將連續(xù)基頁合并為巨頁后,合并的巨頁并未命中,反而導(dǎo)致整體的命中率降低.另一方面,WebVM數(shù)據(jù)集容量偏小,其中讀請求所占比例更小,導(dǎo)致合并后的巨頁難以命中,讀命中提升效果不明顯.

        對于Mail Trace數(shù)據(jù)集,混合頁模式的磁盤緩存命中率的優(yōu)勢進(jìn)一步凸顯.如圖4(a),對于傳統(tǒng)磁盤寫命中率極低的32M、64M、128M緩存大小,混合頁模式磁盤緩存其寫命中率提升了15.04至30.08倍.其主要原因在于,一方面,將基頁合并為巨頁后大量巨頁直接命中,而總頁數(shù)因?yàn)楹喜⒍鴾p少,緩存命中率隨之提高.另一方面,重復(fù)數(shù)據(jù)刪除技術(shù)的使用進(jìn)一步擴(kuò)展了有效的緩存容量,使命中率進(jìn)一步得到提升.而對于256M和512M的緩存大小,其寫命中率也能相應(yīng)提升6.47倍和3.42倍.對于讀命中情況,如圖4(b).總的來說,讀命中率隨著緩存大小的增加,其變化幅度并不大,均維持在2.6倍至2.97倍之間.

        圖4 Mail數(shù)據(jù)集,傳統(tǒng)頁與混合頁讀寫命中率對比Fig.4 Comparison of hit ratio between base and mix page(Mail)

        對于Homes Trace數(shù)據(jù)集,其命中率的總體趨勢與上面兩種數(shù)據(jù)集類似,如圖5所示,其寫命中率提升了17.75%至24.12%.而對于讀命中來說,混合頁磁盤緩存的效果并不總是很好,然而這并不影響總體的命中率提升.一方面,對于Homes Trace數(shù)據(jù)集,其讀請求所占比例十分小,寫請求總數(shù)達(dá)到讀請求總數(shù)的31.5倍.另一方面,其讀命中率在0.01的數(shù)量級,可以忽略不計(jì).

        針對上述傳統(tǒng)磁盤緩存與混合頁磁盤緩存的對比分析,可以看到基于混合頁面的磁盤緩存去重策略能夠極大提升磁盤緩存的命中率.通過自適應(yīng)調(diào)整巨頁的大小,使緩存達(dá)到最佳的頁面大小,從而最大化緩存命中率,使其寫命中率最大提升30.08倍,讀命中率最大提升2.97倍.

        圖5 Homes數(shù)據(jù)集,傳統(tǒng)頁與混合頁讀寫命中率對比Fig.5 Comparison of hit ratio between base and mix page(Homes)

        4.4 訪問延遲

        磁盤訪問延遲時(shí)間也是評價(jià)磁盤緩存設(shè)計(jì)優(yōu)劣的重要指標(biāo),通過對三種不同應(yīng)用負(fù)載在128M緩存大小下延遲時(shí)間的測試,我們將基于混合頁面的磁盤緩存去重系統(tǒng)與傳統(tǒng)基于LRU替換算法的磁盤緩存進(jìn)行了詳細(xì)的對比分析.磁盤訪問時(shí)間Taccess的計(jì)算方法如公式(1)所示:

        Taccess=Hcache·Tcache+(1-Hcache)·Tdisk

        (1)

        其中Hcache表示磁盤緩存命中率,Tcache表示緩存的訪問時(shí)間,而Tdisk則表示磁盤的訪問時(shí)間.一般現(xiàn)代磁盤其緩存訪問時(shí)間在7至10ns之間,我們這里假設(shè)為10ns.那么對于訪問512字節(jié)(1個(gè)扇區(qū)),具有64位芯片的緩存數(shù)據(jù),其緩存訪問時(shí)間Tcache計(jì)算如公式(2)所示:

        (2)

        對于磁盤訪問時(shí)間Tdisk,主要由尋道時(shí)間Tseek,盤片旋轉(zhuǎn)延遲時(shí)間Trotate和數(shù)據(jù)傳輸時(shí)間Ttransfer組成.其計(jì)算方法如公式(3)所示:

        Tdisk=Tseek+Trotate+Ttransfer

        (3)

        其中盤片旋轉(zhuǎn)延遲時(shí)間Trotate計(jì)算方法如公式(4)所示:

        (4)

        我們假設(shè)平均尋道時(shí)間Tseek為3.7ms,RPM值為15000,并且磁盤內(nèi)部傳輸速率為1129MB/s.則盤片旋轉(zhuǎn)延遲時(shí)間Trotate和數(shù)據(jù)傳輸時(shí)間Ttransfer計(jì)算如公式(5)和公式(6)所示:

        (5)

        (6)

        因此,磁盤訪問時(shí)間Tdisk=3.7+2+3.63×10-3=5.7ms. 通過模擬實(shí)驗(yàn)并由上述公式,我們計(jì)算了傳統(tǒng)只具有基頁的磁盤緩存以及混合頁磁盤的訪問時(shí)間,得到圖6所示圖形.

        針對不同的工作負(fù)載(WebVM、Mail、Homes),基于混合頁機(jī)制的磁盤緩存均能節(jié)省大量的延遲時(shí)間.主要是因?yàn)榇疟P緩存中引入混合頁機(jī)制后,通過對巨頁大小的自適應(yīng)調(diào)整,使緩存頁面達(dá)到一個(gè)最佳值,從而使緩存命中率達(dá)到最大.由公式(1)可知,緩存命中率Hcache越大,相應(yīng)的磁盤訪問時(shí)間Taccess則越小.如圖6所示,在緩存大小設(shè)置為128M時(shí),對于WebVM數(shù)據(jù)集,混合頁磁盤緩存共節(jié)省延遲時(shí)間達(dá)25.61%;Mail數(shù)據(jù)集能夠節(jié)省訪問延遲21.86%;而對于Homes工作負(fù)載,則達(dá)到了31.72%.

        圖6 傳統(tǒng)頁與混合頁訪問延遲對比Fig.6 Comparison of access time between base and mix page

        5 總 結(jié)

        本文提出了一種基于混合頁面的磁盤緩存去重策略,在基于LRU替換算法的傳統(tǒng)磁盤緩存中引入混合頁機(jī)制,通過自適應(yīng)調(diào)整巨頁的大小,使緩存頁面大小達(dá)到最佳值,從而使緩存命中率最大化.同時(shí),利用重復(fù)數(shù)據(jù)刪除技術(shù)對磁盤緩存進(jìn)行去重操作,在緩存中只保留唯一數(shù)據(jù)塊,節(jié)省磁盤緩存,提高緩存利用率.實(shí)驗(yàn)結(jié)果表明,對于多種工作負(fù)載,混合頁磁盤緩存寫命中率最大提升30.08倍,讀命中率最大提升2.97倍,訪問延遲最大節(jié)省31.72%.

        猜你喜歡
        磁盤命中率節(jié)省
        節(jié)省疲勞癥
        英語文摘(2022年5期)2022-06-05 07:46:26
        Empa 創(chuàng)新氣門總成可節(jié)省燃油約20%
        解決Windows磁盤簽名沖突
        電腦愛好者(2019年2期)2019-10-30 03:45:31
        夜夜“奮戰(zhàn)”會提高“命中率”嗎
        2015男籃亞錦賽四強(qiáng)隊(duì)三分球進(jìn)攻特點(diǎn)的比較研究
        長江叢刊(2018年31期)2018-12-05 06:34:20
        修改磁盤屬性
        人生有三件事不能節(jié)省
        海峽姐妹(2017年7期)2017-07-31 19:08:21
        投籃的力量休斯敦火箭
        NBA特刊(2017年8期)2017-06-05 15:00:13
        磁盤組群組及iSCSI Target設(shè)置
        創(chuàng)建VSAN群集
        国产精品国产三级国产av18| 美国黄色片一区二区三区 | 亚洲精品无码久久久| 欧洲熟妇乱xxxxx大屁股7| 天天澡天天揉揉AV无码人妻斩 | 国产成人香蕉久久久久| 99视频一区二区日本| 免费观看mv大片高清| 无码人妻丰满熟妇区毛片| 91精品全国免费观看青青| 人妖与人妖免费黄色片| 日韩在线 | 中文| 亚洲国产长腿丝袜av天堂| 69天堂国产在线精品观看| 亚洲精品一区二在线观看| 日韩视频在线观看| 在线观看国产成人av片| 免费大学生国产在线观看p| 亚洲av午夜福利精品一区不卡 | 久久夜色精品国产噜噜麻豆| 少妇无码av无码去区钱| 国产午夜精品综合久久久| 免费国产线观看免费观看| 欧美aa大片免费观看视频| 男人深夜影院无码观看| 日本按摩偷拍在线观看| 久久综合丝袜日本网| 日本欧美国产精品| 亚洲视一区二区三区四区| 成人欧美一区二区三区黑人| 国产精品欧美成人| 538亚洲欧美国产日韩在线精品| 国产精品一区二区韩国av| 秘书边打电话边被躁bd视频| 欧洲亚洲综合| 黄色大片国产精品久久| 成 人色 网 站 欧美大片在线观看| 最新国产av无码专区亚洲| 色综合久久久久综合一本到桃花网| 精品三级国产一区二区三| 精品无码久久久久久国产|