CN102402399A - 带有非对称存储器的系统中的虚拟机存储器管理 - Google Patents

带有非对称存储器的系统中的虚拟机存储器管理 Download PDF

Info

Publication number
CN102402399A
CN102402399A CN2011102450911A CN201110245091A CN102402399A CN 102402399 A CN102402399 A CN 102402399A CN 2011102450911 A CN2011102450911 A CN 2011102450911A CN 201110245091 A CN201110245091 A CN 201110245091A CN 102402399 A CN102402399 A CN 102402399A
Authority
CN
China
Prior art keywords
memory
page
leaf
virtual machine
access
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.)
Granted
Application number
CN2011102450911A
Other languages
English (en)
Other versions
CN102402399B (zh
Inventor
R·B·纳图基
D·T·哈珀三世
P·沙尔马
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN102402399A publication Critical patent/CN102402399A/zh
Application granted granted Critical
Publication of CN102402399B publication Critical patent/CN102402399B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • G06F9/3832Value prediction for operands; operand history buffers
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及带有非对称存储器的系统中的虚拟机存储器管理。本文描述了包括预测虚拟机对计算系统中的非对称存储器池的各部分的存取的预测器组件的系统,其中非对称存储器池包括第一存储器和第二存储器,且其中第一存储器的性能特征与第二存储器的性能特征不相同。该系统还包括存储器管理系统,该存储器管理系统至少部分地基于预测器组件所预测的对非对称存储器池的存取来将第一存储器的各部分分配给虚拟机。

Description

带有非对称存储器的系统中的虚拟机存储器管理
技术领域
本发明涉及计算机技术,尤其涉及计算机存储技术。
背景技术
当前,商业云计算服务被装备为向企业提供计算和数据存储服务,从而允许企业替换或补充私人拥有的信息技术(IT)资产,减轻管理和维护这些私人拥有的IT资产的负担。虽然云计算的可行性在过去若干年有所增长,但在云计算被广泛采用之前存在要克服的某些技术障碍。
急需解决的一个问题是关于多个顾客对计算资源的共享。云计算平台例行地采用虚拟化来将工作负载封装在虚拟机中,它们随后在云计算服务器上整合。因此,某个云计算服务器可具有在其上运行的与多个不同的顾客相对应的多个虚拟机。理想地,对于使用服务器的任何顾客,与其他顾客相对应的其他虚拟机对服务器上的资源的使用是透明的。当前,云计算提供者基于对资源的使用或保留来向顾客收取费用,诸如但不限于,CPU小时、存储容量和网络带宽。顾客和云计算提供者之间的服务级协定通常基于资源可用性,诸如系统正常运行时间、I/O请求等方面的保证。由此,顾客可加入与云计算服务提供者的协定,其中该协定指定将为顾客保留或对顾客可用的资源量以及系统正常运行时间等方面的保证。
然而如果顾客未使用服务器的全部可用资源,则为了云计算服务提供者的利益来使得该顾客与其他顾客共享计算资源。这可以通过虚拟化来进行,从而使得顾客的工作负载可被封装在虚拟机中,且许多虚拟机可在服务器上整合。虚拟化可通过提供故障隔离有助于与独立工作负载的协同主存的连接,从而阻止与一个顾客相对应的应用程序中的故障被传播至与另一顾客相对应的另一应用程序。
当前,存在管理在存储器过度预配时如何对待数据的各种虚拟机存储器管理系统。这些系统一般涉及标识何时要将数据从硬盘按页传入存储器或从存储器按页传出至硬盘。然而,这样的系统在发展计算机硬件体系结构方面并未被优化。
发明内容
以下是在本文详细描述的主题的简要概述。本发明内容不旨在是关于权利要求的范围的限制。
此处描述了涉及管理虚拟化系统上的非对称存储器资源的各种技术。处理器不断地被开发成具有日益增长的执行能力。然而最近,与这些处理器相关联的能力和复杂性已经使得半导体行业转向包括若干核的多核体系结构,其中每一核常常具有与大部分先进处理器的设计相比较简单、较小的设计。就性能和容量两方面而言,处理器上越来越多的核的数量对存储器造成了越来越多的压力。由此,提出处理器能够对非对称存储器池进行存取的硬件体系结构设计,其中非对称存储器池包括第一存储器和第二存储器,且第一存储器的性能特征与第二存储器的性能特征不相同。换言之,第一存储器在处理器和处理器核方面与第二存储器的等待时间和带宽相比可具有较短的等待时间和较高的带宽。
根据此处更详细地描述的一个方面,多个虚拟机可在使用非对称存储器池的虚拟化系统上执行。换言之,虚拟化机器的一个或多个可被分配跨具有不同性能特征的处理器的地址空间。因此,在虚拟化系统中执行的虚拟机可被分配第一存储器的一部分(例如,多个页)以及第二存储器的一部分,其中第一存储器和第二存储器具有不同的性能特征。第一存储器和第二存储器可被监视一阈值时间段来查明虚拟机如何对已经被分配到该虚拟机的第一存储器中的页以及第二存储器中的页进行存取。可以使用所监视的多个虚拟机对第一存储器和第二存储器的存取来预测这些多个虚拟机对第一存储器和第二存储器的将来存取。随后可使用这些预测的将来存取来动态地在多个虚拟机之间分配非对称存储器。即,可动态地分配来自非对称存储器的存储器以显著地优化虚拟化环境中多个虚拟机的执行。
另外,对于在虚拟化环境中执行的任何给定的虚拟机,可积极地管理不同存储器池(第一存储器和第二存储器)之间的页。例如,可采用以上讨论的预测来确定是否应该将分配给特定虚拟机的页在该虚拟机的地址空间中从第一存储器迁移至第二存储器,或反向。
在阅读并理解了附图和描述后,可以明白其他方面。
附图说明
图1是计算系统中的示例性处理器/存储器体系结构的功能框图。
图2是便于管理虚拟化系统中的非对称存储器池的示例性系统的功能框图。
图3是便于管理虚拟化系统中的非对称存储器池的示例性系统的功能框图。
图4示出带有非对称存储器池的虚拟化系统中的页迁移。
图5是带有非对称存储器池的虚拟化系统中的存储器管理系统的示例性实施例的功能框图。
图6是示出用于跨虚拟化系统中的非对称存储器池迁移页的示例性方法的流程图。
图7是示出用于跨虚拟化系统中的非对称存储器池管理存储器分配的示例性方法的流程图。
图8是示例性计算系统。
具体实施方式
现在将参考附图来描述关于管理虚拟化系统中的非对称存储器池的各种技术,在全部附图中相同的附图标记表示相同的元素。另外,本文出于解释的目的示出并描述了各示例性系统的若干功能框图;然而可以理解,被描述为由特定系统组件执行的功能可以由多个组件来执行。类似地,例如,一组件可被配置成执行被描述为由多个组件执行的功能。
参考图1,示出了作为此处公开的各方面的基础的示例性硬件体系结构100。体系结构100包括多个处理器102-104。根据一示例,处理器102-104中的一个或多个可以是多核处理器。体系结构100还包括多个第一存储器106-108,它们在此还可被称为“近”存储器。第一近存储器106可只由第一存储器102存取,而第N近存储器可只由第N存储器108存取。然而要理解的是,近存储器106-108中的每一个可由多个处理器或处理器核存取。
体系结构100还包括可由第一处理器102和第N处理器两者存取的第二存储器110,其中第二存储器110在此还可被称为“远”存储器。根据一示例,近存储器106-108关于处理器102-104可具有与远存储器110关于处理器102-104不相似的性能特征。例如,近存储器106-108与远存储器110相比关于处理器102-104可具有较佳的性能,其中较佳的性能可以指较短的等待时间和/或较高的带宽。具有不同性能特征的不同存储器(各自可由处理器存取)可被称为非对称存储器,其中非对称存储器池指具有不同性能特征的不同存储器。
将不描述各种特定实施例,其中这样的实施例在本质上是示例性的且不旨在限制权利要求书的范围。在第一示例中,第一处理器102和第一近存储器106可驻留在服务器中,而远存储器110可以是可由该服务器和若干其他服务器存取的存储器刀片或存储器排(memory bank)。在另一示例中,如先前所述,处理器102-104可以是驻留在服务器上的多核处理器,而近存储器106-108可以是片上存储器。在该示例中,近存储器106可由多核处理器上的每一核存取。此外,远存储器110可以是片外存储器。在这样的实施例中,近存储器106-108可以是通过利用3D裸片叠层分别堆叠在处理器102-104上的DRAM,而远存储器110可以是某种形式的片外存储器。虽然提供了某些示例,但要理解的是,构想了任何合适的分层非对称存储器方案,且这些方案旨在落入本文所附权利要求书的范围之内。
现在参考图2,示出了便于管理虚拟化系统中的非对称存储器池的示例性系统200。系统200包括近存储器202和远存储器204,其中近存储器202在处理器或处理器核方面的性能特征与远存储器204的性能特征不同。系统200还包括多个虚拟机206-208,其中虚拟机206中的每一个具有分配给其的近存储器202的各部分和远存储器204的各部分。具体地,虚拟机206-208中的每一个具有分配给其的相邻虚拟地址空间,且这些相邻虚拟地址空间可映射到近存储器202和远存储器204的各部分。在一示例中,虚拟机206-208可共享处理器的资源,以使得取决于与其相对应的工作负载来在虚拟机206-208之间共享处理器的处理周期。在另一实施例中,虚拟机206-208中的每一个可被分配多核处理芯片的一核。当然,还构想了其他实现,并且这些实现旨在落入本文所附权利要求书的范围内。
系统200还包括监视器组件210,监视器组件210监视虚拟机206-208随时间对近存储器202和远存储器204的存取。例如,监视器组件210可被配置成监视对与虚拟机206-208相对应的虚拟地址空间中的每一页的存取,其可映射到近存储器202和远存储器204。在一特定示例中,监视器组件210可经由硬件存取位来跟踪虚拟机206-208的存储器使用。更具体地,监视器组件210可检查并清除与描述客物理地址(GPA)和系统物理地址(SPA)之间的映射(例如,虚拟地址空间和系统地址空间之间的映射)的嵌套表条目相关联的存取位。在一示例中,监视器组件210可向系统管理程序(未示出)进行超调用来检查和清除这些存取位。此外,监视器组件210可周期性地(例如,每秒一次)分析存取位。
预测器组件212与监视器组件210进行通信,并且可预测虚拟机206-208中的每一个将来对近存储器202中的页以及远存储器204中的页的存取。更具体地,预测器组件212可输出指示给定客物理页在不久的将来将始终被存取的似然性的数据。在一示例中,预测器组件212可从监视器组件210接收关于近存储器202和远存储器204中的页的历史存取模式,并且对于给定客物理页,可预测该客物理页将由与该客物理页相对应的虚拟机存取的似然性。所预测的似然性可以是二元的,因为预测器组件212或者输出客物理页可能由虚拟机存取或者输出客物理页可能不由虚拟机存取的指示。或者,预测器组件212可输出具有更具粒度的预测,诸如取决于连续比例的值或存取似然性的若干可能水平中的一个的值。
在一示例性实现中,预测器组件212可对给定客物理页采用空间过滤或时间过滤中的一个或多个来预测该客物理页在不久的将来将被存取的似然性。例如,以下示出的算法可由处理器执行,其中该算法是使用大小为W的历史窗口的时间过滤算法:
Figure BSA00000562942700051
其中,如果在页的采样期间对该页的存取位置位,则存取位[k]是1,否则为0。如果存取位[k]大于或等于预定义的阈值(例如,0和1之间),则预测器组件212可预测该页在不久的将来将被相对应的虚拟机存取。否则,预测器组件212可预测该页在不久的将来将不会被存取。要理解,历史窗口大小W以及上述预定义的阈值可以是可配置的参数。还可采用其他模型,包括统计模型和/或机器学习模型,来预测将来对跨非对称存储器池的页的存取模式。
系统200还可包括与预测器组件212进行通信的存储器管理系统214。具体地,存储器管理系统214可接收关于跨非对称存储器池的特定页的预测并且可执行两种操作:1)至少部分地基于预测器组件212提供的预测来动态地将近存储器202分配给虚拟机206-208;以及2)至少部分地基于预测器组件212提供的预测将分配给虚拟机的页在非对称存储器池之间(近存储器202和远存储器204之间)迁移。这些操作将在以下更详细地描述。
从体系结构的观点,存储器管理系统214可驻留在多个位置中。例如,存储器管理系统214可被实现为系统管理程序的一部分。在另一示例中,存储器管理系统214可被包括在在虚拟机206-208上执行的客操作系统中。换言之,可使得客操作系统知晓非对称存储器(近存储器202和远存储器204)的不同语义,并且在近存储器和远存储器的分配随时间变化时系统管理程序可更新客操作系统。在又一示例中,存储器管理系统214可对客操作系统透明地执行。
现在转向图3,示出了便于管理虚拟化系统中的非对称存储器池的示例性系统300。系统300包括预测器组件212和存储器管理系统214,它们一般如上所述地进行动作。具体地,预测器组件212接收所监视的一个或多个虚拟机对非对称存储器池的存取,并且基于这些所监视的存取,输出指示非对称存储器池中的任何给定页在不久的将来被已经被分配与该页相对应的物理存储器的虚拟机存取的似然性的数据。预测器组件212可为已经被分配给虚拟机和/或可被分配给虚拟机的近存储器和远存储器中的每一页生成这些预测。
存储器管理系统214接收预测数据并至少部分地基于预测数据来管理跨虚拟机的存储器分配以及近存储器和远存储器之间的数据位置。更具体地,存储器管理系统214包括页管理器组件302和存储器平衡器组件304。页管理器组件302从预测器组件212接收预测数据并动态地确定是否期望在非对称存储器池之间(例如,在近存储器和远存储器之间)迁移各页。在一示例中,页管理器组件302所接收的预测数据可以采用两种列表的形式:1)近存储器候选——远存储器中期望被包括在近存储器中的页的列表(例如,在不久的将来可能被存取的页);以及2)远存储器候选——近存储器中期望被包括在远存储器中的页的列表(例如,在不久的将来不太可能被存取的页或与其他页相比可能较少被存取的页)。预测器组件212可至少部分地基于所监视的一个或多个虚拟机的存储器存取来生成这样的列表。当然,还构想了其他格式的数据,诸如在预测器组件212被配置成按连续范围输出页存取的预测的情况下。
页管理器组件302可接收这样的列表并确定期望被映射到近存储器的客物理页的适当集合并在必要时标识要从近存储器中驱逐(要被放置在远存储器中)的页。此处提供了一示例性算法,其中页管理器组件302可采用该算法来对于虚拟机在近存储器和远存储器之间迁移页。
1:if空闲近存储器<近存储器候选所需的存储器
Then
2:近存储器中要驱逐的页的数量=(近存储器候选所需的存储器-空闲近存储器)或远存储器候选所需的存储器中的较少的那个
3:将远候选中要驱逐的近存储器中的多个页从近存储器迁移至远存储器
4:End if
5:将近存储器候选从远存储器迁移至近存储器
在一示例性实现中,为避免存储器搅动(churn),页管理器组件302可限制近存储器中不活动页的驱逐。因此,如果没有要驱逐的候选,则页管理器组件302将不会将页从远存储器迁移至近存储器,即使远存储器中的页被包括为近存储器候选。然而在其他实现中,可进行全局分析来至少部分地基于预测器组件212输出的预测数据来查明近存储器和远存储器之间的页的最优定位。例如,即使近存储器中的所有页都是活动的,页管理器组件302可确定如果在近存储器和远存储器之间迁移特定页,则与GPA空间相对应的虚拟机将更高效地运行。
因此,页管理器组件302可为在虚拟化系统中执行的每一虚拟机动态地管理被分配到给定虚拟机的近存储器和远存储器之间的页以提升该虚拟机在包括非对称存储器池的计算环境中的性能。
存储器平衡器组件304可执行不同的任务——跨被分配近存储器的各部分的多个虚拟机的该近存储器的平衡。存储器平衡器组件304可至少部分地基于预测器组件212输出的预测数据来执行该平衡。此外,在一示例中,存储器平衡器组件304可为若干虚拟机执行近存储器的平衡,而随后页管理器组件302可在向虚拟机分配近存储器(以及远存储器)的合适的量之后管理这样的虚拟机的页。
更具体地,存储器平衡器组件304可用来至少部分地基于预测器组件212输出的预测数据来对跨在虚拟化系统中执行的虚拟机的近存储器进行平衡。存储器平衡器组件304因此用来跨一组整合的虚拟化工作负载的执行来利用存储器使用强度和容量的时间变化。存储器平衡器组件304可周期性地存取或从预测器组件212接收预测数据。存储器平衡器组件304进行存储器平衡的频率可小于页管理组件302进行页管理的频率,可大于页管理组件302进行页管理的频率,或可等于页管理组件进行页管理的频率。
为执行存储器平衡,存储器平衡器组件304可为每一虚拟机计算预测的活动存储器容量:存储器活动,i。给定对近存储器的量的全局约束,存储器,存储器平衡器组件304可如下跨虚拟机分配近存储器(例如,使用加权公平份额方法):
Figure BSA00000562942700081
可以容易地理解,可提出除近存储器的总量之外的其他约束,包括要给予在虚拟化系统上执行的任何特定虚拟机所需的近存储器的最小量、可给予在虚拟化系统上执行的虚拟机的近存储器的最小量、或任何特定虚拟机的服务级协定(SLA)中包括的其他约束。
现在转向图4,示出了便于在分层存储器计算环境中管理页的示例性系统400。系统400包括预测器组件212,预测器组件212接收关于虚拟机如何对被分配给该虚拟机的GPA中的页进行存取的数据。预测器组件212随后输出两个列表:标识近存储器候选(远存储器中被预测在不久的将来被虚拟机存取的、并因此需要被迁移至近存储器的页)的第一列表402以及标识远存储器候选(近存储器中不被预测为在不久的将来被虚拟机存取的且因此需要被迁移至远存储器的页)的第二列表402。这些列表可以是二元的,以使得第一列表402中的所有页被同样地对待并且第二列表404中的所有页被同样地对待。然而在其他实施例中,可向列表402和404中的页分配分数,其中这些分数指示在非对称存储器池之间迁移相应的页的需求度。页管理器组件302随后至少部分地基于第一列表402和第二列表404的内容来在非对称存储器池之间迁移页。
现在参考图5,示出了便于管理虚拟化系统中的非对称存储器池的示例性系统500。系统500示出可如何实现存储器管理系统214的一个示例性实施例。然而要理解,构想了其他实施例,且这些实施例旨在落入本文所附的权利要求书的范围之内。在该示例性实施例中,可注意到,监视器组件210和存储器管理系统214的执行可引起执行开销。在某些情况下,随后,可禁用对用来将GPA转换成SPA的嵌套页表中的大页的使用(尽管虚拟机可在内部应用用于将客虚拟地址(GVA)转换成GPA的大页)。另外,页存取位扫描只要存取位被检查和清除就可能需要TLB刷新的性能开销。
系统500包括监视器组件210、预测器组件212和存储器管理系统214,它们可驻留在物理机的根分区502中。在该示例中,监视器组件210、预测器组件212和/或存储器管理系统214可检查并清除与描述GPA和SPA之间的映射的嵌套页表条目相关联的存取位。系统500还包括系统管理程序504,监视器组件210、预测器组件212和/或存储器管理系统214可将超调用发送给系统管理程序504来执行该功能。另外,存储器管理系统214可具有与其相对应的接口,它允许存储器管理系统214动态地修改用来支持(back)客物理页的系统物理页,包括复制数据以及更新页表条目来反映新的映射。
现在参考图6-7,示出并描述了各种示例性方法。尽管各方法被描述为顺序地执行的一系列动作,但可以理解,这些方法不受该顺序的次序的限制。例如,一些动作能以与本文描述的不同的次序发生。另外,动作可以与另一动作同时发生。此外,在一些情况下,实现本文描述的方法并不需要所有动作。
此外,本文描述的动作可以是可由一个或多个处理器实现的和/或存储在一个或多个计算机可读介质上的计算机可执行指令。计算机可执行指令可包括例程、子例程、程序、执行的线程等。另外,这些方法的动作的结果可以存储在计算机可读介质中,显示在显示设备上,等等。计算机可读介质可以是非瞬时介质、诸如存储器、硬盘驱动器、CD、DVD、闪存驱动器等。
现在参考图6,示出了便于带有非对称存储器池的虚拟化系统中的活动页管理的方法600。方法600在602处开始,在604处,将物理存储器中的地址空间分配给在计算机装置上执行的虚拟机。该地址空间可被映射到嵌套表中的客物理地址空间。在该示例性方法中,分配给虚拟机的系统地址空间是跨非对称存储器池的。即,与虚拟机相对应的至少一个页驻留在近存储器中且与该虚拟机相对应的至少一个页驻留在远存储器中。
在606处,分析虚拟机对非对称存储器池的历史存取模式。这样的存取模式可通过监视与存储器池的各部分相对应的存取位来获得。在608处,至少部分地基于在606处分析的历史存取模式来预测虚拟机对非对称存储器池的将来存取模式。例如,对于非对称存储器池中被分配给虚拟机的每一页,可生成指示这些页在不久的将来(例如,在阈值时间量之内)将被存取的似然性的数据。
在610处,至少部分地基于所预测的将来存取模式来使分配给虚拟存储器的页在非对称存储器池之间迁移。例如,可将远存储器中的页迁移至近存储器和/或可将近存储器中的页迁移至远存储器。方法600在612完成。
现在参考图7,示出了便于在计算装置上运行的虚拟机的运行时期间积极地管理跨非对称存储器池的存储器的示例性方法700。方法700在702处开始,在704处监视多个虚拟机对非对称存储器池的存取。例如,可访问与近存储器和远存储器相对应的存取位并保留一阈值时间窗口。
在706处,至少部分地基于在704处获得的所监视的对存储器池的存取来预测对非对称存储器池中的页的将来存取。在708处,至少部分地基于所预测的将来存取来将非对称存储器池中的至少一个在多个虚拟机之间分配。在710处,对于至少一个虚拟机,至少部分地基于所预测的对非对称存储器池中的页的将来存取来在非对称存储器池之间交换页。方法700在712完成。
现在参考图8,示出了可以根据本文公开的系统和方法使用的示例性计算设备800的高级图示。例如,可在支持对包括非对称存储器池的虚拟化系统中的存储器池进行分配的系统中使用计算设备800。在另一示例中,可在支持在使用非对称存储器池的虚拟化系统中的不同存储器分层结构之间迁移页的系统中使用计算设备800的至少一部分。计算设备800包括执行存储在存储器802中的指令的至少一个处理器804。存储器804可以是或可以包括RAM、ROM、EEPROM、闪存、或其它适合的存储器。另外,存储器804可以是包括不同池的非对称存储器,其中各个池具有关于处理器802的不同性能特征。存储器804中的指令可以是例如用于实现被描述为由上述一个或多个组件执行的功能的指令或用于实现上述方法中的一个或多个的指令。换言之,此处讨论的各组件可以是可驻留在存储器中的计算机可执行组件,并且在处理器802执行这些组件时可执行本文描述的动作。处理器802可以通过系统总线806访问存储器804。除了存储可执行指令之外,存储器804还可存储近存储器候选列表、远存储器候选列表、所监视的对存储器池的存取等。
计算设备800另外包括可由处理器802通过系统总线806访问的数据存储808。数据存储808可以是或可以包括任何合适的计算机可读存储,包括硬盘、存储器等。数据存储808可包括可执行指令、近存储器和远存储器候选列表、关于分层存储器池的存取数据等。计算设备800还包括允许外部设备与计算设备800进行通信的输入接口810。例如,可以使用输入接口810来从外部计算机设备、用户等接收指令。计算设备800还包括将计算设备800与一个或多个外部设备进行接口的输出接口812。例如,计算设备800可以通过输出接口812显示文本、图像等。
另外,尽管被示为单个系统,但可以理解,计算设备800可以是分布式系统。因此,例如,若干设备可以通过网络连接进行通信并且可共同执行被描述为由计算设备800执行的任务。
如此处所使用的,术语“组件”和“系统”旨在涵盖硬件、软件、或硬件和软件的组合。因此,例如,系统或组件可以是进程、在处理器上执行的进程、或处理器。另外,组件或系统可以位于单个设备上或分布在若干设备之间。此外,组件或系统可指存储器的一部分和/或一系列晶体管。
注意,出于解释目的提供了若干示例。这些示例不应被解释为限制所附权利要求书。另外,可以认识到,本文提供的示例可被改变而仍然落入权利要求的范围内。

