本發(fā)明涉及存儲系統(tǒng)緩存技術(shù)領(lǐng)域,特別是涉及一種緩存淘汰策略的實時調(diào)整方法及裝置。
背景技術(shù):
在存儲系統(tǒng)中,不同緩存算法各有優(yōu)劣,比如FIFO算法在順序訪問居多的場景下能夠提供較好的緩存命中率,但對于隨機訪問居多的IO,由于不能區(qū)分緩存塊的熱度,容易將較熱數(shù)據(jù)淘汰出去。LRU算法在隨機訪問的業(yè)務中能夠識別緩存塊的熱度,防止熱數(shù)據(jù)被過早的淘汰,但是當熱點數(shù)據(jù)發(fā)生切換時,被識別為熱數(shù)據(jù)的緩存塊會長久的占用內(nèi)存,導致緩存污染,降低了整個系統(tǒng)的緩存命中率??梢姡瑐鹘y(tǒng)緩存算法的適應性較差,不能針對不同的業(yè)務進行實時的調(diào)整。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的是提供一種緩存淘汰策略的實時調(diào)整方法及裝置,以解決現(xiàn)有緩存算法適應性差,不能針對不同的業(yè)務進行實時調(diào)整的問題。
為解決上述技術(shù)問題,本發(fā)明提供一種緩存淘汰策略的實時調(diào)整方法,包括:
按照不同的緩存淘汰策略對業(yè)務進行采樣,實時統(tǒng)計各緩存淘汰策略緩存數(shù)據(jù)的緩存命中率;
根據(jù)所述緩存命中率計算將當前緩存淘汰策略切換為其他緩存淘汰策略的切換開銷因子;
當所述切換開銷因子小于預設(shè)閾值時,對所述當前緩存淘汰策略進行切換。
可選地,所述根據(jù)所述緩存命中率計算將當前緩存淘汰策略切換為其他緩存淘汰策略的切換開銷因子包括:
對所述緩存命中率以及緩存數(shù)據(jù)量進行加權(quán)計算,分別確定將當前緩存淘汰策略切換為其他各緩存淘汰策略的切換開銷因子。
可選地,所述當所述切換開銷因子小于預設(shè)閾值時,對所述當前緩存淘汰策略進行切換包括:
當所述切換開銷因子小于預設(shè)閾值時,將所述當前緩存淘汰策略切換為其他緩存淘汰策略中切換開銷因子最小的一個。
可選地,所述對所述當前緩存淘汰策略進行切換包括:
將所述當前緩存淘汰策略的緩存數(shù)據(jù)塊熱度統(tǒng)計信息使用切換后的緩存淘汰策略體現(xiàn)和組織。
可選地,所述當前緩存淘汰策略為預先設(shè)置的默認緩存淘汰策略。
本發(fā)明還提供了一種緩存淘汰策略的實時調(diào)整裝置,包括:
統(tǒng)計模塊,用于按照不同的緩存淘汰策略對業(yè)務進行采樣,實時統(tǒng)計各緩存淘汰策略緩存數(shù)據(jù)的緩存命中率;
計算模塊,用于根據(jù)所述緩存命中率計算將當前緩存淘汰策略切換為其他緩存淘汰策略的切換開銷因子;
切換模塊,用于當所述切換開銷因子小于預設(shè)閾值時,對所述當前緩存淘汰策略進行切換。
可選地,所述計算模塊具體為:對所述緩存命中率以及緩存數(shù)據(jù)量進行加權(quán)計算,分別確定將當前緩存淘汰策略切換為其他各緩存淘汰策略的切換開銷因子的模塊。
可選地,所述切換模塊具體為:當所述切換開銷因子小于預設(shè)閾值時,將所述當前緩存淘汰策略切換為其他緩存淘汰策略中切換開銷因子最小的一個的模塊。
可選地,所述切換模塊具體為:將所述當前緩存淘汰策略的緩存數(shù)據(jù)塊熱度統(tǒng)計信息使用切換后的緩存淘汰策略體現(xiàn)和組織的模塊。
本發(fā)明所提供的緩存淘汰策略的實時調(diào)整方法及裝置,按照不同的緩存淘汰策略對業(yè)務進行采樣,實時統(tǒng)計各緩存淘汰策略緩存數(shù)據(jù)的緩存命中率;根據(jù)緩存命中率計算將當前緩存淘汰策略切換為其他緩存淘汰策略的切換開銷因子;當切換開銷因子小于預設(shè)閾值時,對當前緩存淘汰策略進行切換。本申請通過緩存數(shù)據(jù)的實時命中率反饋,對緩存算法中的特性參數(shù)進行動態(tài)調(diào)整,能夠有效提高緩存算法的適應能力,增加緩存的命中率,從而提高整個系統(tǒng)的性能。
附圖說明
為了更清楚的說明本發(fā)明實施例或現(xiàn)有技術(shù)的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單的介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明所提供的緩存淘汰策略的實時調(diào)整方法的一種具體實施方式的流程圖;
圖2為本發(fā)明所提供的緩存淘汰策略的實時調(diào)整方法的原理示意圖;
圖3為本發(fā)明所提供的緩存淘汰策略的實時調(diào)整方法的處理過程示意圖;
圖4為緩存淘汰策略流程的切換示意圖;
圖5為本發(fā)明實施例提供的緩存淘汰策略的實時調(diào)整裝置的結(jié)構(gòu)框圖。
具體實施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和具體實施方式對本發(fā)明作進一步的詳細說明。顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
本發(fā)明所提供的緩存淘汰策略的實時調(diào)整方法的一種具體實施方式的流程圖如圖1所示,該方法包括:
步驟S101:按照不同的緩存淘汰策略對業(yè)務進行采樣,實時統(tǒng)計各緩存淘汰策略緩存數(shù)據(jù)的緩存命中率;
步驟S102:根據(jù)所述緩存命中率計算將當前緩存淘汰策略切換為其他緩存淘汰策略的切換開銷因子;
其中,當前緩存淘汰策略可以為預先設(shè)置的默認緩存淘汰策略。
切換開銷因子可以具體為結(jié)合緩存命中率以及緩存數(shù)據(jù)量等相關(guān)因素計算得到的開銷數(shù)值,具體計算方法可以根據(jù)實際情況進行確定。
步驟S103:當所述切換開銷因子小于預設(shè)閾值時,對所述當前緩存淘汰策略進行切換。
本發(fā)明所提供的緩存淘汰策略的實時調(diào)整方法,按照不同的緩存淘汰策略對業(yè)務進行采樣,實時統(tǒng)計各緩存淘汰策略緩存數(shù)據(jù)的緩存命中率;根據(jù)緩存命中率計算將當前緩存淘汰策略切換為其他緩存淘汰策略的切換開銷因子;當切換開銷因子小于預設(shè)閾值時,對當前緩存淘汰策略進行切換。本申請通過緩存數(shù)據(jù)的實時命中率反饋,對緩存算法中的特性參數(shù)進行動態(tài)調(diào)整,能夠有效提高緩存算法的適應能力,增加緩存的命中率,從而提高整個系統(tǒng)的性能。
在上述實施例的基礎(chǔ)上,本發(fā)明所提供的緩存淘汰策略的實時調(diào)整方法,根據(jù)所述緩存命中率計算將當前緩存淘汰策略切換為其他緩存淘汰策略的切換開銷因子的過程可以具體為:
對所述緩存命中率以及緩存數(shù)據(jù)量進行加權(quán)計算,分別確定將當前緩存淘汰策略切換為其他各緩存淘汰策略的切換開銷因子。
進一步地,當所述切換開銷因子小于預設(shè)閾值時,對所述當前緩存淘汰策略進行切換的過程可以具體為:
當所述切換開銷因子小于預設(shè)閾值時,將所述當前緩存淘汰策略切換為其他緩存淘汰策略中切換開銷因子最小的一個。
在上述任一實施例的基礎(chǔ)上,本發(fā)明所提供的緩存淘汰策略的實時調(diào)整方法中,對所述當前緩存淘汰策略進行切換可以具體為:
將所述當前緩存淘汰策略的緩存數(shù)據(jù)塊熱度統(tǒng)計信息使用切換后的緩存淘汰策略體現(xiàn)和組織。
如圖2本發(fā)明所提供的緩存淘汰策略的實時調(diào)整方法的原理示意圖所示,緩存采樣過程負責按不同的淘汰策略對業(yè)務進行采樣,并實時記錄采樣結(jié)果的命中率;緩存策略集合負責提供真正的緩存置換策略,默認會選用一種緩存策略作為緩存系統(tǒng)的緩存淘汰策略;緩存策略管理過程負責綜合評估緩存采樣模塊反饋的不同采樣策略下命中率的好壞、緩存數(shù)據(jù)量的多少和緩存淘汰策略切換的開銷等因素,計算切換開銷因子,當切換開銷因子小于設(shè)定閾值時會啟動緩存策略切換。
如圖3本發(fā)明所提供的緩存淘汰策略的實時調(diào)整方法的處理過程示意圖所示,本實施例會通過采樣獲取不同緩存策略的命中率信息,并綜合命中率優(yōu)劣、緩存數(shù)據(jù)多少等因素計算切換開銷因子,評價命中率與切換代價,并確定是否進行緩存淘汰策略切換,如果需要切換會進入圖4緩存淘汰策略流程的切換示意圖所示的過程。
下面對本發(fā)明實施例提供的緩存淘汰策略的實時調(diào)整裝置進行介紹,下文描述的緩存淘汰策略的實時調(diào)整裝置與上文描述的緩存淘汰策略的實時調(diào)整方法可相互對應參照。
圖5為本發(fā)明實施例提供的緩存淘汰策略的實時調(diào)整裝置的結(jié)構(gòu)框圖,參照圖5緩存淘汰策略的實時調(diào)整裝置可以包括:
統(tǒng)計模塊100,用于按照不同的緩存淘汰策略對業(yè)務進行采樣,實時統(tǒng)計各緩存淘汰策略緩存數(shù)據(jù)的緩存命中率;
計算模塊200,用于根據(jù)所述緩存命中率計算將當前緩存淘汰策略切換為其他緩存淘汰策略的切換開銷因子;
切換模塊300,用于當所述切換開銷因子小于預設(shè)閾值時,對所述當前緩存淘汰策略進行切換。
在上述實施例的基礎(chǔ)上,本發(fā)明所提供的緩存淘汰策略的實時調(diào)整裝置中,上述計算模塊200可以具體為:對所述緩存命中率以及緩存數(shù)據(jù)量進行加權(quán)計算,分別確定將當前緩存淘汰策略切換為其他各緩存淘汰策略的切換開銷因子的模塊。
進一步地,上述切換模塊300可以具體為:當所述切換開銷因子小于預設(shè)閾值時,將所述當前緩存淘汰策略切換為其他緩存淘汰策略中切換開銷因子最小的一個的模塊。
在上述任一實施例的基礎(chǔ)上,本發(fā)明所提供的緩存淘汰策略的實時調(diào)整裝置中,上述切換模塊300具體為:將所述當前緩存淘汰策略的緩存數(shù)據(jù)塊熱度統(tǒng)計信息使用切換后的緩存淘汰策略體現(xiàn)和組織的模塊。
與傳統(tǒng)緩存算法緩存淘汰策略單一、緩存算法適應能力差的特點相比,本申請所提供的緩存淘汰策略的實時調(diào)整方法及裝置,能夠根據(jù)業(yè)務數(shù)據(jù)實時調(diào)整緩存淘汰策略,提供最優(yōu)的緩存策略;且緩存命中率明顯優(yōu)于傳統(tǒng)緩存算法。
本說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其它實施例的不同之處,各個實施例之間相同或相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應,所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
專業(yè)人員還可以進一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應認為超出本發(fā)明的范圍。
結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。
以上對本發(fā)明所提供的緩存淘汰策略的實時調(diào)整方法以及裝置進行了詳細介紹。本文中應用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權(quán)利要求的保護范圍內(nèi)。