CN105659212A - 对于分区休眠的热页的检测 - Google Patents

对于分区休眠的热页的检测 Download PDF

Info

Publication number
CN105659212A
CN105659212A CN201480041419.XA CN201480041419A CN105659212A CN 105659212 A CN105659212 A CN 105659212A CN 201480041419 A CN201480041419 A CN 201480041419A CN 105659212 A CN105659212 A CN 105659212A
Authority
CN
China
Prior art keywords
page
virtual machine
computing system
entry
hot
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.)
Pending
Application number
CN201480041419.XA
Other languages
English (en)
Inventor
T.D.阿姆斯特朗
D.C.博克斯特兰德
W.B.奥伦
E.C.普罗瑟
K.C.沃森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GlobalFoundries Inc
Original Assignee
GlobalFoundries Inc
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 GlobalFoundries Inc filed Critical GlobalFoundries Inc
Publication of CN105659212A publication Critical patent/CN105659212A/zh
Pending legal-status Critical Current

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
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/10Providing a specific technical effect
    • G06F2212/1016Performance improvement
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/15Use in a specific computing environment
    • G06F2212/151Emulated environment, e.g. virtual machine

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)
  • Debugging And Monitoring (AREA)

Abstract

在此描述的实施例标识与被选择用于休眠或者用于从一个计算系统迁移到另一个的虚拟机相关联的热页。例如,在休眠虚拟机之前,管理程序监视页表(即虚拟转换表)中的条目,以查看哪些数据页在页表中具有对应的条目。如果数据页在页表中具有对应的条目,则管理程序可以将该页指定为热的。在一个实施例中,管理程序可以更新页图,该页图列出与虚拟机相关联的数据页以及那些数据页是否被指定为热的。然后在休眠处理期间可以存储页图。在休眠的虚拟机被恢复之前,管理程序可以使用页图将热页加载到存储器中并且开始执行虚拟机。

Description

