專利名稱:一種文件cache管理方法及內(nèi)存管理系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及Linux操作系統(tǒng)的文件管理技術(shù),尤其涉及一種文件cache管理方法及內(nèi)存管理系統(tǒng)。
背景技術(shù):
在Linux操作系統(tǒng)中,當(dāng)應(yīng)用程序需要讀取文件中的數(shù)據(jù)時(shí),操作系統(tǒng)首先會(huì)分配一些內(nèi)存,將數(shù)據(jù)從存儲(chǔ)設(shè)備讀入到分配的內(nèi)存中,然后再將這些數(shù)據(jù)分發(fā)給應(yīng)用程序;當(dāng)需要往文件中寫數(shù)據(jù)時(shí),操作系統(tǒng)先分配內(nèi)存接收用戶數(shù)據(jù),然后再將數(shù)據(jù)從內(nèi)存寫到磁盤上。文件高速緩沖存儲(chǔ)器(cache)管理指的就是對(duì)由操作系統(tǒng)分配并用來存儲(chǔ)文件數(shù)據(jù)的內(nèi)存的管理。在Linux操作系統(tǒng)中,是以頁(yè)為高速緩存的單位,系統(tǒng)中的內(nèi)存管理系統(tǒng)負(fù)責(zé)文件cache的分配和回收,也稱為頁(yè)面分配和回收。目前,內(nèi)存管理系統(tǒng)進(jìn)行文件cache管理方法主要包括是周期性的對(duì)系統(tǒng)內(nèi)的頁(yè)面數(shù)目進(jìn)行統(tǒng)計(jì),若統(tǒng)計(jì)得到的頁(yè)面數(shù)目大于預(yù)置的數(shù)值,則執(zhí)行文件cache管理的操作。然而,使用周期性的文件cache管理方法,回收間隔固定,靈活性低。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供了一種文件cache管理方法及內(nèi)存管理系統(tǒng),用于對(duì)頁(yè)面回收的時(shí)間間隔進(jìn)行調(diào)整,能夠有效的提高頁(yè)面回收的靈活性。本發(fā)明實(shí)施例中的文件cache管理方法包括內(nèi)存管理系統(tǒng)確定預(yù)置時(shí)間段內(nèi)接收到的輸入輸出IO請(qǐng)求的數(shù)目、當(dāng)前的高速緩沖存儲(chǔ)器cache命中率、及頁(yè)面回收的第一時(shí)間間隔;判斷cache命中率是否小于預(yù)置的第一數(shù)值;若是,則當(dāng)IO請(qǐng)求的數(shù)目大于預(yù)置的第二數(shù)值時(shí),則確定頁(yè)面回收的第二時(shí)間間隔等于第一時(shí)間間隔減去預(yù)置的第一時(shí)長(zhǎng);或者,當(dāng)IO請(qǐng)求的數(shù)目小于或等于預(yù)置的第三數(shù)值時(shí),則確定頁(yè)面回收的第二時(shí)間間隔等于第一時(shí)間間隔加上預(yù)置的第二時(shí)長(zhǎng)。本發(fā)明實(shí)施例中的內(nèi)存管理系統(tǒng)包括第一確定單元,用于確定預(yù)置時(shí)間段內(nèi)接收到的輸入輸出IO請(qǐng)求的數(shù)目、當(dāng)前的高速緩沖存儲(chǔ)器cache命中率、及頁(yè)面回收的第一時(shí)間間隔;判斷單元,用于在所述確定單元之后判斷所述cache命中率是否小于預(yù)置的第一數(shù)值;第二確定單元,用于若所述判斷單元確定所述cache的命中率小于預(yù)置的第一數(shù)值,則當(dāng)所述IO請(qǐng)求的數(shù)目大于預(yù)置的第二數(shù)值時(shí),則確定頁(yè)面回收的第二時(shí)間間隔等于所述第一時(shí)間間隔減去預(yù)置的第一時(shí)長(zhǎng);或者,當(dāng)所述IO請(qǐng)求的數(shù)目小于或等于預(yù)置的第三數(shù)值時(shí),則確定頁(yè)面回收的第二時(shí)間間隔等于所述第一時(shí)間間隔加上預(yù)置的第二時(shí)長(zhǎng)。從以上技術(shù)方案可以看出,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn)
根據(jù)cache的命中率、預(yù)置時(shí)間段內(nèi)接收到的IO請(qǐng)求的數(shù)目、及頁(yè)面回收的第一時(shí)間間隔確定頁(yè)面回收的第二時(shí)間間隔,能夠有效的對(duì)頁(yè)面回收的時(shí)間間隔進(jìn)行調(diào)整,提高了頁(yè)面回收的靈活性。
圖I為本發(fā)明實(shí)施例中一種文件cache管理方法的一個(gè)示意圖;圖2為本發(fā)明實(shí)施例中一種文件cache管理方法的另一示意圖;圖3為本發(fā)明實(shí)施例中內(nèi)存管理系統(tǒng)的一個(gè)不意圖;圖4為本發(fā)明實(shí)施例中內(nèi)存管理系統(tǒng)的另一示意圖。
具體實(shí)施例方式本發(fā)明實(shí)施例提供了一種文件cache管理方法及內(nèi)存管理系統(tǒng),用于對(duì)頁(yè)面回收的時(shí)間間隔進(jìn)行調(diào)整,有效的提高頁(yè)面回收的靈活性。 請(qǐng)參閱圖1,為本發(fā)明實(shí)施例中一種文件cache管理方法的實(shí)施例,包括101、內(nèi)存管理系統(tǒng)確定預(yù)置時(shí)間段內(nèi)接收到的IO請(qǐng)求的數(shù)目、當(dāng)前的高速緩沖存儲(chǔ)器cache命中率、及頁(yè)面回收的第一時(shí)間間隔;在本發(fā)明實(shí)施例中,內(nèi)存管理系統(tǒng)將進(jìn)行文件cache管理,包括頁(yè)面分配和回收,內(nèi)存管理系統(tǒng)在執(zhí)行頁(yè)面回收的操作時(shí),將確定預(yù)置時(shí)間段內(nèi)接收到的輸入輸出(Input/Output, 10)請(qǐng)求的數(shù)目、當(dāng)前的高速緩沖存儲(chǔ)器(cache)命中率,及頁(yè)面回收的第一時(shí)間間隔。其中,cache命中率是文件cache管理優(yōu)劣的一個(gè)指標(biāo),中央處理器(CenterProcessing Unit,CPU)在訪問內(nèi)存時(shí),首先判斷需要訪問的內(nèi)容是否在cache中,若在,貝Ij稱為“命中”,此時(shí)CPU可從cache中讀取數(shù)據(jù),若cache未命中,則需要從磁盤中讀取數(shù)據(jù),由于cache的存取速度快,使得CPU的利用率大大的提高,因此,cache命中率越高,系統(tǒng)性能越好。102、判斷cache命中率是否小于預(yù)置的第一數(shù)值,若是,則執(zhí)行步驟103 ;在本發(fā)明實(shí)施例中,內(nèi)存管理系統(tǒng)將判斷cache的命中率是否小于預(yù)置的第一數(shù)值,且將根據(jù)判斷結(jié)果確定對(duì)時(shí)間間隔的調(diào)整方式。103、當(dāng)IO請(qǐng)求的數(shù)目大于預(yù)置的第二數(shù)值時(shí),則確定頁(yè)面回收的第二時(shí)間間隔等于第一時(shí)間間隔減去預(yù)置的第一時(shí)長(zhǎng);或者,當(dāng)IO請(qǐng)求的數(shù)目小于或等于預(yù)置的第三數(shù)值時(shí),則確定頁(yè)面回收的第二時(shí)間間隔等于第一時(shí)間間隔加上預(yù)置的第二時(shí)長(zhǎng)。在本發(fā)明實(shí)施例中,在cache命中率小于預(yù)置的第一數(shù)值的情況下,當(dāng)IO請(qǐng)求的數(shù)目大于預(yù)置的第二數(shù)值時(shí),內(nèi)存管理系統(tǒng)將確定頁(yè)面回收的第二時(shí)間間隔等于第一時(shí)間間隔減去預(yù)置的第一時(shí)長(zhǎng);或者,當(dāng)IO請(qǐng)求的數(shù)目小于或等于預(yù)置的第三數(shù)值時(shí),內(nèi)存管理系統(tǒng)將確定頁(yè)面回收的第二時(shí)間間隔等于第一時(shí)間間隔加上預(yù)置的第二時(shí)長(zhǎng)。優(yōu)選的,在cache命中率大于預(yù)置的第一數(shù)值的情況下,還可執(zhí)行以下的步驟104、確定第二時(shí)間間隔等于第一時(shí)間間隔。在本發(fā)明實(shí)施例中,當(dāng)cache命中率大于預(yù)置的第一數(shù)值時(shí),內(nèi)存管理系統(tǒng)可確定第二時(shí)間間隔等于第一時(shí)間間隔,即時(shí)間間隔不變。需要說明的是,在本發(fā)明實(shí)施例中,若cache命中率小于預(yù)置的第一數(shù)值,且IO請(qǐng)求的數(shù)目小于或等于預(yù)置的第二數(shù)值且IO請(qǐng)求的數(shù)目大于預(yù)置的第三數(shù)值,內(nèi)存管理系統(tǒng)將確定第二時(shí)間間隔等于第一時(shí)間間隔。需要說明的是,在本發(fā)明實(shí)施例中,所使用的“第一”、“第二”、“第三”僅用于區(qū)分不同的數(shù)值。在本發(fā)明實(shí)施例中,根據(jù)cache命中率及預(yù)置時(shí)間段內(nèi)的IO請(qǐng)求的數(shù)目,對(duì)第一時(shí)間間隔進(jìn)行調(diào)整,得到第二時(shí)間間隔,能夠根據(jù)系統(tǒng)的狀態(tài)及負(fù)載狀態(tài)對(duì)頁(yè)面回收的間隔進(jìn)行調(diào)整,有效的提高了頁(yè)面回收的靈活性。圖I所示實(shí)施例描述了內(nèi)存管理系統(tǒng)調(diào)整頁(yè)面回收時(shí)間間隔的方法,優(yōu)選的,在本發(fā)明實(shí)施例中,為了更好的實(shí)現(xiàn)頁(yè)面回收,內(nèi)存管理系統(tǒng)在調(diào)整頁(yè)面回收間隔之后,還可利用該頁(yè)面回收間隔進(jìn)一步的對(duì)頁(yè)面回收的比例進(jìn)行調(diào)整,請(qǐng)參閱圖2,為本發(fā)明實(shí)施例中文件cache管理方法的另一實(shí)施例,包括201、根據(jù)第二時(shí)間間隔、cache命中率、及IO請(qǐng)求的數(shù)目獲得頁(yè)面回收的比例;在本發(fā)明實(shí)施例中,內(nèi)存管理系統(tǒng)將根據(jù)第二時(shí)間間隔,cache命中率,及IO請(qǐng)求的數(shù)目獲得頁(yè)面回收的比例,其中,頁(yè)面回收的比例是指將要回收的頁(yè)面的數(shù)目與總的頁(yè)面數(shù)目之間的比值。需要說明的是,內(nèi)存中并非所有的頁(yè)面都是可以進(jìn)行回收的,可回收的頁(yè)面類型包括文件讀寫操作過程中用于緩沖數(shù)據(jù)的頁(yè)面,用戶地址空間中用于文件內(nèi)存映射的頁(yè)面、進(jìn)程在用戶模式下的堆?;蛘呤鞘褂胢map匿名映射的匿名頁(yè)面等等。具體可以為內(nèi)存管理系統(tǒng)根據(jù)cache命中率和IO請(qǐng)求的數(shù)目進(jìn)行判斷,若cache命中率小于預(yù)置的第四數(shù)值,且IO請(qǐng)求的數(shù)目大于預(yù)置的第五數(shù)值,則內(nèi)存管理系統(tǒng)按預(yù)置的方式得到頁(yè)面回收的比例。預(yù)置的方式為
權(quán)利要求
1.一種文件cache管理方法,其特征在于,包括 內(nèi)存管理系統(tǒng)確定預(yù)置時(shí)間段內(nèi)接收到的輸入輸出IO請(qǐng)求的數(shù)目、當(dāng)前的高速緩沖存儲(chǔ)器cache命中率、及頁(yè)面回收的第一時(shí)間間隔; 判斷所述cache命中率是否小于預(yù)置的第一數(shù)值; 若是,則當(dāng)所述IO請(qǐng)求的數(shù)目大于預(yù)置的第二數(shù)值時(shí),則確定頁(yè)面回收的第二時(shí)間間隔等于所述第一時(shí)間間隔減去預(yù)置的第一時(shí)長(zhǎng);或者,當(dāng)所述IO請(qǐng)求的數(shù)目小于或等于預(yù)置的第三數(shù)值時(shí),則確定頁(yè)面回收的第二時(shí)間間隔等于所述第一時(shí)間間隔加上預(yù)置的第二時(shí)長(zhǎng)。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述方法還包括 若所述cache的命中率大于或等于所述預(yù)置的第一數(shù)值,或者,若所述cache的命中率小于預(yù)置的第一數(shù)值,且所述IO請(qǐng)求的數(shù)目小于或等于所述預(yù)置的第二數(shù)值且所述IO請(qǐng)求的數(shù)目大于所述預(yù)置的第三數(shù)值時(shí),確定所述第二時(shí)間間隔等于所述第一時(shí)間間隔。
3.根據(jù)權(quán)利要求I或2所述的方法,其特征在于,所述方法還包括 根據(jù)所述第二時(shí)間間隔、所述cache命中率、及所述IO請(qǐng)求的數(shù)目獲得頁(yè)面回收的比例; 按所述比例回收頁(yè)面。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述根據(jù)所述第二時(shí)間間隔、所述cache命中率及獲取的cache壽命獲得頁(yè)面回收的比例包括 若所述cache命中率小于預(yù)置的第四數(shù)值,且所述IO請(qǐng)求的數(shù)目大于預(yù)置的第五數(shù)值,則按預(yù)置的方式得到頁(yè)面回收的比例,所述預(yù)置的方式為
5.—種內(nèi)存管理系統(tǒng),包括 第一確定單元,用于確定預(yù)置時(shí)間段內(nèi)接收到的輸入輸出IO請(qǐng)求的數(shù)目、當(dāng)前的高速緩沖存儲(chǔ)器cache命中率、及頁(yè)面回收的第一時(shí)間間隔; 判斷単元,用于在所述確定単元之后判斷所述cache命中率是否小于預(yù)置的第一數(shù)值; 第二確定單元,用于若所述判斷單元確定所述cache的命中率小于預(yù)置的第一數(shù)值,則當(dāng)所述IO請(qǐng)求的數(shù)目大于預(yù)置的第二數(shù)值時(shí),則確定頁(yè)面回收的第二時(shí)間間隔等于所述第一時(shí)間間隔減去預(yù)置的第一時(shí)長(zhǎng);或者,當(dāng)所述IO請(qǐng)求的數(shù)目小于或等于預(yù)置的第三數(shù)值時(shí),則確定頁(yè)面回收的第二時(shí)間間隔等于所述第一時(shí)間間隔加上預(yù)置的第二時(shí)長(zhǎng)。
6.根據(jù)權(quán)利要求5所述的內(nèi)存管理系統(tǒng),其特征在于,所述第二確定單元還用于若所述cache的命中率大于或等于所述預(yù)置的第一數(shù)值,或者,若所述cache的命中率小于預(yù)置的第一數(shù)值,且所述IO請(qǐng)求的數(shù)目小于或等于所述預(yù)置的第二數(shù)值且所述IO請(qǐng)求的數(shù)目大于所述預(yù)置的第三數(shù)值時(shí),確定所述第二時(shí)間間隔等于所述第一時(shí)間間隔。
7.根據(jù)權(quán)利要求5或6所述的內(nèi)存管理系統(tǒng),其特征在于,所述內(nèi)存管理系統(tǒng)還包括 獲取單元,用于在所述第二確定單元確定所述第二時(shí)間間隔之后,根據(jù)所述第二時(shí)間間隔、所述cache命中率、及所述IO請(qǐng)求的數(shù)目獲得頁(yè)面回收的比例; 回收單元,用于在所述獲取単元確定頁(yè)面回收的比例之后,按所述比例回收頁(yè)面。
8.根據(jù)權(quán)利要求7所述的內(nèi)存管理系統(tǒng),其特征在于,所述獲取単元具體用于若所述cache命中率小于預(yù)置的第四數(shù)值,且所述IO請(qǐng)求的數(shù)目大于預(yù)置的第五數(shù)值,則按預(yù)置的方式得到頁(yè)面回收的比例,所述預(yù)置的方式為
全文摘要
本發(fā)明實(shí)施例公開了一種文件cache管理方法及內(nèi)存管理系統(tǒng),用于對(duì)頁(yè)面回收的時(shí)間間隔進(jìn)行調(diào)整。本發(fā)明實(shí)施例方法包括內(nèi)存管理系統(tǒng)確定預(yù)置時(shí)間段內(nèi)接收到的輸入輸出IO請(qǐng)求的數(shù)目、當(dāng)前的高速緩沖存儲(chǔ)器cache命中率、及頁(yè)面回收的第一時(shí)間間隔;判斷cache命中率是否小于預(yù)置的第一數(shù)值;若是,則當(dāng)IO請(qǐng)求的數(shù)目大于預(yù)置的第二數(shù)值時(shí),則確定頁(yè)面回收的第二時(shí)間間隔等于第一時(shí)間間隔減去預(yù)置的第一時(shí)長(zhǎng);或者,當(dāng)IO請(qǐng)求的數(shù)目小于或等于預(yù)置的第三數(shù)值時(shí),則確定頁(yè)面回收的第二時(shí)間間隔等于第一時(shí)間間隔加上預(yù)置的第二時(shí)長(zhǎng),能夠有效的提高頁(yè)面回收的靈活性。
文檔編號(hào)G06F12/08GK102662866SQ20121010407
公開日2012年9月12日 申請(qǐng)日期2012年4月9日 優(yōu)先權(quán)日2012年4月9日
發(fā)明者李巖 申請(qǐng)人:華為軟件技術(shù)有限公司