本發(fā)明總體上涉及磁盤緩存技術(shù)領(lǐng)域,特別是涉及一種動態(tài)確定磁盤中用于網(wǎng)絡(luò)數(shù)據(jù)的緩存容量的限值的方法和裝置以及計算設(shè)備。
背景技術(shù):
在終端設(shè)備中,應(yīng)用程序通過網(wǎng)絡(luò)獲取資源時,可在獲取后將資源緩存在本地磁盤中,以便于下次再次獲取時可根據(jù)一定的規(guī)則來判斷是使用磁盤中緩存的數(shù)據(jù)還是再次通過網(wǎng)絡(luò)獲取。這是提高網(wǎng)絡(luò)訪問性能最基礎(chǔ)的技術(shù)之一。
隨著獲取的資源越來越多,緩存會占用很大乃至過多的磁盤空間,而且會降低緩存命中率,即,使用緩存獲取資源的次數(shù)與總獲取資源次數(shù)之比,還會降低“判斷是否使用緩存”這一運算的性能。這是因為在假定用戶的使用習(xí)慣相對穩(wěn)定的情況下,盡管理論上緩存命中率隨著緩存容量的增加而逐漸趨于穩(wěn)定,但實踐中隨著緩存容量的增加,緩存讀取出錯而導(dǎo)致無法使用的概率增大,而且緩存被系統(tǒng)或應(yīng)用程序誤刪或篡改而不可用的概率也增大,最終會導(dǎo)致緩存命中率下降。
而緩存命中率在一定程度上與網(wǎng)絡(luò)輸入輸出時間和網(wǎng)絡(luò)流量相關(guān)聯(lián)。一般來說,緩存命中率越低,用戶訪問網(wǎng)絡(luò)資源所需的時間就越長,所耗費的網(wǎng)絡(luò)流量也越高。因此,為了提高網(wǎng)絡(luò)訪問性能,需要對緩存容量進(jìn)行限制。
在現(xiàn)有技術(shù)中,磁盤的緩存容量限值通常被設(shè)定為常量值。一般來說,可以通過兩種方法來確定緩存容量限值:一是通過經(jīng)驗值,二是通過對大量樣本進(jìn)行統(tǒng)計計算得到的平均值。使用常量值作為緩存容量限值可能可以使應(yīng)用程序在大量設(shè)備上運行時達(dá)到平均命中率最優(yōu),這里最優(yōu)是指在其它同等條件下命中率最大。然而,每臺設(shè)備的用戶不同、使用習(xí)慣不同、訪問的網(wǎng)絡(luò)資源集合也不同,因此對大多數(shù)設(shè)備而言,利用根據(jù)現(xiàn)有技術(shù)設(shè)定的緩存容量限值獲得的緩存命中率并非是平均值,也就不是針對這臺 設(shè)備的最優(yōu)選擇。
因而,需要一種能夠根據(jù)設(shè)備的具體使用狀況而動態(tài)地確定緩存容量限值的方法和裝置。
技術(shù)實現(xiàn)要素:
本發(fā)明的一個目的在于,根據(jù)設(shè)備磁盤緩存的具體使用狀況,動態(tài)地調(diào)整緩存容量限值,以使得設(shè)備的緩存命中率達(dá)到其自身的最優(yōu)值。
為此,本發(fā)明的緩存容量限值確定方法和裝置,按照預(yù)定規(guī)則,逐步增大和/或減小設(shè)備的緩存容量限值,并確定在一定時間段內(nèi)的最優(yōu)緩存命中率,然后與該最優(yōu)緩存命中率對應(yīng)的緩存容量限值可以被設(shè)定為設(shè)備在隨后一段時期內(nèi)的緩存容量固定值。
根據(jù)本發(fā)明的一個方面,提供了一種緩存容量限值確定方法,包括以下步驟:按照預(yù)定規(guī)則,調(diào)整緩存容量限值;計算與調(diào)整后的緩存容量限值相對應(yīng)的緩存命中率;以及迭代執(zhí)行調(diào)整所述緩存容量限值的步驟與計算所述緩存命中率的步驟,直到計算出的緩存命中率滿足指定條件。
利用本方法,能夠根據(jù)設(shè)備磁盤緩存的具體使用狀況,在保證緩存命中率最優(yōu)的情況下將緩存容量限值動態(tài)地調(diào)整到適當(dāng)?shù)乃?,從而提高了設(shè)備的網(wǎng)絡(luò)訪問性能。
在本發(fā)明的一個實施例中,所述指定條件被設(shè)定為:命中率提升值小于等于零,其中,所述命中率提升值定義為,與調(diào)整后的緩存容量限值相對應(yīng)的緩存命中率和與調(diào)整前的緩存容量限值相對應(yīng)的緩存命中率之差。在本發(fā)明的進(jìn)一步的實施例中,所述指定條件被設(shè)定為:所述命中率提升值小于等于零的次數(shù)累計或連續(xù)達(dá)到指定考察次數(shù)。
利用本實施例,充分考慮了緩存命中率隨時間波動的特性,由此便于更加準(zhǔn)確地確定最佳緩存容量限值。
在本發(fā)明的一個實施例中,所述按照預(yù)定規(guī)則調(diào)整緩存容量限值的步驟包括:以指定步幅,增大和/或減小所述緩存容量限值。
利用本實施例,通過雙向或單向逐步調(diào)整緩存容量限值,能夠保證獲得適于指定設(shè)備的最優(yōu)緩存命中率。
在本發(fā)明的一個實施例中,所述按照預(yù)定規(guī)則調(diào)整緩存容量限值的步驟還包括:基于預(yù)定條件,調(diào)整所述指定步幅。在本發(fā)明的進(jìn)一步的實施 例中,所述基于預(yù)定條件調(diào)整所述指定步幅的步驟進(jìn)一步包括:判斷在上一次迭代中的所述命中率提升值是否小于預(yù)定提升參考值;和在判定所述命中率提升值小于所述預(yù)定提升參考值的情況下,增大所述指定步幅。
利用本實施例,通過提高緩存容量限值的調(diào)整步幅,使得能夠快速確定實現(xiàn)最大緩存命中率的最優(yōu)緩存容量限值。
在本發(fā)明的進(jìn)一步的實施例中,所述增大所述緩存容量限值的步驟進(jìn)一步包括:判斷增大后的所述緩存容量限值是否超過緩存最大容量限值;和在判定增大后的所述緩存容量限值超過所述緩存最大容量限值的情況下,將所述緩存最大容量限值設(shè)定為調(diào)整后的所述緩存容量限值。
利用本實施例,能夠保證在調(diào)整緩存容量限值的過程中不會超出設(shè)備硬件或其他因素所限定的設(shè)備緩存最大容量限值。
在本發(fā)明的一個實施例中,所述緩存容量限值確定方法還包括以下步驟:基于經(jīng)驗值或統(tǒng)計值,設(shè)定初始緩存容量限值;以及計算與所述初始緩存容量限值相對應(yīng)的初始命中率。
利用經(jīng)驗值或統(tǒng)計值作為初始緩存容量限值,使得能夠準(zhǔn)確、快速地確定實現(xiàn)最大緩存命中率的最優(yōu)緩存容量限值。
在本發(fā)明的一個實施例中,所述緩存容量限值確定方法還包括以下步驟:確定緩存命中率最大的緩存容量限值。
在本發(fā)明的進(jìn)一步的實施例中,所述確定緩存命中率最大的緩存容量限值的步驟包括:獲取通過增大所述緩存容量限值而迭代計算出的正向最大命中率;獲取通過減小所述緩存容量限值而迭代計算出的反向最大命中率;判斷所述初始命中率、所述正向最大命中率以及所述反向最大命中率中的最大者;以及確定與所判定的命中率最大者相對應(yīng)的緩存容量限值。
在本發(fā)明的一個實施例中,所述計算與調(diào)整后的緩存容量限值相對應(yīng)的緩存命中率的步驟包括:計算在調(diào)整了所述緩存容量限值后的預(yù)定時間內(nèi)的緩存命中率。
根據(jù)本發(fā)明的另一方面,提供了一種緩存容量限值確定裝置,包括:容量調(diào)整單元,用于按照預(yù)定規(guī)則,調(diào)整緩存容量限值;命中率計算單元,用于計算與調(diào)整后的緩存容量限值相對應(yīng)的緩存命中率;以及迭代單元,用于使得所述容量調(diào)整單元和所述命中率計算單元迭代執(zhí)行調(diào)整所述緩存容量限值的操作與計算所述緩存命中率的操作,直到計算出的緩存命中率 滿足指定條件。
在本發(fā)明的一個實施例中,所述指定條件被設(shè)定為:命中率提升值小于等于零,其中,所述命中率提升值定義為,與調(diào)整后的緩存容量限值相對應(yīng)的緩存命中率和與調(diào)整前的緩存容量限值相對應(yīng)的緩存命中率之差。在本發(fā)明的進(jìn)一步的實施例中,所述指定條件被設(shè)定為:所述命中率提升值小于等于零的次數(shù)累計或連續(xù)達(dá)到指定考察次數(shù)。
在本發(fā)明的一個實施例中,所述容量調(diào)整單元包括:容量增/減子單元,用于以指定步幅,增大和/或減小所述緩存容量限值。
在本發(fā)明的一個實施例中,所述容量調(diào)整單元還包括:步幅調(diào)整子單元,用于基于預(yù)定條件,調(diào)整所述指定步幅。在本發(fā)明的進(jìn)一步的實施例中,所述步幅調(diào)整子單元進(jìn)一步包括:第一判斷模塊,用于判斷在上一次迭代中的所述命中率提升值是否小于預(yù)定提升參考值;和步幅調(diào)整模塊,用于在判定所述命中率提升值小于所述預(yù)定提升參考值的情況下,增大所述指定步幅。
在本發(fā)明的進(jìn)一步的實施例中,所述容量增/減子單元進(jìn)一步包括:第二判斷模塊,用于判斷增大后的所述緩存容量限值是否超過緩存最大容量限值;和最大容量設(shè)定模塊,用于在判定增大后的所述緩存容量限值超過所述緩存最大容量限值的情況下,將所述緩存最大容量限值設(shè)定為調(diào)整后的所述緩存容量限值。
在本發(fā)明的一個實施例中,所述緩存容量限值確定裝置還包括:初始容量設(shè)定單元,用于基于經(jīng)驗值或統(tǒng)計值,設(shè)定初始緩存容量限值;以及初始命中率計算單元,用于計算與所述初始緩存容量限值相對應(yīng)的初始命中率。
在本發(fā)明的一個實施例中,所述緩存容量限值確定裝置還包括:最佳容量確定單元,用于確定緩存命中率最大的緩存容量限值。
在本發(fā)明的進(jìn)一步的實施例中,所述最佳容量確定單元包括:第一獲取模塊,用于獲取通過增大所述緩存容量限值而迭代計算出的正向最大命中率;第二獲取模塊,用于獲取通過減小所述緩存容量限值而迭代計算出的反向最大命中率;第三判斷模塊,用于判斷所述初始命中率、所述正向最大命中率以及所述反向最大命中率中的最大者;以及容量確定執(zhí)行模塊,用于確定與所判定的命中率最大者相對應(yīng)的緩存容量限值。
在本發(fā)明的一個實施例中,所述命中率計算單元包括:命中率計算子單元,用于計算在調(diào)整了所述緩存容量限值后的預(yù)定時間內(nèi)的緩存命中率。
根據(jù)本發(fā)明的又一方面,提供了一種計算設(shè)備,包括:網(wǎng)絡(luò)接口,所述網(wǎng)絡(luò)接口使得所述計算設(shè)備能夠經(jīng)由一個或多個網(wǎng)絡(luò)通信;存儲器,通過所述網(wǎng)絡(luò)接口訪問到的網(wǎng)絡(luò)數(shù)據(jù)緩存在所述存儲器中;以及一個或多個處理器,與所述網(wǎng)絡(luò)接口和所述存儲器相連接,所述一個或多個處理器配置為讀取所述存儲器中緩存的網(wǎng)絡(luò)數(shù)據(jù)并執(zhí)行以下操作:按照預(yù)定規(guī)則,調(diào)整緩存容量限值;計算與調(diào)整后的緩存容量限值相對應(yīng)的緩存命中率;以及迭代執(zhí)行調(diào)整所述緩存容量限值的操作與計算所述緩存命中率的操作,直到計算出的緩存命中率滿足指定條件。
利用本發(fā)明的緩存容量限值確定方法和裝置及計算設(shè)備,能夠根據(jù)設(shè)備磁盤緩存的具體使用狀況,在保證緩存命中率最優(yōu)的情況下將緩存容量限值動態(tài)地調(diào)整到適當(dāng)?shù)乃?,從而提高了設(shè)備的網(wǎng)絡(luò)訪問性能,節(jié)省了用戶訪問網(wǎng)絡(luò)資源所需的時間,降低了所耗費的網(wǎng)絡(luò)流量。
附圖說明
通過結(jié)合附圖對本公開示例性實施方式進(jìn)行更詳細(xì)的描述,本公開的上述以及其它目的、特征和優(yōu)勢將變得更加明顯,其中,在本公開示例性實施方式中,相同的參考標(biāo)號通常代表相同部件。
圖1是示出了根據(jù)本發(fā)明一實施例的計算設(shè)備的結(jié)構(gòu)框圖。
圖2是示出了根據(jù)本發(fā)明一實施例的緩存容量限值確定方法的總流程圖。
圖3是示出了根據(jù)本發(fā)明一實施例的確定緩存命中率最大的緩存容量限值的處理的流程圖。
圖4是示出了根據(jù)本發(fā)明一實施例的緩存容量限值確定裝置的功能框圖。
具體實施方式
下面將參照附圖更詳細(xì)地描述本公開的優(yōu)選實施方式。雖然附圖中顯示了本公開的優(yōu)選實施方式,然而應(yīng)該理解,可以以各種形式實現(xiàn)本公開而不應(yīng)被這里闡述的實施方式所限制。相反,提供這些實施方式是為了使 本公開更加透徹和完整,并且能夠?qū)⒈竟_的范圍完整地傳達(dá)給本領(lǐng)域的技術(shù)人員。
如前所述,為了提高設(shè)備的網(wǎng)絡(luò)訪問性能,保證緩存命中率最優(yōu),本發(fā)明通過根據(jù)設(shè)備磁盤緩存的具體使用狀況,動態(tài)地調(diào)整設(shè)備的緩存容量限值,以確定在一定時間段內(nèi)的最優(yōu)緩存命中率,然后將與該最優(yōu)緩存命中率對應(yīng)的緩存容量限值設(shè)定為設(shè)備在隨后一段時期內(nèi)的緩存容量固定值。
下面將參照圖1至圖4來具體地描述本發(fā)明的實施例。圖1是示出了根據(jù)本發(fā)明一實施例的計算設(shè)備100的結(jié)構(gòu)框圖。該計算設(shè)備100的部件包括但不限于網(wǎng)絡(luò)接口110、存儲器120以及一個或多個處理器130。處理器130與網(wǎng)絡(luò)接口110和存儲器120相連接。在本發(fā)明的一個實施例中,計算設(shè)備100的上述以及圖1中未示出的其他部件也可以彼此相連接,例如通過總線。應(yīng)當(dāng)理解,圖1所示的計算設(shè)備結(jié)構(gòu)框圖僅僅是出于示例的目的,而不是對本發(fā)明范圍的限制。本領(lǐng)域技術(shù)人員可以根據(jù)需要,增添或替換其他部件。
計算設(shè)備100可以是任何類型的靜止或移動計算設(shè)備,包括移動計算機(jī)或移動計算設(shè)備(例如,平板計算機(jī)、個人數(shù)字助理、膝上型計算機(jī)、筆記本計算機(jī)、上網(wǎng)本等)、移動電話(例如,智能手機(jī))、可佩戴的計算設(shè)備(例如,智能手表、智能眼鏡等)或其他類型的移動設(shè)備,或者諸如臺式計算機(jī)或pc的靜止計算設(shè)備。計算設(shè)備100還可以是移動式或靜止式的服務(wù)器。
網(wǎng)絡(luò)接口110使得計算設(shè)備100能夠經(jīng)由一個或多個網(wǎng)絡(luò)通信。這些網(wǎng)絡(luò)的示例包括局域網(wǎng)(lan)、廣域網(wǎng)(wan)、個域網(wǎng)(pan)或諸如因特網(wǎng)的通信網(wǎng)絡(luò)的組合。網(wǎng)絡(luò)接口110可以包括有線或無線的任何類型的網(wǎng)絡(luò)接口(例如,網(wǎng)絡(luò)接口卡(nic))中的一個或多個,諸如ieee802.11無線局域網(wǎng)(wlan)無線接口、全球微波互聯(lián)接入(wi-max)接口、以太網(wǎng)接口、通用串行總線(usb)接口、蜂窩網(wǎng)絡(luò)接口、藍(lán)牙接口、近場通信(nfc)接口,等等。
通過網(wǎng)絡(luò)接口110訪問到的網(wǎng)絡(luò)數(shù)據(jù)緩存在存儲器120中的指定位置。存儲器120可包括存儲文件形式或其他形式的內(nèi)容的任何類型的存儲設(shè)備中的一個或多個,包括磁硬盤驅(qū)動器、固態(tài)硬驅(qū)、半導(dǎo)體存儲設(shè)備、閃存, 或者能夠存儲程序指令或數(shù)字信息的任何其他計算機(jī)可讀可寫存儲介質(zhì)。
處理器130能夠讀取存儲器120中緩存的網(wǎng)絡(luò)數(shù)據(jù),并按照預(yù)定規(guī)則動態(tài)地調(diào)整緩存容量限值,且計算與調(diào)整后的緩存容量限值相對應(yīng)的緩存命中率,直到緩存命中率達(dá)到最優(yōu)。
處理器130確定最佳緩存容量限值的處理可以參見圖2。圖2示出了根據(jù)本發(fā)明一實施例的緩存容量限值確定方法200的總體流程圖。在本發(fā)明中,假設(shè)計算設(shè)備100有足夠的使用量使得緩存容量在指定考察時間內(nèi)達(dá)到容量限值。
方法200開始于步驟s210,如圖2所示,處理器130按照預(yù)定規(guī)則,調(diào)整緩存容量限值。接著,在步驟s230中,計算與步驟s210中經(jīng)調(diào)整的緩存容量限值相對應(yīng)的緩存命中率。在一個實施例中,計算在調(diào)整了緩存容量限值后的預(yù)定時間內(nèi)的緩存命中率,例如以一周為考察間隔。
處理器130迭代執(zhí)行步驟s210和s230,直到步驟s230中計算出的緩存命中率滿足指定條件(步驟s250)。在本發(fā)明的一個實施例中,指定條件被設(shè)定為:命中率提升值小于等于零。這里,命中率提升值定義為,與調(diào)整后的緩存容量限值相對應(yīng)的緩存命中率和與調(diào)整前的緩存容量限值相對應(yīng)的緩存命中率之差。也就是說,在步驟s250中,一旦判定在調(diào)整了緩存容量限值之后緩存命中率沒有得到提升,則緩存容量限值單向或雙向調(diào)整過程結(jié)束。
在本發(fā)明的一個實施例中,指定條件被設(shè)定為:命中率提升值小于等于零的次數(shù)累計或連續(xù)達(dá)到指定考察次數(shù)。例如,在單向調(diào)整緩存容量限值的過程中出現(xiàn)累計或連續(xù)三次緩存命中率下降,則判定該單向調(diào)整過程結(jié)束。利用本實施例,充分考慮了緩存命中率隨時間波動的特性,由此便于更加準(zhǔn)確地確定最佳緩存容量限值。
利用圖2中示出的方法200,本發(fā)明能夠根據(jù)設(shè)備磁盤緩存的具體使用狀況,在保證緩存命中率最優(yōu)的情況下將緩存容量限值動態(tài)地調(diào)整到適當(dāng)?shù)乃?,從而提高了設(shè)備的網(wǎng)絡(luò)訪問性能。
在此需要說明的是,本發(fā)明的緩存容量限值調(diào)整處理可以基于監(jiān)測到用戶網(wǎng)絡(luò)瀏覽習(xí)慣發(fā)生了一定程度的改變而啟動。例如,實時監(jiān)控用戶網(wǎng)絡(luò)訪問狀況,當(dāng)用戶在一段時間內(nèi)顯著增加或減少網(wǎng)絡(luò)訪問量或者完全改變了習(xí)慣訪問的網(wǎng)站(例如,計算設(shè)備100的用戶發(fā)生變更),則可以啟 動圖2所示的緩存容量限值確定方法200,重新確定適宜的新緩存容量限值。本發(fā)明的緩存容量限值調(diào)整處理還可以基于預(yù)定時間間隔而自動啟動。例如,可以每年調(diào)整計算設(shè)備的緩存容量限值一次或兩次。本領(lǐng)域普通技術(shù)人員能夠在此教習(xí)下構(gòu)想出其他情形來啟動本發(fā)明的緩存容量限值調(diào)整處理。
在本發(fā)明的一個實施例中,步驟s210可以包括:以指定步幅,增大和/或減小緩存容量限值。利用本實施例,通過雙向或單向逐步調(diào)整緩存容量限值,能夠保證獲得適于計算設(shè)備100的最優(yōu)緩存命中率。
指定步幅可以根據(jù)經(jīng)驗值或緩存使用狀況等因素來確定。在本發(fā)明的一個示例中,指定步幅可以被設(shè)定為初始緩存容量限值的百分?jǐn)?shù),例如1%。在本發(fā)明的一個實施例中,可以基于預(yù)定條件,調(diào)整指定步幅。這里,預(yù)定條件可以包括,例如,用戶使用習(xí)慣(例如日常的訪問網(wǎng)站數(shù)量)、用戶習(xí)慣訪問的網(wǎng)站的更新頻率、這些網(wǎng)站資源的可緩存比例,或者初始緩存容量限值、緩存最大容量限值或緩存命中率變化情況。這里的調(diào)整指定步幅可以包括增大或減小指定步幅。在本發(fā)明的一個實施例中,可以根據(jù)緩存命中率提升情況調(diào)整指定步幅。具體地,可以首先判斷在上一次迭代中的命中率提升值是否小于預(yù)定提升參考值。在判定命中率提升值小于預(yù)定提升參考值的情況下,增大指定步幅。利用本實施例,通過提高緩存容量限值的調(diào)整步幅,使得能夠快速確定實現(xiàn)最大緩存命中率的最優(yōu)緩存容量限值,尤其是在初始緩存容量限值偏離最優(yōu)值較遠(yuǎn)時。
在本發(fā)明的另一實施例中,在沿著增大方向調(diào)整緩存容量限值時,還考慮了設(shè)備硬件或其他因素所限定的設(shè)備緩存最大容量限值。具體地,可以判斷增大后的緩存容量限值是否超過緩存最大容量限值。在判定增大后的緩存容量限值超過緩存最大容量限值的情況下,將緩存最大容量限值設(shè)定為調(diào)整后的緩存容量限值。利用本實施例,能夠保證在調(diào)整緩存容量限值的過程中不會超出設(shè)備硬件或其他因素所限定的設(shè)備緩存最大容量限值。
在本發(fā)明的一個實施例中,優(yōu)選地,緩存容量限值確定方法200還可以包括以下步驟s205:基于經(jīng)驗值或統(tǒng)計值,設(shè)定初始緩存容量限值;以及計算與初始緩存容量限值相對應(yīng)的初始命中率。例如,初始緩存容量限值的設(shè)定可以與磁盤容量、磁盤故障率、應(yīng)用程序故障率、用戶使用網(wǎng)絡(luò) 的習(xí)慣、用戶通過應(yīng)用程序清理緩存的習(xí)慣、第三方清理軟件的策略以及這類軟件的普及度等因素相關(guān)。利用經(jīng)驗值或統(tǒng)計值作為初始緩存容量限值,使得能夠準(zhǔn)確、快速地確定實現(xiàn)最大緩存命中率的最優(yōu)緩存容量限值。
如圖2所示,在本發(fā)明的一個實施例中,可選地,緩存容量限值確定方法200還可以包括步驟s270:確定緩存命中率最大的緩存容量限值。即,在確定了一定條件下的最優(yōu)緩存命中率之后,將與該最優(yōu)緩存命中率對應(yīng)的緩存容量限值設(shè)定為計算設(shè)備100在接下來一段時期內(nèi)的緩存容量固定值。
圖3例示了步驟s270中確定緩存命中率最大的緩存容量限值的一種具體處理300。在該示例中,通過將雙向調(diào)整緩存容量限值所獲得的各向最大命中率與初始命中率進(jìn)行比較,選取最大者對應(yīng)的緩存容量限值作為計算設(shè)備100的緩存容量固定值。
具體地,在步驟s310,獲取通過增大緩存容量限值而迭代計算出的正向最大命中率。在步驟s330,獲取通過減小緩存容量限值而迭代計算出的反向最大命中率。接著在步驟s350中,判斷步驟s250中獲得的初始命中率、步驟s310中獲得的正向最大命中率以及步驟s330中獲得的反向最大命中率三者中的最大者。最后,確定與所判定的命中率最大者相對應(yīng)的緩存容量限值,作為計算設(shè)備100的緩存容量固定值(步驟s370)。
圖4出了根據(jù)本發(fā)明一實施例的緩存容量限值確定裝置400的功能框圖。緩存容量限值確定裝置400的功能模塊可以由實現(xiàn)本發(fā)明原理的硬件、軟件或硬件和軟件的結(jié)合來實現(xiàn),例如通過圖1所示的計算設(shè)備100中的一個或多個處理器130來實現(xiàn)。本領(lǐng)域技術(shù)人員可以理解的是,圖4中所描述的功能模塊可以組合起來或者劃分成子模塊,從而實現(xiàn)上述發(fā)明的原理。因此,本文的描述可以支持對本文描述的功能模塊的任何可能的組合、或者劃分、或者更進(jìn)一步的限定。
參照圖4,為了提升緩存命中率,緩存容量限值確定裝置400被配置為包括容量調(diào)整單元410、命中率計算單元430以及迭代單元450。容量調(diào)整單元410被配置為按照預(yù)定規(guī)則,調(diào)整緩存容量限值。命中率計算單元430被配置為用于計算與容量調(diào)整單元410調(diào)整后的緩存容量限值相對應(yīng)的緩存命中率。在本發(fā)明的一個實施例中,命中率計算單元430包括命中率計算子單元435,用于計算在調(diào)整了緩存容量限值后的預(yù)定時間內(nèi)的緩 存命中率,例如以一周為考察間隔。
迭代單元450被配置為使得容量調(diào)整單元410和命中率計算單元430迭代執(zhí)行調(diào)整緩存容量限值的操作與計算緩存命中率的操作,直到計算出的緩存命中率滿足指定條件。在本發(fā)明的一個實施例中,指定條件被設(shè)定為:命中率提升值小于等于零,其中,命中率提升值定義為,與調(diào)整后的緩存容量限值相對應(yīng)的緩存命中率和與調(diào)整前的緩存容量限值相對應(yīng)的緩存命中率之差。在本發(fā)明的一個實施例中,指定條件被設(shè)定為:命中率提升值小于等于零的次數(shù)累計或連續(xù)達(dá)到指定考察次數(shù)。利用本實施例,充分考慮了緩存命中率隨時間波動的特性,由此便于更加準(zhǔn)確地確定最佳緩存容量限值。
利用圖4中示出的緩存容量限值確定裝置400,本發(fā)明能夠根據(jù)設(shè)備磁盤緩存的具體使用狀況,在保證緩存命中率最優(yōu)的情況下將緩存容量限值動態(tài)地調(diào)整到適當(dāng)?shù)乃剑瑥亩岣吡嗽O(shè)備的網(wǎng)絡(luò)訪問性能。
在本發(fā)明的一個實施例中,容量調(diào)整單元410包括容量增/減子單元411,用于以指定步幅,增大和/或減小緩存容量限值。利用本實施例,通過雙向或單向逐步調(diào)整緩存容量限值,能夠保證獲得適于設(shè)備的最優(yōu)緩存命中率。指定步幅可以根據(jù)經(jīng)驗值或緩存使用狀況等因素來確定。在本發(fā)明的一個示例中,指定步幅可以被設(shè)定為初始緩存容量限值的百分?jǐn)?shù),例如1%。
在本發(fā)明的一個實施例中,容量調(diào)整單元410還可以包括步幅調(diào)整子單元412,用于基于預(yù)定條件,調(diào)整指定步幅。這里,預(yù)定條件可以包括,例如,用戶使用習(xí)慣(例如日常的訪問網(wǎng)站數(shù)量)、用戶習(xí)慣訪問的網(wǎng)站的更新頻率、這些網(wǎng)站資源的可緩存比例,或者初始緩存容量限值、緩存最大容量限值或緩存命中率變化情況。步幅調(diào)整子單元412可以增大或減小指定步幅。在本發(fā)明的一個實施例中,可以根據(jù)緩存命中率提升情況調(diào)整指定步幅。具體地,步幅調(diào)整子單元412進(jìn)一步包括:第一判斷模塊413,用于判斷在上一次迭代中的命中率提升值是否小于預(yù)定提升參考值;和步幅調(diào)整模塊415,用于在第一判斷模塊413判定命中率提升值小于預(yù)定提升參考值的情況下,增大指定步幅。利用本實施例,通過提高緩存容量限值的調(diào)整步幅,使得能夠快速確定實現(xiàn)最大緩存命中率的最優(yōu)緩存容量限值,尤其是在初始緩存容量限值偏離最優(yōu)值較遠(yuǎn)時。
在本發(fā)明的另一實施例中,在沿著增大方向調(diào)整緩存容量限值時,還考慮了設(shè)備硬件或其他因素所限定的設(shè)備緩存最大容量限值。容量增/減子單元411進(jìn)一步可以包括:第二判斷模塊417,用于判斷增大后的緩存容量限值是否超過緩存最大容量限值;和最大容量設(shè)定模塊419,用于在第二判斷模塊417判定增大后的緩存容量限值超過緩存最大容量限值的情況下,將緩存最大容量限值設(shè)定為調(diào)整后的緩存容量限值。利用本實施例,能夠保證在調(diào)整緩存容量限值的過程中不會超出設(shè)備硬件或其他因素所限定的設(shè)備緩存最大容量限值。
在本發(fā)明的一個實施例中,緩存容量限值確定裝置400還包括:初始容量設(shè)定單元405,用于基于經(jīng)驗值或統(tǒng)計值,設(shè)定初始緩存容量限值;以及初始命中率計算單元406,用于計算與容量設(shè)定單元405設(shè)定的初始緩存容量限值相對應(yīng)的初始命中率。例如,初始容量設(shè)定單元405可以基于以下因素來設(shè)定初始緩存容量限值:磁盤容量、磁盤故障率、應(yīng)用程序故障率、用戶使用網(wǎng)絡(luò)的習(xí)慣、用戶通過應(yīng)用程序清理緩存的習(xí)慣、第三方清理軟件的策略以及這類軟件的普及度,等等。利用經(jīng)驗值或統(tǒng)計值作為初始緩存容量限值,使得能夠準(zhǔn)確、快速地確定實現(xiàn)最大緩存命中率的最優(yōu)緩存容量限值。
在本發(fā)明的一個實施例中,緩存容量限值確定裝置400還可以包括最佳容量確定單元470,用于確定緩存命中率最大的緩存容量限值。在一個示例中,通過將雙向調(diào)整緩存容量限值所獲得的各向最大命中率與初始命中率進(jìn)行比較,選取最大者對應(yīng)的緩存容量限值作為計算設(shè)備100在隨后一段時期內(nèi)的緩存容量固定值。具體地,最佳容量確定單元470包括:第一獲取模塊471,用于獲取通過增大緩存容量限值而迭代計算出的正向最大命中率;第二獲取模塊473,用于獲取通過減小緩存容量限值而迭代計算出的反向最大命中率;第三判斷模塊475,用于判斷初始命中率計算單元406計算的初始命中率、第一獲取模塊471獲取的正向最大命中率以及第二獲取模塊473獲取的反向最大命中率三者中的最大者;以及容量確定執(zhí)行模塊477,用于確定與所判定的命中率最大者相對應(yīng)的緩存容量限值。
綜上所述,利用本發(fā)明的緩存容量限值確定方法和裝置及計算設(shè)備,能夠根據(jù)設(shè)備磁盤緩存的具體使用狀況,在保證緩存命中率最優(yōu)的情況下將緩存容量限值動態(tài)地調(diào)整到適當(dāng)?shù)乃剑瑥亩岣吡嗽O(shè)備的網(wǎng)絡(luò)訪問性 能,節(jié)省了用戶訪問網(wǎng)絡(luò)資源所需的時間,降低了所耗費的網(wǎng)絡(luò)流量。
此外,根據(jù)本發(fā)明的方法還可以實現(xiàn)為一種計算機(jī)程序,該計算機(jī)程序包括用于執(zhí)行本發(fā)明的上述方法中限定的上述各步驟的計算機(jī)程序代碼指令。或者,根據(jù)本發(fā)明的方法還可以實現(xiàn)為一種計算機(jī)程序產(chǎn)品,該計算機(jī)程序產(chǎn)品包括計算機(jī)可讀介質(zhì),在該計算機(jī)可讀介質(zhì)上存儲有用于執(zhí)行本發(fā)明的上述方法中限定的上述功能的計算機(jī)程序。本領(lǐng)域技術(shù)人員還將明白的是,結(jié)合這里的公開所描述的各種示例性邏輯塊、模塊、電路和算法步驟可以被實現(xiàn)為電子硬件、計算機(jī)軟件或兩者的組合。
附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)和方法的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)中,方框中所標(biāo)記的功能也可以以不同于附圖中所標(biāo)記的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或操作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機(jī)指令的組合來實現(xiàn)。
以上已經(jīng)描述了本發(fā)明的各實施例,上述說明是示例性的,并非窮盡性的,并且也不限于所披露的各實施例。在不偏離所說明的各實施例的范圍和精神的情況下,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說許多修改和變更都是顯而易見的。本文中所用術(shù)語的選擇,旨在最好地解釋各實施例的原理、實際應(yīng)用或?qū)κ袌鲋械募夹g(shù)的改進(jìn),或者使本技術(shù)領(lǐng)域的其它普通技術(shù)人員能理解本文披露的各實施例。