Claims (15)

1.一种系统,包括:
预测器组件(212),所述预测器组件(212)预测虚拟机对计算系统中的非对称存储器池的各部分的存取,其中所述非对称存储器池包括第一存储器和第二存储器,且其中所述第一存储器的性能特征与所述第二存储器的性能特征不相同;以及
存储器管理系统(214),所述存储器管理系统(214)至少部分地基于所述预测器组件所预测的对所述非对称存储器池的存取来将所述第一存储器的各部分分配给所述虚拟机。
2.如权利要求1所述的系统,其特征在于,所述性能特征包括关于处理器的等待时间。
3.如权利要求1所述的系统,其特征在于,所述性能特征包括关于处理器的带宽。
4.如权利要求1所述的系统,其特征在于,所述虚拟机在多核处理器的一核上执行。
5.如权利要求4所述的系统,其特征在于,所述第一存储器是包括所述多核处理器的芯片上的存储器。
6.如权利要求1所述的系统,其特征在于,所述第二存储器是可由多个处理器存取的存储器排。
7.如权利要求1所述的系统,其特征在于,所述存储器管理系统将所述第一存储器的页在正在对所述第一存储器和所述第二存储器进行存取的多个虚拟机之间进行分配。
8.如权利要求1所述的系统,其特征在于,所述存储器管理系统将所述第二存储器中分配给所述虚拟机的至少一页迁移至所述第一存储器中分配给所述虚拟机的至少一页。
9.如权利要求1所述的系统,其特征在于,其中多个虚拟机正在访问所述非对称存储器池,其中所述预测器组件被配置成预测所述多个虚拟机对所述非对称存储器池的各部分的存取,其中所述存储器管理系统至少部分地基于所述预测器组件所预测的对所述非对称存储器池的各部分的存取来将所述第一存储器的相应的各部分分配给所述多个虚拟机中的每一个。
10.一种方法,包括以下计算机可执行动作:
将地址空间分配给在计算装置上执行的虚拟机,其中所述地址空间是跨第一存储器和第二存储器的,其中所述第一存储器的性能特征与所述第二存储器的性能特征不相同;
获得所述虚拟机对所述第一存储器中的页以及所述第二存储器中的页的历史存取;
至少部分地基于所述虚拟机对所述第一存储器中的页以及所述第二存储器中的页的历史存取来预测所述虚拟机对所述第一存储器中的页以及所述第二存储器中的页的将来存取;以及
至少部分地基于所述虚拟机对所述第一存储器中的页以及第二存储器中的页的将来存取的预测来将数据从所述第一存储器迁移至所述第二存储器。
11.如权利要求10所述的方法,其特征在于,还包括监视与所述第一存储器和所述第二存储器相对应的存取位。
12.如权利要求10所述的方法,其特征在于,还包括:
将地址空间分配给在所述计算设备上执行的多个虚拟机,其中所述多个虚拟机中的每一个被分配跨所述第一存储器和所述第二存储器的地址空间;
获得所述多个虚拟机对所述第一存储器中的页以及所述第二存储器中的页的历史存取;
至少部分地基于所述多个虚拟机对所述第一存储器中的页以及所述第二存储器中的页的历史存取来预测所述多个虚拟机对所述第一存储器中的页以及所述第二存储器中的页的将来存取;以及
至少部分地基于对所述多个虚拟机对所述第一存储器中的页以及所述第二存储器中的页的将来存取的预测来将所述第一存储器的各部分分配给相应的所述多个虚拟机。
13.如权利要求10所述的方法,其特征在于,所述方法被配置成以供在所述计算设备上执行的系统管理程序中执行。
14.如权利要求10所述的方法,其特征在于,还包括:
至少部分地基于对所述虚拟机对所述第一存储器中的页以及第二存储器中的页的将来存取的预测来将页从所述第一存储器迁移至所述第二存储器。
15.如权利要求10所述的方法,其特征在于,还包括:
对于地址空间中被分配给所述虚拟机的每一页,计算指示一阈值时间量内对各个页的存取次数的度量;以及
至少部分地基于所述度量来预测所述虚拟机对所述第一存储器中的页以及所述第二存储器中的页的将来存取模式。
CN201110245091.1A 2010-08-17 2011-08-16 带有非对称存储器的系统中的虚拟机存储器管理 Active CN102402399B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/857,562 2010-08-17
US12/857,562 US9009384B2 (en) 2010-08-17 2010-08-17 Virtual machine memory management in systems with asymmetric memory

Publications (2)

Publication Number Publication Date
CN102402399A true CN102402399A (zh) 2012-04-04
CN102402399B CN102402399B (zh) 2015-07-29

Family

ID=45594964

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110245091.1A Active CN102402399B (zh) 2010-08-17 2011-08-16 带有非对称存储器的系统中的虚拟机存储器管理

Country Status (2)

Country Link
US (1) US9009384B2 (zh)
CN (1) CN102402399B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110730956A (zh) * 2017-06-19 2020-01-24 超威半导体公司 用于降低存储器系统中的页面迁移开销的机制
CN111880724A (zh) * 2018-05-03 2020-11-03 联发科技股份有限公司 存储器管理系统和存储器管理方法
CN112241308A (zh) * 2020-10-21 2021-01-19 海光信息技术股份有限公司 一种虚拟机标识处理方法、装置及相关设备

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9342450B2 (en) * 2011-11-29 2016-05-17 Red Hat Israel, Ltd. On-demand hypervisor memory mapping
US9753831B2 (en) * 2012-05-30 2017-09-05 Red Hat Israel, Ltd. Optimization of operating system and virtual machine monitor memory management
US8830716B2 (en) * 2012-09-29 2014-09-09 Intel Corporation Intelligent far memory bandwith scaling
US9244693B2 (en) * 2012-11-05 2016-01-26 Avago Technologies General Ip (Singapore) Pte. Ltd. System and method for booting multiple servers from snapshots of an operating system installation image while reducing access to unmodified portions of the installation image and reducing latencies between server ports
US9372825B1 (en) * 2013-02-27 2016-06-21 Netapp, Inc. Global non-volatile solid-state cache in a network storage system
US9747116B2 (en) 2013-03-28 2017-08-29 Hewlett Packard Enterprise Development Lp Identifying memory of a blade device for use by an operating system of a partition including the blade device
WO2014158161A1 (en) 2013-03-28 2014-10-02 Hewlett-Packard Development Company, L.P. Error coordination message for a blade device having a logical processor in another system firmware domain
US9781015B2 (en) * 2013-03-28 2017-10-03 Hewlett Packard Enterprise Development Lp Making memory of compute and expansion devices available for use by an operating system
US20150055456A1 (en) * 2013-08-26 2015-02-26 Vmware, Inc. Traffic and load aware dynamic queue management
US9696930B2 (en) * 2015-06-10 2017-07-04 International Business Machines Corporation Reducing new extent failures on target device during non-disruptive logical data set migration
US9886440B2 (en) 2015-12-08 2018-02-06 International Business Machines Corporation Snapshot management using heatmaps in a large capacity disk environment
US11422719B2 (en) * 2016-09-15 2022-08-23 Pure Storage, Inc. Distributed file deletion and truncation
US10228864B1 (en) * 2016-12-30 2019-03-12 Parallels International Gmbh Pre-fetching data based on memory usage patterns
KR102028096B1 (ko) * 2017-04-18 2019-10-02 한국전자통신연구원 하이퍼바이저 기반의 가상 머신 격리 장치 및 방법
US11099789B2 (en) 2018-02-05 2021-08-24 Micron Technology, Inc. Remote direct memory access in multi-tier memory systems
US10782908B2 (en) 2018-02-05 2020-09-22 Micron Technology, Inc. Predictive data orchestration in multi-tier memory systems
US11416395B2 (en) * 2018-02-05 2022-08-16 Micron Technology, Inc. Memory virtualization for accessing heterogeneous memory components
US10880401B2 (en) 2018-02-12 2020-12-29 Micron Technology, Inc. Optimization of data access and communication in memory systems
US10725690B2 (en) * 2018-05-18 2020-07-28 Intel Corporation Non-volatile memory cloning with hardware copy-on-write support
US10877892B2 (en) * 2018-07-11 2020-12-29 Micron Technology, Inc. Predictive paging to accelerate memory access
US10691611B2 (en) 2018-07-13 2020-06-23 Micron Technology, Inc. Isolated performance domains in a memory system
US11561834B2 (en) 2019-01-16 2023-01-24 Rambus Inc. Methods and systems for adaptive memory-resource management
US10852949B2 (en) 2019-04-15 2020-12-01 Micron Technology, Inc. Predictive data pre-fetching in a data storage device
WO2020226880A1 (en) * 2019-05-03 2020-11-12 University Of Pittsburgh-Of The Commonwealth System Of Higher Education Method and apparatus for adaptive page migration and pinning for oversubscribed irregular applications
US11586194B2 (en) 2019-08-12 2023-02-21 Micron Technology, Inc. Storage and access of neural network models of automotive predictive maintenance
US11635893B2 (en) 2019-08-12 2023-04-25 Micron Technology, Inc. Communications between processors and storage devices in automotive predictive maintenance implemented via artificial neural networks
US11853863B2 (en) 2019-08-12 2023-12-26 Micron Technology, Inc. Predictive maintenance of automotive tires
US11775816B2 (en) 2019-08-12 2023-10-03 Micron Technology, Inc. Storage and access of neural network outputs in automotive predictive maintenance
US11586943B2 (en) 2019-08-12 2023-02-21 Micron Technology, Inc. Storage and access of neural network inputs in automotive predictive maintenance
US11748626B2 (en) 2019-08-12 2023-09-05 Micron Technology, Inc. Storage devices with neural network accelerators for automotive predictive maintenance
US12061971B2 (en) 2019-08-12 2024-08-13 Micron Technology, Inc. Predictive maintenance of automotive engines
US11702086B2 (en) 2019-08-21 2023-07-18 Micron Technology, Inc. Intelligent recording of errant vehicle behaviors
US11361552B2 (en) 2019-08-21 2022-06-14 Micron Technology, Inc. Security operations of parked vehicles
US11498388B2 (en) 2019-08-21 2022-11-15 Micron Technology, Inc. Intelligent climate control in vehicles
US11435946B2 (en) * 2019-09-05 2022-09-06 Micron Technology, Inc. Intelligent wear leveling with reduced write-amplification for data storage devices configured on autonomous vehicles
US11409654B2 (en) 2019-09-05 2022-08-09 Micron Technology, Inc. Intelligent optimization of caching operations in a data storage device
US11693562B2 (en) 2019-09-05 2023-07-04 Micron Technology, Inc. Bandwidth optimization for different types of operations scheduled in a data storage device
US11650746B2 (en) 2019-09-05 2023-05-16 Micron Technology, Inc. Intelligent write-amplification reduction for data storage devices configured on autonomous vehicles
US11436076B2 (en) 2019-09-05 2022-09-06 Micron Technology, Inc. Predictive management of failing portions in a data storage device
US11250648B2 (en) 2019-12-18 2022-02-15 Micron Technology, Inc. Predictive maintenance of automotive transmission
US11531339B2 (en) 2020-02-14 2022-12-20 Micron Technology, Inc. Monitoring of drive by wire sensors in vehicles
US11709625B2 (en) 2020-02-14 2023-07-25 Micron Technology, Inc. Optimization of power usage of data storage devices
US11657007B2 (en) 2020-06-15 2023-05-23 Rambus Inc. Remote memory selection
US12067642B2 (en) 2020-09-23 2024-08-20 Advanced Micro Devices, Inc. Memory latency-aware GPU architecture
US20230021883A1 (en) * 2021-07-20 2023-01-26 Vmware,Inc. Migrating virtual machines in cluster memory systems
US11860773B2 (en) * 2022-02-03 2024-01-02 Micron Technology, Inc. Memory access statistics monitoring

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101040262A (zh) * 2004-10-15 2007-09-19 伊姆西公司 配置、监视和/或管理包括虚拟机的资源组
CN101201885A (zh) * 2006-09-29 2008-06-18 英特尔公司 一种在vt环境中操作的软件代理的篡改保护方法和装置
CN101334825A (zh) * 2007-06-29 2008-12-31 联想(北京)有限公司 应用程序管理和运行系统及方法
CN101655798A (zh) * 2008-08-18 2010-02-24 联想(北京)有限公司 一种计算机和虚拟机环境中应用程序部署和运行的方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7739684B2 (en) * 2003-11-25 2010-06-15 Intel Corporation Virtual direct memory access crossover
US20060143384A1 (en) * 2004-12-27 2006-06-29 Hughes Christopher J System and method for non-uniform cache in a multi-core processor
US20070136402A1 (en) 2005-11-30 2007-06-14 International Business Machines Corporation Automatic prediction of future out of memory exceptions in a garbage collected virtual machine
US8074034B2 (en) * 2007-07-25 2011-12-06 Agiga Tech Inc. Hybrid nonvolatile ram
US20090106571A1 (en) 2007-10-21 2009-04-23 Anthony Low Systems and Methods to Adaptively Load Balance User Sessions to Reduce Energy Consumption
WO2009108344A1 (en) 2008-02-29 2009-09-03 Vkernel Corporation Method, system and apparatus for managing, modeling, predicting, allocating and utilizing resources and bottlenecks in a computer network
US20110153978A1 (en) * 2009-12-21 2011-06-23 International Business Machines Corporation Predictive Page Allocation for Virtual Memory System

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101040262A (zh) * 2004-10-15 2007-09-19 伊姆西公司 配置、监视和/或管理包括虚拟机的资源组
CN101201885A (zh) * 2006-09-29 2008-06-18 英特尔公司 一种在vt环境中操作的软件代理的篡改保护方法和装置
CN101334825A (zh) * 2007-06-29 2008-12-31 联想(北京)有限公司 应用程序管理和运行系统及方法
CN101655798A (zh) * 2008-08-18 2010-02-24 联想(北京)有限公司 一种计算机和虚拟机环境中应用程序部署和运行的方法

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110730956A (zh) * 2017-06-19 2020-01-24 超威半导体公司 用于降低存储器系统中的页面迁移开销的机制
CN110730956B (zh) * 2017-06-19 2024-01-09 超威半导体公司 用于降低存储器系统中的页面迁移开销的机制
CN111880724A (zh) * 2018-05-03 2020-11-03 联发科技股份有限公司 存储器管理系统和存储器管理方法
CN112241308A (zh) * 2020-10-21 2021-01-19 海光信息技术股份有限公司 一种虚拟机标识处理方法、装置及相关设备
CN112241308B (zh) * 2020-10-21 2022-07-29 海光信息技术股份有限公司 一种虚拟机标识处理方法、装置及相关设备