对于分区休眠的热页的检测
背景技术
计算系统可能主管(host)一个或多个虚拟机(也称为逻辑分区),虚拟机本身是计算系统的软件实现方式。虚拟机仿真计算机架构和物理计算系统的功能。在一个实施例中,主管虚拟机的计算系统可以确定将虚拟机中的一个或多个休眠。一旦虚拟机休眠,则计算系统可以将被分配给休眠的虚拟机的硬件资源重新分配给系统中的其他计算元件,比如另一虚拟机或者客户端应用。
用于恢复休眠的虚拟机的策略可以确定虚拟机再次开始在计算系统上执行所需的时间。在恢复处理中早开始执行虚拟机可能导致由虚拟机执行的应用因频繁的页错误而被延迟。另一方面,在将与虚拟机相关联的所有数据加载到存储器中之后执行虚拟机最小化了页错误但是可能引起不希望的延迟。
发明内容
在此包括的实施例是通过监视在计算系统中存储的页表中的条目(entry)来识别与计算系统主管的虚拟机相关联的热数据页的方法和计算机程序产品,其中页表的条目被用于进行在与虚拟机相关联的虚拟地址空间和与计算系统相关联的物理地址空间之间的存储器地址转换。在使虚拟机休眠之前,该方法和计算机程序产品将标识的热页保存到贮存器(storage)中。该方法和计算机程序产品确定恢复休眠的虚拟机,在确定热页已被从贮存器加载到计算系统的存储器中时,恢复虚拟机。
在此包括的另一实施例是计算系统,其包括存储器、加载到存储器中的虚拟机以及配置为管理该虚拟机的管理程序。该管理程序被配置为通过监视在计算系统中存储的页表中的条目来标识与虚拟机相关联的热数据页,其中页表的条目被用于进行在与虚拟机相关联的虚拟地址空间和与计算系统相关联的物理地址空间之间的存储器地址转换。在使虚拟机休眠之前,该管理程序配置为将标识的热页保存到与计算系统相关联的贮存器中。该管理程序配置为确定恢复休眠的虚拟机,并且在确定热页已经从贮存器加载到计算系统的存储器中时,恢复休眠的虚拟机。
附图说明
图1例示根据在此描述的一个实施例的用于主管一个或多个虚拟机的计算系统。
图2是根据在此描述的一个实施例的当休眠虚拟机时用于标识热页的流程图。
图3是根据在此描述的一个实施例的用于基于页表中的条目更新页图以标识热页用于恢复休眠的虚拟机的流程图。
图4例示根据在此描述的一个实施例的页图。
图5例示根据在此描述的一个实施例的用于迁移虚拟机的源和目标计算系统。
图6是根据在此描述的一个实施例的用于通过标识热页来迁移虚拟机的流程图。
为了帮助理解,已经使用了相同的引用标记以在可能的情况下指代图中公共的相同元件。预期在一个实施例中公开的元件可以在其他实施例上有利地使用而无需具体列举。
具体实施方式
在此描述的实施例标识与被选择用于休眠或者用于在计算系统之间迁移的虚拟机相关联的热页。例如,在休眠虚拟机之前,管理程序可以在监视时段期间监视虚拟机以标识由该虚拟机访问的数据页。在一个实施例中,管理程序监视页表(即,虚拟翻译表)中的条目以查看与虚拟机相关联的哪些数据页在页表中具有对应条目。如果数据页在页表中具有对应条目,则管理程序指定该页为热的。在一个实施例中,管理程序可以更新页图(pagemap),该页图列出了计算系统中的数据页以及那些数据页是否被认为是热的。然后在休眠处理期间,可以将该页图与关联于虚拟机的其他数据一起存储。一旦虚拟机被恢复,管理程序可以使用该页图来将热页加载到存储器中。在这样做时,计算设备可以恢复虚拟机的执行。在虚拟机执行时,与虚拟机相关联的剩余的数据可以被加载到存储器中。
当将虚拟机从源计算系统迁移到目标计算系统时,管理程序还可以使用页图来标识与虚拟机相关联的热页。例如,在确定要迁移虚拟机时,管理程序可以开始在监视时段期间监视页表中的条目。然后源计算系统可以将热数据页发送到目标计算系统。一旦监视时段到期并且热数据页被传送到目标计算系统,在目标计算系统开始使用热页执行虚拟机的同时,源计算系统就可以停止虚拟机的执行。与虚拟机相关联的剩余的数据页——即在监视时段期间在页表中不具有对应条目的数据页——然后可以被发送到目标计算系统。
为了例示的目的已经给出了本发明的各种实施例的描述,但是不意图穷尽或者限制到所公开的实施例。不脱离所描述的实施例的范围和精神,许多修改和变化对于本领域技术人员将是显而易见的。选择在此使用的术语以最佳地解释实施例的原理、实践应用、或对于在市场中找到的技术的技术改进、或者使本领域技术人员能够理解在此公开的实施例。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(articleofmanufacture)。
计算机程序指令还可以被加载到计算机、其他可编程数据处理装置上或其它设备上,从而使得在计算机、其他可编程装置、或其它设备上执行一系列操作步骤来产生计算机实施的过程,使得在计算机或其他可编程装置上运行的指令提供用于实施在流程图和/框图的一个或多个方框中指定的功能/动作的过程。
休眠和恢复虚拟机
图1例示根据在此描述的一个实施例的用于主管一个或多个虚拟机110的计算系统100。计算系统100包括处理器135、管理程序140、存储器105和贮存器130。处理器135可以是能够执行在此描述的功能的任何处理器。计算系统100可以仅包括一个处理器135或者具有多个处理器135。此外,每个处理器135可以包括一个或多个处理核。
管理程序140可以是管理由计算系统100主管的虚拟机110的固件、硬件或者这两者的组合。通常,管理程序140用作计算系统100的物理硬件资源与在系统100上执行的虚拟机100之间的中介。例如,管理程序140可以将系统100中的具体硬件资源比如处理器135或者存储器105的部分分配给虚拟机110。在一个实施例中,管理程序140可以确保虚拟机110不使用分配给不同的虚拟机110的硬件资源。例如,管理程序140可以确保第一虚拟机110不访问存储在与第二虚拟机110相关联的存储器105中的数据。
存储器105可以是在计算系统100中的处理器135外部的任意存储器——即,不内置到处理器135的集成电路中。例如,主存储器125可以包括高速缓冲存储器的一级或多级以及随机存取存储器(RAM),但是在一个实施例中可以不包括外部存储网络或者硬盘驱动器。存储器105可以是易失性或者非易失性存储器,比如DRAM、SRAM、闪存、电阻式RAM等。
存储器105可以存储一个或多个虚拟机110、页表120和页图125。将依次讨论这些元素的每个。虚拟机110包括可以执行各种应用的操作系统115。计算系统100可以主管多个虚拟机110,其中每个虚拟机110包括其自己的操作系统115,该操作系统115可以独立于其他操作系统115而执行。在一个实施例中,操作系统115可以使用虚拟存储器地址空间来引用(reference)计算系统100中存储的数据页。然而,计算系统100可以使用物理存储器地址空间来引用相同的数据页。因此,为了操作系统115使用物理硬件资源(例如存储器105)来存储与虚拟机110相关联的数据,管理程序140可以进行虚拟到物理或物理到虚拟地址转换。允许虚拟机110中的操作系统115使用虚拟存储器地址使得计算系统100能够在任意物理地址处存储数据页,即使数据页不存储在连续的存储器位置处。为了进行地址转换,存储器105包括页表120(也称为页转换表或者硬件页表),系统100(例如处理器135)可以使用该页表120来将虚拟存储器地址转换到物理存储器地址并且反之亦然。
为了取回数据页,操作系统115可以向使用由操作系统115提供的虚拟存储器地址的处理器135发送请求以通过将虚拟地址映射到物理地址的页表120中的条目来解析。一旦系统100用虚拟地址标识出条目,处理器135就可以使用该条目中的对应物理地址来从存储器105(或者贮存器130)取回数据并且将数据页返回到操作系统115。以此方式,操作系统115可以使用一个范围的连续虚拟存储器地址,即使对应的物理页可能存储在并不形成计算系统100中的物理存储器的连续块的物理地址处。
在一个实施例中,每个虚拟机110可以与页表120中的各自的页表相关联。计算系统100可以使用页表120作为虚拟到物理映射的高速缓存,其可以在进行存储器加载和存储操作时增加计算系统100中的硬件的性能。
在一个实施例中,页表120可能以不维持将与虚拟机110相关联的每个虚拟地址映射到计算系统100中的对应的物理存储器地址的条目的完整列表。而是,页表120可以仅存储这些条目的子集。如果处理器135接收到对于在页表120中不具有条目的虚拟地址处的数据的请求,系统100可以向管理程序140发中断信号,管理程序140然后将向页表120添加页表条目。管理程序140还可以逐出(evict)页表120中的条目以保持表120的大小恒定。例如,当向页表120添加新的条目时,管理程序140可以使用最近最少使用策略以便确定逐出哪个条目。管理程序140然后可以指示处理器135再次尝试取回虚拟机110所请求的数据页。
页图125可以是由计算系统100使用来标识与特定虚拟机110相关联的热数据页的数据结构——即,系统100可以对于每个虚拟机110产生单独的页图125。在此使用术语“热”数据页来指示在恢复休眠的虚拟机110之前与被加载到存储器105中的虚拟机相关联的数据页。如以下将更详细地讨论的,管理程序140可以在页图125中存储与虚拟机110相关联的哪些数据页是热的——例如,当恢复执行时虚拟机110可能(或预测虚拟机110)需要的数据页——的指示符。当休眠虚拟机110时,管理程序140可以将页图125存储到贮存器130中。在接收到恢复虚拟机110的提示时,管理程序140可以将在页图125中被指示为热的数据页加载到存储器105中。一旦热页被加载,管理程序140可以恢复(即开始执行)虚拟机110。
贮存器130可以表示由计算系统100使用的、不是存储器105中的数据贮存器。例如,在一个实施例中,贮存器130可以包括内部或外部硬盘驱动器或者通信地耦合到计算系统100的网络存储设备。在一个实施例中,贮存器130可以不包括在存储器105中所包括的高速缓冲存储器和RAM。
图2是根据在此描述的一个实施例的、当休眠虚拟机时用于标识热数据页的流程图200。在块205,管理程序可以接收休眠在计算系统上执行的虚拟机的提示。计算系统可以因诸如虚拟机不频繁使用的任意数量的原因而确定休眠虚拟机,以在计算系统上进行维护,或者计算系统希望将与虚拟机相关联的硬件资源重新分配给其他计算元件。尽管管理程序可以接收休眠虚拟机的请求,但是在另一实施例中,管理程序本身可以包括用于确定是否休眠虚拟机的逻辑。例如,如果虚拟机不再执行应用或者如果更高优先级的虚拟机需要分配给该虚拟机的资源,则管理程序可以决定休眠该虚拟机。
在块210,管理程序可以标识与虚拟机相关联的热页。在一个实施例中,管理程序可以监视由被分配给虚拟机的页表中的条目引用的数据页。例如,当在虚拟机请求在页表中不具有对应的条目的数据页之后处理器发送中断时,管理程序可以标识热页。如上所述,管理程序可以将所需要的条目添加到页表,并因此确定由该条目引用的数据页是热的。
如果数据页被页表中的条目引用,则管理程序可以更新页图以指示该数据页是热的。在一个实施例中,页图可以对于与虚拟机相关联的每个数据页包括一个条目。页图可以包括指示页是否被指定为热页的标志或位。
在一个实施例中,管理程序可以通过在监视时段(例如30秒)期间评估页表中的条目来标识热页。一旦监视时段到期,管理程序就可以通过休眠虚拟机来继续。可替换地,在另一实施例中,管理程序可以持续地监视页表,因此不断地(或者以预定间隔)更新页图以标记热数据页。例如,管理程序可以以预定间隔(例如每五分钟)清除页图并且监视页表中的条目达三十秒以便再次标识热页。因此,一旦接收到休眠的提示,管理程序可以使用当前页图开始休眠虚拟机而不用首先在监视时段期间监视页表以标识热数据页。
在块215,管理程序可以停止虚拟机的执行。例如,管理程序可能不再向分配给虚拟机的处理器给出任何处理器周期。在一个实施例中,由虚拟机的操作系统执行的程序也被暂停。因此,如果应用处于进行操作的中途,则操作系统可以暂停该应用使得不再从存储器读取数据页或向存储器写入数据页。
在块220,管理程序保存虚拟机的当前状态。换句话说,管理程序可以保存所有需要的数据,以便以在块215停止虚拟机时该虚拟机所处的相同状态来恢复该虚拟机。当恢复时,在虚拟机上执行的相同应用可以处于相同的状态,即使这些应用在虚拟机被休眠时处于操作的中途。为了保存虚拟机的当前状态,管理程序可以保存与虚拟机相关联的页表、与虚拟机相关联的数据页、处理器的状态、当管理虚拟机时由管理程序所使用的数据等等。除了此数据,管理程序还可以存储指示与虚拟机相关联的数据页中的哪些是热的页图。引用图1,当保存虚拟机110的状态时,相关联的数据可以保存在贮存器130(例如硬盘或网络存储)中。这样做可以允许计算系统从存储器105移除数据并且释放存储器105中的另外的地址空间。
图3是根据在此描述的一个实施例的、用于基于页表中的条目更新页图以标识热页用于恢复休眠的虚拟机的流程图300。在块305,管理程序可以接收休眠虚拟机的提示。如在图2的流程图200中所述,在另一实施例中,管理程序使用控制逻辑独立地确定是否休眠虚拟机。无论管理程序如何确定休眠虚拟机,在这样做之前,管理程序可以标识监视时段,其中在该监视时段期间管理程序监视与虚拟机相关联的页表中的条目。监视时段的持续时间可以是预定的(例如设置为三十秒)或者可以由管理程序基于一个或多个规则动态地调整。例如,管理程序可以基于与虚拟机相关联的优先级值或者被分配给虚拟机的处理器或存储器分区的利用而确定监视时段的持续时间。如果虚拟机具有高优先级或者具有高处理器利用,则管理程序可以增大监视时段的持续时间。这样做增加了在虚拟机休眠之前的时间延迟,但是如稍后所述,可以增加当虚拟机被恢复时虚拟机的性能。
在块310,管理程序可以通过在监视时段期间监视页表中的条目来标识热页。如之前所述,页表由处理器在由虚拟机使用的虚拟地址向在物理存储器中使用的物理地址之间转换地址(反之亦然)时使用。但是,页表中的条目可以变化。也就是说,在虚拟机请求虚拟地址不在页表中的数据页时,处理器可以请求管理程序向页表添加新条目并且从该表中逐出当前的条目。如果在监视时段期间数据页在页表中具有对应条目——例如,存储数据页的物理地址被保存在页表中——管理程序可以将该数据页指定为热的。
在块315,在监视时段期间,管理程序可以监视页表中的条目以标识热数据页。在一个实施例中,管理程序可以扫描条目以标识与页表中存储的地址对应的所有数据页。然后管理程序可以在页图中将这些数据页标记为热的。但是,这可能标识在页表中已经被引用达长时间(例如数小时)、并且在恢复执行时虚拟机可能不需要的数据页。可替换地或者另外地,在虚拟机在监视时段期间继续正常地执行时,管理程序监视页表并确定何时将新的条目添加到页表。由这些新的条目引用的数据页也可以在页图中被标记为热页。基于页表中的条目指定热页是基于如下假设:这些数据页对于虚拟机是重要的——即,在虚拟机上执行的操作系统或应用正访问这些数据页。因此,如果热页是在休眠虚拟机之前在页表中最新近被引用的(或者最新近被添加到页表的)页,则假设或者预测这些数据页将在虚拟机从休眠中醒来时由虚拟机访问。
在块320,管理程序可以将页图与用于保留虚拟机的当前状态所需的其他数据一起保存。如上所述,此数据可以被保存在诸如盘驱动器的非易失性存储设备中。
在块325,管理程序可以接收恢复虚拟机的提示。存在几种用于恢复休眠的虚拟机的方法。在第一示例中,管理程序可以将基本结构加载到存储器中,所述基本结构例如页表和允许虚拟机尽快开始执行的与虚拟机相关联的其他管理程序表。但是,因为与应用和操作系统相关联的数据页未被加载到存储器中,所以虚拟机将经历频繁的页故障,这需要计算系统从存储设备取得在休眠期间被保存的对应的数据页。这样做可能比从存储器取得数据页需要明显更多的处理器时钟周期。因而,尽管此技术迅速开始执行虚拟机,但是由于页故障的频繁出现,其性能受限。
用于恢复虚拟机的第二示例是在开始执行虚拟机之前将与虚拟机相关联的所有数据页加载到存储器中。这样做可以消除页故障,但是将数据页从贮存器传送到存储器所需的时间延迟了虚拟机的执行。例如,虚拟机可能具有当虚拟机休眠时被保存在贮存器中的百万兆字节的数据页,但是当恢复时,虚拟机可能当前正访问该数据的仅一部分。具体地,当恢复时在虚拟机上执行的操作系统和应用可能需要访问数据页的仅百分之二十五,然而虚拟机的执行被延迟直到所有的数据页被加载到存储器中。
用于恢复虚拟机的第三示例是在执行虚拟机之前使用页图将指定的热数据页加载到存储器中。与在第一示例中进行的仅加载执行虚拟机所需的基本数据相对比,在此示例中,在执行虚拟机之前管理程序将热页加载到存储器中。因为热页是在休眠之前由虚拟机上的应用或操作系统最近请求的数据页,管理程序预测热页将是虚拟机在不久的将来所需要的数据页。以此方式,当与第一示例相比较时,加载热页可以最小化页故障。因此,当与第一示例相比较时,将热页加载到存储器中可以改进虚拟机的性能。
此外,与使用第二示例相比较时,第三示例可以导致虚拟机以较短的延迟开始执行。也就是说,代替等待直到与虚拟机相关联的所有数据页从贮存器传送到存储器中,在此示例中一旦加载了热页虚拟机就开始执行。例如,如果热页包括在休眠期间保存的总数据页的仅百分之二十五,则在第三示例中的虚拟机能够避免将数据页的另外百分之七十五加载到存储器中的延迟。在虚拟机正使用热页执行的同时,管理程序可以在后台将数据页的另外百分之七十五加载到存储器中。因此,在一个实施例中,热页表示在不久的将来虚拟机将可能需要的数据页。在虚拟机使用热页执行的同时,管理程序将剩余的数据页加载到存储器中。因此,一旦虚拟机需要未被指定为热的数据页,这些数据页可能已经被加载到存储器中。当然,如果虚拟机需要在数据页被加载到存储器中之前未被指定为热的该数据页,则计算机系统可能使用中断在数据页中故障。不过,当与第一示例相比较时,方法300通过预测虚拟机将需要哪些数据页而减少了故障的数量。
尽管第三示例可能延迟休眠虚拟机以准许在监视时段期间标识热页(假设管理程序不持续地维持热页的列表),但是如果这样做在恢复虚拟机时导致增加的性能,则延迟休眠是优选的。因此,因为第三示例当与第一示例相比较时可以减少页故障的数量,并且当与第二示例相比较时可以减少用于执行虚拟机的延迟,所以在休眠虚拟机之前的任何延迟可以是可接受的。
在一个实施例中,可以调整监视时段以确定由管理程序标识的热页的数量。例如,缩短监视时段可以标识较少的热页并且允许管理程序更迅速地开始休眠虚拟机。因为可能存在较少要加载的热页,当管理程序确定恢复虚拟机时虚拟机可以更迅速地开始执行。但是,如果虚拟机请求还没有被加载到存储器中的非热数据页,则虚拟机可能经历增加数量的页错误。另一方面,增大监视时段可以标识更多的热页并且当虚拟机恢复执行时可以减少页错误的数量。但是,因为可能在数量上比当使用较短监视时段时更多的热页被加载到存储器中,恢复虚拟机被延迟。因此,本领域技术人员将认识到,可以调整监视时段以符合具体计算系统的需要和配置。
图4例示根据在此描述的一个实施例的页图400。但是,图4所示的数据结构仅仅是在页图400中布置信息的一个示例。如所示,页图400具有四个列,这指示可以存储在图400中的特定条目或行内的不同信息。列A可以被用作数据页标识符。在此示例中,页图400使用与数据页相关联的虚拟地址来标识与特定虚拟地址相关联的所有数据页,但是在其他示例中,标示符可以是数据页的物理地址或者一些其他的标识符。在一个实施例中,管理程序可以对于被休眠的每个虚拟机产生一个新的页图400。页图400可以对于与存储在存储器中的虚拟机相关联的每个数据页包括一个条目,但是这不是要求。在一个实施例中,管理程序可以仅将被指定为热的数据页存储在页图400中。因此,通过在页图400中未被数据页标识符引用,管理程序可以知道数据页不是热的,因此,如果在虚拟设备恢复之前数据页被加载到存储器中,将可能不减少页错误。
列B是在监视时段期间数据页(或者对数据页的引用)出现在页表中的次数的计数。例如,在监视时段期间可以多次添加或者从页表逐出引用数据页的条目。每次与数据页对应的条目被添加到页表时,管理程序可以将在列B中存储的计数递增。此外,页表可以包括引用相同数据页的多个条目。在一个实施例中,每次在页表中引用数据页时,管理程序可以将列B中的计数递增,即使该数据页被引用多次。
页图400的列C存储指示由该行引用的数据页是否被指定为热的标志。在一个实施例中,只要列B中的计数大于一,管理程序就更新列C中的标志以指示相应的数据页是热的。换句话说,只要在监视时段期间对应的数据页被页表中的至少一个条目引用,该数据页在列C中就被指定为热的。在另一实施例中,在指示数据页是热的之前,管理程序可以等待直到列B中的计数达到某个预定值。但是,这可能不是优选的,因为数据页在页表中被引用的次数可能不直接与虚拟机在从休眠中醒来时将需要该数据页的可能性相关。例如,行A例示了在监视时段期间仅由页表引用了一次的数据页;但是,虚拟机在监视时段期间可能访问了引用的数据页数千次。相对照,行B在监视时段期间被页表中的200个条目引用,但是那并不必然意味着数据页每次被虚拟机访问。在一个实施例中,页图400可以省略列C,而是管理程序可以基于在列B中存储的值是非零还是非空来确定数据页是否是热的。
在一个实施例中,可以通过使用虚拟机中的操作系统来补充使用管理程序标识热页。例如,在管理程序在监视时段期间监视在页表中引用数据页的次数时,操作系统可以确定数据页被访问——例如,数据页被读取或修改——的次数。由操作系统和管理程序聚集的信息然后可以被组合以便标识哪些数据页是热的。例如,代替只依赖于数据页是否在页表中被引用,只要在监视时段期间在页表中引用的数据页被操作系统访问预定次数,管理程序就可以将该数据页指定为热的。
列D是指示是否需要数据页而不管数据页是否在监视时段期间在页表中被引用的标志。例如,数据页可以是在恢复虚拟机时使用的配置文件。因为这些页可能仅在虚拟机第一次开始执行时被访问,在监视时段期间在页表中可能未引用数据页,然而管理程序可以确保在虚拟机恢复执行之前该数据页被加载到存储器中。如由行D所示,在监视时段期间在页表中从未引用对应的数据页,但是因为列D中的标志被设置为“是”,管理程序将在恢复虚拟机之前将对应的数据页加载到存储器中。因此,用于设置列D中的标志的状态的规则可以独立于用于设置列C中的标志的规则。
迁移虚拟机
图5例示根据在此描述的一个实施例的用于迁移虚拟机110的源和目标计算系统505、550。源计算系统505包括管理程序140A和存储器105A。在一个实施例中,这些计算元件可以与图1所示的管理程序140和存储器105类似。源计算系统505可以主管由管理程序140A管理的任意数量的虚拟机110。尽管未示出,但是每个虚拟机110可以包括各自的操作系统,用于执行处理在存储器105A或者与计算系统505相关联的其他存储元件中存储的数据的应用。
除了虚拟机110之外,存储器105A还包括页表120和页图125。页表120可以是用于进行虚拟到物理地址转换的硬件页表或者页转换表。计算系统505、550中的硬件在服务来自虚拟机110的访问在存储器105A中存储的数据页的请求时可以使用页表120。页表120中的条目可以基于来自虚拟机110的访问数据的请求而动态地改变。如果请求的数据页未在页表120中被引用,则计算系统硬件(例如处理器)可以请求管理程序140A在页表120中产生新条目。在一个实施例中,管理程序140A可以使用逐出策略来移除页表120中的旧条目,由此维持表120的大小。
除了当休眠虚拟机时使用页图125之外,当将虚拟机110从源计算系统505迁移到目标计算系统550时也可以使用页图125。如以下将更详细地讨论的,管理程序140A可以使用页图125来跟踪与虚拟机110相关联的热页。在一个实施例中,源计算系统505可以在开始在系统550上执行虚拟机110之前将热页传送到目标计算系统550。虚拟机110(和页表120)到目标计算系统550的迁移由虚线表示。
为了在计算系统505和550之间迁移虚拟机,系统505、550经由网络525通信地耦合。网络525可以是例如LAN或WAN,其中计算系统505和550使用以太网连接来传送数据。在另一实施例中,计算系统505和550可以使用直接链接而不是网络525来共享数据。例如,系统505、550可以使用PCIe或连接来传送与虚拟机110相关联的数据(是InfiniBand贸易协会的注册商标)。
图6是根据在此描述的一个实施例的通过标识热页来迁移虚拟机的流程图600。在块605,源计算系统上的管理程序可以接收将虚拟机迁移到目标计算系统的提示。可替换地,管理程序可以包括用于确定何时迁移虚拟机的内部逻辑。例如,网络管理员可以发送该提示,因为源计算系统正要被断电以进行维护。或者,管理程序可以使用其内部逻辑确定预定的维护事件将要发生并且虚拟机应该被迁移以避免服务停止供应。
一旦管理程序确定虚拟机应该被迁移,管理程序就可以开始标识与该虚拟机相关联的热页。如之前所述,管理程序可以使用监视时段(其持续时间可以预定或者动态地确定)来监视源计算系统中的页表的条目。如果与该虚拟机相关联的数据页在监视时段期间被页表中的条目之一引用,则管理程序可以在页图中将该数据页标记为热的。适当的页图的一个示例可以在图4所示的页图400中找到。
可替换地,管理程序可以维持热页的当前列表。因此,一旦接收到迁移虚拟机的提示,管理程序就可以开始迁移处理而不用首先在监视时段期间标识热页。例如,在虚拟机的正常执行期间,管理程序可以以预定间隔(例如每分钟)清除页图并且监视页表中的条目达五秒以便再次标识热页。因此,一旦接收到迁移虚拟机的提示,管理程序可以区分在页图中标识的热页的先后顺序,如以下所述。
在块610,源计算系统将标识的热页发送到目标计算系统。在一个实施例中,管理程序使用页图来标识、取回和传送在源计算系统的存储器(或贮存器)中存储的热页到目标计算系统。在那里,其管理程序然后可以将传送的热页加载到存储器中。
在块615,一旦热页已经被传送并被加载在目标计算系统的存储器上,源计算系统上的管理程序就可以停止虚拟机的执行。在同时或几乎同时,目标计算系统上的管理程序可以开始执行该虚拟机。除了发送热页之外,在一个实施例中,源计算系统可以发送配置文件、处理器状态、页表以及目标计算系统以执行被停止时虚拟机所处于的相同的状态开始执行虚拟机所需的任何其他信息。
在一个实施例中,在停止源计算系统上的虚拟机并且开始目标计算系统上的虚拟机之前,管理程序可以等待直到监视时段已经到期。此外,在监视时段期间,源计算系统可以在管理程序一将数据页指定为热的时就传送这些数据页。也就是说,一旦数据页在页图中被标记为热的,管理程序就可以将该数据页传送到目标计算系统。但是,如果管理程序确定在热数据页被传送之后虚拟机已经访问了该页,则在一个实施例中,管理程序可以重新发送该数据页以确保目标计算系统具有该数据页的最新版本。例如,当管理程序向目标计算系统发送热数据页时,管理程序可以在页图中用零标出与数据页相关联的计数。如果该计数再次递增——例如,管理程序在页表中产生引用发送的数据页的新条目——则管理程序将再次标记该数据页用于重新发送到目标计算系统。
可替换地,在将热页发送到目标计算系统之前,源计算系统上的管理程序可以等待直到监视时段到期。例如,在监视时段期间,管理程序可以传送配置文件或者开始虚拟机的执行所需的其他系统设置信息,但是在发送热页之前等待直到该时段到期。这样做可能引起延迟,在该延迟期间源计算系统上的虚拟机已经停止执行,但是目标计算系统还没有开始执行。一旦接收到热页,目标计算系统则可以开始执行该虚拟机。相对照,在监视时段期间发送热页可以最小化此延迟并且允许在迁移期间虚拟机的几乎无缝操作,使得有很少或者没有停机时间。
相对于在热数据页被传送到目标计算系统之前执行虚拟机,在开始在目标计算系统上执行虚拟机之前传送热页可以增加性能。例如,如果虚拟机开始执行而热数据页没有被加载到存储器中,则频繁的页错误将导致目标计算系统持续从源计算设备取回数据。如果网络用于通信地耦合源和目标计算系统,则取回所需的数据页的能力受限于网络传送速度,该网络传送速度可能严重地限制虚拟机性能。此外,如果在所有数据被加载到目标计算系统上之前不执行虚拟机,则可能存在实质的停机时间。替代地,管理程序可以使用页图来标识并传送热页到目标计算系统。在虚拟机使用热数据页在目标计算系统上执行时,在后台,源计算系统可以继续向目标计算系统发送剩余的数据页(即非热数据页)。换句话说,热页为虚拟机提供虚拟机在不久的将来可能需要的数据。在虚拟机主要使用热页执行时,计算系统可以使用此时间来传送剩余的数据页。因此,在虚拟机请求非热页时的稍后的时间,它们将已经被加载到目标计算系统上的存储器中。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
尽管以上指向本发明的实施例,但是不脱离本发明的基本范围可以得到本发明的其他以及进一步的实施例,并且本发明的范围由接下来的权利要求书确定。

Claims (20)

1.一种方法,包括:
通过监视页表中的条目来标识与由计算系统主管的虚拟机相关联的热数据页,其中所述页表的条目将与虚拟机相关联的虚拟地址空间中的地址转换到与该计算系统相关联的物理地址空间;
在休眠所述虚拟机之前,将标识的热页保存在贮存器中;
确定恢复休眠的虚拟机的操作;以及
在确定热页已经从贮存器加载到所述计算系统的存储器中后,恢复所述虚拟机。
2.如权利要求1所述的方法,其中监视所述页表中的条目包括
标识由所述页表中的条目引用的与所述虚拟机相关联的热数据页;以及
在确定第一数据页被所述页表中的至少一个条目引用后,更新页图以指示所述第一数据页是所述热数据页之一,所述页图包含与在所述虚拟机的虚拟地址空间内包括的热数据页相关联的信息。
3.如权利要求2所述的方法,还包括:
在休眠所述虚拟机之前,将所述页图保存到所述贮存器中;
在确定恢复休眠的虚拟机的操作之后,使用所述页图来标识热页并将热页从贮存器加载到所述计算系统的存储器中。
4.如权利要求1所述的方法,还包括:
在确定休眠所述虚拟机之后,在限定一持续时间的监视时间期间标识热页,在该持续时间期间所述计算系统监视所述页表中的条目以标识热页。
5.如权利要求4所述的方法,其中所述监视时间在接收到休眠所述虚拟机的提示之后开始。
6.如权利要求1所述的方法,还包括在恢复所述虚拟机之后,将未被标识为热数据页的与所述虚拟机相关联的另外的数据页从贮存器加载到存储器中。
7.如权利要求1所述的方法,其中所述热数据页估计所述虚拟机在被恢复后将需要哪些数据页来执行。
8.一种计算系统,包括:
存储器;
加载到存储器中的虚拟机;以及
管理程序,配置为管理所述虚拟机,所述管理程序被配置为:
通过监视页表中的条目来标识与虚拟机相关联的热数据页,其中所述页表的条目将与虚拟机相关联的虚拟地址空间中的地址转换为与该计算系统相关联的物理地址空间;
在休眠所述虚拟机之前,将标识的热页保存到与所述计算系统相关联的贮存器中;
确定恢复休眠的虚拟机的操作;以及
在确定热页已经从贮存器加载到所述计算系统的存储器中后,恢复所述虚拟机。
9.如权利要求8所述的计算系统,其中当监视所述页表中的条目时,所述管理程序被配置为:
标识由所述页表中的条目引用的与所述虚拟机相关联的热数据页;以及
在确定第一数据页被所述页表中的至少一个条目引用后,更新页图以指示所述第一数据页是所述热数据页之一,所述页图包含与在所述虚拟机的虚拟地址空间内包括的热数据页相关联的信息。
10.如权利要求9所述的计算系统,其中所述管理程序被配置为:
在休眠所述虚拟机之前,将所述页图保存到贮存器中;
在确定恢复休眠的虚拟机的操作之后,使用所述页图来标识热页并将热页从贮存器加载到所述计算系统的存储器中。
11.如权利要求8所述的计算系统,其中所述管理程序被配置为在确定休眠所述虚拟机之后,在限定一持续时间的监视时间期间标识热页,在该持续时间期间所述计算系统监视所述页表中的条目以标识热页。
12.如权利要求11所述的计算系统,其中所述监视时间在接收到恢复所述虚拟机的提示之后开始。
13.如权利要求8所述的计算系统,其中所述管理程序被配置为在恢复所述虚拟机之后,将未被标识为热数据页的与所述虚拟机相关联的其他数据页从贮存器加载到存储器中。
14.如权利要求8所述的计算系统,其中所述热数据页估计所述虚拟机在被恢复后将需要哪些数据页来执行。
15.一种计算机程序产品,用于管理由计算系统主管的虚拟机的休眠,所述计算机程序产品包括:
计算机可读存储介质,包含计算机可读程序代码,所述计算机可读程序代码包括配置为进行以下处理的计算机可读程序代码:
通过监视页表中的条目来标识与虚拟机相关联的热数据页,其中所述页表的条目将与虚拟机相关联的虚拟地址空间中的地址转换到与该计算系统相关联的物理地址空间;
在休眠所述虚拟机之前,将标识的热页保存在贮存器中;
确定恢复休眠的虚拟机的操作;以及
在确定热页已经从贮存器加载到所述计算系统的存储器中后,恢复所述虚拟机。
16.如权利要求15所述的计算机程序产品,其中监视页表中的条目包括配置为进行以下处理的计算机可读程序代码:
标识由所述页表中的条目引用的与所述虚拟机相关联的热数据页;以及
在确定第一数据页被所述页表中的至少一个条目引用后,更新页图以指示所述第一数据页是所述热数据页之一,所述页图包含与在所述虚拟机的虚拟地址空间内包括的热数据页相关联的信息。
17.如权利要求16所述的计算机程序产品,还包括配置为进行以下处理的计算机可读程序代码:
在休眠所述虚拟机之前,将所述页图保存到贮存器中;
在确定恢复休眠的虚拟机的操作之后,使用所述页图来标识热页并将热页从贮存器加载到所述计算系统的存储器中。
18.如权利要求15所述的计算机程序产品,还包括配置为进行以下处理的计算机可读程序代码:
在确定休眠所述虚拟机之后,在限定一持续时间的监视时间期间标识热页,在该持续时间期间所述计算系统监视所述页表中的条目以标识热页。
19.如权利要求18所述的计算机程序产品,其中所述监视时间在接收到恢复所述虚拟机的提示之后开始。
20.如权利要求15所述的计算机程序产品,还包括被配置为进行以下处理的计算机可读程序代码:
在恢复所述虚拟机之后,将未被标识为热数据页的与所述虚拟机相关联的其他数据页从贮存器加载到存储器中。
CN201480041419.XA 2013-08-22 2014-08-14 对于分区休眠的热页的检测 Pending CN105659212A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/973,682 US20150058519A1 (en) 2013-08-22 2013-08-22 Detection of hot pages for partition hibernation
US13/973,682 2013-08-22
PCT/CN2014/084411 WO2015024475A1 (en) 2013-08-22 2014-08-14 Detection of hot pages for partition hibernation

