TWI522920B - 虛擬機系統的記憶體管理的方法以及電腦系統 - Google Patents

虛擬機系統的記憶體管理的方法以及電腦系統 Download PDF

Info

Publication number
TWI522920B
TWI522920B TW102132446A TW102132446A TWI522920B TW I522920 B TWI522920 B TW I522920B TW 102132446 A TW102132446 A TW 102132446A TW 102132446 A TW102132446 A TW 102132446A TW I522920 B TWI522920 B TW I522920B
Authority
TW
Taiwan
Prior art keywords
memory
page
processor
compressed
overhead
Prior art date
Application number
TW102132446A
Other languages
English (en)
Other versions
TW201415370A (zh
Inventor
李翰林
闕志克
姜瑞豪
Original Assignee
財團法人工業技術研究院
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 財團法人工業技術研究院 filed Critical 財團法人工業技術研究院
Publication of TW201415370A publication Critical patent/TW201415370A/zh
Application granted granted Critical
Publication of TWI522920B publication Critical patent/TWI522920B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0253Garbage collection, i.e. reclamation of unreferenced memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/12Replacement control
    • G06F12/121Replacement control using replacement algorithms
    • G06F12/123Replacement control using replacement algorithms with age lists, e.g. queue, most recently used [MRU] list or least recently used [LRU] list
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45583Memory 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

虛擬機系統的記憶體管理的方法以及電腦系統
本揭露有關於一種虛擬機的記憶體管理的技術。
電腦虛擬化是涉及建立一種具有作業系統的實體電腦的虛擬機器的技術,且電腦虛擬化架構大體上由在單一實體電腦平臺上同時支援多個作業系統的能力界定。舉例來說,正在運行Microsoft Windows的電腦可託管具有Linux作業系統的虛擬機。主機為上面發生虛擬化的實際實體機器,而虛擬機被視為客戶機(guest machine)。超管理器(hypervisor;字面上稱作虛擬機監控器(virtual machine monitor;VMM))為虛擬化硬體資源且向至少一個虛擬機呈現虛擬硬體介面的軟體層。超管理器類似於傳統作業系統管理硬體資源以用於處理的方式以及相對於執行中的虛擬機執行某些管理功能。虛擬機可稱作“客戶”且在虛擬機內運行的作業系統可稱作“客戶作業系統”。
虛擬化環境當前受到存儲限制,這意味著主機的實體記 憶體為資料中心的資源利用的瓶頸。記憶體虛擬化將實體記憶體資源與資料中心分離且接著將資源聚合到虛擬化記憶體池(memory pool)中,所述虛擬化記憶體池可由客戶作業系統或在客戶作業系統上運行的應用程式存取。就記憶體虛擬化來說,記憶體壓縮為記憶體資源管理和利用的至關重要的主題之一。
類似於傳統作業系統,提高超管理器的記憶體利用的最後手段為通過宿主交換(即,將虛擬機的記憶體分頁移動到實體記憶體置換空間,稱作記憶體換出)來從虛擬機回收記憶體,將虛擬機的實體位址對機器位址(P2M)表的對應分頁表項(page table entry;PTE)標記為不存在,且接著將對應分頁釋放到超管理器的自由記憶體池中,其中分頁表為由虛擬機使用以存儲虛擬位址與實體位址之間的映射的資料結構。稍後,如果所述分頁再次由虛擬機存取,那麼觸發分頁錯誤且執行存取時複製(copy-on access;COA)機制以將分頁內容從記憶體置換空間帶到新分配的記憶體分頁中,稱作記憶體換進。然而,因為磁碟輸入/輸出(I/O)動作所產生長時間的延滯而令人非常不滿意。
作為提高記憶體利用的另一方式,記憶空間的壓縮動作可通過將虛擬機的記憶體換出分頁壓縮成大小較小的資料且將其一起放在記憶體中以節省用以存儲原始實體記憶體來進行。也就是說,記憶體壓縮可實質上減輕因記憶體壓力而引起的性能降級。這個想法為從壓縮的記憶體做記憶體換進將比從實體記憶體置換空間(如磁碟)進行記憶體換進快,這是因為記憶體存取比磁碟 存取快。
至於壓縮記憶體換出分頁,Linux內核的試驗性模組記憶體壓縮(zram)磁碟可呈現為虛擬機中的記憶體置換空間,壓縮換出分頁並將其存儲在客戶的記憶體中。借助於記憶體壓縮磁碟,偽分頁錯誤可觸發記憶體壓縮磁碟的壓縮分頁被解壓縮且存儲到新分配的客戶的記憶體分頁中,這直觀地比來自記憶體置換空間的真分頁錯誤快。儘管如此,為了將壓縮分頁存儲在記憶體壓縮磁碟中,客戶作業系統需要消耗客戶的記憶體且可引起較多記憶體換進/記憶體換出操作。為了解決此難題,可能需要動態地調整記憶體壓縮磁碟的大小。
本揭露實施例提供用於虛擬機系統的記憶體管理方法。記憶體管理方法包含以下步驟。首先,通過至少一個處理器根據上一次存取時間來維護最近最少使用(LRU)列表,其中所述LRU列表包含多個記憶體分頁。所述記憶體分頁的第一部分存儲在所述虛擬機系統上的虛擬記憶體中,所述記憶體分頁的第二部分存儲在所述虛擬機系統上的記憶體壓縮磁碟中,且所述記憶體分頁的第三部分存儲在至少一個記憶體置換空間中。通過所述至少一個處理器設定所述記憶體壓縮磁碟中的空間。接著,通過所述至少一個處理器根據所述記憶體壓縮磁碟中的所述記憶體分頁的多個存取概率、偽分頁錯誤的開銷以及真分頁錯誤的開銷來調整所 述記憶體壓縮磁碟中的所述空間。
本揭露實施例提供一種電腦系統,包含至少一個系統記憶體、至少一個記憶體置換空間以及至少一個處理器。所述記憶體置換空間耦接到所述至少一個系統記憶體,且所述至少一個處理器耦接到所述至少一個系統記憶體,且針對對虛擬機系統的記憶體管理執行以下操作。所述至少一個處理器根據上一次存取時間來維護LRU列表,其中所述LRU列表包含多個記憶體分頁。所述記憶體分頁的第一部分存儲在所述虛擬機系統上的虛擬記憶體中,所述記憶體分頁的第二部分存儲在所述虛擬機系統上的記憶體壓縮磁碟中,且所述記憶體分頁的第三部分存儲在至少一個記憶體置換空間中。所述至少一個處理器設定所述記憶體壓縮磁碟中的空間,且根據所述記憶體壓縮磁碟中的所述記憶體分頁的多個存取概率、偽分頁錯誤的開銷以及真分頁錯誤的開銷來調整所述記憶體壓縮磁碟的所述空間。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
100‧‧‧電腦系統
100'‧‧‧虛擬機系統
110‧‧‧處理器
120‧‧‧系統記憶體
130‧‧‧記憶體置換空間
150‧‧‧虛擬機
155‧‧‧客戶作業系統
156‧‧‧客戶內核
157‧‧‧最近最少使用的列表
158‧‧‧記憶體壓縮磁片
160‧‧‧超管理器
170‧‧‧虛擬硬體
S201‧‧‧記憶體管理方法的步驟
S203‧‧‧記憶體管理方法的步驟
S205‧‧‧記憶體管理方法的步驟
圖1A為說明根據本揭露的實施例的電腦系統的方塊圖。
圖1B為說明根據本揭露的實施例的虛擬機系統的方塊圖。
圖2為說明根據本揭露的實施例的用於對虛擬機的記憶體管 理的方法的流程圖。
現將詳細參考本揭露的實施例,其實例在附圖中得以說明。只要可能,相同參考數字在圖式和描述中用以指相同或相似部分。
出於說明目的,處理器、系統記憶體、記憶體置換空間等用於以下實施例中,且本揭露不限於此。在其他實施例中,可使用一個以上處理器、一個以上系統記憶體、一個以上記憶體置換空間等。
圖1A為說明根據本揭露的實施例的電腦系統的方塊圖。參看圖1,電腦系統100包含處理器110、系統記憶體120、記憶體置換空間130以及其他標準週邊元件(未圖示)。系統記憶體120耦接到處理器110,且記憶體置換空間130耦接到系統記憶體120。
處理器110可為專用或專有處理器,其被配置以通過執行定義與操作有關的功能的機器可讀軟體代碼語言來執行特定任務,並藉以通過與電腦系統100的其他元件進行通信來執行功能操作。
系統記憶體120存儲例如作業系統等軟體且臨時存儲當前在作用中或被頻繁地使用的資料或應用程式。因此,系統記憶體120(也稱作實體記憶體)可為較快的記憶體(例如,隨機存取 記憶體(RAM)、靜態隨機存取記憶體(SRAM)或動態隨機存取記憶體(DRAM))以獲得快得多的存取時間。
記憶體置換空間130經配置以用於存儲和檢索資料。舉例來說,記憶體置換空間130可為電腦系統100上的硬碟驅動器(hard disk drive;HDD)或固態硬碟(solid state drive;SSD)上的用以從系統記憶體120卸載過量資料的區域。
虛擬記憶體為用於管理系統記憶體120的資源的技術。其提供虛擬的大量記憶體。虛擬記憶體以及系統記憶體120兩者被劃分為連續的記憶體位址塊,其也稱作記憶體分頁。系統記憶體120可(例如)包含壓縮記憶體,其與電腦系統100上運行的至少一個虛擬機相關聯。壓縮記憶體以壓縮格式臨時存儲最近較少存取的記憶體分頁以使得系統記憶體120中有較多空間可用。在實際的應用上,特別著重於Linux客戶作業系統,且本揭露還可用於其他客戶作業系統(例如,Microsoft Windows)。在一實施例中,Linux內核的模組記憶體壓縮磁片作為虛擬磁片裝置而插入到Linux客戶作業系統中,且通過Linux客戶作業系統的系統管理工具(即,啟用交換)配置為交換裝置,以使得所有記憶體換進和記憶體換出操作在磁片I/O請求時進入記憶體壓縮磁片。超管理器安裝在電腦系統100上且支援虛擬機執行空間,以提供至少一個虛擬機可同時在虛擬機執行空間內實體化且被執行。
圖1B為說明根據本揭露的實施例的虛擬機系統的方塊圖。在本實施例中,僅將說明一個虛擬機,且本揭露不限於此。 在其他實施例中,多個虛擬機可共存且以類似方式執行操作。
參看圖1B與圖1A,虛擬機系統100'包含具有客戶作業系統155和其他應用程式(未圖示)的虛擬機150、超管理器160以及虛擬硬體170。客戶作業系統155包含具有LRU列表157和記憶體壓縮磁片158的客戶內核156。包含處理器、記憶體以及I/O裝置的虛擬硬體170作為虛擬處理器、虛擬記憶體以及虛擬I/O裝置抽象化且分配給上層運行的虛擬機150。超管理器160管理虛擬機150且提供仿真硬體以及韌體資源。在一實施例中,Linux的一版本可作為客戶作業系統155被安裝在虛擬機150內以執行任何支援的應用程式,且可提供支援大多數Linux所發行的版本的開源軟體Xen作為超管理器160,且客戶內核156可為domU內核。結合超管理器160,氣球驅動程式可通過調用記憶體管理演算法來分配或解除分配客戶作業系統155的虛擬記憶體。可通過利用分頁回收機制以及壓縮虛擬機150的工作集之外的記憶體分頁來有效地進行記憶體壓縮。直觀地說,虛擬機150的工作集被定義為在最近被虛擬機150積極地使用的記憶體的量。
為了分頁回收,處理器110使用最近最少使用(LRU)準則來確定收回分頁的次序以及維護LRU列表157,LRU列表157根據用於兩個主要類型的記憶體(匿名記憶體和分頁高速緩衝記憶體)的上一次存取時間來對曾經被虛擬機150存取的所有記憶體分頁進行排序。匿名記憶體的記憶體分頁由用戶程序的堆積(heap)及堆疊(stack)所使用,且分頁高速緩衝記憶體的記憶 體分頁是硬碟資料拷貝,其中在對磁片資料的第一次存取之後在記憶體中對內容進行高速緩衝以減少未來硬碟I/O。被較頻繁地存取的記憶體分頁稱作熱頁;被較不頻繁地存取的分頁稱作冷頁。
在虛擬機系統上,如果LRU列表上的記憶體分頁為匿名記憶體,那麼客戶內核可將內容交換到記憶體置換空間,將程序的對應PTE標記為不存在,且接著釋放對應記憶體分頁。稍後,如果再次存取記憶體分頁,那麼通過將分頁內容從記憶體置換空間130帶到新分配的記憶體分頁中(即,記憶體換進)來執行COA機制。或者,如果LRU列表上的記憶體分頁屬於分頁高速緩衝記憶體,那麼客戶內核可在分頁內容已變髒的情況下將分頁內容刷新到記憶體置換空間記憶體置換空間,且接著釋放所述分頁。在下一檔存取後,客戶內核必需再次執行硬碟存取(稱作再次快取錯誤(refault))以將內容帶回到分頁高速緩衝記憶體中的新分配的分頁。
當分配到虛擬機150的虛擬記憶體在工作集與最小記憶體要求之間時,記憶體壓縮可實質上減輕因記憶體壓力而引起的性能降級。為了壓縮來自虛擬機150的收回的分頁,記憶體壓縮磁片158可攔截虛擬機150上的記憶體換進和記憶體換出操作。當記憶體換出分頁到達記憶體壓縮磁片158時,所述分頁通過(例如)Lempel-Ziv-Oberhumer(LZO1X)演算法被壓縮為子分頁大小且存儲在從客戶內核156分配的記憶體區域中而不發送到記憶體置換空間130。一個例外情況是換出分頁為零分頁,記憶體壓縮磁 片158基於分頁類型資訊辨識所述零分頁且跳過壓縮步驟。當發生記憶體換進時,記憶體壓縮磁片158解壓縮記憶體換進分頁且將其傳回到導致觸發記憶體換進的分頁錯誤的程序。
在一實施例中,處理器110可因以下理由而不壓縮收回的高速緩衝記憶體分頁,且著重於與匿名記憶體相關聯的記憶體換進事件。首先,程序的匿名分頁的壽命與程序自身的壽命相同,這是因為當程序消逝時,所述分頁被釋放。然而,高速緩衝記憶體分頁並不明確被任何程序所擁有,這是因為其可由一個程序分配且接著用以通過另一程序以滿足磁片存取。第二,與匿名記憶體分頁相比,高速緩衝記憶體分頁通常由較大磁片卷備份且因此可能需要過多記憶體來壓縮。雖然攔截匿名記憶體分頁的記憶體換進和記憶體換出相對簡單(這是因為其可通過定義良好的應用程式編程介面(API)來進行),但攔截高速緩衝記憶體分頁的收回並不簡單,高速緩衝記憶體分頁的邏輯嵌入於客戶內核156的虛擬檔系統(virtual file system;VFS)層中。
由於虛擬機150由記憶體壓縮磁片158和記憶體置換空間130備份,因此當發生分頁錯誤時,遺失的分頁可從記憶體壓縮磁片158獲取(在此狀況下錯誤導致偽分頁錯誤),或從記憶體置換空間130提取(在此狀況下分頁錯誤導致真分頁錯誤)。當分頁從記憶體壓縮磁片158記憶體換進到記憶體置換空間130時,開銷主要因解壓縮所述分頁所需的時間而引起。另一方面,當分頁從記憶體置換空間130記憶體換出到記憶體壓縮磁片158時, 開銷主要因壓縮所述分頁所需的時間而引起。在一實施例中,就與偽分頁錯誤與真分頁錯誤相關聯的記憶體換進時間以及記憶體換出時間之間的定量比較來說,開銷之間存在至少50倍的差異。真分頁錯誤的開銷比偽分頁錯誤的開銷長至少50倍。
當將虛擬記憶體的較大部分給予記憶體壓縮磁片158時,較少記憶體可用於在虛擬機150上運行的應用程式,且偽分頁錯誤率則提高。然而,當記憶體壓縮磁片158被給予較多記憶體時,較多記憶體分頁因為壓縮而有效地保持在記憶體中,且較少分頁錯誤可導致真分頁錯誤,這是因為真分頁錯誤較可能被記憶體壓縮磁片158中的壓縮分頁滿足。因此,給予記憶體壓縮磁片158的記憶體的量表示偽分頁錯誤率與真分頁錯誤率之間的折衷。
假設分配到虛擬機150的記憶體的量為M,其中C被分配到記憶體壓縮磁片158,且存儲在記憶體壓縮磁片158中的分頁的平均壓縮比為X。關鍵問題是找到最佳C,使得PPFR(M,C)×OverheadPPF+TPPR(M,C)×OverheadPTF達到最小。PPFR(M,C)是當所分配記憶體為M且其中C被分配到記憶體壓縮磁片158時虛擬機150的偽分頁錯誤率。TPPR(M,C)是當所分配記憶體大小為M且其中C被分配到記憶體壓縮磁片158時虛擬機150的真分頁錯誤率。為了自動推斷可指派到記憶體壓縮磁片158的所分配記憶體的最佳百分比以及應發送到記憶體置換空間130的收回到記憶體壓縮磁片158的記憶體分頁的子集,處理器110可動態地 調整記憶體壓縮磁片158的空間,如圖2所示。
圖2為說明根據本揭露的實施例的用於對虛擬機的記憶體管理的方法的流程圖。
參看圖2與圖1A和圖1B中的元件,通過處理器110根據上一次存取時間來維護LRU列表157(步驟S201)。將存儲在LRU列表157中的記憶體分頁劃分成三個部分。將LRU列表157上的記憶體分頁的第一部分以未壓縮格式存儲在記憶體壓縮磁片158外部的虛擬記憶體中(未圖示)。將LRU列表157上的記憶體分頁的第二部分以壓縮格式存儲在記憶體壓縮磁片158中。將記憶體分頁的第三部分存儲在記憶體置換空間130中。
接著,通過處理器110設定記憶體壓縮磁片中的空間(步驟S203)。換句話說,處理器110可向記憶體壓縮磁片158提供指定被指派到記憶體壓縮磁片158的記憶體分頁的數目(即,記憶體的量)的控制參數。當記憶體壓縮磁片158中的所使用記憶體的量超過控制參數時,處理器110可將來自虛擬機150的所有未來記憶體換出記憶體分頁引導到記憶體置換空間130而不試圖壓縮所述記憶體分頁。最初,處理器110可基於氣球驅動程式的氣球目標、虛擬機系統100'的最小記憶體要求以及記憶體壓縮磁片158的基本記憶體要求來設定控制參數。舉例來說,控制參數默認地可為氣球目標-MMR-MZRAM的值,其中MMR為虛擬機系統100'的最小記憶體要求,且MZRAM為記憶體壓縮磁片158的基本記憶體要求。
在一實施例中,假設可用於虛擬機150的記憶體分頁的數目為N1,且分配到記憶體壓縮磁片的記憶體的量為K。根據對記憶體分頁的上一次存取時間,將LRU列表157上的最熱的N1個記憶體分頁(即,第一部分)以未壓縮格式存儲在記憶體壓縮磁片158外部的虛擬記憶體中。將LRU列表157上的接下來最熱的N2個記憶體分頁(即,第二部分)以壓縮格式存儲在記憶體壓縮磁片158中,其中接下來最熱的N2個記憶體分頁的累積大小為K。換句話說,將LRU列表157上的第(N1+1)個記憶體分頁到第(N1+N2)個記憶體分頁存儲在記憶體壓縮磁片158中。將LRU列表上的剩餘記憶體分頁(即,第三部分)存儲在記憶體置換空間130中。
如果N2遞減一,使得N1遞增一,那麼記憶體壓縮磁片158中呈壓縮格式的最冷分頁中的一些可能必須駐留在記憶體置換空間130中且在其被存取時被明確地帶到記憶體中。同時,記憶體壓縮磁片158中的最熱分頁(即,LRU列表157上的第(N1+1)個記憶體分頁)可保持在虛擬記憶體中。也就是說,偽分頁錯誤率減小,但真分頁錯誤率增大。因此,如果偽分頁錯誤的開銷的減少超過真分頁錯誤的開銷的遞增,那麼將指派到記憶體壓縮磁片158的記憶體分頁的數目遞減為優選的。在一實施例中,偽分頁錯誤的開銷為偽分頁錯誤的時間成本,且真分頁錯誤的開銷為真分頁錯誤的時間成本。類似地,如果真分頁錯誤的開銷的減少超過偽分頁錯誤的開銷的遞增,那麼將指派到記憶體壓縮磁片158 的記憶體分頁的數目遞增為優選的。因此,可通過處理器110根據記憶體壓縮磁片158中的記憶體分頁的多個存取概率、偽分頁錯誤的開銷以及真分頁錯誤的開銷來調整記憶體壓縮磁片158中的空間(步驟S205)。
由於在本實施例中,LRU列表157上的第(N1+1)個記憶體分頁到第(N1+N2)個記憶體分頁存儲在記憶體壓縮磁片158中,因此在滿足方程式(1)的條件的情況下,處理器110將N2遞減:
方程式(1)的左側,定義為基礎項,與記憶體壓縮磁片158中的最熱記憶體分頁有關。其中的AP(N1+1)表示LRU列表157上的第(N1+1)個分頁的存取概率,且Overhead PPF 表示偽分頁錯誤的開銷。定義為比較項的方程式(1)的右側與記憶體壓縮磁片158中的多個最冷記憶體分頁有關。AP(j)表示LRU列表中的第j個分頁的存取概率,且Overhead PPF 表示偽分頁錯誤的開銷。m滿足於最冷的(N2-m+1)個壓縮記憶體分頁的總和小於等於一個記憶體分頁大小,且最冷的(N2-m+2)個壓縮記憶體分頁的總和大於一個記憶體分頁大小。只要方程式(1)中的不等性保持,處理器110就繼續將N2遞減,直到N2變成零為止。也就是說,處理器110保持縮小記憶體壓縮磁片158,直到沒有記憶體分頁能夠被指派給記 憶體壓縮磁片158為止。
應注意,通過處理器110經由分頁閒置時間的倒數來估計LRU列表157上的分頁中的每一者的存取概率,其中分頁閒置時間為被記憶體換出的記憶體分頁中的每一者與當前時間之間的差。也就是說,可通過處理器110來記錄LRU列表上的記憶體分頁的存取時間。分頁閒置時間的估計為近似值,這是因為其等於上一次存取時間時的記憶體分頁的記憶體換出時間。當虛擬機150較頻繁地收回記憶體分頁時,近似值較準確。當虛擬機150不頻繁地收回分頁時,不需要動態地調整記憶體壓縮磁片158的記憶體空間且此近似值較不準確的事實沒有太大影響。
還應注意,LRU列表157包含由虛擬機150存取的所有記憶體分頁且可引發過多性能開銷以致無法進行實踐。在另一實施例中,處理器110可基於記憶體換出到記憶體壓縮磁片158的記憶體分頁而建立並維護另一本地LRU列表。
通過上述記憶體管理方法,當系統記憶體120的記憶體低於虛擬機150的工作集時,處理器110可通過將記憶體壓縮磁片158中的冷記憶體分頁收回到記憶體置換空間130來動態地調整記憶體壓縮磁片158的大小。借此,可保留來自系統記憶體120的較多資源,同時保持應用程式性能而無顯著降級。
在實施例中,可通過在例如個人電腦和工作站等電腦上執行已準備程式來實施上述記憶體管理方法。所述程式存儲在電腦可讀記錄媒體(例如,硬碟、軟碟、CD-ROM、MO和DVD) 上,從所述電腦可讀媒體讀出,且由電腦執行。所述程式可遍及網路(例如,網際網路)散佈。
總地來說,通過利用客戶作業系統的現有分頁回收機制,本揭露中的記憶體管理方法經設計以推斷應指派給記憶體壓縮磁片的虛擬記憶體的最佳百分比,以及應發送到記憶體置換空間的收回到記憶體壓縮磁片的記憶體分頁的子集,以用於減輕因記憶體壓力而引起的性能降級。基於記憶體壓縮磁片中的記憶體分頁的存取概率,在考慮偽分頁錯誤以及真分頁錯誤的開銷的情況下,指派到記憶體壓縮磁片的記憶體的量可通過將記憶體壓縮磁片中的冷記憶體分頁收回到記憶體置換空間來動態地調整且進一步提供記憶體資源管理的優點。
所屬領域的技術人員將明白,在不脫離本揭露的範圍或精神的情況下,可對所揭露實施例的結構進行各種修改和變化。鑒於以上內容,希望本揭露涵蓋本揭露的修改和變化,只要所述修改和變化落入所附權利要求書和其等效物的範圍內。
S201-S205‧‧‧記憶體管理方法的步驟

Claims (20)

  1. 一種虛擬機系統的記憶體管理方法,包括:透過至少一個處理器根據上一次存取時間來維護最近最少使用(LRU)列表,其中所述LRU列表包括多個記憶體分頁,且其中所述記憶體分頁的第一部分存儲在所述虛擬機系統上的虛擬記憶體中,所述記憶體分頁的第二部分存儲在所述虛擬機系統上的一記憶體壓縮磁碟中,且所述記憶體分頁的第三部分存儲在至少一個記憶體置換空間中;透過所述至少一處理器設定所述記憶體壓縮磁碟中的一空間;以及透過所述至少一個處理器根據所述記憶體壓縮磁碟中的所述記憶體分頁的多個存取概率、多個偽分頁錯誤的開銷以及多個真分頁錯誤的開銷來調整所述記憶體壓縮磁碟中的所述空間。
  2. 如申請專利範圍第1項所述的記憶體管理方法,其中所述透過所述至少一個處理器設定所述記憶體壓縮磁碟中的所述空間的步驟包括:透過所述至少一個處理器將所述記憶體壓縮磁碟中的所述空間設定為一控制參數,其中所述控制參數為指派到所述記憶體壓縮磁碟的記憶體分頁的數目。
  3. 如申請專利範圍第1項所述的記憶體管理方法,其中所述透過所述至少一個處理器根據所述記憶體壓縮磁碟中的所述記憶體分頁的所述多個存取概率、所述偽分頁錯誤的開銷以及所述 真分頁錯誤的開銷來調整所述記憶體壓縮磁碟中的所述空間的步驟更包括:透過所述至少一個處理器根據所述記憶體壓縮磁碟中的所述記憶體分頁的所述多個存取概率、所述偽分頁錯誤的開銷以及所述真分頁錯誤的開銷來縮小所述記憶體壓縮磁碟中的所述空間。
  4. 如申請專利範圍第2項所述的記憶體管理方法,其中所述記憶體壓縮磁碟以壓縮格式存儲透過所述至少一個處理器從所述至少一個記憶體置換空間記憶體換出的所述記憶體分頁。
  5. 如申請專利範圍第2項所述的記憶體管理方法,其中所述透過所述至少一個處理器將所述記憶體壓縮磁碟設定為所述控制參數的步驟包括:透過所述至少一個處理器根據一氣球驅動程式的一氣球目標、所述虛擬機系統的最小記憶體要求以及所述記憶體壓縮磁碟的基本記憶體要求來設定所述控制參數。
  6. 如申請專利範圍第5項所述的記憶體管理方法,其中所述透過所述程序將所述記憶體壓縮磁碟設定為所述控制參數的步驟包括:透過所述至少一個處理器將所述控制參數設定為所述氣球驅動程式的所述氣球目標減去所述虛擬機系統的所述最小記憶體要求以及所述記憶體壓縮磁碟的所述基本記憶體要求的總和的結果。
  7. 如申請專利範圍第2項所述的記憶體管理方法,在所述 透過所述至少一個處理器將所述記憶體壓縮磁碟設定為所述控制參數的步驟之後,如果所述記憶體壓縮磁碟中的所使用記憶體的量超過所述控制參數,那麼透過所述至少一個處理器將來自所述記憶體壓縮磁碟的新記憶體換出的分頁引導到所述至少一個記憶體置換空間。
  8. 如申請專利範圍第2項所述的記憶體管理方法,其中所述透過所述至少一個處理器根據所述記憶體分頁的所述多個存取概率、所述偽分頁錯誤的開銷以及所述真分頁錯誤的開銷來調整所述記憶體壓縮磁碟中的所述空間的步驟包括:透過所述至少一個處理器獲得底項,其中所述底項為所述記憶體壓縮磁碟中的最熱記憶體分頁的所述存取概率與所述偽分頁錯誤的開銷的乘積,其中所述最熱記憶體分頁為所述第二部分中的所述記憶體分頁當中的最近被存取最多的所述記憶體分頁;透過所述至少一個處理器獲得比較項,其中所述比較項為所述記憶體壓縮磁碟中的至少一個最冷記憶體分頁與所述真分頁錯誤的開銷的每一乘積的累加總和,其中所述至少一個最冷記憶體分頁為所述第二部分中的所述記憶體分頁當中的最近不是被存取最多的所述至少一個記憶體分頁;如果所述底項大於所述比較項,那麼透過所述至少一個處理器將所述控制參數遞減;以及透過所述至少一個處理器根據所述控制參數縮小所述記憶體壓縮磁碟。
  9. 如申請專利範圍第8項所述的記憶體管理方法,其中所述底項滿足方程式AP(N1+1)×Overhead PPF ,且其中N1為所述第一部分中的所述記憶體分頁的數目,AP(N1+1)表示所述LRU列表上的第(N1+1)個分頁的存取概率,所述第(N1+1)個分頁表示所述第二部分中的所述最熱記憶體分頁,Overhead PPF 表示所述偽分頁錯誤的開銷;其中所述比較項滿足方程式,其中N2為所述第二部分中的所述記憶體分頁的數目,AP(j)表示所述LRU列表上的第j個分頁的存取概率,Overhead PPF 表示所述真分頁錯誤的開銷,m滿足於所述最冷的(N2-m+1)個壓縮記憶體分頁的總和小於等於一個記憶體分頁大小,所述最冷的(N2-m+2)個壓縮記憶體分頁的總和大於一個記憶體分頁大小。
  10. 如申請專利範圍第9項所述的記憶體管理方法,其中透過所述至少一個處理器將所述記憶體分頁的所述第二部分建立於本地LRU列表中,其中透過分頁閒置時間的倒數來估計所述本地LRU列表上的所述記憶體分頁中的每一者的所述存取概率,所述偽分頁錯誤的開銷為所述偽分頁錯誤的時間成本,所述真分頁錯誤的開銷為所述真分頁錯誤的時間成本,且其中所述分頁閒置時間為被記憶體換出的所述記憶體分頁中的每一者與當前時間之間的差。
  11. 一種電腦系統,包括:至少一個系統記憶體; 至少一個記憶體置換空間,耦接到所述至少一個系統記憶體;至少一個處理器,耦接到所述至少一個系統記憶體,其中所述至少一個處理器針對對虛擬機系統的記憶體管理執行操作,包括:所述至少一個處理器根據上一次存取時間來維護最近最少使用(LRU)列表,其中所述LRU列表包括多個記憶體分頁,且其中所述記憶體分頁的第一部分存儲在所述虛擬機系統上的虛擬記憶體中,所述記憶體分頁的第二部分存儲在所述虛擬機系統上的記憶體壓縮磁碟中,且所述記憶體分頁的第三部分存儲在所述至少一個記憶體置換空間中;所述至少一個處理器設定所述記憶體壓縮磁碟中的空間;所述至少一個處理器根據所述記憶體壓縮磁碟中的所述記憶體分頁的多個存取概率、偽分頁錯誤的開銷以及真分頁錯誤的開銷來調整所述記憶體壓縮磁碟中的所述空間。
  12. 如申請專利範圍第11項所述的電腦系統,其中所述至少一個處理器將所述記憶體壓縮磁碟中的所述空間設定為控制參數,其中所述控制參數為指派到所述記憶體壓縮磁碟的記憶體分頁的數目。
  13. 如申請專利範圍第11項所述的電腦系統,其中所述至少一個處理器根據所述記憶體壓縮磁碟中的所述記憶體分頁的所述多個存取概率、偽分頁錯誤的開銷以及真分頁錯誤的開銷來進一步縮小所述記憶體壓縮磁碟中的所述空間。
  14. 如申請專利範圍第11項所述的電腦系統,其中所述至少一個處理器從所述至少一個記憶體置換空間記憶體換出所述記憶體分頁且以壓縮格式將所述記憶體換出的記憶體分頁存儲在所述記憶體壓縮磁碟中。
  15. 如申請專利範圍第12項所述的電腦系統,其中所述至少一個處理器根據氣球驅動程式的氣球目標、所述虛擬機系統的最小記憶體要求以及所述記憶體壓縮磁碟的基本記憶體要求來設定所述控制參數。
  16. 如申請專利範圍第15項所述的電腦系統,其中所述至少一個處理器將所述控制參數設定為氣球驅動程式的氣球目標減去所述虛擬機系統的所述最小記憶體要求以及所述記憶體壓縮磁碟的所述基本記憶體要求的總和的結果。
  17. 如申請專利範圍第12項所述的電腦系統,其中如果所述記憶體壓縮磁碟中的所使用記憶體的量超過所述控制參數,那麼所述至少一個處理器進一步將來自所述記憶體壓縮磁碟的新記憶體換出的分頁引導到所述至少一個記憶體置換空間。
  18. 如申請專利範圍第12項所述的電腦系統,其中所述至少一個處理器獲得一底項及一比較項,如果所述底項大於所述比較項,那麼所述至少一個處理器將所述控制參數遞減,以及根據所述控制參數縮小所述記憶體壓縮磁碟,其中所述底項為所述記憶體壓縮磁碟中的最熱記憶體分頁的所述存取概率與所述偽分頁錯誤的開銷的乘積,其中所述最熱記憶體分頁為所述第二部分中的 所述記憶體分頁當中的最近被存取最多的所述記憶體分頁,其中所述比較項為所述記憶體壓縮磁碟中的至少一個最冷記憶體分頁與所述真分頁錯誤的開銷的每一乘積的累加總和,其中所述至少一個最冷記憶體分頁為所述第二部分中的所述記憶體分頁當中的最近不是被存取最多的所述至少一個記憶體分頁。
  19. 如申請專利範圍第18項所述的電腦系統,其中所述底項滿足方程式AP(N1+1)×Overhead PPF ,且其中N1為所述第一部分中的所述記憶體分頁的數目,AP(N1+1)表示所述LRU列表上的第(N1+1) th 個分頁的存取概率,所述第(N1+1) th 個分頁表示所述第二部分中的所述最熱記憶體分頁,Overhead PPF 表示所述偽分頁錯誤的開銷;其中所述比較項滿足方程式,且其中N2為所述第二部分中的所述記憶體分頁的數目,AP(j)表示所述LRU列表上的第j個分頁的存取概率,Overhead PPF 表示所述真分頁錯誤的開銷,m滿足於所述最冷的(N2-m+1)個壓縮記憶體分頁的總和小於等於一個記憶體分頁大小,所述最冷的(N2-m+2)個壓縮記憶體分頁的總和大於一個記憶體分頁大小。
  20. 如申請專利範圍第19項所述的電腦系統,其中所述至少一個處理器將所述記憶體分頁的所述第二部分建立於本地LRU列表中,其中透過分頁閒置時間的倒數來估計所述本地LRU列表上的所述記憶體分頁中的每一者的所述存取概率,所述偽分頁錯誤的開銷為所述偽分頁錯誤的時間成本,所述真分頁錯誤的開銷為 所述真分頁錯誤的時間成本,且其中所述分頁閒置時間為被記憶體換出的所述記憶體分頁中的每一者與當前時間之間的差。
TW102132446A 2012-10-11 2013-09-09 虛擬機系統的記憶體管理的方法以及電腦系統 TWI522920B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201261712279P 2012-10-11 2012-10-11
US13/951,472 US9256532B2 (en) 2012-10-11 2013-07-26 Method and computer system for memory management on virtual machine

Publications (2)

Publication Number Publication Date
TW201415370A TW201415370A (zh) 2014-04-16
TWI522920B true TWI522920B (zh) 2016-02-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 (2)

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 虛擬機系統的記憶體管理方法和電腦系統

Country Status (2)

Country Link
US (3) US9256532B2 (zh)
TW (3) TWI507870B (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
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
CN105518741B (zh) 2014-12-23 2019-04-09 英特尔公司 用于管理虚拟图形处理器单元的装置和方法
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 富士通株式会社 情報処理装置、プロセス管理方法およびプロセス管理プログラム
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 华为技术有限公司 通信方法、装置及系统

Family Cites Families (34)

* Cited by examiner, † Cited by third party
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
US7886126B2 (en) 2005-01-14 2011-02-08 Intel Corporation Extended paging tables to map guest physical memory addresses from virtual memory page tables to host physical memory addresses in a virtual machine system
WO2007048062A2 (en) 2005-10-21 2007-04-26 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
US8015383B2 (en) * 2007-06-27 2011-09-06 International Business Machines Corporation System, method and program to manage virtual memory allocated by a virtual machine control program
TWI342521B (en) 2007-07-13 2011-05-21 King Yuan Electronics Co Ltd System and method for managing virtual machines
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)
EP2449469B1 (en) 2009-06-29 2019-04-03 Hewlett-Packard Enterprise Development LP Hypervisor-based management of local and remote virtual memory pages
EP2483778B1 (en) 2009-09-30 2019-09-04 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 鸿富锦精密工业(深圳)有限公司 虚拟机管理系统及方法

Also Published As

Publication number Publication date
TWI507870B (zh) 2015-11-11
TWI505191B (zh) 2015-10-21
TW201415227A (zh) 2014-04-16
US9256532B2 (en) 2016-02-09
US20140108764A1 (en) 2014-04-17
US9069669B2 (en) 2015-06-30
US20140108765A1 (en) 2014-04-17
TW201415369A (zh) 2014-04-16
US20140108700A1 (en) 2014-04-17
US9128843B2 (en) 2015-09-08
TW201415370A (zh) 2014-04-16

Similar Documents

Publication Publication Date Title
TWI522920B (zh) 虛擬機系統的記憶體管理的方法以及電腦系統
US20190220418A1 (en) Memory Management Method and Apparatus
US9720717B2 (en) Virtualization support for storage devices
US7653799B2 (en) Method and apparatus for managing memory for dynamic promotion of virtual memory page sizes
CN103729305B (zh) 虚拟机的存储器管理的方法和计算机系统
US20090327621A1 (en) Virtual memory compaction and compression using collaboration between a virtual memory manager and a memory manager
US20090164715A1 (en) Protecting Against Stale Page Overlays
US20070005625A1 (en) Storage architecture for embedded systems
US10754567B2 (en) Partially deactivated application with termination protection
US8521919B2 (en) Direct memory access in a computing environment
EP3881188B1 (en) Managing free space in a compressed memory system
EP3881187B1 (en) Accessing compressed computer memory
US9658775B2 (en) Adjusting page sharing scan rates based on estimation of page sharing opportunities within large pages
CN114207571B (zh) 计算装置及其操作方法
KR101463536B1 (ko) 메모리 관리 장치, 방법 및 시스템
CN110199265B (zh) 存储装置和存储区域管理方法
US20090031100A1 (en) Memory reallocation in a computing environment
CN103729249A (zh) 虚拟机的存储器管理的方法和计算机系统
KR101975058B1 (ko) 데이터 가용성 지원 시스템 및 방법
Song et al. An Efficient Stack Management by The Selective Revocation of Mapping from Virtual Memory to Physical memory
EP4386548A1 (en) Resource management method and corresponding device
JP2009026310A (ja) データ記憶方法
Lee et al. Read-ahead-of-write system call on KVM/QEMU virtualization
VMware Understanding Memory Resource Management in VMware ESX 4.1