一種動態(tài)調整緩存刷新策略的方法和裝置制造方法
【專利摘要】本發(fā)明提供一種動態(tài)調整緩存刷新策略的方法,包括:A、在第一定時器超時時確定陣列的配額使用率;B、判斷該配額使用率是否與上一輪確定的配額使用率處于不同的配額使用率區(qū)間,如果是,執(zhí)行C,否則執(zhí)行步驟D,其中每個配額使用率區(qū)間都對應一個預設的高、低水位線;C、調整該陣列寫Cache空間的高、低水位線至預設的高、低水位線,該預設的高、低水位線為當前配額使用率所處的配額使用率區(qū)間對應的高、低水位線;返回A;D、不執(zhí)行該陣列寫Cache空間高、低水位線的調整,返回步驟A。本發(fā)明通過實時監(jiān)測寫緩存配額使用率變化,判斷當前用戶的寫Cache緩存使用情況,動態(tài)調整刷新的高低水位線,有利于寫入性能的提高和掉電風險的降低。
【專利說明】一種動態(tài)調整緩存刷新策略的方法和裝置
【技術領域】
[0001]本發(fā)明涉及存儲【技術領域】,尤其涉及一種動態(tài)調整緩存刷新策略的方法和裝置。【背景技術】
[0002]存儲的最終目標是要把數(shù)據(jù)寫到磁盤;但是由于磁盤響應速度通常跟不上上層業(yè)務的需求,所以通常需要增加了寫緩存。并且,目前通用的存儲產品中,還使用Cache(高速緩沖存儲器,位于CPU和存儲器之間,規(guī)模較小,但速度很高;通常由SRAM組成)來提高陣列的寫入性能。以RAID5為例,業(yè)務數(shù)據(jù)寫到Cache后,Cache里的數(shù)據(jù)如果能湊成整條帶則下刷到磁盤陣列。但在隨機寫命令較多的情況下,湊成整條帶下刷的機會減少,從而使得Cache中的數(shù)據(jù)增多;此時如果一直不將Cache中的數(shù)據(jù)寫入磁盤陣列將導致Cache空間被寫滿而導致數(shù)據(jù)丟失。所以一般的Cache空間均設置有高、低水位線。所謂水位線是一種形象的概念;把存儲空間想象成一個水庫,寫入的數(shù)據(jù)相當于注入該水庫的水,隨著寫入數(shù)據(jù)的增多,水庫的水位逐漸上升;高、低水位線為預先設置的Cache空間被占用的兩個大小值。當Cache中被占用的block數(shù)(塊,寫Cache的最小分配單位)高于高水位線時,就開始啟動刷新,當被占用的block數(shù)低于低水位線時,則停止刷新,使業(yè)務數(shù)據(jù)在寫Cache中繼續(xù)累積,直到再次達到高水位線。
[0003]如果高、低水位線設置的不是很好的話,對數(shù)據(jù)的存儲將帶來不利的影響。比如如果高低水位線設置的過高,Cache中將緩存較多的數(shù)據(jù),一旦存儲設備斷電,且沒有UPS保護的話,該數(shù)據(jù)就會丟失。尤其是對于監(jiān)控業(yè)務來說,隨機命令更多的為索引信息,一旦丟失,將導致很多視頻數(shù)據(jù)無法讀出;如果設置的過低,則寫性能會下降。
【發(fā)明內容】
[0004]有鑒于此,本發(fā)明提供一種動態(tài)調整緩存刷新策略的方法,該方法應用于存儲設備,該方法包括如下步驟:A、在第一定時器超時時確定陣列的配額使用率E ;B、判斷該配額使用率E是否與上一輪確定的配額使用率E處于不同的配額使用率區(qū)間,如果是,執(zhí)行步驟C,否則執(zhí)行步驟D,其中每個配額使用率區(qū)間都對應一個預設的高、低水位線;C、調整該陣列寫Cache空間的高、低水位線至預設的高、低水位線,該預設的高、低水位線為當前配額使用率所處的配額使用率區(qū)間對應的高、低水位線;返回步驟A ;D、本輪不執(zhí)行該陣列寫Cache空間高、低水位線的調整,返回步驟A。
[0005]優(yōu)選地,所述配額使用率區(qū)間至少預設為兩個,其中高配額使用率區(qū)間的高、低水位線分別大于低配額使用率區(qū)間的高、低水位線。
11 Ιζ
[0006]優(yōu)選地,在第一定時器超時時確定陣列的配額使用率E具體為:按照公式E =
確定陣列的配額使用率,其中u為當前占用的寫Cache緩存空間的block數(shù),k為每個block的大小,f為該陣列的配額大??;或者,在第一定時器超時時確定陣列的配額使用率E具體為:在第一定時器設置的超時時間內設置第二定時器,第二定時器的超時時間是第一定時器的1/m,當?shù)诙〞r器超時時按照公式,
【權利要求】
1.一種動態(tài)調整緩存刷新策略的方法,該方法應用于存儲設備,其特征在于,該方法包括: A、在第一定時器超時時確定陣列的配額使用率E; B、判斷該配額使用率E是否與上一輪確定的配額使用率E處于不同的配額使用率區(qū)間,如果是,執(zhí)行步驟C,否則執(zhí)行步驟D,其中每個配額使用率區(qū)間都對應一個預設的高、低水位線; C、調整該陣列寫Cache空間的高、低水位線至預設的高、低水位線,該預設的高、低水位線為當前配額使用率所處的配額使用率區(qū)間對應的高、低水位線;返回步驟A ; D、本輪不執(zhí)行該陣列寫Cache空間高、低水位線的調整,返回步驟A。
2.如權利要求1所述的方法,其特征在于,所述配額使用率區(qū)間至少預設為兩個,其中高配額使用率區(qū)間的高、低水位線分別大于低配額使用率區(qū)間的高、低水位線。
3.如權利要求2所述的方法,其特征在于,在第一定時器超時時確定陣列的配額使用率E具體為: 按照公式
4.如權利要求2所述的方法,其特征在于,在第一定時器超時時確定陣列的配額使用率E具體為: 在第一定時器設置的超時時間內設置第二定時器,第二定時器的超時時間是第一定時器的1/m,當?shù)诙〞r器超時時按照公式
5.如權利要求2所述的方法,其特征在于,所述方法進一步包括: SI當陣列的配額變化時,判斷當前的配額與未變化前的配額是否屬于不同的配額區(qū)間,如果是,則執(zhí)行S2 ;否則執(zhí)行S3,其中每個配額區(qū)間均對應一個預設的高低水位線; 52、調整該陣列對應的寫Cache空間的高、低水位線至預設值,該預設值為當前配額所處的配額區(qū)間對應的高、低水位線;返回步驟SI ; 53、不執(zhí)行該陣列對應寫Cache空間高、低水位線的調整,返回步驟SI。
6.一種動態(tài)調整緩存刷新策略的裝置,該裝置應用于存儲設備,其特征在于,該裝置包括: 配額使用率確定模塊,用于在第一定時器超時時確定陣列的配額使用率E ; 配額使用率調整判斷模塊,用于判斷第一定時器超時時確定的配額使用率E是否與上一輪確定的配額使用率E處于不同的配額使用率區(qū)間,其中每個配額使用率區(qū)間都對應一個預設的高、低水位線;水位線調整模塊,用于在第一定時器超時時確定的配額使用率E與上一輪確定的配額使用率E處于不同的配額使用率區(qū)間時調整該陣列寫Cache空間的高、低水位線至預設的高、低水位線,該預設的高、低水位線為當前配額使用率所處的配額使用率區(qū)間對應的高、低水位線。
7.如權利要求6所述的裝置,其特征在于,所述配額使用率區(qū)間至少預設為兩個,其中高配額使用率區(qū)間的高、低水位線分別大于低配額使用率區(qū)間的高、低水位線。
8.如權利要求7所述的裝置,其特征在于,配額使用率確定模塊在第一定時器超時時確定陣列的配額使用率E具體為: 按照公式
9.如權利要求7所述的裝置,其特征在于,配額使用率確定模塊在第一定時器超時時確定陣列的配額使用率E具體為: 在第一定時器設置的超時時間內設置第二定時器,第二定時器的超時時間是第一定時器的1/m,當?shù)诙〞r器超時時按照公式
10.如權利要求7所述的裝置,其特征在于,所述裝置進一步包括: 配額調整判斷模塊,用于當陣列的配額變化時,判斷當前的配額與未變化前的配額是否屬于不同的配額區(qū)間,其中每個配額區(qū)間均對應一個預設的高低水位線; 水位線調整模塊,用于在當前的配額與未變化前的配額屬于不同的配額區(qū)間時,調整該陣列對應的寫Cache空間的高、低水位線至預設值,該預設值為當前配額所處的配額區(qū)間對應的高、低水位線。
【文檔編號】G06F12/08GK103823765SQ201410067092
【公開日】2014年5月28日 申請日期:2014年2月26日 優(yōu)先權日:2014年2月26日
【發(fā)明者】吳會堂, 許勇 申請人:浙江宇視科技有限公司