TWI505191B - 虛擬機系統的記憶體管理方法和電腦系統 - Google Patents
虛擬機系統的記憶體管理方法和電腦系統 Download PDFInfo
- Publication number
- TWI505191B TWI505191B TW102131819A TW102131819A TWI505191B TW I505191 B TWI505191 B TW I505191B TW 102131819 A TW102131819 A TW 102131819A TW 102131819 A TW102131819 A TW 102131819A TW I505191 B TWI505191 B TW I505191B
- Authority
- TW
- Taiwan
- Prior art keywords
- memory
- virtual machines
- amount
- working set
- virtual machine
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/0223—User address space allocation, e.g. contiguous or non contiguous base addressing
- G06F12/023—Free address space management
- G06F12/0253—Garbage collection, i.e. reclamation of unreferenced memory
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/12—Replacement control
- G06F12/121—Replacement control using replacement algorithms
- G06F12/123—Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
本發明是有關於一種對虛擬機的記憶體管理的技術。
電腦虛擬化是一種涉及虛擬機創建的技術,該虛擬機就像一個具有作業系統的實體電腦,並且電腦虛擬化架構通常通過在單個實體電腦平臺上同時支援多個作業系統的能力來進行限定。例如,運行微軟視窗系統的電腦可以控管有具有Linux作業系統的虛擬機。主機是發生虛擬化的實際實體機,而虛擬機則被看作客戶機。超管理器(hypervisor),確切地稱為虛擬機監視器(VMM),是將硬體資源虛擬化並且將虛擬硬體介面呈現給至少一個虛擬機的軟體層。超管理器與傳統的作業系統對用於處理的硬體資源進行管理,並且運行相對於執行虛擬機的某些管理功能時所用的方式相似。虛擬機可以稱為“客機”,並且在虛擬機內部運行的作業系統可以稱為“客機作業系統”。
虛擬化環境當前受到記憶體限制,這意味著主機的實體
記憶體是資料中心中資源利用的阻礙。記憶體虛擬化將實體記憶體資源從資料中心解除耦接,並且隨後將這些資源聚集成虛擬化記憶體池,該虛擬化記憶體池可由客機作業系統或在客機作業系統之上運行的應用程式進行存取。就記憶體虛擬化而言,記憶體共用是記憶體資源管理和利用的重要課題之一。
當存在多個虛擬機在低記憶體主機上運行時,虛擬機的記憶體分佈將變得對應用程式性能極其重要。實體記憶體應以公平的方式分配在虛擬機之間,並且此種操作被定義為“記憶體平衡”。
記憶體平衡的最簡單形式是將可用實體記憶體除以虛擬機個數,並且給予這些虛擬機中的每一者等量的記憶體。然而,此種機構不會考慮這些虛擬機中每一者的工作集大小,其中工作集大小是運行這些虛擬機中每一者上的應用程式所需的記憶體量。也就是說,這種方法隱含假定有這些虛擬機中的每一者都是相等的,包含在虛擬機之上運行的應用程式和輸入工作負載。
另一種方法是將與每個工作集大小成正比的可用實體記憶體的百分比分配給這些虛擬機中的每一者。直覺是將較大量的記憶體分給對記憶體資源具有較大需求的虛擬機。在此種分配下,虛擬機的工作集大小與其分配的記憶體之間的差值也與虛擬機的工作集大小成正比。這意味著當虛擬機的記憶體分配被從其工作集大小降到其工作集大小的一個固定百分比時,對於具有較大工作集大小的虛擬機而言,任何額外的事件處罰(例如,再次
快取錯誤(refault)或記憶體換進(swapin)事件)可能會較高。
為了防止虛擬機由於記憶體不足而發生嚴重的性能減退,可能需要使在相同主機上運行的虛擬機中每一者的性能開銷(performance overhead)相等,方式是通過使用更合適的記憶體平衡機制。
本揭露一實施例涉及由電腦系統所寄存的虛擬機系統的記憶體管理方法。所述記憶體管理方法包含以下步驟。首先,通過至少一個處理器獲得在所述虛擬機系統上的多個虛擬機中每一者的工作集大小,其中所述工作集大小是運行所述虛擬機中每一者上的應用程式所需的記憶體量。隨後,根據所述虛擬機中每一者的所述工作集大小以及至少一個記憶體換進或再次快取錯誤事件,通過所述至少一個處理器將存儲記憶體量分配給所述虛擬機中的每一者,其中所述存儲記憶體是所述電腦系統中可用記憶體的一部分。
本揭露另一實施例涉及一種電腦系統,該電腦系統包含系統記憶體和至少一個處理器。所述至少一個處理器耦接到所述系統記憶體上並且執行以下操作,以在虛擬機系統上進行記憶體管理。所述至少一個處理器獲得在虛擬機系統上的多個虛擬機中每一者的工作集大小,其中所述工作集大小是運行這些虛擬機中每一者上的應用程式所需的記憶體量。根據這些虛擬機中每一者
的工作集大小以及至少一個記憶體換進或再次快取錯誤事件,所述至少一個處理器進一步將存儲記憶體量分配給這些虛擬機中的每一者,其中存儲記憶體是系統記憶體中可用記憶體的一部分。
為了使本發明的前述以及其他特徵和優勢易於理解,下文將結合附圖詳細描述若干實施例,從而進一步詳細描述本發明。
100‧‧‧電腦系統
110‧‧‧處理器
120‧‧‧系統記憶體
100'‧‧‧虛擬機系統
1501-150N‧‧‧寄存虛擬機
1551-155N‧‧‧客機作業系統
160‧‧‧超管理器
170‧‧‧虛擬硬體
1561、156N‧‧‧客機內核
S201、S203‧‧‧步驟
圖1A是根據本發明的一實施例的電腦系統的方塊圖。
圖1B是根據本發明的一實施例的虛擬機系統的方塊圖。
圖2是根據本發明的一實施例的虛擬機系統上的記憶體管理方法。
現將詳細參考本發明的各項實施例,所述實施例的各個實例將在附圖中進行說明。在附圖和描述中,盡可能使用相同的參考標號來指代相同或相似的部分。
為了說明的目的,在以下各項實施例中使用了一個處理器和一個系統記憶體,但是本發明並不限於此。在其他實施例中,可以使用一個以上的處理器。
圖1A是根據本發明的一實施例的電腦系統的方塊圖。參考圖1,電腦系統100包含處理器110、系統記憶體120以及其他
標準週邊部件(未示出),其中系統記憶體120耦接到處理器110上。
處理器110可以是專用或專門的處理器,其經配置以通過執行機器可讀的程式語言來實現特定任務,該程式語言限定與操作有關的功能,從而通過與電腦系統100的其他部件通信來實施功能操作。
系統記憶體120存儲作業系統等軟體,並且暫時存儲當前有效或經常使用的資料或應用程式。因此,系統記憶體120,也稱為實體記憶體,它可以是一種存取時間較快的較快速記憶體,例如,隨機存取記憶體(RAM)、靜態隨機存取記憶體(SRAM)或動態隨機存取記憶體(DRAM)。
虛擬記憶體是一種用於對系統記憶體120的資源進行管理的技術。該技術提供具有大量記憶體的假像。虛擬記憶體和系統記憶體120都被分成多個鄰接的記憶體位址塊,這些記憶體位址塊也稱為記憶體分頁(page)。
超管理器安裝在電腦系統100上並且支援虛擬機執行空間,在所述虛擬機執行空間內,可以同時實體化和執行多個虛擬機。圖1B是根據本發明的一實施例的虛擬機系統的方塊圖。
連同圖1A一起參考圖1B,虛擬機系統100'包含多個虛擬機1501-150N、超管理器160以及虛擬硬體170。應注意,本發明的各項實施例涵蓋能夠同時寄存虛擬機1501-150N的電腦系統100,並且為了簡潔和易於說明的目的,除非另有說明,以下各項
實施例中示出兩個虛擬機1501和150N。虛擬機1501和150N中的每一者都包含客機作業系統,例如,客機作業系統1551或155N,以及各種客機軟體應用程式(未示出)。客機作業系統中的每一者都包含客機內核,例如,客機內核1561或156N。包含處理器、記憶體和I/O裝置的虛擬硬體170被提取和分配為連至上部運行虛擬機1501和150N的虛擬處理器、虛擬記憶體和虛擬I/O裝置。超管理器160對虛擬機1501和150N進行管理,並且提供仿真硬體和韌體資源。在多項實施例的一者中,Linux分佈可以安裝為虛擬機150內的客機作業系統1551和155N,用以執行任何支援的應用程式,並且支援大多數Linux分佈的開源軟體Xen可以被提供為超管理器160。客機內核1561和156N中每一者都可以是dom0內核,並且客機作業系統1551和155N中每一者都包含氣球驅動器(balloon driver)(未示出)。結合超管理器160,氣球驅動器可以通過調用記憶體管理演算法來對虛擬機1551和155N的虛擬記憶體進行分配或解除分配。為了達到此目的,可以攔截在客機內核1561和156N處的記憶體換進和再次快取錯誤事件,從而量化客機虛擬機1501和150N的性能損失(performance overhead),並且調節分配給虛擬機1501和150N的記憶體量,以通過利用客機作業系統1551和155N的分頁收回(page reclaiming)機構,使虛擬機1501和150N中每一者的開銷相等。
對於分頁收回,處理器110使用最近最少使用(Least Recently Used:LRU)標準來確定移除分頁並保持LRU列表157所
用的順序,所述LRU列表根據兩種主要類型的記憶體(匿名記憶體和分頁緩存)的最後存取時間,來對曾經由虛擬機1501和150N存取過的記憶體分頁進行排序。匿名記憶體的記憶體分頁被用戶進程的堆和棧使用,並且分頁緩存的記憶體分頁通過磁片資料進行備份,其中,在第一次存取到磁片資料之後,內容被緩存在記憶體中以減少未來磁片I/O。
在虛擬機系統100'上,如果LRU列表上的記憶體分頁是匿名記憶體,那麼客機內核1561和156N可以將內容交換到記憶體置換空間(swap space)(未示出),對進程中未呈現出的對應PTE進行標記,隨後釋放對應的記憶體分頁。隨後,如果記憶體分頁再次被存取,那麼將通過以下方式來執行COA(copy-on-access)機構:將分頁內容從記憶體置換空間帶入新分配的記憶體分頁中,即,記憶體換進。或者,如果LRU列表上的記憶體分頁屬於分頁緩存,那麼當分頁內容已被污染時,客機內核1561和156N可以將該分頁內容更新(flush)到記憶體置換空間中,隨後所述分頁得到釋放。下一個檔存取之後,客機內核1561和156N必須再次執行磁片存取(稱為再次快取錯誤)以將內容帶回到分頁緩存中新分配的分頁。
圖2是根據本發明的一實施例的虛擬機系統上的記憶體管理方法。
在參照圖2之前,應注意,系統記憶體120的一部分可用於虛擬機1501-150N,並且系統記憶體的這一部分被定義為“存
儲記憶體(storage memory)”。現參考圖2連同圖1A和圖1B中的部件,通過處理器110獲得虛擬機系統100'上的這些虛擬機1501-150N中每一者的工作集大小(步驟S201)。隨後,根據這些虛擬機1501-150N中每一者的工作集大小以及至少一個記憶體換進或再次快取錯誤事件,通過處理器110將存儲記憶體量分配給這些虛擬機1501-150N中的每一者(步驟S203)。應注意,記憶體換進計數和再次快取錯誤計數的總和可以定義為開銷計數,所述開銷計數也是被讀取到虛擬機中的分頁數目。
更具體地說,在各項實施例的一者中,首先假設每個記憶體換進和再次快取錯誤事件的開銷在不同虛擬機1501-150N上都是相同的,其中所述不同虛擬機具有不同工作負載和不同的分配記憶體量。給定存儲記憶體量M Avail
和N個虛擬機,其中虛擬機150i具有工作集大小WSS i
,其中i=1,2,…,N,處理器110從這些虛擬機中每一者的工作集大小總和中減去存儲記憶體M Avail
,並且隨後把相減結果除以虛擬機個數N。相除結果被定義為第一減少項。隨後,處理器110從工作集大小WSS i
中減去第一減少項,最終為虛擬機150i生成記憶體分配或氣球目標(balloon target)。也就是說,分配給虛擬機1501-150N中每一者的存儲記憶體量滿足等式(1):
其中BT i
表示分配給虛擬機150i(或虛擬機150i的氣球目標)的存儲記憶體量,WSS i
表示虛擬機150i的工作集大小,N
表示虛擬機個數,以及M Avail
表示存儲記憶體量。
作為本實施例的數似範例,假設兩個虛擬機1501和150N分別給定工作集大小600MB和300MB,並且假定存儲記憶體為600MB。首先,將缺少的存儲記憶體量除以2(即,150MB),並且通過處理器110將相同的缺少量分配給兩個虛擬機1501和150N。隨後,虛擬機1501和150N可以分別分配有450MB(缺少150MB)和150MB(缺少150MB)。在記憶體分配之後,虛擬機1501和150N預期具有相同的開銷計數。
在不同虛擬機1501-150N上的記憶體換進和再次快取錯誤事件的效能損失並不總是相同的,因為每個記憶體換進或再次快取錯誤事件的時間成本在一個虛擬機內或不同虛擬機之間可以是不同的。例如,當虛擬機分配到的記憶體量遠遠低於其工作集時,(例如,對交換子系統的元資料有更多的修改),會減慢每次記憶體換進操作。為了處理這種情況,在另一實施例中,其目標旨在對所有的虛擬機1501-150N之間的記憶體換進和再次快取錯誤時間進行平衡。每個虛擬機150i的記憶體換進和再次快取錯誤時間的總和稱為開銷時間overhead_time i
,其中i=1,2,…,n。虛擬機150i的記憶體分配的減少定義為第二減少項S i
,其與記憶體換進和再次快取錯誤所花費的平均開銷時間overhead_time i
倒數成正比,因為開銷時間overhead_time i
越大,虛擬機150i的記憶體分配的
減少就越小。隨後,處理器110從工作集大小WSS i
中減去第二減少項,最終為虛擬機150i生成記憶體分配或氣球目標。也就是說,分配給虛擬機1501-150N中每一者的記憶體量滿足等式(2):
其中,BT i
表示分配給虛擬機i
的存儲記憶體量,WSS i
表示虛擬機i
的工作集大小,N
表示虛擬機個數,M Avail
表示存儲記憶體量。
作為本實施例的數例,假設兩個虛擬機1501和150N也分別給定工作集大小600MB和300MB,並且存儲記憶體為600MB。假設虛擬機1501和150N的開銷時間overhead_time i
比為2:1,其中i=1,N。在本實施例中,缺少量以與開銷時間overhead_time i
成反比的被分配給虛擬機1501和150N(即,虛擬機1501缺少100MB,而虛擬機150N缺少200MB)。因此,對於虛擬機1501的最終存儲分配為500MB,而對於虛擬機105N的最終存儲分配為100MB。虛擬機1501和105N的開銷時間overhead_time i
預期得以平衡,並且性能開銷可以實現均等。
應注意,對於超管理器160的緊急記憶體池而言,當處理器110檢測到超管理器160的閒置記憶體低於配置的下限,例如,低於1%時,啟動記憶體平衡機構。處理器110可以從虛擬機1501-150N中每一者的氣球驅動器中接收記憶體換進和再次快取
錯誤資訊,決定虛擬機1501-150N中每一者的工作集,並相應地計算出新的氣球目標。通過前述記憶體管理方法,讓所有虛擬機1501-150N的性能適度地降級,而同時不會過於缺乏記憶體資源。
在一實施例中,可以通過在個人電腦和工作站等的電腦上執行準備好的程式來實施上述記憶體管理方法。所述程式存儲在電腦可讀記錄媒介上(例如,硬碟、軟碟、CD-ROM、MO以及DVD),從電腦可讀媒介中讀取,並且被電腦執行。所述程式可以通過網際網路等網路進行分佈。
總之,通過利用客機作業系統的現有分頁收回機構,本發明中的記憶體管理方法經設計,以根據這些虛擬機中每一者的工作集大小和至少一個記憶體換進或再次快取錯誤事件,將存儲記憶體量分配給主機系統上的每個虛擬機。通過這種方式,可以使在相同主機系統上運行的虛擬機中每一者的性能開銷相等,從而防止虛擬機由於記憶體不足而產生嚴重的性能退化。
所屬領域的技術人員將易於明白,在不脫離本發明的範圍或精神的情況下,可以對所揭示的實施例的結構作出各種修改和變化。鑒於前文,只要本發明的修改和變化屬於所述權利要求書以及其等效物範圍內,那麼本發明就涵蓋所述修改和變化。
S201、S203‧‧‧步驟
Claims (12)
- 一種虛擬機系統的記憶體管理方法,所述記憶體管理方法包括:通過至少一個處理器獲得在所述虛擬機系統上的多個虛擬機中每一者的工作集大小,所述工作集大小是運行所述虛擬機中每一者上的應用程式所需的記憶體量;以及根據所述虛擬機中每一者的所述工作集大小以及至少一個記憶體換進或再次快取錯誤事件,通過所述至少一個處理器將存儲記憶體量分配給所述虛擬機中的每一者,所述存儲記憶體是所述電腦系統中可用記憶體的一部分,此步驟更包括:根據所述虛擬機中每一者的所述工作集大小以及第一減少項或第二減少項,通過所述至少一個處理器將所述存儲記憶體量分配給所述虛擬機中的每一者,所述第一減少項與所述存儲記憶體量、所述虛擬機系統上的所述虛擬機個數,以及所述虛擬機中每一者的所述工作集大小的總和相關聯,所述第二減少項與所述存儲記憶體量、所述虛擬機中每一者的所述工作集大小的總和,以及根據所述至少一個記憶體換進或再次快取錯誤事件的開銷時間相關聯。
- 如申請專利範圍第1項所述的記憶體管理方法,其中,上述之根據所述虛擬機中每一者的所述工作集大小以及所述第一減小項,通過所述至少一個處理器將所述存儲記憶體量分配給所述虛擬機中的每一者的步驟包括: 根據所述虛擬機中每一者的所述工作集大小、所述虛擬機中每一者的所述工作集大小的總和,以及所述虛擬機系統上的所述虛擬機個數,通過所述至少一個處理器來計算出所述第一減少項;以及通過所述至少一個處理器把所述工作集大小減去所述第一減少項從而將所述存儲記憶體量分配給所述虛擬機中的每一者。
- 如申請專利範圍第2項所述的記憶體管理方法,其中,分配給所述虛擬機中每一者的所述記憶體量滿足等式(1):
- 如申請專利範圍第1項所述的記憶體管理方法,其中,上述之根據所述虛擬機中每一者的所述工作集大小以及所述第二減小項,通過所述至少一個處理器將所述存儲記憶體量分配給所述虛擬機中的每一者的步驟包括:根據所述虛擬機中每一者的所述工作集大小、所述虛擬機中每一者的所述工作集大小的總和、所述存儲記憶體量、所述虛擬機系統上的所述虛擬機個數,以及根據所述至少一個記憶體換進或再次快取錯誤事件的所述開銷時間,通過所述至少一個處理器來計算出所述第二減少項;以及 通過所述至少一個處理器把所述工作集大小減去所述第二減少項從而將所述存儲記憶體量分配給所述虛擬機中的每一者。
- 如申請專利範圍第4項所述的記憶體管理方法,所述第二減少項與所述開銷時間成反比。
- 如申請專利範圍第5項所述的記憶體管理方法,分配給所述虛擬機中每一者的所述存儲記憶體量滿足等式(2):
- 一種計算系統,其包括:一系統記憶體;至少一個處理器,所述至少一個處理器耦接到所述系統記憶體上,所述至少一個處理器執行操作,用於在一虛擬機系統上進行記憶體管理,所述操作包括:所述處理器獲得在所述虛擬機系統上的多個虛擬機中每一者的工作集大小,所述工作集大小是運行所述虛擬機中每一者上的應用程式所需的記憶體量;以及所述處理器根據所述虛擬機中每一者的所述工作集大小以及 至少一個記憶體換進或再次快取錯誤事件,將存儲記憶體量分配給所述虛擬機中的每一者,所述存儲記憶體是所述系統記憶體中可用記憶體的一部分,其中,該處理器根據所述虛擬機中每一者的所述工作集大小以及第一減少項或第二減少項,所述至少一個處理器將所述存儲記憶體量分配給所述虛擬機中的每一者,所述第一減少項與所述存儲記憶體量、所述虛擬機系統上的所述虛擬機個數,以及所述虛擬機中每一者的所述工作集大小的總和相關聯,所述第二減少項與所述存儲記憶體量、所述虛擬機中每一者的所述工作集大小的總和,以及根據所述至少一個記憶體換進或再次快取錯誤事件的開銷時間相關聯。
- 如申請專利範圍第7項所述的電腦系統,其中,根據所述虛擬機中每一者的所述工作集大小、所述虛擬機中每一者的所述工作集大小的總和以及所述虛擬機系統上的所述虛擬機個數,所述至少一個處理器計算出所述第一減少項,並且把所述工作集大小減去所述第一減少項從而將所述存儲記憶體量分配給所述虛擬機中的每一者。
- 如申請專利範圍第8項所述的電腦系統,其中,分配給所述虛擬機中每一者的所述記憶體量滿足等式(1):
- 如申請專利範圍第7項所述的電腦系統,根據所述虛擬機中每一者的所述工作集大小、所述虛擬機中每一者的所述工作集大小的總和、所述存儲記憶體量、所述虛擬機系統上的所述虛擬機個數以及根據所述至少一個記憶體換進或再次快取錯誤事件的所述開銷時間,所述至少一個處理器計算出所述第二減少項,以及通過所述至少一個處理器把所述工作集減去所述第二減少項從而將所述存儲記憶體量分配給所述虛擬機中的每一者。
- 如申請專利範圍第10項所述的電腦系統,其中所述第二減少項與所述開銷時間成反比。
- 如申請專利範圍第11項所述的電腦系統,其中,分配給所述虛擬機中每一者的所述存儲記憶體量滿足等式(2):
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261712279P | 2012-10-11 | 2012-10-11 | |
US13/951,475 US9128843B2 (en) | 2012-10-11 | 2013-07-26 | Method and computer system for memory management on virtual machine system |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201415369A TW201415369A (zh) | 2014-04-16 |
TWI505191B true TWI505191B (zh) | 2015-10-21 |
Family
ID=50476501
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102131817A TWI507870B (zh) | 2012-10-11 | 2013-09-04 | 虛擬機的記憶體管理方法和電腦系統 |
TW102131819A TWI505191B (zh) | 2012-10-11 | 2013-09-04 | 虛擬機系統的記憶體管理方法和電腦系統 |
TW102132446A TWI522920B (zh) | 2012-10-11 | 2013-09-09 | 虛擬機系統的記憶體管理的方法以及電腦系統 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102131817A TWI507870B (zh) | 2012-10-11 | 2013-09-04 | 虛擬機的記憶體管理方法和電腦系統 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102132446A TWI522920B (zh) | 2012-10-11 | 2013-09-09 | 虛擬機系統的記憶體管理的方法以及電腦系統 |
Country Status (2)
Country | Link |
---|---|
US (3) | US9256532B2 (zh) |
TW (3) | TWI507870B (zh) |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9032398B2 (en) * | 2010-07-12 | 2015-05-12 | Vmware, Inc. | Online classification of memory pages based on activity level represented by one or more bits |
US9104481B2 (en) * | 2013-02-13 | 2015-08-11 | International Business Machines Corporation | Resource allocation based on revalidation and invalidation rates |
US10078430B2 (en) * | 2013-03-14 | 2018-09-18 | Vmware, Inc. | Providing batch operations with an auxiliary user interface |
US9478274B1 (en) * | 2014-05-28 | 2016-10-25 | Emc Corporation | Methods and apparatus for multiple memory maps and multiple page caches in tiered memory |
US9792222B2 (en) * | 2014-06-27 | 2017-10-17 | Intel Corporation | Validating virtual address translation by virtual machine monitor utilizing address validation structure to validate tentative guest physical address and aborting based on flag in extended page table requiring an expected guest physical address in the address validation structure |
US9727479B1 (en) * | 2014-09-30 | 2017-08-08 | EMC IP Holding Company LLC | Compressing portions of a buffer cache using an LRU queue |
WO2016101149A1 (en) * | 2014-12-23 | 2016-06-30 | Intel Corporation | Apparatus and method for managing virtual graphics processor unit |
US9910768B1 (en) * | 2016-05-23 | 2018-03-06 | Parallels IP Holdings GmbH | Method for memory management for virtual machines |
TWI619013B (zh) * | 2016-08-24 | 2018-03-21 | 康齊科技股份有限公司 | 記憶體管理系統及其方法 |
US10169088B2 (en) | 2016-11-29 | 2019-01-01 | Red Hat Israel, Ltd. | Lockless free memory ballooning for virtual machines |
US10346313B1 (en) * | 2017-01-21 | 2019-07-09 | Virtuozzo International Gmbh | Memory reclaim management for virtual machines |
JP7007557B2 (ja) * | 2017-08-24 | 2022-01-24 | 富士通株式会社 | 情報処理装置、プロセス管理方法およびプロセス管理プログラム |
US10509721B2 (en) * | 2017-11-09 | 2019-12-17 | Microsoft Technology Licensing, Llc | Performance counters for computer memory |
KR102558827B1 (ko) | 2018-01-02 | 2023-07-24 | 삼성전자주식회사 | 반도체 메모리 장치, 및 이 장치를 구비하는 메모리 시스템 및 전자 장치 |
US10977172B2 (en) * | 2018-06-03 | 2021-04-13 | Apple Inc. | Memory page reclamation in a user idle mode |
CN110175075A (zh) * | 2019-05-21 | 2019-08-27 | 深圳市君和睿通科技股份有限公司 | 安卓系统内存优化方法及装置 |
US11099876B2 (en) * | 2019-06-19 | 2021-08-24 | International Business Machines Corporation | Self-determination for cancellation of in-progress memory removal from a virtual machine |
US11436141B2 (en) * | 2019-12-13 | 2022-09-06 | Red Hat, Inc. | Free memory page hinting by virtual machines |
US11593170B2 (en) * | 2020-03-25 | 2023-02-28 | Red Hat, Inc. | Flexible reverse ballooning for nested virtual machines |
CN111666226B (zh) * | 2020-06-16 | 2022-09-13 | 北京紫光展锐通信技术有限公司 | 操作系统内存回收的页颠簸保护方法及用户设备 |
CN112463778B (zh) * | 2020-11-24 | 2021-07-23 | 山西广电新媒体有限公司 | 基于大数据和应用程序的信息处理方法及大数据服务器 |
CN114911725A (zh) * | 2021-02-10 | 2022-08-16 | 华为技术有限公司 | 通信方法、装置及系统 |
US12169728B2 (en) | 2021-03-01 | 2024-12-17 | Red Hat, Inc. | Non fragmenting memory ballooning |
TWI813455B (zh) * | 2022-09-28 | 2023-08-21 | 瑞昱半導體股份有限公司 | 位址轉換系統及位址轉換方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090006801A1 (en) * | 2007-06-27 | 2009-01-01 | International Business Machines Corporation | System, method and program to manage memory of a virtual machine |
TWI308720B (en) * | 2005-01-14 | 2009-04-11 | Intel Corp | Virtualizing physical memory in a virtual machine system |
TWI342521B (en) * | 2007-07-13 | 2011-05-21 | King Yuan Electronics Co Ltd | System and method for managing virtual machines |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4422145A (en) | 1981-10-26 | 1983-12-20 | International Business Machines Corporation | Thrashing reduction in demand accessing of a data base through an LRU paging buffer pool |
US6131150A (en) | 1993-10-05 | 2000-10-10 | Digital Equipment Corporation | Scaled memory allocation system |
US6804754B1 (en) | 1997-05-21 | 2004-10-12 | International Business Machines Corporation | Space management in compressed main memory |
US6658648B1 (en) | 1997-09-16 | 2003-12-02 | Microsoft Corporation | Method and system for controlling the improving of a program layout |
US6681305B1 (en) | 2000-05-30 | 2004-01-20 | International Business Machines Corporation | Method for operating system support for memory compression |
US6854115B1 (en) | 2000-06-02 | 2005-02-08 | Sun Microsystems, Inc. | Process persistence in a virtual machine |
US6877081B2 (en) | 2001-02-13 | 2005-04-05 | International Business Machines Corporation | System and method for managing memory compression transparent to an operating system |
US6516397B2 (en) | 2001-04-09 | 2003-02-04 | Hewlett-Packard Company | Virtual memory system utilizing data compression implemented through a device |
US6658549B2 (en) | 2001-05-22 | 2003-12-02 | Hewlett-Packard Development Company, Lp. | Method and system allowing a single entity to manage memory comprising compressed and uncompressed data |
US7003646B2 (en) | 2002-03-27 | 2006-02-21 | Hewlett-Packard Development Company, L.P. | Efficiency in a memory management system |
CA2382718C (en) | 2002-04-12 | 2007-02-13 | Ibm Canada Limited-Ibm Canada Limitee | Memory balancing and optimization services |
US6910106B2 (en) | 2002-10-04 | 2005-06-21 | Microsoft Corporation | Methods and mechanisms for proactive memory management |
US7127560B2 (en) | 2003-10-14 | 2006-10-24 | International Business Machines Corporation | Method of dynamically controlling cache size |
US7380039B2 (en) | 2003-12-30 | 2008-05-27 | 3Tera, Inc. | Apparatus, method and system for aggregrating computing resources |
EP1952233A2 (en) | 2005-10-21 | 2008-08-06 | Vir2us, Inc. | Computer security method having operating system virtualization allowing multiple operating system instances to securely share single machine resources |
US7516291B2 (en) | 2005-11-21 | 2009-04-07 | Red Hat, Inc. | Cooperative mechanism for efficient application memory allocation |
US7500077B2 (en) | 2005-12-09 | 2009-03-03 | International Business Machines Corporation | Use of region-oriented memory profiling to detect heap fragmentation and sparse memory utilization |
US8141058B2 (en) | 2006-06-05 | 2012-03-20 | Rogue Wave Software, Inc. | System for and method of capturing application characteristics data from a computer system and modeling target system |
US8099487B1 (en) | 2006-07-06 | 2012-01-17 | Netapp, Inc. | Systems and methods for determining placement of virtual machines |
US8949295B2 (en) | 2006-09-21 | 2015-02-03 | Vmware, Inc. | Cooperative memory resource management via application-level balloon |
WO2008055269A2 (en) * | 2006-11-04 | 2008-05-08 | Virident Systems, Inc. | Asymmetric memory migration in hybrid main memory |
TWI356301B (en) | 2007-12-27 | 2012-01-11 | Ind Tech Res Inst | Memory management system and method for open platf |
US8161260B2 (en) | 2009-02-09 | 2012-04-17 | Oracle International Corporation | Optimal memory allocation for guested virtual machine(s) |
WO2011002436A1 (en) | 2009-06-29 | 2011-01-06 | Hewlett-Packard Development Company, L.P. | Hypervisor-based management of local and remote virtual memory pages |
WO2011041615A1 (en) | 2009-09-30 | 2011-04-07 | Citrix Systems, Inc. | Dynamic reallocation of physical memory responsive to virtual machine events |
US8484405B2 (en) | 2010-07-13 | 2013-07-09 | Vmware, Inc. | Memory compression policies |
CN101986285B (zh) | 2010-11-03 | 2012-09-19 | 华为技术有限公司 | 虚拟机存储空间管理方法、系统及物理主机 |
US8935456B2 (en) | 2010-11-16 | 2015-01-13 | Vmware, Inc. | Method and system for integrating database memory management in virtual machines |
US8671249B2 (en) * | 2011-07-22 | 2014-03-11 | Fusion-Io, Inc. | Apparatus, system, and method for managing storage capacity recovery |
US20130091321A1 (en) * | 2011-10-11 | 2013-04-11 | Cisco Technology, Inc. | Method and apparatus for utilizing nand flash in a memory system hierarchy |
CN103136030A (zh) | 2011-11-24 | 2013-06-05 | 鸿富锦精密工业(深圳)有限公司 | 虚拟机管理系统及方法 |
-
2013
- 2013-07-26 US US13/951,472 patent/US9256532B2/en active Active
- 2013-07-26 US US13/951,474 patent/US9069669B2/en active Active
- 2013-07-26 US US13/951,475 patent/US9128843B2/en active Active
- 2013-09-04 TW TW102131817A patent/TWI507870B/zh active
- 2013-09-04 TW TW102131819A patent/TWI505191B/zh active
- 2013-09-09 TW TW102132446A patent/TWI522920B/zh active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI308720B (en) * | 2005-01-14 | 2009-04-11 | Intel Corp | Virtualizing physical memory in a virtual machine system |
US20090006801A1 (en) * | 2007-06-27 | 2009-01-01 | International Business Machines Corporation | System, method and program to manage memory of a virtual machine |
TWI342521B (en) * | 2007-07-13 | 2011-05-21 | King Yuan Electronics Co Ltd | System and method for managing virtual machines |
Also Published As
Publication number | Publication date |
---|---|
US9128843B2 (en) | 2015-09-08 |
TW201415369A (zh) | 2014-04-16 |
US20140108700A1 (en) | 2014-04-17 |
TWI507870B (zh) | 2015-11-11 |
US20140108765A1 (en) | 2014-04-17 |
US20140108764A1 (en) | 2014-04-17 |
US9256532B2 (en) | 2016-02-09 |
TW201415227A (zh) | 2014-04-16 |
US9069669B2 (en) | 2015-06-30 |
TWI522920B (zh) | 2016-02-21 |
TW201415370A (zh) | 2014-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI505191B (zh) | 虛擬機系統的記憶體管理方法和電腦系統 | |
JP5235989B2 (ja) | 仮想マシンのメモリを管理するためのシステム、方法、及びコンピュータ・プログラム | |
US9529611B2 (en) | Cooperative memory resource management via application-level balloon | |
US8583875B1 (en) | Efficient readable ballooning of guest memory by backing balloon pages with a shared page | |
EP2581828B1 (en) | Method for creating virtual machine, virtual machine monitor and virtual machine system | |
US9720717B2 (en) | Virtualization support for storage devices | |
US9286101B2 (en) | Free page hinting | |
US9280486B2 (en) | Managing memory pages based on free page hints | |
US20120239850A1 (en) | Method for creating virtual machine, a virtual machine monitor, and a virtual machine system | |
US20120117298A1 (en) | Managing Memory Across a Network of Cloned Virtual Machines | |
US20180067674A1 (en) | Memory management in virtualized computing | |
US8725963B1 (en) | System and method for managing a virtual swap file for virtual environments | |
CN103729305B (zh) | 虚拟机的存储器管理的方法和计算机系统 | |
CN103729230B (zh) | 虚拟机系统的内存管理方法和计算机系统 | |
Min et al. | VMMB: virtual machine memory balancing for unmodified operating systems | |
US11093403B2 (en) | System and methods of a self-tuning cache sizing system in a cache partitioning system | |
US11544194B1 (en) | Coherence-based cache-line Copy-on-Write | |
US20230028047A1 (en) | Preserving large pages of memory across live migrations of workloads | |
CN107807851A (zh) | 一种虚拟机内存在numa节点间的迁移方法和装置 | |
Singh | Page/slab cache control in a virtualized environment | |
Park et al. | Ballooning graphics memory space in full GPU virtualization environments | |
Kim et al. | I/O access frequency-aware cache method on KVM/QEMU | |
Tsalapatis et al. | utmem: Towards memory elasticity in cloud workloads | |
Tsalapatis et al. | utmem: Towards Memory Elasticity |