Publications (1)

Publication Number Publication Date
CN105659212A true CN105659212A (zh) 2016-06-08

Family

ID=52481425

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480041419.XA Pending CN105659212A (zh) 2013-08-22 2014-08-14 对于分区休眠的热页的检测

Country Status (3)

Country Link
US (2) US20150058519A1 (zh)
CN (1) CN105659212A (zh)
WO (1) WO2015024475A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110795363A (zh) * 2019-08-26 2020-02-14 北京大学深圳研究生院 一种存储介质的热页预测方法和页面调度方法

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10353813B2 (en) 2016-06-29 2019-07-16 Western Digital Technologies, Inc. Checkpoint based technique for bootstrapping forward map under constrained memory for flash devices
US10229048B2 (en) 2016-06-29 2019-03-12 Western Digital Technologies, Inc. Unified paging scheme for dense and sparse translation tables on flash storage systems
US11216361B2 (en) 2016-06-29 2022-01-04 Western Digital Technologies, Inc. Translation lookup and garbage collection optimizations on storage system with paged translation table
US10235287B2 (en) 2016-06-29 2019-03-19 Western Digital Technologies, Inc. Efficient management of paged translation maps in memory and flash
US10175896B2 (en) 2016-06-29 2019-01-08 Western Digital Technologies, Inc. Incremental snapshot based technique on paged translation systems
KR101931779B1 (ko) * 2017-08-07 2018-12-21 한국전자통신연구원 가상 머신 내부의 파일 접근 모니터링 장치 및 그 방법
CN112703483A (zh) * 2018-09-26 2021-04-23 英特尔公司 用于车载系统的断电和通电方法及设备
US10949239B2 (en) 2018-12-14 2021-03-16 Hewlett Packard Enterprise Development Lp Application deployment in a container management system
US11593137B2 (en) 2019-08-30 2023-02-28 Nutanix, Inc. Hypervisor hibernation
US11467729B2 (en) * 2020-06-29 2022-10-11 Microsoft Technology Licensing, Llc Allocating memory and redirecting memory writes in a cloud computing system based on temperature of memory modules
US11972266B2 (en) 2020-10-02 2024-04-30 Nutanix, Inc. Hibernating and resuming nodes of a computing cluster
US11860773B2 (en) * 2022-02-03 2024-01-02 Micron Technology, Inc. Memory access statistics monitoring

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100070678A1 (en) * 2008-09-12 2010-03-18 Vmware, Inc. Saving and Restoring State Information for Virtualized Computer Systems
CN102906691B (zh) * 2010-06-02 2014-07-23 微软公司 虚拟机迁移技术

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7484208B1 (en) * 2002-12-12 2009-01-27 Michael Nelson Virtual machine migration
US7868897B2 (en) * 2006-06-30 2011-01-11 Intel Corporation Apparatus and method for memory address re-mapping of graphics data
CN101334751B (zh) * 2007-06-29 2010-04-14 联想(北京)有限公司 虚拟机监视器识别客户操作系统中进程的方法及装置
US8316211B2 (en) * 2008-06-30 2012-11-20 Intel Corporation Generating multiple address space identifiers per virtual machine to switch between protected micro-contexts
US8443261B2 (en) * 2009-12-11 2013-05-14 Vmware, Inc. Transparent recovery from hardware memory errors
US8990531B2 (en) * 2010-07-12 2015-03-24 Vmware, Inc. Multiple time granularity support for online classification of memory pages based on activity level

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100070678A1 (en) * 2008-09-12 2010-03-18 Vmware, Inc. Saving and Restoring State Information for Virtualized Computer Systems
CN102906691B (zh) * 2010-06-02 2014-07-23 微软公司 虚拟机迁移技术

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110795363A (zh) * 2019-08-26 2020-02-14 北京大学深圳研究生院 一种存储介质的热页预测方法和页面调度方法
CN110795363B (zh) * 2019-08-26 2023-05-23 北京大学深圳研究生院 一种存储介质的热页预测方法和页面调度方法

