CN103729305B - 虚拟机的存储器管理的方法和计算机系统 - Google Patents
虚拟机的存储器管理的方法和计算机系统 Download PDFInfo
- Publication number
- CN103729305B CN103729305B CN201310456389.6A CN201310456389A CN103729305B CN 103729305 B CN103729305 B CN 103729305B CN 201310456389 A CN201310456389 A CN 201310456389A CN 103729305 B CN103729305 B CN 103729305B
- Authority
- CN
- China
- Prior art keywords
- memory
- page
- locked
- memory pages
- expense
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active
Links
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
一种用于对虚拟机系统的存储器管理的方法以及计算机系统。存储器管理方法包含以下步骤。通过至少一个处理器根据上一次访问时间来维护最近最少使用(LRU)列表,其中所述LRU列表包含多个存储器页面(memory pages)。所述存储器页面的第一部分存储在虚拟存储器中,所述存储器页面的第二部分存储在内存压缩磁盘中,且所述存储器页面的第三部分存储在至少一个交换存储空间(swap disk)中。通过所述至少一个处理器设定所述内存压缩磁盘中的空间。通过所述处理器根据所述内存压缩磁盘中的所述存储器页面的多个访问概率、伪页面错误的开销(overhead)以及真页面错误的开销来调整所述内存压缩磁盘中的所述空间。
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列表包含多个存储器页面。所述存储器页面的第一部分存储在所述虚拟机系统上的虚拟存储器中,所述存储器页面的第二部分存储在所述虚拟机系统上的内存压缩磁盘中,且所述存储器页面的第三部分存储在至少一个交换存储空间中。所述至少一个处理器设定所述内存压缩磁盘中的空间,且根据所述内存压缩磁盘中的所述存储器页面的多个访问概率、伪页面错误的开销以及真页面错误的开销来调整所述内存压缩磁盘的所述空间。
下文详细描述伴有图式的若干实施例以进一步详细描述本公开。
附图说明
包含附图以提供对本公开的进一步理解,且附图并入本说明书中并构成本说明书的一部分。所述图式用以说明本公开的实施例,且与描述一起用以解释本公开的原理。然而,不希望所述图式限制本公开的范围,本公开的范围由所附权利要求书界定。
图1A为说明根据本公开的实施例的计算机系统的框图。
图1B为说明根据本公开的实施例的虚拟机系统的框图。
图2为说明根据本公开的实施例的用于对虚拟机的存储器管理的方法的流程图。
【主要元件标号说明】
100:计算机系统
100':虚拟机系统
110:处理器
120:系统存储器
130:交换存储空间
150:虚拟机
155:客户操作系统
156:客户内核
157:最近最少使用的列表
158:内存压缩磁盘
160:超管理器
170:虚拟硬件
S201:步骤
S203:步骤
S205:步骤
具体实施方式
现将详细参考本公开的实施例,其实例在附图中得以说明。只要可能,相同参考数字在图式和描述中用以指相同或相似部分。
出于说明目的,一个处理器、一个系统存储器、一个交换存储空间等用于以下实施例中,且本公开不限于此。在其它实施例中,可使用一个以上处理器、一个以上系统存储器、一个以上交换存储空间等。
图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 statedrive;SSD)上的用以从系统存储器120卸载过量数据的区域。
虚拟存储器为用于管理系统存储器120的资源的技术。其提供虚拟的大量存储器。虚拟存储器以及系统存储器120两者被划分为连续的存储器地址块,其也称作存储器页面。系统存储器120可(例如)包含压缩存储器,其与计算机系统100上运行的至少一个虚拟机相关联。压缩存储器以压缩格式临时存储最近较少访问的存储器页面以使得系统存储器120中有较多空间可用。在实际的应用上,特别着重于Linux客户操作系统,且本公开还可用于其它客户操作系统(例如,Microsoft Windows)。在一实施例中,Linux内核的模块内存压缩磁盘作为虚拟磁盘装置而插入到Linux客户操作系统中且通过Linux客户操作系统的系统管理工具(即,启用交换)配置为交换装置,以使得所有换入和换出操作在磁盘I/O请求时进入内存压缩磁盘。超管理器安装在计算机系统100上且支持虚拟机执行空间,至少一个虚拟机可同时在虚拟机执行空间内实例化(instantiate)且执行。
图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。被较频繁地访问的存储器页面称作热页;被较不频繁地访问的页面称作冷页。
在虚拟机系统上,如果LUR列表上的存储器页面为匿名存储器,那么客户内核可将内容交换到交换存储空间,将进程的对应PTE标记为不存在,且接着释放对应存储器页面。稍后,如果再次访问存储器页面,那么通过将页面内容从交换存储空间130带到新分配的存储器页面中(即,换入)来执行COA机制。或者,如果LRU列表上的存储器页面属于页面高速缓冲存储器,那么客户内核可在页面内容已变脏的情况下将页面内容刷新到交换存储空间,且接着释放所述页面。在下一文件访问后,客户内核必需再次执行磁盘访问(称作纠错(refault))以将内容带回到页面高速缓冲存储器中的新分配的页面。
当分配到虚拟机150的虚拟存储器在工作集与最小存储器要求之间时,存储器压缩可实质上减轻因存储器压力而引起的性能降级。为了压缩来自虚拟机150的收回的页面,内存压缩磁盘158可拦截虚拟机150上的换入和换出操作。当换出页面到达内存压缩磁盘158时,所述页面通过(例如)Lempel-Ziv-Oberhumer(LZO1X)算法被压缩为子页面大小且存储在从客户内核156分配的存储器区域中而不发送到交换存储空间130。一个例外情况为零收回页面,内存压缩磁盘158基于页面类型信息辨识所述零收回页面且跳过压缩步骤。当换入页面到达时,内存压缩磁盘158解压缩换入页面且将其传回到导致触发换入的页面错误的进程。
在一实施例中,处理器110可因以下理由而不压缩收回的高速缓冲存储器页面且着重于与匿名存储器相关联的换入事件。首先,进程的匿名页面的寿命与进程自身的寿命相同,这是因为当进程消逝时,所述页面被释放。然而,高速缓冲存储器页面并不明确被任何进程所拥有,这是因为其可由一个进程分配且接着用以通过另一进程以满足磁盘访问。第二,与匿名存储器页面相比,高速缓冲存储器页面通常由较大磁盘卷备份且因此可能需要过多存储器来压缩。虽然拦截匿名存储器页面的换入和换出相对简单(这是因为其可通过定义良好的应用程序编程接口(API)来进行),但拦截高速缓冲存储器页面的收回并不简单,高速缓冲存储器页面的逻辑嵌入于客户内核156的虚拟文件系统(virtual filesystem;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)×OverheadTPF达到最小。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)
定义为底项的方程式(1)的左侧与内存压缩磁盘158中的最热存储器页面有关。AP(N1+1)表示LRU列表157上的第(N1+1)个页面的访问概率,且OverheadPPF表示伪页面错误的开销。定义为比较项的方程式(1)的右侧与内存压缩磁盘158中的多个最冷存储器页面有关。AP(j)表示LRU列表中的第j个页面的访问概率,且OverheadPPF表示伪页面错误的开销。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)上,从所述计算机可读介质读出,且由计算机执行。所述程序可遍及网络(例如,因特网)散布。
总的来说,通过利用客户操作系统的现有页面回收机制,本公开中的存储器管理方法经设计以推断应指派给内存压缩磁盘的虚拟存储器的最佳百分比,以及应发送到交换存储空间的收回到内存压缩磁盘的存储器页面的子集,以用于减轻因存储器压力而引起的性能降级。基于内存压缩磁盘中的存储器页面的访问概率,在考虑伪页面错误以及真页面错误的开销的情况下,指派到内存压缩磁盘的存储器的量可通过将内存压缩磁盘中的冷存储器页面收回到交换存储空间来动态地调整且进一步提供存储器资源管理的优点。
本领域技术人员将明白,在不脱离本公开的范围或精神的情况下,可对所公开实施例的结构进行各种修改和变化。鉴于以上内容,希望本公开涵盖本公开的修改和变化,只要所述修改和变化落入所附权利要求书和其等效物的范围内。
Claims (20)
1.一种用于虚拟机系统的存储器管理方法,包括:
通过至少一个处理器根据上一次访问时间来维护最近最少使用LRU列表,其中所述LRU列表包括多个存储器页面,且其中所述存储器页面的第一部分存储在所述虚拟机系统上的虚拟存储器中,所述存储器页面的第二部分存储在所述虚拟机系统上的内存压缩磁盘中,且所述存储器页面的第三部分存储在至少一个交换存储空间中;
通过所述至少一个处理器设定所述内存压缩磁盘中的空间;以及
通过所述至少一个处理器根据所述内存压缩磁盘中的所述存储器页面的多个访问概率、伪页面错误的开销以及真页面错误的开销来调整所述内存压缩磁盘中的所述空间。
2.根据权利要求1所述的存储器管理方法,其中所述通过所述至少一个处理器设定所述内存压缩磁盘中的所述空间的步骤包括:
通过所述至少一个处理器将所述内存压缩磁盘中的所述空间设定为控制参数,其中所述控制参数为指派到所述内存压缩磁盘的存储器页面的数目。
3.根据权利要求1所述的存储器管理方法,其中所述通过所述至少一个处理器根据所述内存压缩磁盘中的所述存储器页面的所述多个访问概率、伪页面错误的所述开销以及真页面错误的所述开销来调整所述内存压缩磁盘中的所述空间的步骤还包括:
通过所述至少一个处理器根据所述内存压缩磁盘中的所述存储器页面的所述多个访问概率、伪页面错误的所述开销以及真页面错误的所述开销来缩小所述内存压缩磁盘中的所述空间。
4.根据权利要求2所述的存储器管理方法,其中所述内存压缩磁盘以压缩格式存储通过所述至少一个处理器从所述至少一个交换存储空间换出的所述存储器页面。
5.根据权利要求2所述的存储器管理方法,其中所述通过所述至少一个处理器将所述内存压缩磁盘设定为所述控制参数的步骤包括:
通过所述至少一个处理器根据气球驱动程序的气球目标、所述虚拟机系统的最小存储器要求以及所述内存压缩磁盘的基本存储器要求来设定所述控制参数。
6.根据权利要求5所述的存储器管理方法,其中所述通过所述至少一个处理器将所述内存压缩磁盘设定为所述控制参数的步骤包括:
通过所述至少一个处理器将所述控制参数设定为气球驱动程序的气球目标减去所述虚拟机系统的所述最小存储器要求以及所述内存压缩磁盘的所述基本存储器要求的总和的结果。
7.根据权利要求2所述的存储器管理方法,在所述通过所述至少一个处理器将所述内存压缩磁盘设定为所述控制参数的步骤之后,如果所述内存压缩磁盘中的所使用存储器的量超过所述控制参数,那么通过所述至少一个处理器将来自所述内存压缩磁盘的新换出的页面引导到所述至少一个交换存储空间。
8.根据权利要求2所述的存储器管理方法,其中所述通过所述至少一个处理器根据所述存储器页面的所述多个访问概率、所述伪页面错误的所述开销以及所述真页面错误的所述开销来调整所述内存压缩磁盘中的所述空间的步骤包括:
通过所述至少一个处理器获得底项,其中所述底项为所述内存压缩磁盘中的最热存储器页面的所述访问概率与所述伪页面错误的所述开销的乘积,其中所述最热存储器页面为所述第二部分中的所述存储器页面当中的最近被访问最多的所述存储器页面;
通过所述至少一个处理器获得比较项,其中所述比较项为所述内存压缩磁盘中的至少一个最冷存储器页面与所述真页面错误的所述开销的每一乘积的累加总和,其中所述至少一个最冷存储器页面为所述第二部分中的所述存储器页面当中的最近不是被访问最多的所述至少一个存储器页面;
如果所述底项大于所述比较项,那么通过所述至少一个处理器将所述控制参数递减;以及
通过所述至少一个处理器根据所述控制参数缩小所述内存压缩磁盘。
9.根据权利要求8所述的存储器管理方法,其中所述底项满足方程式AP(N1+1)×OverheadPPF,且其中N1为所述第一部分中的所述存储器页面的数目,AP(N1+1)表示所述LRU列表上的第(N1+1)个页面的访问概率,所述第(N1+1)个页面表示所述第二部分中的所述最热存储器页面,OverheadPPF表示所述伪页面错误的所述开销;其中所述比较项满足方程式其中N2为所述第二部分中的所述存储器页面的数目,AP(j)表示所述LRU列表上的第j个页面的访问概率,OverheadTPF表示所述真页面错误的所述开销,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)×OverheadPPF,且其中N1为所述第一部分中的所述存储器页面的数目,AP(N1+1)表示所述LRU列表上的第(N1+1)th个页面的访问概率,所述第(N1+1)th个页面表示所述第二部分中的所述最热存储器页面,OverheadPPF表示所述伪页面错误的所述开销;其中所述比较项满足方程式且其中N2为所述第二部分中的所述存储器页面的数目,AP(j)表示所述LRU列表上的第j个页面的访问概率,OverheadTPF表示所述真页面错误的所述开销,m满足于最冷的(N2-m+1)个压缩存储器页面的总和小于等於一个存储器页面大小,所述最冷的(N2-m+2)个压缩存储器页面的总和大于一个存储器页面大小。
20.根据权利要求19所述的计算机系统,其中所述至少一个处理器将所述存储器页面的所述第二部分建立于本地LRU列表中,其中通过页面闲置时间的倒数来估计所述本地LRU列表上的所述存储器页面中的每一个的所述访问概率,所述伪页面错误的所述开销为所述伪页面错误的时间成本,所述真页面错误的所述开销为所述真页面错误的时间成本,且其中所述页面闲置时间为被换出的所述存储器页面中的每一个与当前时间之间的差。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261712279P | 2012-10-11 | 2012-10-11 | |
US61/712,279 | 2012-10-11 | ||
US13/951,472 | 2013-07-26 | ||
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 |
---|---|
CN103729305A CN103729305A (zh) | 2014-04-16 |
CN103729305B true CN103729305B (zh) | 2017-09-08 |
Family
ID=50453386
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310456389.6A Active CN103729305B (zh) | 2012-10-11 | 2013-09-29 | 虚拟机的存储器管理的方法和计算机系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103729305B (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9792227B2 (en) * | 2014-08-19 | 2017-10-17 | Samsung Electronics Co., Ltd. | Heterogeneous unified memory |
CN105487984B (zh) * | 2014-09-17 | 2020-04-03 | 中兴通讯股份有限公司 | 一种主机系统对虚拟机磁盘数据的动态压缩方法及装置 |
US10037270B2 (en) * | 2015-04-14 | 2018-07-31 | Microsoft Technology Licensing, Llc | Reducing memory commit charge when compressing memory |
US10255434B2 (en) * | 2015-09-17 | 2019-04-09 | Qualcomm Incorporated | Detecting software attacks on processes in computing devices |
CN106970881B (zh) * | 2017-03-10 | 2020-04-28 | 浙江大学 | 一基于大页的冷热页追踪及压缩回收方法 |
CN108572799B (zh) * | 2018-04-12 | 2021-05-04 | 上海理工大学 | 一种双向哈希链表的异构内存系统数据页迁移方法 |
CN113138941A (zh) * | 2020-01-20 | 2021-07-20 | 华为技术有限公司 | 内存交换的方法、装置 |
CN114116191B (zh) * | 2021-06-24 | 2023-09-01 | 荣耀终端有限公司 | 内存冷页的处理方法及电子设备 |
CN114185494B (zh) * | 2022-02-16 | 2022-07-19 | 荣耀终端有限公司 | 内存匿名页的处理方法、电子设备及可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193814A (zh) * | 2010-03-09 | 2011-09-21 | 上海拜翰网络科技有限公司 | 嵌入式虚拟化内存动态分配方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2008055272A2 (en) * | 2006-11-04 | 2008-05-08 | Virident Systems, Inc. | Integrating data from symmetric and asymmetric memory |
US8667207B2 (en) * | 2009-09-30 | 2014-03-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 |
-
2013
- 2013-09-29 CN CN201310456389.6A patent/CN103729305B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102193814A (zh) * | 2010-03-09 | 2011-09-21 | 上海拜翰网络科技有限公司 | 嵌入式虚拟化内存动态分配方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103729305A (zh) | 2014-04-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103729305B (zh) | 虚拟机的存储器管理的方法和计算机系统 | |
TWI522920B (zh) | 虛擬機系統的記憶體管理的方法以及電腦系統 | |
US10684800B2 (en) | Facilitating processing within computing environments supporting pageable guests | |
US10318324B2 (en) | Virtualization support for storage devices | |
US9183157B2 (en) | Method for creating virtual machine, a virtual machine monitor, and a virtual machine system | |
EP2581828B1 (en) | Method for creating virtual machine, virtual machine monitor and virtual machine system | |
US20090164715A1 (en) | Protecting Against Stale Page Overlays | |
US8601201B2 (en) | Managing memory across a network of cloned virtual machines | |
US10754567B2 (en) | Partially deactivated application with termination protection | |
CN107203411A (zh) | 一种基于远程ssd的虚拟机内存扩展方法及系统 | |
KR20080021623A (ko) | 메모리 페이지 관리 | |
TW201821968A (zh) | 資料存取系統、資料存取裝置及資料存取方法 | |
CN112579251A (zh) | 虚拟机内存管理的方法及设备 | |
US9177177B1 (en) | Systems and methods for securing storage space | |
CN107168769A (zh) | 一种信息处理方法及电子设备 | |
CN103020077A (zh) | 一种电力系统实时数据库内存管理方法 | |
CN111868679A (zh) | 混合存储器系统 | |
CN103729230A (zh) | 虚拟机系统的内存管理方法和计算机系统 | |
CN110199265B (zh) | 存储装置和存储区域管理方法 | |
CN103729249B (zh) | 虚拟机的存储器管理的方法和计算机系统 | |
US10235083B1 (en) | Systems and methods for efficiently moving data within a filesystem | |
US20220276889A1 (en) | Non fragmenting memory ballooning | |
US11941252B2 (en) | Method for reducing solid-state device (SSD) open time and system thereof | |
Lee et al. | Read-ahead-of-write system call on KVM/QEMU virtualization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |