在物理处理单元中调度虚拟机的虚拟中央处理单元的制作方法

文档序号:6485362阅读:151来源:国知局
在物理处理单元中调度虚拟机的虚拟中央处理单元的制作方法
【专利摘要】本文说明的装置、计算机实现的方法、系统、以及计算机可读介质的实施例用于虚拟机监控器。虚拟机监控器可以被配置为判定是否在多个物理处理单元的第一物理处理单元上调度多个虚拟机中的一个的虚拟中央处理单元。每个虚拟机可以具有一个或多个虚拟中央处理单元。判定可以至少部分基于当操作虚拟中央处理单元时,虚拟中央处理单元的上下文是否暗示由第一物理处理单元在装置的一个或多个缓存单元上期望的缓存命中率。
【专利说明】在物理处理单元中调度虚拟机的虚拟中央处理单元
【技术领域】
[0001]概括地讲,本发明的实施例涉及数据处理的【技术领域】,更具体而言,涉及在物理处理单元中调度虚拟机的虚拟中央处理单元。
【背景技术】
[0002]此处提供的背景说明是为了一般呈现本公开的上下文的目的。目前提到的发明人的工作(按照该【背景技术】部分中说明的程度),以及在申请时本说明中不得以其他方式有资格作为的已有技术的各方面,并没有明确地或隐含地承认作为对于本公开的已有技术。除非本文中明确表明,否则在该部分中说明的方法不是本公开中权利要求的已有技术,包含在该部分中不承认为已有技术。
[0003]现有的虚拟机监控器(有时被称为“管理程序”)可以在多个物理处理单元(例如处理器、处理器核、由超线程处理器执行的逻辑处理器、云计算机系统中的主机)中调度虚拟机的虚拟中央处理单元,并在其上将虚拟机实例化。
[0004]当今,虚拟机监控器趋向于使用粗糙级别上的实证启发法来在多个物理处理单元中调度虚拟中央处理单元。这些粗糙的启发式技术通常对大多数工作负荷具有最小的冲击、或者在一些特定方案中有性能提升。
【专利附图】

