虛擬機(jī)的存儲器管理的方法和計算機(jī)系統(tǒng)的制作方法【專利摘要】一種用于對虛擬機(jī)系統(tǒng)的存儲器管理的方法以及計算機(jī)系統(tǒng)。存儲器管理方法包含以下步驟。通過至少一個處理器根據(jù)上一次訪問時間來維護(hù)最近最少使用(LRU)列表,其中所述LRU列表包含多個存儲器頁面(memory?pages)。所述存儲器頁面的第一部分存儲在虛擬存儲器中,所述存儲器頁面的第二部分存儲在內(nèi)存壓縮磁盤中,且所述存儲器頁面的第三部分存儲在至少一個交換存儲空間(swap?disk)中。通過所述至少一個處理器設(shè)定所述內(nèi)存壓縮磁盤中的空間。通過所述處理器根據(jù)所述內(nèi)存壓縮磁盤中的所述存儲器頁面的多個訪問概率、偽頁面錯誤的開銷(overhead)以及真頁面錯誤的開銷來調(diào)整所述內(nèi)存壓縮磁盤中的所述空間?!緦@f明】虛擬機(jī)的存儲器管理的方法和計算機(jī)系統(tǒng)【
技術(shù)領(lǐng)域:
】[0001]本公開涉及對虛擬機(jī)的存儲器管理的技術(shù)。【
背景技術(shù):
】[0002]計算機(jī)虛擬化是涉及建立一種具有操作系統(tǒng)的物理計算機(jī)的虛擬機(jī)器的技術(shù),且計算機(jī)虛擬化架構(gòu)大體上由在單一物理計算機(jī)平臺上同時支持多個操作系統(tǒng)的能力界定。舉例來說,正在運(yùn)行MicrosoftWindows的計算機(jī)可托管具有Linux操作系統(tǒng)的虛擬機(jī)。主機(jī)為上面發(fā)生虛擬化的實際物理機(jī)器,而虛擬機(jī)被視為客戶機(jī)(guestmachine)。超管理器(hypervisor;字面上稱作虛擬機(jī)超管理器(virtualmachinemonitor;VMM))為虛擬化硬件資源且向至少一個虛擬機(jī)呈現(xiàn)虛擬硬件接口的軟件層。超管理器類似于傳統(tǒng)操作系統(tǒng)管理硬件資源以用于處理的方式以及相對于執(zhí)行中的虛擬機(jī)執(zhí)行某些管理功能。虛擬機(jī)可稱作“客戶”且在虛擬機(jī)內(nèi)運(yùn)行的操作系統(tǒng)可稱作“客戶操作系統(tǒng)”。[0003]虛擬化環(huán)境當(dāng)前受到存儲限制,這意味著主機(jī)的物理存儲器為數(shù)據(jù)中心的資源利用的瓶頸。存儲器虛擬化將物理存儲器資源與數(shù)據(jù)中心分離且接著將資源聚合到虛擬化存儲器池(memorypool)中,所述虛擬化存儲器池可由客戶操作系統(tǒng)或在客戶操作系統(tǒng)上運(yùn)行的應(yīng)用程序訪問。就存儲器虛擬化來說,存儲器壓縮為存儲器資源管理和利用的至關(guān)重要的主題之一。[0004]類似于傳統(tǒng)操作系統(tǒng),提高超管理器的存儲器利用的最后手段為通過宿主交換(即,將虛擬機(jī)的存儲器頁面移動到物理交換存儲空間,稱作換出)來從虛擬機(jī)回收存儲器,將虛擬機(jī)的物理地址對機(jī)器地址(P2M)表的對應(yīng)頁面表項(pagetableentry;PTE)標(biāo)記為不存在,且接著將對應(yīng)頁面釋放到超管理器的自由存儲器池中,其中頁面表為由虛擬機(jī)使用以存儲虛擬地址與物理地址之間的映射的數(shù)據(jù)結(jié)構(gòu)。稍后,如果所述頁面再次由虛擬機(jī)訪問,那么觸發(fā)頁面錯誤且執(zhí)行訪問時復(fù)制(copy-onaccess;C0A)機(jī)制以將頁面內(nèi)容從交換存儲空間帶到新分配的存儲器頁面中,稱作換入。然而,因為磁盤輸入/輸出(1/0)所產(chǎn)生的長時間的延滯的耗費(fèi)而令人非常不滿意。[0005]作為提高存儲器利用的另一方式,存儲空間的壓縮動作可通過將虛擬機(jī)的換出頁面壓縮成大小較小的數(shù)據(jù)且將其一起放在存儲器中以節(jié)省用以存儲原始內(nèi)容的物理存儲器來進(jìn)行存儲器壓縮。也就是說,存儲器壓縮可實質(zhì)上減輕因存儲器壓力而引起的性能降級。這個想法為從壓縮的存儲器換入將比從磁盤換入快,這是因為存儲器訪問比磁盤訪問快。[0006]至于壓縮換出頁面,Linux內(nèi)核的試驗性模塊內(nèi)存壓縮(zram)磁盤可呈現(xiàn)為虛擬機(jī)中的交換存儲空間,壓縮換出頁面并將其存儲在客戶存儲器中。借助于內(nèi)存壓縮磁盤,偽頁面錯誤可觸發(fā)內(nèi)存壓縮磁盤的壓縮頁面被解壓縮且存儲到新分配的客戶存儲器頁面中,這直觀地比來自交換存儲空間的真頁面錯誤快。盡管如此,為了將壓縮頁面存儲在內(nèi)存壓縮磁盤中,客戶操作系統(tǒng)需要消耗客戶存儲器且可引起較多換入/換出操作。為了解決此難題,可能需要動態(tài)地調(diào)整內(nèi)存壓縮磁盤的大小?!?br/>發(fā)明內(nèi)容】[0007]本公開實施例提供用于虛擬機(jī)系統(tǒng)的存儲器管理方法。存儲器管理方法包含以下步驟。首先,通過至少一個處理器根據(jù)上一次訪問時間來維護(hù)最近最少使用(LRU)列表,其中所述LRU列表包含多個存儲器頁面。所述存儲器頁面的第一部分存儲在所述虛擬機(jī)系統(tǒng)上的虛擬存儲器中,所述存儲器頁面的第二部分存儲在所述虛擬機(jī)系統(tǒng)上的內(nèi)存壓縮磁盤中,且所述存儲器頁面的第三部分存儲在至少一個交換存儲空間中。通過所述至少一個處理器設(shè)定所述內(nèi)存壓縮磁盤中的空間。接著,通過所述至少一個處理器根據(jù)所述內(nèi)存壓縮磁盤中的所述存儲器頁面的多個訪問概率、偽頁面錯誤的開銷以及真頁面錯誤的開銷來調(diào)整所述內(nèi)存壓縮磁盤中的所述空間。[0008]本公開實施例提供一種計算機(jī)系統(tǒng),包含至少一個系統(tǒng)存儲器、至少一個交換存儲空間以及至少一個處理器。所述交換存儲空間耦接到所述至少一個系統(tǒng)存儲器,且所述至少一個處理器耦接到所述至少一個系統(tǒng)存儲器,且針對對虛擬機(jī)系統(tǒng)的存儲器管理執(zhí)行以下操作。所述至少一個處理器根據(jù)上一次訪問時間來維護(hù)LRU列表,其中所述LRU列表包含多個存儲器頁面。所述存儲器頁面的第一部分存儲在所述虛擬機(jī)系統(tǒng)上的虛擬存儲器中,所述存儲器頁面的第二部分存儲在所述虛擬機(jī)系統(tǒng)上的內(nèi)存壓縮磁盤中,且所述存儲器頁面的第三部分存儲在至少一個交換存儲空間中。所述至少一個處理器設(shè)定所述內(nèi)存壓縮磁盤中的空間,且根據(jù)所述內(nèi)存壓縮磁盤中的所述存儲器頁面的多個訪問概率、偽頁面錯誤的開銷以及真頁面錯誤的開銷來調(diào)整所述內(nèi)存壓縮磁盤的所述空間。[0009]下文詳細(xì)描述伴有圖式的若干實施例以進(jìn)一步詳細(xì)描述本公開?!緦@綀D】【附圖說明】[0010]包含附圖以提供對本公開的進(jìn)一步理解,且附圖并入本說明書中并構(gòu)成本說明書的一部分。所述圖式用以說明本公開的實施例,且與描述一起用以解釋本公開的原理。然而,不希望所述圖式限制本公開的范圍,本公開的范圍由所附權(quán)利要求書界定。[0011]圖1A為說明根據(jù)本公開的實`施例的計算機(jī)系統(tǒng)的框圖。[0012]圖1B為說明根據(jù)本公開的實施例的虛擬機(jī)系統(tǒng)的框圖。[0013]圖2為說明根據(jù)本公開的實施例的用于對虛擬機(jī)的存儲器管理的方法的流程圖。[0014]【主要元件標(biāo)號說明】[0015]100:計算機(jī)系統(tǒng)[0016]100’:虛擬機(jī)系統(tǒng)[0017]110:處理器[0018]120:系統(tǒng)存儲器[0019]130:交換存儲空間[0020]150:虛擬機(jī)[0021]155:客戶操作系統(tǒng)[0022]156:客戶內(nèi)核[0023]157:最近最少使用的列表[0024]158:內(nèi)存壓縮磁盤[0025]160:超管理器[0026]170:虛擬硬件[0027]S201:步驟[0028]S203:步驟[0029]S205:步驟【具體實施方式】[0030]現(xiàn)將詳細(xì)參考本公開的實施例,其實例在附圖中得以說明。只要可能,相同參考數(shù)字在圖式和描述中用以指相同或相似部分。[0031]出于說明目的,一個處理器、一個系統(tǒng)存儲器、一個交換存儲空間等用于以下實施例中,且本公開不限于此。在其它實施例中,可使用一個以上處理器、一個以上系統(tǒng)存儲器、一個以上交換存儲空間等。[0032]圖1A為說明根據(jù)本公開的實施例的計算機(jī)系統(tǒng)的框圖。參看圖1,計算機(jī)系統(tǒng)100包含處理器110、系統(tǒng)存儲器120、交換存儲空間130以及其它標(biāo)準(zhǔn)外圍組件(未圖示)。系統(tǒng)存儲器120耦接到處理器110,且交換存儲空間130耦接到系統(tǒng)存儲器120。[0033]處理器110可為專用或?qū)S刑幚砥?,其被?jīng)配置以通過執(zhí)行定義與操作有關(guān)的功能的機(jī)器可讀軟件代碼語言來執(zhí)行特定任務(wù),以通過與計算機(jī)系統(tǒng)100的其它組件進(jìn)行通信來執(zhí)行功能操作。[0034]系統(tǒng)存儲器120存儲例如操作系統(tǒng)等軟件且臨時存儲當(dāng)前在作用中或被頻繁地使用的數(shù)據(jù)或應(yīng)用程序。因此,系統(tǒng)存儲器120(也稱作物理存儲器)可為較快的存儲器(例如,隨機(jī)存取存儲器(RAM)、靜態(tài)隨機(jī)存取存儲器(SRAM)或動態(tài)隨機(jī)存取存儲器(DRAM))以獲得快得多的存取時間。[0035]交換存儲空間130經(jīng)配置以用于存儲和檢索數(shù)據(jù)。舉例來說,交換存儲空間130可為計算機(jī)系統(tǒng)100上的硬盤驅(qū)動器(harddiskdrive;HDD)或固態(tài)硬盤(solidstatedrive;SSD)上的用以從系統(tǒng)存儲器120卸載過量數(shù)據(jù)的區(qū)域。[0036]虛擬存儲器為用于管理系統(tǒng)存儲器120的資源的技術(shù)。其提供虛擬的大量存儲器。虛擬存儲器以及系統(tǒng)存儲器120兩者被劃分為連續(xù)的存儲器地址塊,其也稱作存儲器頁面。系統(tǒng)存儲器120可(例如)包含壓縮存儲器,其與計算機(jī)系統(tǒng)100上運(yùn)行的至少一個虛擬機(jī)相關(guān)聯(lián)。壓縮存儲器以壓縮格式臨時存儲最近較少訪問的存儲器頁面以使得系統(tǒng)存儲器120中有較多空間可用。在實際的應(yīng)用上,特別著重于Linux客戶操作系統(tǒng),且本公開還可用于其它客戶操作系統(tǒng)(例如,MicrosoftWindows)。在一實施例中,Linux內(nèi)核的模塊內(nèi)存壓縮磁盤作為虛擬磁盤裝置而插入到Linux客戶操作系統(tǒng)中且通過Linux客戶操作系統(tǒng)的系統(tǒng)管理工具(即,啟用交換)配置為交換裝置,以使得所有換入和換出操作在磁盤I/O請求時進(jìn)入內(nèi)存壓縮磁盤。超管理器安裝在計算機(jī)系統(tǒng)100上且支持虛擬機(jī)執(zhí)行空間,至少一個虛擬機(jī)可同時在虛擬機(jī)執(zhí)行空間內(nèi)實例化(instantiate)且執(zhí)行。[0037]圖1B為說明根據(jù)本公開的實施例的虛擬機(jī)系統(tǒng)的框圖。在本實施例中,出于簡單起見將僅說明一個虛擬機(jī),且本公開不限于此。在其它實施例中,多個虛擬機(jī)可共存且以類似方式執(zhí)行操作。[0038]參看圖1B與圖1A,虛擬機(jī)系統(tǒng)100’包含具有客戶操作系統(tǒng)155和其它應(yīng)用程序(未圖示)的虛擬機(jī)150、超管理器160以及虛擬硬件170??蛻舨僮飨到y(tǒng)155包含具有LRU列表157和內(nèi)存壓縮磁盤158的客戶內(nèi)核156。包含處理器、存儲器以及I/O裝置的虛擬硬件170作為虛擬處理器、虛擬存儲器以及虛擬I/O裝置抽象化且分配給上層運(yùn)行的虛擬機(jī)150。超管理器160管理虛擬機(jī)150且提供仿真硬件以及固件資源。在一實施例中,Linux發(fā)行版本可作為客戶操作系統(tǒng)155安裝在虛擬機(jī)150內(nèi)以執(zhí)行任何支持的應(yīng)用程序,且可提供支持大多數(shù)Linux發(fā)行版本的開源軟件Xen作為超管理器160,且客戶內(nèi)核156可為domU內(nèi)核。結(jié)合超管理器160,氣球驅(qū)動程序可通過調(diào)用存儲器管理算法來分配或解除分配客戶操作系統(tǒng)155的虛擬存儲器。可通過利用頁面回收機(jī)制以及壓縮虛擬機(jī)150的工作集之外的存儲器頁面來有效地進(jìn)行存儲器壓縮。直觀地說,虛擬機(jī)150的工作集被定義為在最近被虛擬機(jī)150積極地使用的存儲器的量。[0039]為了頁面回收,處理器110使用最近最少使用(LRU)準(zhǔn)則來確定收回頁面的次序以及維護(hù)LRU列表157,LRU列表157根據(jù)用于兩個主要類型的存儲器(匿名存儲器和頁面高速緩沖存儲器)的上一次訪問時間來對曾經(jīng)被虛擬機(jī)150訪問的所有存儲器頁面進(jìn)行排序。匿名存儲器的存儲器頁面由用戶進(jìn)程的堆(heap)和棧(stack)使用,且頁面高速緩沖存儲器的存儲器頁面由磁盤數(shù)據(jù)備份,其中在對磁盤數(shù)據(jù)的第一訪問之后在存儲器中對內(nèi)容進(jìn)行高速緩沖以減少未來磁盤I/O。被較頻繁地訪問的存儲器頁面稱作熱頁;被較不頻繁地訪問的頁面稱作冷頁。[0040]在虛擬機(jī)系統(tǒng)上,如果LUR列表上的存儲器頁面為匿名存儲器,那么客戶內(nèi)核可將內(nèi)容交換到交換存儲空間,將進(jìn)程的對應(yīng)PTE標(biāo)記為不存在,且接著釋放對應(yīng)存儲器頁面。稍后,如果再次訪問存儲器頁面,那么通過將頁面內(nèi)容從交換存儲空間130帶到新分配的存儲器頁面中(即,換入)來執(zhí)行COA機(jī)制?;蛘撸绻鸏RU列表上的存儲器頁面屬于頁面高速緩沖存儲器,那么客戶內(nèi)核可在頁面內(nèi)容已變臟的情況下將頁面內(nèi)容刷新到交換存儲空間,且接著釋放所述頁面。在下一文件訪問后,客戶內(nèi)核必需再次執(zhí)行磁盤訪問(稱作糾錯(refault))以將內(nèi)容帶回到頁面高速緩沖存儲器中的新分配的頁面。[0041]當(dāng)分配到虛擬機(jī)150的虛擬存儲器在工作集與最小存儲器要求之間時,存儲器壓縮可實質(zhì)上減輕因存儲器壓力而引起的性能降級。為了壓縮來自虛擬機(jī)150的收回的頁面,內(nèi)存壓縮磁盤158可攔截虛擬機(jī)150上的換入和換出操作。當(dāng)換出頁面到達(dá)內(nèi)存壓縮磁盤158時,所述頁面通過(例如)Lempel-Ziv-Oberhumer(LZOlX)算法被壓縮為子頁面大小且存儲在從客戶內(nèi)核156分配的存儲器區(qū)域中而不發(fā)送到交換存儲空間130。一個例外情況為零收回頁面,內(nèi)存壓縮磁盤158基于頁面類型信息辨識所述零收回頁面且跳過壓縮步驟。當(dāng)換入頁面到達(dá)時,內(nèi)存壓縮磁盤158解壓縮換入頁面且將其傳回到導(dǎo)致觸發(fā)換入的頁面錯誤的進(jìn)程。[0042]在一實施例中,處理器110可因以下理由而不壓縮收回的高速緩沖存儲器頁面且著重于與匿名存儲器相關(guān)聯(lián)的換入事件。首先,進(jìn)程的匿名頁面的壽命與進(jìn)程自身的壽命相同,這是因為當(dāng)進(jìn)程消逝時,所述頁面被釋放。然而,高速緩沖存儲器頁面并不明確被任何進(jìn)程所擁有,這是因為其可由一個進(jìn)程分配且接著用以通過另一進(jìn)程以滿足磁盤訪問。第二,與匿名存儲器頁面相比,高速緩沖存儲器頁面通常由較大磁盤卷備份且因此可能需要過多存儲器來壓縮。雖然攔截匿名存儲器頁面的換入和換出相對簡單(這是因為其可通過定義良好的應(yīng)用程序編程接口(API)來進(jìn)行),但攔截高速緩沖存儲器頁面的收回并不簡單,高速緩沖存儲器頁面的邏輯嵌入于客戶內(nèi)核156的虛擬文件系統(tǒng)(virtualfilesystem;VFS)層中。[0043]由于虛擬機(jī)150由內(nèi)存壓縮磁盤158和交換存儲空間130備份,因此當(dāng)發(fā)生頁面錯誤時,遺失的頁面可從內(nèi)存壓縮磁盤158獲取(在此狀況下錯誤導(dǎo)致偽頁面錯誤),或從交換存儲空間130提取(在此狀況下頁面錯誤導(dǎo)致真頁面錯誤)。當(dāng)頁面從內(nèi)存壓縮磁盤158換入到交換存儲空間130時,開銷主要因解壓縮所述頁面所需的時間而引起。另一方面,當(dāng)頁面從交換存儲空間130換出到內(nèi)存壓縮磁盤158時,開銷主要因壓縮所述頁面所需的時間而引起。在一實施例中,就與偽頁面錯誤與真頁面錯誤相關(guān)聯(lián)的換入時間以及換出時間之間的定量比較來說,開銷之間存在至少50倍的差異。真頁面錯誤的開銷比偽頁面錯誤的開銷長至少50倍。[0044]當(dāng)將虛擬存儲器的較大部分給予內(nèi)存壓縮磁盤158時,較少存儲器可用于在虛擬機(jī)150上運(yùn)行的應(yīng)用程序,且偽頁面錯誤率則提高。然而,當(dāng)內(nèi)存壓縮磁盤158被給予較多存儲器時,較多存儲器頁面因為壓縮而有效地保持在存儲器中,且較少頁面錯誤可導(dǎo)致真頁面錯誤,這是因為真頁面錯誤較可能被內(nèi)存壓縮磁盤158中的壓縮頁面滿足。因此,給予內(nèi)存壓縮磁盤158的存儲器的量表示偽頁面錯誤率與真頁面錯誤率之間的折衷。[0045]假設(shè)分配到虛擬機(jī)150的存儲器的量為M,其中C被分配到內(nèi)存壓縮磁盤158,且存儲在內(nèi)存壓縮磁盤158中的頁面的平均壓縮比為X。關(guān)鍵問題是找到最佳C,使得PPFR(M,C)XOverheadPPF+TPPR(M,C)X0verheadTPF達(dá)到最小。PPFR(M,C)是當(dāng)所分配存儲器為M且其中C被分配到內(nèi)存壓縮磁盤158時虛擬機(jī)150的偽頁面錯誤率。TPPR(M,C)是當(dāng)所分配存儲器大小為M且其中C被分配到內(nèi)存壓縮磁盤158時虛擬機(jī)150的真頁面錯誤率。為了自動推斷可指派到內(nèi)存壓縮磁盤158的所分配存儲器的最佳百分比以及應(yīng)發(fā)送到交換存儲空間130的收回到內(nèi)存壓縮磁盤158的存儲器頁面的子集,處理器110可動態(tài)地調(diào)整內(nèi)存壓縮磁盤158的空間,如圖2所示。[0046]圖2為說明根據(jù)本公開的實施例的用于對虛擬機(jī)的存儲器管理的方法的流程圖。[0047]參看圖2與圖1A和圖1B中的組件,通過處理器110根據(jù)上一次訪問時間來維護(hù)LRU列表157(步驟S201)。將存儲在LRU列表157中的存儲器頁面劃分成三個部分。將LRU列表157上的存儲器頁面的第一部分以未壓縮格式存儲在內(nèi)存壓縮磁盤158外部的虛擬存儲器中(未圖示)。將LRU列表157上的存儲器頁面的第二部分以壓縮格式存儲在內(nèi)存壓縮磁盤158中。將存儲器頁面的第三部分存儲在交換存儲空間130中。[0048]接著,通過處理器110設(shè)定內(nèi)存壓縮磁盤中的空間(步驟S203)。換句話說,處理器110可向內(nèi)存壓縮磁盤158提供指定被指派到內(nèi)存壓縮磁盤158的存儲器頁面的數(shù)目(即,存儲器的量)的控制參數(shù)。當(dāng)內(nèi)存壓縮磁盤158中的所使用存儲器的量超過控制參數(shù)時,處理器110可將來自虛擬機(jī)150的所有未來換出存儲器頁面引導(dǎo)到交換存儲空間130而不試圖壓縮所述存儲器頁面。最初,處理器110可基于氣球驅(qū)動程序的氣球目標(biāo)、虛擬機(jī)系統(tǒng)100’的最小存儲器要求以及內(nèi)存壓縮磁盤158的基本存儲器要求來設(shè)定控制參數(shù)。舉例來說,控制參數(shù)默認(rèn)地可為氣球目標(biāo)-MMR-Mzeam的值,其中MMR為虛擬機(jī)系統(tǒng)100’的最小存儲器要求,且凡_為內(nèi)存壓縮磁盤158的基本存儲器要求。[0049]在一實施例中,假設(shè)可用于虛擬機(jī)150的存儲器頁面的數(shù)目為NI,且分配到內(nèi)存壓縮磁盤的存儲器的量為K。根據(jù)對存儲器頁面的上一次訪問時間,將LRU列表157上的最熱的NI個存儲器頁面(即,第一部分)以未壓縮格式存儲在內(nèi)存壓縮磁盤158外部的虛擬存儲器中。將LRU列表157上的接下來最熱的N2個存儲器頁面(即,第二部分)以壓縮格式存儲在內(nèi)存壓縮磁盤158中,其中接下來最熱的N2個存儲器頁面的累積大小為K。換句話說,將LRU列表157上的第(N1+1)個存儲器頁面到第(N1+N2)個存儲器頁面存儲在內(nèi)存壓縮磁盤158中。將LRU列表上的剩余存儲器頁面(B卩,第三部分)存儲在交換存儲空間130中。[0050]如果N2遞減一,使得NI遞增一,那么內(nèi)存壓縮磁盤158中呈壓縮格式的最冷頁面中的一些可能必須駐留在交換存儲空間130中且在其被訪問時被明確地帶到存儲器中。同時,內(nèi)存壓縮磁盤158中的最熱頁面(即,LRU列表157上的第(N1+1)個存儲器頁面)可保持在虛擬存儲器中。也就是說,偽頁面錯誤率減小,但真頁面錯誤率增大。因此,如果偽頁面錯誤的開銷的減少超過真頁面錯誤的開銷的遞增,那么將指派到內(nèi)存壓縮磁盤158的存儲器頁面的數(shù)目遞減為優(yōu)選的。在一實施例中,偽頁面錯誤的開銷為偽頁面錯誤的時間成本,且真頁面錯誤的開銷為真頁面錯誤的時間成本。類似地,如果真頁面錯誤的開銷的減少超過偽頁面錯誤的開銷的遞增,那么將指派到內(nèi)存壓縮磁盤158的存儲器頁面的數(shù)目遞增為優(yōu)選的。因此,可通過處理器110根據(jù)內(nèi)存壓縮磁盤158中的存儲器頁面的多個訪問概率、偽頁面錯誤的開銷以及真頁面錯誤的開銷來調(diào)整內(nèi)存壓縮磁盤158中的空間(步驟S205)。[0051]由于在本實施例中,LRU列表157上的第(N1+1)個存儲器頁面到第(N1+N2)個存儲器頁面存儲在內(nèi)存壓縮磁盤158中,因此在滿足方程式(I)的條件的情況下,處理器110將N2遞減:【權(quán)利要求】1.一種用于虛擬機(jī)系統(tǒng)的存儲器管理方法,包括:通過至少一個處理器根據(jù)上一次訪問時間來維護(hù)最近最少使用LRU列表,其中所述LRU列表包括多個存儲器頁面,且其中所述存儲器頁面的第一部分存儲在所述虛擬機(jī)系統(tǒng)上的虛擬存儲器中,所述存儲器頁面的第二部分存儲在所述虛擬機(jī)系統(tǒng)上的內(nèi)存壓縮磁盤中,且所述存儲器頁面的第三部分存儲在至少一個交換存儲空間中;通過所述至少一個處理器設(shè)定所述內(nèi)存壓縮磁盤中的空間;以及通過所述至少一個處理器根據(jù)所述內(nèi)存壓縮磁盤中的所述存儲器頁面的多個訪問概率、偽頁面錯誤的開銷以及真頁面錯誤的開銷來調(diào)整所述內(nèi)存壓縮磁盤中的所述空間。2.根據(jù)權(quán)利要求1所述的存儲器管理方法,其中所述通過所述至少一個處理器設(shè)定所述內(nèi)存壓縮磁盤中的所述空間的步驟包括:通過所述至少一個處理器將所述內(nèi)存壓縮磁盤中的所述空間設(shè)定為控制參數(shù),其中所述控制參數(shù)為指派到所述內(nèi)存壓縮磁盤的存儲器頁面的數(shù)目。3.根據(jù)權(quán)利要求1所述的存儲器管理方法,其中所述通過所述至少一個處理器根據(jù)所述內(nèi)存壓縮磁盤中的所述存儲器頁面的所述多個訪問概率、偽頁面錯誤的所述開銷以及真頁面錯誤的所述開銷來調(diào)整所述內(nèi)存壓縮磁盤中的所述空間的步驟還包括:通過所述至少一個處理器根據(jù)所述內(nèi)存壓縮磁盤中的所述存儲器頁面的所述多個訪問概率、偽頁面錯誤的所述開銷以及真頁面錯誤的所述開銷來縮小所述內(nèi)存壓縮磁盤中的所述空間。4.根據(jù)權(quán)利要求2所述的存儲器管理方法,其中所述內(nèi)存壓縮磁盤以壓縮格式存儲通過所述至少一個處理器從所述至少一個交換存儲空間換出的所述存儲器頁面。5.根據(jù)權(quán)利要求2所述的存儲器管理方法,其中所述通過所述至少一個處理器將所述內(nèi)存壓縮磁盤設(shè)定為所述控制參數(shù)的步驟包括:通過所述至少一個處理器根據(jù)氣球驅(qū)動程序的氣球目標(biāo)、所述虛擬機(jī)系統(tǒng)的最小存儲器要求以及所述內(nèi)存壓縮磁盤的基本存儲器要求來設(shè)定所述控制參數(shù)。6.根據(jù)權(quán)利要求5所述的存儲器管理方法,其中所述通過所述進(jìn)程將所述內(nèi)存壓縮磁盤設(shè)定為所述控制參數(shù)的步驟包括:通過所述至少一個處理器將所述控制參數(shù)設(shè)定為氣球驅(qū)動程序的氣球目標(biāo)減去所述虛擬機(jī)系統(tǒng)的所述最小存儲器要求以及所述內(nèi)存壓縮磁盤的所述基本存儲器要求的總和的結(jié)果。7.根據(jù)權(quán)利要求2所述的存儲器管理方法,在所述通過所述至少一個處理器將所述內(nèi)存壓縮磁盤設(shè)定為所述控制參數(shù)的步驟之后,如果所述內(nèi)存壓縮磁盤中的所使用存儲器的量超過所述控制參數(shù),那么通過所述至少一個處理器將來自所述內(nèi)存壓縮磁盤的新?lián)Q出的頁面引導(dǎo)到所述至少一個交換存儲空間。8.根據(jù)權(quán)利要求2所述的存儲器管理方法,其中所述通過所述至少一個處理器根據(jù)所述存儲器頁面的所述多個訪問概率、所述偽頁面錯誤的所述開銷以及所述真頁面錯誤的所述開銷來調(diào)整所述內(nèi)存壓縮磁盤中的所述空間的步驟包括:通過所述至少一個處理器獲得底項,其中所述底項為所述內(nèi)存壓縮磁盤中的最熱存儲器頁面的所述訪問概率與所述偽頁面錯誤的所述開銷的乘積,其中所述最熱存儲器頁面為所述第二部分中的所述存儲器頁面當(dāng)中的最近被訪問最多的所述存儲器頁面;通過所述至少一個處理器獲得比較項,其中所述比較項為所述內(nèi)存壓縮磁盤中的至少一個最冷存儲器頁面與所述真頁面錯誤的所述開銷的每一乘積的累加總和,其中所述至少一個最冷存儲器頁面為所述第二部分中的所述存儲器頁面當(dāng)中的最近不是被訪問最多的所述至少一個存儲器頁面;如果所述底項大于所述比較項,那么通過所述至少一個處理器將所述控制參數(shù)遞減;以及通過所述至少一個處理器根據(jù)所述控制參數(shù)縮小所述內(nèi)存壓縮磁盤。9.根據(jù)權(quán)利要求8所述的存儲器管理方法,其中所述底項滿足方程式AP(N1+1)XOverheadiw,且其中NI為所述第一部分中的所述存儲器頁面的數(shù)目,AP(N1+1)表示所述LRU列表上的第(N1+1)個頁面的訪問概率,所述第(N1+1)個頁面表示所述第二部分中的所述最熱存儲器頁面,Overhead-表示所述偽頁面錯誤的所述開銷;其中所述比較項滿足方程式10.根據(jù)權(quán)利要求9所述的存儲器管理方法,其中通過所述至少一個處理器將所述存儲器頁面的所述第二部分建立于本地LRU列表中,其中通過頁面閑置時間的倒數(shù)來估計所述本地LRU列表上的所述存儲器頁面中的每一個的所述訪問概率,所述偽頁面錯誤的所述開銷為所述偽頁面錯誤的時間成本,所述真頁面錯誤的所述開銷為所述真頁面錯誤的時間成本,且其中所述頁面閑置時間為被換出的所述存儲器頁面中的每一個與當(dāng)前時間之間的差。11.一種計算機(jī)系統(tǒng),包括:至少一個系統(tǒng)存儲器;至少一個交換存儲空間,耦接到所述至少一個系統(tǒng)存儲器;以及至少一個處理器,耦接到所述至少一個系統(tǒng)存儲器,其中所述至少一個處理器針對對虛擬機(jī)系統(tǒng)的存儲器管理執(zhí)行操作,所述操作包括:所述至少一個處理器根據(jù)上一次訪問時間來維護(hù)最近最少使用(LRU)列表,其中所述LRU列表包括多個存儲器頁面,且其中所述存儲器頁面的第一部分存儲在所述虛擬機(jī)系統(tǒng)上的虛擬存儲器中,所述存儲器頁面的第二部分存儲在所述虛擬機(jī)系統(tǒng)上的內(nèi)存壓縮磁盤中,且所述存儲器頁面的第三部分存儲在所述至少一個交換存儲空間中;所述至少一個處理器設(shè)定所述內(nèi)存壓縮磁盤中的空間;以及所述至少一個處理器根據(jù)所述內(nèi)存壓縮磁盤中的所述存儲器頁面的多個訪問概率、偽頁面錯誤的開銷以及真頁面錯誤的開銷來調(diào)整所述內(nèi)存壓縮磁盤中的所述空間。12.根據(jù)權(quán)利要求11所述的計算機(jī)系統(tǒng),其中所述至少一個處理器將所述內(nèi)存壓縮磁盤中的所述空間設(shè)定為控制參數(shù),其中所述控制參數(shù)為指派到所述內(nèi)存壓縮磁盤的存儲器頁面的數(shù)目。13.根據(jù)權(quán)利要求11所述的計算機(jī)系統(tǒng),其中所述至少一個處理器根據(jù)所述內(nèi)存壓縮磁盤中的所述存儲器頁面的所述多個訪問概率、偽頁面錯誤的所述開銷以及真頁面錯誤的所述開銷來進(jìn)一步縮小所述內(nèi)存壓縮磁盤中的所述空間。14.根據(jù)權(quán)利要求11所述的計算機(jī)系統(tǒng),其中所述至少一個處理器從所述至少一個交換存儲空間換出所述存儲器頁面且以壓縮格式將所述換出的存儲器頁面存儲在所述內(nèi)存壓縮磁盤中。15.根據(jù)權(quán)利要求12所述的計算機(jī)系統(tǒng),其中所述至少一個處理器根據(jù)氣球驅(qū)動程序的氣球目標(biāo)、所述虛擬機(jī)系統(tǒng)的最小存儲器要求以及所述內(nèi)存壓縮磁盤的基本存儲器要求來設(shè)定所述控制參數(shù)。16.根據(jù)權(quán)利要求15所述的計算機(jī)系統(tǒng),其中所述至少一個處理器將所述控制參數(shù)設(shè)定為氣球驅(qū)動程序的氣球目標(biāo)減去所述虛擬機(jī)系統(tǒng)的所述最小存儲器要求以及所述內(nèi)存壓縮磁盤的所述基本存儲器要求的總和的結(jié)果。17.根據(jù)權(quán)利要求12所述的計算機(jī)系統(tǒng),其中如果所述內(nèi)存壓縮磁盤中的所使用存儲器的量超過所述控制參數(shù),那么所述至少一個處理器進(jìn)一步將來自所述內(nèi)存壓縮磁盤的新?lián)Q出的頁面引導(dǎo)到所述至少一個交換存儲空間。18.根據(jù)權(quán)利要求12所述的計算機(jī)系統(tǒng),其中所述至少一個處理器獲得底項,獲得比較項,如果所述底項大于所述比較項,那么將所述控制參數(shù)遞減,以及根據(jù)所述控制參數(shù)縮小所述內(nèi)存壓縮磁盤,其中所述底項為所述內(nèi)存壓縮磁盤中的最熱存儲器頁面的所述訪問概率與所述偽頁面錯誤的所開銷的乘積,其中所述最熱存儲器頁面為所述第二部分中的所述存儲器頁面當(dāng)中的最近被訪問最多的所述存儲器頁面,其中所述比較項為所述內(nèi)存壓縮磁盤中的至少一個最冷存儲器頁面與所述真頁面錯誤的所述開銷的每一乘積的累加總和,其中所述至少一個最冷存儲器頁面為所述第二部分中的所述存儲器頁面當(dāng)中的最近不是被訪問最多的所述至少一個存儲器頁面。19.根據(jù)權(quán)利要求18所述的計算機(jī)系統(tǒng),其中所述底項滿足方程式AP(N1+1)XOverheadiw,且其中NI為所述第一部分中的所述存儲器頁面的數(shù)目,AP(N1+1)表示所述LRU列表上的第(Nl+l)th個頁面的訪問概率,所述第(Nl+l)th個頁面表示所述第二部分中的所述最熱存儲器頁面,OverheadPPF表示所述偽頁面錯誤的所述開銷;其中所Ar1+N2述比較項滿足方程式ΣΑΡ(.ΠxOverhead,,,,.,且其中N2為所述第二部分中的所述存j=N'+m儲器頁面的數(shù)目,AP(j)表示所述LRU列表上的第j個頁面的訪問概率,Overhead,表示所述真頁面錯誤的所述開銷。m滿足于最冷的(N2-m+l)個壓縮存儲器頁面的總和小于等於一個存儲器頁面大小,所述最冷的(N2-m+2)個壓縮存儲器頁面的總和大于一個存儲器頁面大小。20.根據(jù)權(quán)利要求19所述的計算機(jī)系統(tǒng),其中所述至少一個處理器將所述存儲器頁面的所述第二部分建立于本地LRU列表中,其中通過頁面閑置時間的倒數(shù)來估計所述本地LRU列表上的所述存儲器頁面中的每一個的所述訪問概率,所述偽頁面錯誤的所述開銷為所述偽頁面錯誤的時間成本,所述真頁面錯誤的所述開銷為所述真頁面錯誤的時間成本,且其中所述頁面閑置時間為被換出的所述存儲器頁面中的每一個與當(dāng)前時間之間的差?!疚臋n編號】G06F12/08GK103729305SQ201310456389【公開日】2014年4月16日申請日期:2013年9月29日優(yōu)先權(quán)日:2012年10月11日【發(fā)明者】李翰林,闕志克,姜瑞豪申請人:財團(tuán)法人工業(yè)技術(shù)研究院