Also Published As

Publication number Publication date
US20120047312A1 (en) 2012-02-23
US9009384B2 (en) 2015-04-14
CN102402399B (zh) 2015-07-29

Similar Documents

Publication Publication Date Title
CN102402399B (zh) 带有非对称存储器的系统中的虚拟机存储器管理
US10841241B2 (en) Intelligent placement within a data center
US9672064B2 (en) Dynamically adaptive, resource aware system and method for scheduling
CN103814358A (zh) 服务器群内的虚拟机放置
US10691502B2 (en) Task queuing and dispatching mechanisms in a computational device
CN104603739A (zh) 对并行存储的块级访问
US11029998B2 (en) Grouping of tasks for distribution among processing entities
US10185593B2 (en) Balancing categorized task queues in a plurality of processing entities of a computational device
WO2023154100A1 (en) Computing resource prediction for optimizing resource utilization and computing workload density
Li et al. PageRankVM: A pagerank based algorithm with anti-collocation constraints for virtual machine placement in cloud datacenters
US10812408B1 (en) Preventing concentrated selection of resource hosts for placing resources
Muchori et al. Machine learning load balancing techniques in cloud computing: A review
Sareen et al. Resource allocation strategies in cloud computing
Sun et al. An energy efficient and runtime-aware framework for distributed stream computing systems
US11336519B1 (en) Evaluating placement configurations for distributed resource placement
CN117009069A (zh) 虚拟云计算资源的调度方法及装置
US11381468B1 (en) Identifying correlated resource behaviors for resource allocation
Arivudainambi et al. Scheduling optimized secured virtual machine using cuckoo search and flow analyzer
Pu et al. An elastic framework construction method based on task migration in edge computing
Park et al. IoT Edge Orchestration for Distributed DNN Service with Containerized Resource Allocation
US20230259408A1 (en) Computing resource prediction for optimizing resource utilization and computing workload density
US20220147370A1 (en) Management of computing devices
US12045664B1 (en) Classifying workloads for burstable compute platforms
Chen et al. Data prefetching for scientific workflow based on hadoop
Noureldin et al. Rationalizing resource utilization in cloud computing using coalition formation strategy

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150720

C41 Transfer of patent application or patent right or utility model
TR01 Transfer of patent right

Effective date of registration: 20150720

Address after: Washington State

Patentee after: Micro soft technique license Co., Ltd

Address before: Washington State

Patentee before: Microsoft Corp.