Also Published As

Publication number Publication date
US20150058521A1 (en) 2015-02-26
US20150058519A1 (en) 2015-02-26
WO2015024475A1 (en) 2015-02-26

Similar Documents

Publication Publication Date Title
CN105659212A (zh) 对于分区休眠的热页的检测
US20150058522A1 (en) Detection of hot pages for partition migration
CN103098043B (zh) 随需虚拟机映像流式传输的方法和系统
US9354918B2 (en) Migrating local cache state with a virtual machine
JP6652646B2 (ja) 選択的リソースマイグレーションを用いるネットワーク接続型メモリ
US8285915B2 (en) Relocating page tables and data amongst memory modules in a virtualized environment
US9588844B2 (en) Checkpointing systems and methods using data forwarding
US20160197986A1 (en) Host-side cache migration
CN1902577A (zh) 动态功率管理
US20140082631A1 (en) Preferential cpu utilization for tasks
Deshpande et al. Scatter-gather live migration of virtual machines
EP3644185A1 (en) Method and system for intelligently load balancing database backup operations in information technology environments
US10705962B2 (en) Supporting adaptive shared cache management
US8832414B2 (en) Dynamically determining the profitability of direct fetching in a multicore architecture
TW201730775A (zh) 在晶片多核心結構上區域地和跨核心地最小化窺探流量
CN109992566A (zh) 一种文件访问方法、装置、设备及可读存储介质
CN104054054A (zh) 程序对警告追踪中断设施的使用
EP3507700A1 (en) Managing enclave memory pages
CN114003350B (zh) 超融合系统的数据分配方法和系统
CN104054052A (zh) 由一个程序向另一个程序提供对警告追踪设施的存取
CN110704851A (zh) 公有云数据处理方法和设备
US20160103714A1 (en) System, method of controlling a system including a load balancer and a plurality of apparatuses, and apparatus
JP2017033375A (ja) 並列計算システム、マイグレーション方法、及びマイグレーションプログラム
WO2013016819A1 (en) Placement of data in shards on a storage device
TWI469044B (zh) 於指令存取前藉由運行標籤查找之隱藏指令快取未命中潛時的技術

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
WD01 Invention patent application deemed withdrawn after publication
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20160608