虛擬機(jī)系統(tǒng)的內(nèi)存管理方法和計(jì)算機(jī)系統(tǒng)的制作方法
【專利摘要】提供一種用于在虛擬機(jī)系統(tǒng)上進(jìn)行內(nèi)存管理的方法和計(jì)算機(jī)系統(tǒng)。所述內(nèi)存管理方法包含以下步驟。首先,通過(guò)至少一個(gè)處理器獲得在所述虛擬機(jī)系統(tǒng)上的多個(gè)虛擬機(jī)(virtual?machine)中每一個(gè)的工作集大小,其中所述工作集大小是運(yùn)行所述虛擬機(jī)中每一個(gè)上的應(yīng)用程序所需的內(nèi)存量。隨后,根據(jù)所述虛擬機(jī)中每一個(gè)的所述工作集(working?set)大小以及至少一個(gè)換入(swap?in)或再次快取錯(cuò)誤(refault),通過(guò)所述至少一個(gè)處理器將存儲(chǔ)內(nèi)存量分配給所述虛擬機(jī)中的每一個(gè),其中所述存儲(chǔ)內(nèi)存是所述計(jì)算機(jī)系統(tǒng)中可用內(nèi)存的一部分。
【專利說(shuō)明】虛擬機(jī)系統(tǒng)的內(nèi)存管理方法和計(jì)算機(jī)系統(tǒng)
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種在虛擬機(jī)系統(tǒng)上進(jìn)行內(nèi)存管理的技術(shù)。
【背景技術(shù)】
[0002]計(jì)算機(jī)虛擬化是一種涉及虛擬機(jī)創(chuàng)建的技術(shù),該虛擬機(jī)就像一個(gè)具有操作系統(tǒng)的物理計(jì)算機(jī),并且計(jì)算機(jī)虛擬化架構(gòu)通常通過(guò)在單個(gè)物理計(jì)算機(jī)平臺(tái)上同時(shí)支持多個(gè)操作系統(tǒng)的能力來(lái)進(jìn)行限定。例如,運(yùn)行微軟視窗系統(tǒng)的計(jì)算機(jī)可以控管有具有Linux操作系統(tǒng)的虛擬機(jī)。主機(jī)是發(fā)生虛擬化的實(shí)際物理機(jī),而虛擬機(jī)則被看作客戶機(jī)。超管理器(supervisor),確切地稱為虛擬機(jī)監(jiān)視器(VMM),是將硬件資源虛擬化并且將虛擬硬件接口呈現(xiàn)給至少一個(gè)虛擬機(jī)的軟件層。超管理器與傳統(tǒng)的操作系統(tǒng)對(duì)用于處理的硬件資源進(jìn)行管理,并且運(yùn)行相對(duì)于執(zhí)行虛擬機(jī)的某些管理功能時(shí)所用的方式相似。虛擬機(jī)可以稱為“客機(jī)”,并且在虛擬機(jī)內(nèi)部運(yùn)行的操作系統(tǒng)可以稱為“客機(jī)操作系統(tǒng)”。
[0003]虛擬化環(huán)境當(dāng)前受到內(nèi)存限制,這意味著主機(jī)的物理內(nèi)存是數(shù)據(jù)中心中資源利用的阻礙。內(nèi)存虛擬化將物理內(nèi)存資源從數(shù)據(jù)中心解除耦接,并且隨后將這些資源聚集成虛擬化內(nèi)存池,該虛擬化內(nèi)存池可由客機(jī)操作系統(tǒng)或在客機(jī)操作系統(tǒng)之上運(yùn)行的應(yīng)用程序進(jìn)行訪問(wèn)。就內(nèi)存虛擬化而言,內(nèi)存共享是內(nèi)存資源管理和利用的重要課題之一。
[0004]當(dāng)存在多個(gè)虛擬機(jī)在低內(nèi)存主機(jī)上運(yùn)行時(shí),虛擬機(jī)的內(nèi)存分布將變得對(duì)應(yīng)用程序性能極其重要。物理內(nèi)存應(yīng)以公平的方式分配在虛擬機(jī)之間,并且此種操作被定義為“內(nèi)存平衡”。
[0005]內(nèi)存平衡的最簡(jiǎn)單形式是將可用物理內(nèi)存除以虛擬機(jī)個(gè)數(shù),并且給予這些虛擬機(jī)中的每一個(gè)等量的內(nèi)存。然而,此種機(jī)構(gòu)不會(huì)考慮這些虛擬機(jī)中每一個(gè)的工作集大小,其中工作集大小是運(yùn)行這些虛擬機(jī)中每一個(gè)上的應(yīng)用程序所需的內(nèi)存量。也就是說(shuō),這種方法隱含假定有這些虛擬機(jī)中的每一個(gè)都是相等的,包含在虛擬機(jī)之上運(yùn)行的應(yīng)用程序和輸入工作負(fù)載。
[0006]另一種方法是將與每個(gè)工作集大小成正比的可用物理內(nèi)存的百分比分配給這些虛擬機(jī)中的每一個(gè)。直覺(jué)是將較大量的內(nèi)存分給對(duì)內(nèi)存資源具有較大需求的虛擬機(jī)。在此種分配下,虛擬機(jī)的工作集大小與其分配的內(nèi)存之間的差值也與虛擬機(jī)的工作集大小成正t匕。這意味著當(dāng)虛擬機(jī)的內(nèi)存分配被從其工作集大小降到其工作集大小的一個(gè)固定百分比時(shí),對(duì)于具有較大工作集大小的虛擬機(jī)而言,任何額外的事件處罰(例如,再次快取錯(cuò)誤(refault)或換入事件(swap in))可能會(huì)較高。
[0007]為了防止虛擬機(jī)由于內(nèi)存不足而發(fā)生嚴(yán)重的性能減退,可能需要使在相同主機(jī)上運(yùn)行的虛擬機(jī)中每一個(gè)的性能開(kāi)銷(performance overhead)相等,方式是通過(guò)使用更合適的內(nèi)存平衡機(jī)制。
【發(fā)明內(nèi)容】
[0008]本公開(kāi)一實(shí)施例涉及由計(jì)算機(jī)系統(tǒng)所寄存的虛擬機(jī)系統(tǒng)的內(nèi)存管理方法。所述內(nèi)存管理方法包含以下步驟。首先,通過(guò)至少一個(gè)處理器獲得在所述虛擬機(jī)系統(tǒng)上的多個(gè)虛擬機(jī)中每一個(gè)的工作集大小,其中所述工作集大小是運(yùn)行所述虛擬機(jī)中每一個(gè)上的應(yīng)用程序所需的內(nèi)存量。隨后,根據(jù)所述虛擬機(jī)中每一個(gè)的所述工作集大小以及至少一個(gè)換入或再次快取錯(cuò)誤,通過(guò)所述至少一個(gè)處理器將存儲(chǔ)內(nèi)存量分配給所述虛擬機(jī)中的每一個(gè),其中所述存儲(chǔ)內(nèi)存是所述計(jì)算機(jī)系統(tǒng)中可用內(nèi)存的一部分。
[0009]本公開(kāi)另一實(shí)施例涉及一種計(jì)算機(jī)系統(tǒng),該計(jì)算機(jī)系統(tǒng)包含系統(tǒng)內(nèi)存和至少一個(gè)處理器。所述至少一個(gè)處理器耦接到所述系統(tǒng)內(nèi)存上并且執(zhí)行以下操作,以在虛擬機(jī)系統(tǒng)上進(jìn)行內(nèi)存管理。所述至少一個(gè)處理器獲得在虛擬機(jī)系統(tǒng)上的多個(gè)虛擬機(jī)中每一個(gè)的工作集大小,其中所述工作集大小是運(yùn)行這些虛擬機(jī)中每一個(gè)上的應(yīng)用程序所需的內(nèi)存量。根據(jù)這些虛擬機(jī)中每一個(gè)的工作集大小以及至少一個(gè)換入或再次快取錯(cuò)誤,所述至少一個(gè)處理器進(jìn)一步將存儲(chǔ)內(nèi)存量分配給這些虛擬機(jī)中的每一個(gè),其中存儲(chǔ)內(nèi)存是系統(tǒng)內(nèi)存中可用內(nèi)存的一部分。
[0010]為了使本發(fā)明的前述以及其他特征和優(yōu)勢(shì)易于理解,下文將結(jié)合附圖詳細(xì)描述若干實(shí)施例,從而進(jìn)一步詳細(xì)描述本發(fā)明。
【專利附圖】
【附圖說(shuō)明】
[0011]加入附圖以幫助進(jìn)一步理解本發(fā)明,并且所述附圖并入本說(shuō)明書中且構(gòu)成本說(shuō)明書的一部分。附圖用于圖示本發(fā)明的實(shí)施例,并且連同描述一起用于闡釋本發(fā)明的原理。然而,這些附圖并非意圖對(duì)所附權(quán)利要求書所限定的本發(fā)明的范圍進(jìn)行限制。
[0012]圖1A是根據(jù)本發(fā)明的一實(shí)施例的計(jì)算機(jī)系統(tǒng)的方框圖。
[0013]圖1B是根據(jù)本發(fā)明的一實(shí)施例的虛擬機(jī)系統(tǒng)的方框圖。
[0014]圖2是根據(jù)本發(fā)明的一實(shí)施例的虛擬機(jī)系統(tǒng)上的內(nèi)存管理方法。
【具體實(shí)施方式】
[0015]現(xiàn)將詳細(xì)參考本發(fā)明的各項(xiàng)實(shí)施例,所述實(shí)施例的各個(gè)實(shí)例將在附圖中進(jìn)行說(shuō)明。在附圖和描述中,盡可能使用相同的參考標(biāo)號(hào)來(lái)指代相同或相似的部分。
[0016]為了說(shuō)明的目的,在以下各項(xiàng)實(shí)施例中使用了一個(gè)處理器和一個(gè)系統(tǒng)內(nèi)存,但是本發(fā)明并不限于此。在其他實(shí)施例中,可以使用一個(gè)以上的處理器。
[0017]圖1A是根據(jù)本發(fā)明的一實(shí)施例的計(jì)算機(jī)系統(tǒng)的方框圖。參考圖1,計(jì)算機(jī)系統(tǒng)100包含處理器110、系統(tǒng)內(nèi)存120以及其他標(biāo)準(zhǔn)外圍部件(未示出),其中系統(tǒng)內(nèi)存120耦接到處理器110上。
[0018]處理器110可以是專用或?qū)iT的處理器,其經(jīng)配置以通過(guò)執(zhí)行機(jī)器可讀的軟件代碼語(yǔ)言來(lái)實(shí)現(xiàn)特定任務(wù),該軟件代碼語(yǔ)言限定與操作有關(guān)的功能,從而通過(guò)與計(jì)算機(jī)系統(tǒng)100的其他部件通信來(lái)實(shí)施功能操作。
[0019]系統(tǒng)內(nèi)存120存儲(chǔ)操作系統(tǒng)等軟件,并且暫時(shí)存儲(chǔ)當(dāng)前有效或經(jīng)常使用的數(shù)據(jù)或應(yīng)用程序。因此,系統(tǒng)內(nèi)存120,也稱為物理內(nèi)存,它可以是一種存取時(shí)間較快的較快速內(nèi)存,例如,隨機(jī)存取存儲(chǔ)器(RAM)、靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM)或動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(DRAM)0
[0020]虛擬內(nèi)存是一種用于對(duì)系統(tǒng)內(nèi)存120的資源進(jìn)行管理的技術(shù)。該技術(shù)提供具有大量?jī)?nèi)存的假象。虛擬內(nèi)存和系統(tǒng)內(nèi)存120都被分成多個(gè)鄰接的內(nèi)存地址塊,這些內(nèi)存地址塊也稱為內(nèi)存頁(yè)面(page)。
[0021]超管理器安裝在計(jì)算機(jī)系統(tǒng)100上并且支持虛擬機(jī)執(zhí)行空間,在所述虛擬機(jī)執(zhí)行空間內(nèi),可以同時(shí)物理(實(shí)體)化和執(zhí)行多個(gè)虛擬機(jī)。圖1B是根據(jù)本發(fā)明的一實(shí)施例的虛擬機(jī)系統(tǒng)的方框圖。
[0022]連同圖1A—起參考圖1B,虛擬機(jī)系統(tǒng)100’包含多個(gè)虛擬機(jī)1501-150N、超管理器160以及虛擬硬件170。應(yīng)注意,本發(fā)明的各項(xiàng)實(shí)施例涵蓋能夠同時(shí)寄存虛擬機(jī)1501-150N的計(jì)算機(jī)系統(tǒng)100,并且為了簡(jiǎn)潔和易于說(shuō)明的目的,除非另有說(shuō)明,以下各項(xiàng)實(shí)施例中示出兩個(gè)虛擬機(jī)1501和150N。虛擬機(jī)1501和150N中的每一個(gè)都包含客機(jī)操作系統(tǒng),例如,客機(jī)操作系統(tǒng)1551或155N,以及各種客機(jī)軟件應(yīng)用程序(未示出)??蜋C(jī)操作系統(tǒng)中的每一個(gè)都包含客機(jī)內(nèi)核,例如,客機(jī)內(nèi)核1561或156N。包含處理器、內(nèi)存和I/O裝置的虛擬硬件170被提取和分配為連至上部運(yùn)行虛擬機(jī)1501和150N的虛擬處理器、虛擬內(nèi)存和虛擬I/O裝置。超管理器160對(duì)虛擬機(jī)1501和150N進(jìn)行管理,并且提供仿真硬件和固件資源。在多項(xiàng)實(shí)施例的一個(gè)中,Linux分布可以安裝為虛擬機(jī)150內(nèi)的客機(jī)操作系統(tǒng)1551和155N,用以執(zhí)行任何支持的應(yīng)用程序,并且支持大多數(shù)Linux分布的開(kāi)源軟件Xen可以被提供為超管理器160??蜋C(jī)內(nèi)核1561和156N中每一個(gè)都可以是domO內(nèi)核,并且客機(jī)操作系統(tǒng)1551和155N中每一個(gè)都包含氣球驅(qū)動(dòng)器(balloon driver)(未示出)。結(jié)合超管理器160,氣球驅(qū)動(dòng)器可以通過(guò)調(diào)用內(nèi)存管理算法來(lái)對(duì)虛擬機(jī)1551和155N的虛擬內(nèi)存進(jìn)行分配或解除分配。為了達(dá)到此目的,可以攔截在客機(jī)內(nèi)核1561和156N處的換入和再次快取錯(cuò)誤,從而量化客機(jī)虛擬機(jī)1501和150N的性能開(kāi)銷,并且分配給虛擬機(jī)1501和150N的內(nèi)存量可以進(jìn)行調(diào)節(jié),以通過(guò)利用客機(jī)操作系統(tǒng)1551和155N的頁(yè)面再生(pagereclaiming)機(jī)構(gòu),使虛擬機(jī)1501和150N中每一個(gè)的開(kāi)銷相等。
[0023]對(duì)于頁(yè)面再生,處理器110使用最近最少使用(Least Recently Used:LRU)標(biāo)準(zhǔn)來(lái)確定移除頁(yè)面并保持LRU列表157所用的順序,所述LRU列表根據(jù)兩種主要類型的內(nèi)存(匿名內(nèi)存和頁(yè)面緩存)的最后存取時(shí)間,來(lái)對(duì)曾經(jīng)由虛擬機(jī)1501和150N存取過(guò)的內(nèi)存頁(yè)面進(jìn)行排序。匿名內(nèi)存的內(nèi)存頁(yè)面被用戶進(jìn)程的堆和棧使用,并且頁(yè)面緩存的內(nèi)存頁(yè)面通過(guò)磁盤數(shù)據(jù)進(jìn)行備份,其中,在第一次存取到磁盤數(shù)據(jù)之后,內(nèi)容被緩存在內(nèi)存中以減少未來(lái)磁盤I/O。
[0024]在虛擬機(jī)系統(tǒng)100’上,如果LRU列表上的內(nèi)存頁(yè)面是匿名內(nèi)存,那么客機(jī)內(nèi)核1561和156N可以將內(nèi)容交換到交換磁盤(swap space)(未示出),對(duì)進(jìn)程中未呈現(xiàn)出的對(duì)應(yīng)PTE進(jìn)行標(biāo)記,隨后釋放對(duì)應(yīng)的內(nèi)存頁(yè)面。隨后,如果內(nèi)存頁(yè)面再次被存取,那么將通過(guò)以下方式來(lái)執(zhí)行COA (copy-on-access:復(fù)制存取)機(jī)制:將頁(yè)面內(nèi)容從交換磁盤帶入新分配的內(nèi)存頁(yè)面中,即,換入?;蛘?,如果LRU列表上的內(nèi)存頁(yè)面屬于頁(yè)面緩存,那么當(dāng)頁(yè)面內(nèi)容已被污染時(shí),客機(jī)內(nèi)核1561和156N可以將該頁(yè)面內(nèi)容刷新輸出(flush)到交換磁盤中,隨后所述頁(yè)面得到釋放。下一個(gè)文件存取之后,客機(jī)內(nèi)核1561和156N必須再次執(zhí)行磁盤存取(稱為再次讀取)以將內(nèi)容帶回到頁(yè)面緩存中新分配的頁(yè)面。
[0025]圖2是根據(jù)本發(fā)明的一實(shí)施例的虛擬機(jī)系統(tǒng)上的內(nèi)存管理方法。
[0026]在參照?qǐng)D2之前,應(yīng)注意,系統(tǒng)內(nèi)存120的一部分可用于虛擬機(jī)1501-150N,并且系統(tǒng)內(nèi)存的這一部分被定義為“存儲(chǔ)內(nèi)存(storage memory)”?,F(xiàn)參考圖2連同圖1A和圖1B中的部件,通過(guò)處理器110獲得虛擬機(jī)系統(tǒng)100’上的這些虛擬機(jī)1501-150N中每一個(gè)的工作集大小(步驟S201)。隨后,根據(jù)這些虛擬機(jī)1501-150N中每一個(gè)的工作集大小以及至少一個(gè)換入或再次快取錯(cuò)誤,通過(guò)處理器110將存儲(chǔ)內(nèi)存量分配給這些虛擬機(jī)1501-150N中的每一個(gè)(步驟S203)。應(yīng)注意,換入計(jì)數(shù)和再次讀取計(jì)數(shù)的總和可以定義為開(kāi)銷計(jì)數(shù),所述開(kāi)銷計(jì)數(shù)也是被讀取到虛擬機(jī)中的頁(yè)面數(shù)目。
[0027]更具體地說(shuō),在各項(xiàng)實(shí)施例的一個(gè)中,首先假設(shè)每個(gè)換入和再次快取錯(cuò)誤的開(kāi)銷在不同虛擬機(jī)1501-150N上都是相同的,其中所述不同虛擬機(jī)具有不同工作負(fù)載和不同的分配內(nèi)存量。給定存儲(chǔ)內(nèi)存量MAvail和N個(gè)虛擬機(jī),其中虛擬機(jī)150i具有工作集大小WSSi,
其中i=l,2,…,N,處理器110從這些虛擬機(jī)中每一個(gè)的工作集大小總和
【權(quán)利要求】
1.一種虛擬機(jī)系統(tǒng)的內(nèi)存管理方法,所述內(nèi)存管理方法包括: 通過(guò)至少一個(gè)處理器獲得在所述虛擬機(jī)系統(tǒng)上的多個(gè)虛擬機(jī)中每一個(gè)的工作集大小,所述工作集大小是運(yùn)行所述虛擬機(jī)中每一個(gè)上的應(yīng)用程序所需的內(nèi)存量;以及 根據(jù)所述虛擬機(jī)中每一個(gè)的所述工作集大小以及至少一個(gè)換入或再次快取錯(cuò)誤,通過(guò)所述至少一個(gè)處理器將存儲(chǔ)內(nèi)存量分配給所述虛擬機(jī)中的每一個(gè),所述存儲(chǔ)內(nèi)存是所述計(jì)算機(jī)系統(tǒng)中可用內(nèi)存的一部分。
2.根據(jù)權(quán)利要求1所述的內(nèi)存管理方法,其特征在于,根據(jù)所述虛擬機(jī)中每一個(gè)的所述工作集大小以及所述至少一個(gè)換入或再次快取錯(cuò)誤,通過(guò)所述至少一個(gè)處理器將所述存儲(chǔ)內(nèi)存量分配給所述虛擬機(jī)中的每一個(gè)這一步驟包括: 根據(jù)所述虛擬機(jī)中每一個(gè)的所述工作集大小以及第一減少項(xiàng)或第二減少項(xiàng),通過(guò)所述至少一個(gè)處理器將所述存儲(chǔ)內(nèi)存量分配給所述虛擬機(jī)中的每一個(gè),其中,所述第一減少項(xiàng)與所述存儲(chǔ)內(nèi)存量、所述虛擬機(jī)系統(tǒng)上的所述虛擬機(jī)個(gè)數(shù),以及所述虛擬機(jī)中每一個(gè)的所述工作集大小的總和相關(guān)聯(lián),其中,所述第二減少項(xiàng)與所述存儲(chǔ)內(nèi)存量、所述虛擬機(jī)中每一個(gè)的所述工作集大小的總和,以及根據(jù)所述至少一個(gè)換入或再次快取錯(cuò)誤的開(kāi)銷時(shí)間相關(guān)聯(lián)。
3.根據(jù)權(quán)利要求2所述的內(nèi)存管理方法,其特征在于,根據(jù)所述虛擬機(jī)中每一個(gè)的所述工作集大小以及所述第一減小項(xiàng),通過(guò)所述至少一個(gè)處理器將所述存儲(chǔ)內(nèi)存量分配給所述虛擬機(jī)中的每一個(gè)這一步驟包括: 根據(jù)所述虛擬機(jī)中每一個(gè)的所述工作集大小、所述虛擬機(jī)中每一個(gè)的所述工作集大小的總和,以及所述虛擬機(jī)系統(tǒng)上的所述虛擬機(jī)個(gè)數(shù),通過(guò)所述至少一個(gè)處理器來(lái)計(jì)算出所述第一減少項(xiàng);以及 通過(guò)所述至少一個(gè)處理器把所述工作集大小減去所述第一減少項(xiàng)從而將所述存儲(chǔ)內(nèi)存量分配給所述虛擬機(jī)中的每一個(gè)。
4.根據(jù)權(quán)利要求3所述的內(nèi)存管理方法,其特征在于,分配給所述虛擬機(jī)中每一個(gè)的所述內(nèi)存量滿足等式(I):
|>怒,.]—Α- BTi= WSSi — ^^^
N 其中,BTi表示分配給所述虛擬機(jī)i的所述存儲(chǔ)內(nèi)存量,WSSi表示所述虛擬機(jī)i的所述工作集大小,N表示所述虛擬機(jī)個(gè)數(shù),以及MAvail表示所述存儲(chǔ)內(nèi)存量。
5.根據(jù)權(quán)利要求2所述的內(nèi)存管理方法,其特征在于,根據(jù)所述虛擬機(jī)中每一個(gè)的所述工作集大小以及所述第二減小項(xiàng),通過(guò)所述至少一個(gè)處理器將所述存儲(chǔ)內(nèi)存量分配給所述虛擬機(jī)中的每一個(gè)這一步驟包括: 根據(jù)所述虛擬機(jī)中每一個(gè)的所述工作集大小、所述虛擬機(jī)中每一個(gè)的所述工作集大小的總和、所述存儲(chǔ)內(nèi)存量、所述虛擬機(jī)系統(tǒng)上的所述虛擬機(jī)個(gè)數(shù),以及根據(jù)所述至少一個(gè)換入或再次快取錯(cuò)誤的所述開(kāi)銷時(shí)間,通過(guò)所述至少一個(gè)處理器來(lái)計(jì)算出所述第二減少項(xiàng);以及 通過(guò)所述至少一個(gè)處理器把所述工作集大小減去所述第二減少項(xiàng)從而將所述存儲(chǔ)內(nèi)存量分配給所述虛擬機(jī)中的每一個(gè)。
6.根據(jù)權(quán)利要求5所述的內(nèi)存管理方法,其特征在于,所述第二減少項(xiàng)與所述開(kāi)銷時(shí)間成反比。
7.根據(jù)權(quán)利要求6所述的內(nèi)存管理方法,其特征在于,分配給所述虛擬機(jī)中每一個(gè)的所述存儲(chǔ)內(nèi)存量滿足等式(2):1
8.一種計(jì)算系統(tǒng),其包括: 系統(tǒng)內(nèi)存; 至少一個(gè)處理器,所述至少一個(gè)處理器耦接到所述系統(tǒng)內(nèi)存上,所述至少一個(gè)處理器執(zhí)行操作,用于在虛擬機(jī)系統(tǒng)上進(jìn)行內(nèi)存管理,所述操作包括: 獲得在所述虛擬機(jī)系統(tǒng)上的多個(gè)虛擬機(jī)中每一個(gè)的工作集大小,所述工作集大小是運(yùn)行所述虛擬機(jī)中每一個(gè)上的應(yīng)用程序所需的內(nèi)存量;以及 根據(jù)所述虛擬機(jī)中每一個(gè)的所述工作集大小以及至少一個(gè)換入或再次快取錯(cuò)誤,將存儲(chǔ)內(nèi)存量分配給所述虛擬機(jī)中的每一個(gè),所述存儲(chǔ)內(nèi)存是所述系統(tǒng)內(nèi)存中可用內(nèi)存的一部分。
9.根據(jù)權(quán)利要求8所述的計(jì)算機(jī)系統(tǒng),其特征在于,根據(jù)所述虛擬機(jī)中每一個(gè)的所述工作集大小以及第一減少項(xiàng)或第二減少項(xiàng),所述至少一個(gè)處理器將所述存儲(chǔ)內(nèi)存量分配給所述虛擬機(jī)中的每一個(gè),其中,所述第一減少項(xiàng)與所述存儲(chǔ)內(nèi)存量、所述虛擬機(jī)系統(tǒng)上的所述虛擬機(jī)個(gè)數(shù),以及所述虛擬機(jī)中每一個(gè)的所述工作集大小的總和相關(guān)聯(lián),其中,所述第二減少項(xiàng)與所述存儲(chǔ)內(nèi)存量、所述虛擬機(jī)中每一個(gè)的所述工作集大小的總和,以及根據(jù)所述至少一個(gè)換入或再次快取錯(cuò)誤的開(kāi)銷時(shí)間相關(guān)聯(lián)。
10.根據(jù)權(quán)利要求9所述的計(jì)算機(jī)系統(tǒng),其特征在于,根據(jù)所述虛擬機(jī)中每一個(gè)的所述工作集大小、所述虛擬機(jī)中每一個(gè)的所述工作集大小的總和以及所述虛擬機(jī)系統(tǒng)上的所述虛擬機(jī)個(gè)數(shù),所述至少一個(gè)處理器計(jì)算出所述第一減少項(xiàng),并且把所述工作集大小減去所述第一減少項(xiàng)從而將所述存儲(chǔ)內(nèi)存量分配給所述虛擬機(jī)中的每一個(gè)。
11.根據(jù)權(quán)利要求10所述的計(jì)算機(jī)系統(tǒng),其特征在于,分配給所述虛擬機(jī)中每一個(gè)的所述內(nèi)存量滿足等式(I):
12.根據(jù)權(quán)利要求9所述的計(jì)算機(jī)系統(tǒng),根據(jù)所述虛擬機(jī)中每一個(gè)的所述工作集大小、所述虛擬機(jī)中每一個(gè)的所述工作集大小的總和、所述存儲(chǔ)內(nèi)存量、所述虛擬機(jī)系統(tǒng)上的所述虛擬機(jī)個(gè)數(shù)以及根據(jù)所述至少一個(gè)換入或再次快取錯(cuò)誤的所述開(kāi)銷時(shí)間,所述至少一個(gè)處理器計(jì)算出所述第二減少項(xiàng),以及通過(guò)所述至少一個(gè)處理器把所述工作集減去所述第二減少項(xiàng)從而將所述存儲(chǔ)內(nèi)存量分配給所述虛擬機(jī)中的每一個(gè)。
13.根據(jù)權(quán)利要求12所述的計(jì)算機(jī)系統(tǒng),其特征在于,所述第二減少項(xiàng)與所述開(kāi)銷時(shí)間成反比。
14.根據(jù)權(quán)利要求13所述的計(jì)算機(jī)系統(tǒng),其特征在于,分配給所述虛擬機(jī)中每一個(gè)的所述存儲(chǔ)內(nèi)存量滿足等式(2):1
【文檔編號(hào)】G06F9/455GK103729230SQ201310456258
【公開(kāi)日】2014年4月16日 申請(qǐng)日期:2013年9月29日 優(yōu)先權(quán)日:2012年10月11日
【發(fā)明者】李翰林, 闕志克, 姜瑞豪 申請(qǐng)人:財(cái)團(tuán)法人工業(yè)技術(shù)研究院