【附图说明】
[0005]实施例通过结合附图的下面的具体说明变得容易理解。为了便于该说明,相似的参考标记指定相似的构成因素。在附图的图中以示例的方式,而非限制的方式示出了实施例。
[0006]图1依据各种实施例概要示出了与虚拟机监控器关联的部件可以如何交互,以在多个物理处理单元中调度虚拟机的虚拟中央处理单元的示例。
[0007]图2依据各种实施例概要描述了用于在多个物理处理单元的物理处理单元上调度虚拟机的虚拟中央处理单元的示例方法。
[0008]图3依据各种实施例概要描述了用于在多个物理处理单元中迁移和/或调度虚拟机的一个或多个虚拟中央处理单元的示例方法。
[0009]图4依据各种实施例概要描述了在其上可以实现各种公开的方法的示例系统。【具体实施方式】
[0010]本文说明的装置、计算机实现的方法、系统、以及计算机可读介质的实施例针对虚拟机监控器。虚拟机监控器可以被配置为判定是否在多个物理处理单元的第一物理处理单元上调度多个虚拟机中的一个的虚拟中央处理单元。每个虚拟机可以具有一个或多个虚拟中央处理单元。所述判定可以至少部分基于当操作虚拟中央处理单元时,虚拟中央处理单元的上下文是否暗示由第一物理处理单元在装置的一个或多个缓存单元上期望的缓存命中率。[0011]在下面的【具体实施方式】中,参考形成其一部分的附图,其中,相似的数字指定相似的部分,并且以可以实践的示出实施例的方式显示。应该理解的是,可以利用其他实施例,并且可以做出构造或者逻辑改变,而不脱离本公开的范围。因此,下面的【具体实施方式】不应理解为限制意义,并且实施例的范围被所附权利要求及其等同物定义。
[0012]以最有帮助理解权利要求的主题的方式,各种操作可以依次描述为多个离散动作或者操作。然而,描述的顺序不应解释为隐含这些操作一定是依赖顺序的。尤其是,这些操作可能不以呈现的顺序执行。说明的操作可以以不同于说明的实施例的顺序执行。可以执行各种额外的操作和/或说明的操作可以在额外的实施例中省略。
[0013]对于本公开的目的而言,词组“A和/或B”意味着㈧、⑶、或者(A和B)。对于本公开的目的而言,词组“A、B和/或C”意味着㈧、⑶、(C)、(A和B)、(A和C)、(B和C)、或者(A、B、以及C)。
[0014]说明可以使用词组“在实施例中”,这是指一个或多个相同的或者不同的实施例。此外,术语“包括”、“包含”、“具有”等,在本公开的实施例中使用时是同义的。
[0015]本文使用的术语“模块”可以指、是一部分、或者包含:特定应用集成电路(“ASIC”)、电子电路、执行一个或多个软件或者固件程序的处理器(共享的、专用的、或者组)和/或存储器(共享的、专用的、或者组)、组合逻辑电路、和/或提供说明的功能的其他适当部件。
[0016]本文使用的“缓存命中率”可以指缓存命中对缓存命中与缓存未命中的总和的比率(例如,缓存命中/ (缓存未命中+缓存命中))。
[0017]本文使用的没有被“虚拟”更改的“物理处理单元”或者“处理单元”可以指具有被配置以执行指令的缓存存储器的任何装置,例如单个的处理器(处理器还可以称作中央处理单元、或者“CPU”)、合作动作的多个处理器、一个或多个处理器核、由超线程物理处理器执行的一个或多个逻辑处理器、合作动作的云计算机系统的一个或多个主机等。
[0018]图1依据各种实施例概要描述了可以实现为在多个物理处理单元102中调度虚拟机(未示出)的虚拟中央处理单元100的示例部件。每个物理处理单元102可以具有关联的缓存单元103。在各种实施例中,共享缓存单元103的多个处理器或者核,例如顶部的2个物理处理单元102可以称作“同胞(sibling) ”。在各种实施例中,虚拟机和/或虚拟机的虚拟中央处理单元可以在分开的同胞上调度,而不会牺牲期望的缓存命中率。
[0019]虚拟机监控器104可以包含虚拟机监控器调度器106。在一些实施例中,虚拟机监控器调度器106可以是与虚拟机监控器104通信的分开的模块。虚拟机监控器调度器106可以包含调度器核108,调度器核108可以从各种源接收数据,并基于接收到的数据,在多个物理处理单元102中调度虚拟中央处理单元100,如箭头A(I)和A (2)所示,以通过物理处理单元102实现缓存单元103的期望的缓存命中率。可以使用软件、硬件、和/或两者的组合来实现这些部件中的每个。
[0020]一个或多个杂项输入过滤器110可以提供各种数据给调度器核108,例如图1中箭头B(I)-B(N)所表明的。一个示例可以是基于时间的采样器过滤器。该过滤器可以追踪由一个或多个物理处理单元102操作的虚拟中央处理单元100的消耗的计算周期。
[0021]在各种实施例中,内在缓存提示过滤器112可以被配置为接收和/或获得关于一个或多个虚拟中央处理单元(或更一般而言为虚拟机)的上下文的信息。虚拟中央处理单元上下文可以包含关于虚拟中央处理单元的各种信息,例如虚拟机从其启动的模板(例如Linux、Windows? )(其中虚拟中央处理单元是虚拟机的一部分)、当操作相同(或不同)的虚拟机的虚拟中央处理单元或者其他虚拟中央处理单元时由物理处理单元102访问的存储器页面等。在相同的物理处理单元上操作的虚拟中央处理单元之间的上下文类似性可以影响物理处理单元的性能。一般而言,由物理处理单元操作的虚拟中央处理单元之间的上下文类似性越高,在缓存单元上可以体验越高的缓存命中率,因此,对于物理处理单元可以实现改善的总体性能。
[0022]内在缓存提示过滤器112可以提供虚拟中央处理单元上下文信息(其可以称作“缓存提示”)给调度器核108,例如由箭头C所表明的。在各种实施例中,虚拟机监控器104和/或调度器核108可以调度和/或更改在多个物理处理单元102中虚拟中央处理单元100的调度,以及至少部分基于接收到的缓存提示将其上的虚拟机实例化。
[0023]内在缓存提示过滤器112可以从各种源接收和/或获得虚拟中央处理单元上下文信息。例如,内在缓存提示过滤器112可以从页面共享代理114(例如在箭头D处)接收关于存储器页面的信息,所述存储器页面可以在多个虚拟中央处理单元100中共享或者潜在共享。页面共享代理114可以被配置为对一个或多个虚拟中央处理单元100的页面共享统计进行编译。虚拟机监控器104和/或调度器核108可以被配置为至少部分基于由页面共享代理114编译的页面共享统计,来调度和/或更改在多个物理处理单元102中虚拟中央处理单元100的调度。在图1的实施例中,页面共享代理114与虚拟机监控器104分开但是可操作地耦合,但是在其他实施例中,页面共享代理可以实现为虚拟机监控器104和/或虚拟机监控器调度器106的一部分。
[0024]在各种实施例中,由页面共享代理114编译的页面共享统计可以包含两个或更多的虚拟中央处理单元或者它们各自的虚拟机的页面共享比率。例如,操作虚拟机A的虚拟中央处理单元的物理处理单元可以访问90%的与当它操作虚拟机B的虚拟中央处理单元时相同的存储器页面。因此,虚拟机A与虚拟机B之间的页面共享比率可以是90%。如果虚拟机A和虚拟机B的虚拟中央处理单元在相同的物理处理单元上调度,那么这样的高百分比可以暗示期望的缓存命中率,由于在执行时间由虚拟机A的虚拟中央处理单元装载的缓存内容可以被虚拟机B的虚拟中央处理单元重复使用。
[0025]在各种实施例中,内在缓存提示过滤器112可以从用户输入接收信息。例如,网络托管业务的管理员可以知晓哪些虚拟机从相同的模板供给、或者哪些虚拟机可能共享最多的存储器页面。该管理员可以使用用户界面来直接向内在缓存提示过滤器112指明缓存提
/Jn ο
[0026]缓存提示剖析代理116可以被配置为:周期性或者响应于各种事件,利用各种剖析技术来测量物理处理单元102的缓存命中率。缓存提示剖析代理116可以提供这些结果给内在缓存提示过滤器112,例如在箭头E处。内在缓存提示过滤器112可以反过来基于那些结果,提供缓存命中率测量结果和/或缓存提示给调度器核108,例如在箭头C处。调度器核108和/或虚拟机监控器104可以至少部分基于如由缓存提示剖析代理116测量的物理处理单元102的缓存命中率,来调度和/或更改多个物理处理单元102中的虚拟中央处理单元100的调度。
[0027]作为缓存提示剖析代理116可以如何测量缓存命中率的示例,页面共享代理114可以提供页面共享统计或者其他页面共享信息(例如在箭头F处)给缓存提示剖析代理116。缓存提示剖析代理116可以反过来在箭头E处提供该信息或者基于其的缓存提示给内在缓存提示过滤器112。只使用该信息或者与其他信息一起使用该信息,内在缓存提示过滤器112可以产生缓存提示以发送给虚拟机监控器104和/或调度器核108。调度器核108和/或虚拟机监控器104可以使用这些缓存提示,以在多个物理处理单元102中调度和/或更改虚拟中央处理单元100的调度。
[0028]作为缓存提示剖析代理116可以如何测量缓存命中率的另一个示例,性能监控单元代理118(图1中记为“PMU代理”)可以被配置为与性能监控单元120交换信息,例如在箭头G处,并提供该信息给缓存提示剖析代理116,例如在图1中的箭头I处。性能监控单元120可以被配置为收集关于一个或多个物理处理单元和/或关联的存储器的操作的统计,例如在箭头H处。虚拟机监控器104和/或调度器核108可以基于由性能监控单元代理118提供的信息,调度和/或更改多个物理处理单元102中的虚拟中央处理单元100的调度。虽然图1示出单个的性能监控单元120,但应该理解的是可以包含任何数量的性能监控单元,例如每个物理处理单元102都有一个性能监控单元。
[0029]性能监控单元120和/或性能监控单元代理118的操作可能需要计算资源。因此,在各种实施例中,缓存提示剖析代理116和/或其他部件可以被配置为将性能监控单元代理118和/或性能监控单元120选择性激活和/或停止,例如在箭头I处。在各种实施例中,调度器核108可以使用通过性能监控单元120在选择的时间间隔期间采样的数据来引导其做出调度决策,其中所述时间间隔作为更长间隔的时间的代表。在一些实施例中,调度器核108或者另一个部件可以请求缓存提示剖析代理116激活/停止性能监控单元代理118,例如在箭头J处。
[0030]性能监控单元120和/或性能监控单元代理118可以基于各种因素被激活和/或停止。例如,在各种实施例中,当在预定的时间间隔期间,由虚拟机监控器104和/或调度器核108进行的虚拟机的虚拟中央处理单元的调度的动作的计数超过预定的阈值(例如100)时,性能监控单元代理118可以例如由调度器核108或者缓存提示剖析代理116激活。在该方案中,性能监控单元120和/或性能监控单元代理118可以被激活,以在调度的一个或多个那些动作期间从一个或多个物理处理单元采样数据。同样,在各种实施例中,当在预定的时间间隔期间,由虚拟机监控器104和/或调度器核108进行的调度的动作的计数降到预定的阈值以下时,性能监控单元或者性能监控单元代理118例如可以由调度器核108或者缓存提示剖析代理116停止。
[0031]额外地或替代地,虚拟机监控器104和/或调度器核108可以在预定的时间间隔期间周期性激活性能监控单元120和/或性能监控单元代理118。
[0032]在各种实施例中,对特定物理处理单元,性能监控单元或者性能监控单元代理118例如可以被虚拟机监控器104、调度器核108、和/或缓存提示剖析代理116激活。例如,假定有2个物理处理单元:CPU_0和CPU_1。虚拟机监控器104、调度器核108、和/或缓存提示剖析代理116可以激活与CPU_0相关联的性能监控单元,但是停止与CPU_1相关联的性能监控单元。
[0033]在一些实施例中,当性能监控单元代理118和/或性能监控单元120与虚拟机的特定虚拟中央处理单元同时启动时,当所述虚拟中央处理单元要被调度出时,虚拟机监控器104和/或调度器核108可以停止性能监控单元或者性能监控单元代理118。在这样的实施例中,缓存提示剖析代理116可以在要调度出虚拟中央处理单元的操作期间,计算缓存命中率CacheHitRate—t,并在调度接下来的虚拟中央处理单元时,利用其来计算要由调度器核108考虑的新的上下文类似性ContextSimilaritynew。例如,缓存提示剖析代理116可以利用例如如下的衰变算法来计算ContextSimilaritynew:
[0034]ContextSimi Iaritynew = CacheHitRatecurrentXlO %+ContextSimilarityprevious X 80 %
[0035]虽然此处使用了特定百分比,但应该理解的是可以使用其他更高或者更低的百分t匕。例如ContextSimilaritynew和ContextSimilarityprevitjus的上下文类似性可以以各种方式计算出。在没有页面共享代理的实施例中,性能监控单元可以为了计算缓存的命中率,被用于测量缓存命中或者缓存未命中。上下文类似性可以是计算的缓存命中率的函数(例如,ContextSimilarity = f (CacheHitRate))。在具有页面共享代理的实施例中,上下文类似性可以基于由页面共享代理提供的页面共享统计。
[0036]缓存提示可以包含各种信息。在一些实施例中,尤其是当页面共享代理提供页面共享统计时,缓存提示可以包含关于要被调度的虚拟中央处理单元的虚拟机的相对简单的信息,如下面的示例所示:
[0037]
【权利要求】
1.至少一种计算机可读存储介质,其中存储有多个指令,所述多个指令被配置为提供具有虚拟机监控器的装置,作为对由所述装置执行所述指令的响应,其中所述虚拟机监控器被配置为判定是否在多个物理处理单元的第一物理处理单元上调度多个虚拟机中的一个的虚拟中央处理单元,其中每个虚拟机具有一个或多个虚拟中央处理单元,并且其中所述判定至少部分基于当操作所述虚拟中央处理单元时,所述虚拟中央处理单元的上下文是否暗示由所述第一物理处理单元在所述装置的一个或多个缓存单元上期望的缓存命中率。
2.如权利要求1所述的至少一种计算机可读存储介质,其中所述虚拟中央处理单元的上下文包含当操作所述虚拟中央处理单元时,由所述第一物理处理单元访问的一个或多个存储器页面。
3.如前述权利要求中任一项所述的至少一种计算机可读存储介质,其中所述虚拟中央处理单元的上下文包含用于启动所述多个虚拟机中的一个的模板。
4.如前述权利要求中任一项所述的至少一种计算机可读存储介质,其中所述虚拟机监控器还被配置为基于测量到的所述第一物理处理单元的的缓存命中率,来判定是否在所述第一物理处理单元上调度所述虚拟中央处理单元。
5.如权利要求4所述的至少一种计算机可读存储介质,其中所述虚拟机监控器还被配置为周期性测量由所述第一物理处理单元在所述装置的一个或多个缓存单元上的缓存命中率。
6.如前述权利要求中任一项所述的至少一种计算机可读存储介质,其中所述虚拟机监控器还被配置为基于所述多个虚拟机的页面共享统计,来判定是否在所述第一物理处理单元上调度所述虚拟中央处理单元。
7.如权利要求6所述的至少一种计算机可读存储介质,其中所述页面共享统计包含页面共享比率。
8.如前述权利要求中任一项所述的至少一种计算机可读存储介质,其中所述第一物理处理单元是云计算系统的主机。
9.如前述权利要求中任一项所述的至少一种计算机可读存储介质,其中所述第一物理处理单元包括共享缓存的一个或多个微处理器核。
10.如前述权利要求中任一项所述的至少一种计算机可读存储介质,其中所述第一物理处理单元包括超线程处理器的一个或多个逻辑处理器。
11.如权利要求1-10中任一项所述的至少一种计算机可读存储介质,其中所述虚拟机监控器还被配置为基于由性能监控单元提供的信息,来判定是否在所述第一物理处理单元上调度所述虚拟中央处理单元。
12.如权利要求11所述的至少一种计算机可读存储介质,其中所述虚拟机监控器还被配置为在预定的时间间隔周期性激活所述性能监控单元。
13.如权利要求11所述的至少一种计算机可读存储介质,其中所述虚拟机监控器还被配置为当在预定的时间间隔期间由所述虚拟机监控器进行的虚拟中央处理单元的调度的动作的计数超过预定的阈值时,激活所述性能监控单元。
14.如权利要求13所述的至少一种计算机可读存储介质,其中所述虚拟机监控器还被配置为当在预定的时间间隔期间由所述虚拟机监控器进行的虚拟中央处理单元的调度的动作的计数降到所述预定的阈值以下时,停止所述性能监控单元。
15.—种系统,包括: 多个物理处理单元; 一个或多个缓存单元;以及 虚拟机监控器,其由所述处理单元中的一个进行操作; 其中所述虚拟机监控器被配置为判定是否在多个物理处理单元的第一物理处理单元上调度多个虚拟机中的一个的虚拟中央处理单元,其中每个虚拟机具有一个或多个虚拟中央处理单元,并且其中所述判定至少部分基于当操作所述虚拟中央处理单元时,所述虚拟中央处理单元的上下文是否暗示由所述物理处理单元在所述系统的一个或多个缓存单元上期望的缓存命中率。
16.如权利要求15所述的系统,还包括由一个处理单元操作的内在缓存提示过滤器,其被配置为接收关于所述虚拟中央处理单元的上下文的信息,其中所述虚拟机监控器至少部分基于接收到的信息,来判定是否在所述第一物理处理单元上调度所述虚拟中央处理单J Li ο
17.如权利要求16所述的系统,其中由所述内在缓存提示过滤器接收到的关于所述虚拟中央处理单元的上下文的信息包含用于启动所述多个虚拟机中的一个的模板。
18.如权利要求16或者17所述的系统,其中由所述内在缓存提示过滤器接收到的关于所述虚拟中央处理单元的上下文的信息包含:当操作所述虚拟中央处理单元时,由所述第一物理处理单元访问的一个或多个存储器页面。
19.如权利要求15-18中任一项所述的系统,其中所述虚拟机监控器还被配置为基于测量到的所述第一物理处理单元的缓存命中率,来判定是否在所述第一物理处理单元上调度所述虚拟中央处理单元。
20.如权利要求19所述的系统,还包括缓存提示剖析代理,其被配置为周期性地测量所述第一物理处理单元的缓存命中率。
21.如权利要求15-20中任一项所述的系统,还包括由一个处理单元操作的页面共享代理,其被配置为编译多个虚拟机的页面共享统计,其中所述虚拟机监控器还被配置为基于所编译的页面共享统计,来判定是否在所述第一物理处理单元上调度所述虚拟中央处理单元。
22.如权利要求21所述的系统,其中所编译的页面共享统计包含页面共享比率。
23.如权利要求15-22中任一项所述的系统,其中所述多个物理处理单元包括云计算系统的主机。
24.如权利要求15-22中任一项所述的系统,其中所述第一物理处理单元包括微处理器核。
25.如权利要求15-22中任一项所述的系统,其中所述第一物理处理单元包括被配置用于超线程的处理器的逻辑处理单元。
26.如权利要求15-25中任一项所述的系统,还包括性能监控单元,其中所述虚拟机监控器 还被配置为基于由所述性能监控单元提供的信息,来判定是否在所述第一物理处理单元上调度所述虚拟中央处理单元。
27.如权利要求26所述的系统,其中所述虚拟机监控器还被配置为在预定的时间间隔周期性地激活所述性能监控单元。
28.如权利要求26所述的系统,其中所述虚拟机监控器还被配置为当在预定的时间间隔期间由所述虚拟机监控器进行的虚拟中央处理单元的调度的动作的计数超过预定的阈值时,激活所述性能监控单元。
29.如权利要求28所述的系统,其中所述虚拟机监控器还被配置为当在预定的时间间隔期间由所述虚拟机监控器进行的虚拟中央处理单元的调度的动作的计数降到所述预定的阈值以下时,停止所述性能监控单元。
30.如权利要求15-29中任一项所述的系统,还包括可由一个所述处理单元操作的照相机,以捕捉图像数据用于存储在存储器中。
31.一种方法,包括: 通过虚拟机监控器接收关于由多个物理处理单元操作的多个虚拟机的上下文信息;以及 通过所述虚拟机监控器判定是否在多个物理处理单元的第一物理处理单元上调度所述多个虚拟机中的一个的虚拟中央处理单元,其中每个虚拟机具有一个或多个虚拟中央处理单元,并且其中所述判定至少部分基于当操作所述虚拟中央处理单元时,接收到的上下文信息是否暗示由所述第一物理处理单元在一个或多个缓存单元上期望的缓存命中率。
32.如权利要求31所述的方法,其中接收到的上下文信息包含用于启动所述多个虚拟机中的一个的模板,或者所述多个虚拟机的页面共享统计。
33.如权利要求31或32所述的方法,还包括: 通过所述虚拟机监控器监控由所述第一物理处理单元在一个或多个缓存单元上的缓存命中率;以及 通过所述虚拟机监控器,至少部分基于所监控的缓存命中率,来判定是否调度所述虚拟中央处理单元给所述第一物理处理单元。
34.如权利要求31-33中任一项所述的方法,其中所述第一物理处理单元包括云计算系统的主机或者微处理器核。
35.如权利要求31-34中任一项所述的方法,还包括通过所述虚拟机监控器,至少部分基于由性能监控单元提供的信息,来判定是否在所述第一物理处理单元上调度所述虚拟中央处理单元。
36.如权利要求35所述的方法,还包括在预定的时间间隔,通过所述虚拟机监控器周期性地激活所述性能监控单元。
37.如权利要求36所述的方法,还包括: 当在预定的时间间隔期间由所述虚拟机监控器进行的虚拟中央处理单元的调度的动作的计数超过预定的阈值时,通过所述虚拟机监控器激活所述性能监控单元;以及 当在预定的时间间隔期间由所述虚拟机监控器进行的虚拟中央处理单元的调度的动作的所述计数降到所述预定的阈值以下时,通过所述虚拟机监控器停止所述性能监控单J Li ο
【文档编号】G06F9/455GK104011680SQ201180075895
【公开日】2014年8月27日 申请日期:2011年12月26日 优先权日:2011年12月26日
【发明者】董耀祖, 田坤 申请人:英特尔公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1