监视由虚拟机的资源使用的制作方法
【专利摘要】本文描述用于追踪独立于虚拟机监视器(“VMM”)的每虚拟机(“VM”)资源使用的设备、计算机实现的方法、系统、装置以及计算机可读媒体的实施例。在各实施例中,第一逻辑单元可将由计算装置的一个或更多物理处理单元操作的一个或更多虚拟中央处理单元(“vCPU”)与由计算装置操作的多个VM的第一VM关联,并且收集关于由一个或更多物理处理单元使用的资源的数据来操作与第一VM关联的一个或更多vCPU。在各实施例中,计算装置的第二逻辑单元可基于收集的数据来确定由第一VM的资源使用。在各实施例中,第一和第二逻辑单元可执行独立于计算装置的VMM的这些功能。
【专利说明】监视由虚拟机的资源使用
[0001]对相关申请的交叉引用
本申请要求2012年6月20日提交的美国专利申请N0.13/528,628的优先权,其全部内容通过引用完整并入本文用于所有目的。
【技术领域】
[0002]本发明的实施例通常涉及数据处理的【技术领域】,并且更特别地涉及监视由一个或更多虚拟机的资源使用。
【背景技术】
[0003]本文提供的背景描述是为了概括地呈现本公开的上下文。就在此【背景技术】中描述的程度而言,以及在提交时可以不另外地取得现有技术资格的描述的方面,目前提名的
【发明者】的工作既没有明确地也没有隐含地被承认为相对本公开的现有技术。除非在本文中另外指示,在此部分中描述的方法不是本公开中的权利要求的现有技术,并且不通过包含于此部分而承认为现有技术。
[0004]共享的计算资源(例如,web服务器或数据中心)可利用虚拟化来使用户/消费者彼此隔离。虚拟机监视器(“VMM”)可在共享的计算资源上操作一个或更多虚拟机(“VM”)。一些VMM可具有能力来在每VM (per-VM)基础上监视资源使用。这可允许各种VM相关的能力,例如,工作负载均衡、退款、服务质量(“QoS”)实施、等等。
【专利附图】
【附图说明】
[0005]结合附图由下文的详细描述将容易理解实施例。为了便于此描述,相似的参考标号指代相似的结构元件。在附图中,以示例的方式而不以限制的方式来图示实施例。
[0006]图1示意性地图示根据各实施例,可如何用本公开的教导的可应用部分来配置部件的示例。
[0007]图2-图4示意性地图示根据各实施例,各种部件可如何协作来监视虚拟机的资源使用的示例。
[0008]图5示意性地描绘根据各实施例,可在其上实现公开的方法和计算机可读媒体的示例计算装置。
【具体实施方式】
[0009]在下文的详细描述中,对形成附图的一部分的附图进行参考,其中全篇相似的标号指代相似的部分,并且其中通过图示的方式示出可实践的实施例。要理解,可利用其它实施例并且可做出结构或逻辑的改变而没有背离本公开的范围。因此,下文的详细描述不应被理解为限制的意义,并且实施例的范围是由所附的权利要求和它们的等同物来定义。
[0010]各种操作可依次被描述为多个离散动作或操作,以最有助于理解要求保护的主题的方式。然而,描述的次序不应解释为暗示这些操作一定是次序相关的。特别地,可以不用呈现的次序来执行这些操作。可以用与描述的实施例不同的次序来执行描述的操作。可执行各种附加的操作和/或在附加的实施例中可省略描述的操作。
[0011]为了本公开的目的,短语“A和/或B”意味着(A)、(B)或(A和B)。为了本公开的目的,短语“A、B和/或C”意味着(A)、(B)、(C)、(A和B)、(A和C)、(B和C)或(A、B和C)。
[0012]描述可使用短语“在一实施例中”或“在实施例中”,各自可指一个或更多相同的或不同的实施例。此外,如相对于本公开的实施例使用的,术语“包括”、“包含”、“具有”等是同义的。
[0013]如本文所使用的,术语“逻辑”、“逻辑单元”或“模块”可指或包含专用集成电路(“ASIC”)、电子电路、处理器(共享、专用或群组)和/或执行一个或更多软件或固件程序的存储器(共享、专用或群组)、组合逻辑电路和/或提供描述的功能性的其它合适的部件,或者是其一部分。
[0014]现在参考图1,用于操作一个或更多虚拟机(“VM”)并且可被称作“管理的虚拟服务器”的示例计算装置100可包含存储器102和其它物理硬件104。虽然在图1中未示出,但是物理硬件104可包含各种部件,例如,一个或更多物理处理单元(例如,处理器核)、关联的固件、一个或更多输入/输出(“I/O”)装置、等等。在图5中描绘许多这样的部件。
[0015]在各实施例中,VMM 106可被称作“用户安装的”和/或“访客”VMM。在各实施例中,VM可以是容器。在那个容器内可执行操作系统和一个或更多应用。在执行期间,VM可消耗计算资源(例如,处理器周期、缓存和存储器带宽),并且可为了这些计算资源而与其它VM竞争。因此,可监视每个VM的资源利用。例如,VMM 106可配置为监视每VM资源使用。
[0016]物理硬件104 (例如,与一个或更多物理处理单元关联的微程序)可配置为提供可用于确定每VM资源使用的各种能力,例如,缓存服务质量(“QoS”)监视和/或存储器带宽监视。然而,VMM 106可不被设计为利用这些能力。因此,在各实施例中,计算装置100的一个或更多逻辑单元可配置为独立于VMM 106来确定每VM资源使用。
[0017]例如,在图1中,计算装置100的一个或更多逻辑单元可起到每VM资源监视器110的作用。在各实施例中,每VM资源监视器110可与计算装置100和/或计算装置100外部的其它逻辑单元协作来促进每VM资源监视。在各实施例中,每VM资源监视器110可配置为拦截虚拟中央处理单元(“vCPU”)的调度,关联vCPU与一个或更多物理处理单元,和/或当vCPU与一个或更多物理处理单元之间的关联活动时,监视由一个或更多物理处理单元的资源利用。如将另外讨论的,每VM资源监视器110可将此信息提供到其它逻辑单元(例如,平台级聚合器和/或资源监视器插件),使得可独立于VMM 106来确定每VM资源使用。
[0018]可使用计算装置100中的各种部件来实现每VM资源监视器110。在各实施例中,可由部件(例如,与物理处理单元关联的微程序)来操作每VM资源监视器110。例如,在图1中,每VM资源监视器110执行“下面的”(例如,具有更高执行特权)VMM 106。在各实施例中,例如在图1中,可在存储器102的外部(例如,在固件中,例如,与计算装置100的一个或更多物理处理单元关联的微代码)实现每VM资源监视器110。然而,这不意味着限制,并且在各实施例中,每VM资源监视器110可实现为存储器102内的软件。在一些实施例中,每VM资源监视器110可实现为“根"VMM,并且可操作其自己的VM 112中的一个或更多。如箭头所示的,每VM资源监视器110可配置为观察VM入口和/或VM出口。能够观察这样的VM入口和出口并且因此可用于实现每VM资源监视器110的逻辑单元的一个示例是由加利福尼亚州圣克拉拉的Intel?公司的Intel?虚拟化技术(“VT”)微代码。
[0019]图2-图4描绘示例计算装置200,在操作的各种阶段中,它可类似于图1的计算装置100。类似计算装置100,计算装置200可以是管理的虚拟服务器。在各实施例中,计算装置200可包含配置有本公开的可应用部分的逻辑单元来协作追踪独立于VMM的每VM资源使用。图2描绘准备监视每VM资源使用的计算装置200。图3描绘可如何监视由与VM关联的一个或更多vCPU使用的计算资源。图4描绘可如何聚合监视的vCPU资源使用来确定每VM资源使用。
[0020]计算装置200可操作VMM 206,它可类似于图1的访客VMM 106。VMM 206可配置为操作一个或更多VM 208,它们可类似于图1中的VM 108。在各实施例中,VMM 206可包含管理接入点(“MAP”)207以及在图2中未示出的其它部件(例如,创建和/或破坏VM的部件)。
[0021]工作负载调度器214可指引VMM 206启动VM 208。在各实施例中,工作负载调度器可在不同于计算装置200的计算装置上操作。例如,在各实施例中,工作负载调度器214可实现在单独的计算装置上,例如,管理多个管理的虚拟服务器的工作负载的VM管理计算装置(未示出)(例如,计算装置200)。例如,计算装置200可以是一起形成数据中心(未示出)的多个计算装置中的一个,并且工作负载调度器214可管理数据中心的工作负载。
[0022]可提供资源监视器插件216来启动和/或控制VM 208的资源监视。类似于工作负载调度器214,资源监视器插件216可实现在单独的计算装置(例如,VM管理计算装置(未示出))上。在各实施例中,资源监视器插件216可具有对更广泛的视野的接入而不仅仅是计算装置200,例如,整个数据中心(未示出)的所有计算装置(例如,200 )。如将在以下描述的,资源监视器插件216可了解何时调度新的VM,并且可因此通知计算装置(例如,计算装置200)上的逻辑单元。
[0023]每VM资源监视器210 (它可类似于图1的每VM资源监视器110)可提供上述功能性。在各实施例中,每VM资源监视器210可实现在微代码中,与计算装置100的一个或更多物理处理单元(未示出)关联,计算装置100包含当执行时实施本公开的可应用部分的指令。“微程序”可指当执行微代码时操作的计算机程序,并且因此在一些实施例中,每VM资源监视器210可以是微程序。
[0024]如图2所示,可由微控制器单元(“MCU”)来执行平台级聚合器218,或它可实现在其它部件中,例如,执行下面的访客VMM (例如,在图1中的VMM 106)的根VMM、管理引擎(“ME”)(例如,由Intel?公司)、底板管理控制器(“BMC”)和/或系统管理模式(“SMM”)部件。在各实施例中,平台级聚合器218可具有其它部件之间的交互的平台范围视野。在各实施例中,平台级聚合器218可配置为识别与特定VM关联的vCPU,如将在以下描述的。在各实施例中,平台级聚合器218可配置为聚合由其它逻辑单元(例如,每VM资源监视器210)提供的资源使用数据来将平台(例如,计算装置200)上的每VM资源利用暴露到(例如)资源监视器插件216。
[0025]图2描述根据各实施例,可在各种部件之间交换来准备监视每VM资源使用的示例通信。在箭头2-A处,工作负载调度器214可通知资源监视器插件216工作负载调度器214将要指引VMM 206在计算装置200上启动新的VM。在各实施例中,可由新的虚拟机标识符或“VMID”来识别新的VM。在各实施例中,VMID可以是可用于识别特定VM的计算机可读符号(例如,数字、字母或其它符号)的任何序列。在各实施例中,可由单个vCPU来操作单处理器VM (“UP VM”),并且可由多于一个vCPU来操作多处理器VM (“MP VM”)。在后者的情况中,可利用相同的VMID来识别操作MP VM的所有vCPU,如以下将讨论的。
[0026]在箭头2-B处,资源监视器插件216可通知平台级聚合器218正在启动新的VM。在箭头2-C处,工作负载调度器214可指引VMM 206初始化新的VM。VMM 206可对为新的VM启动的每个vCPU创建虚拟机控制结构(“VMCS”)220。在各实施例中,例如,可由VMM 206为由VMM 206初始化的每个新的vCPU创建VMCS 220,这是为什么在图2-图4中示出多个VMCS 220。在各实施例中,VMM 206可执行VMLAUNCH指令来初始化vCPU。
[0027]在各实施例中,在箭头2-D处,一个或更多vCPU的初始化(例如,VMLAUNCH指令)可使每VM资源监视器210执行各种操作。例如,在箭头2-E处,每VM资源监视器210可警告平台级聚合器218已经发动一个或更多新的vCPU并且可提供新的vCPU与新的或现存的VM 208之间的关联。例如,在各实施例中,每VM资源监视器210可将具有存储与新的vCPU关联的VMCS 220的存储器的指针提供给平台级聚合器218。在各实施例中,每VM资源监视器210还可提供与新的vCPU关联的扩展页表(“EPTP”)的指针。如果VMM 206允许EPTP转换(例如,使用由加利福尼亚州圣克拉拉的Intel?公司制造的处理器中的VMFUNC(O)),则可由每VM资源监视器210将到所有相关的EPTP的指针提供到平台级聚合器218。
[0028]在各实施例中,平台级聚合器218可维持记录的查找表。在各实施例中,每个记录可代表vCPU与VM 208之间的关联,并且可包含VMID、VMCS指针和/或EPTP。当警告平台级聚合器218关于新的vCPU发动时,平台级聚合器218可将与新的vCPU关联的特性(例如,EPTP)相对于查找表中的现存记录进行比较。如果没有发现特性,则平台级聚合器218可确定新的vCPU的发动构成新的VM 208的发动,并且由资源监视器插件216提供的新的VMID (例如,在箭头2-B处)应该用于识别VM 208。如果发现特性(例如,新的vCPU具有匹配查找表的记录的EPTP的EPTP),则平台级聚合器218可推断存在为现有的VM 208启动的新的vCPU,并且替代地应该使用与现存的VM 208关联的现存的VMID。
[0029]在各实施例中,在箭头2-F处,平台级聚合器218可指引每VM资源监视器210将新的vCPU与由VMID识别的特定(新的或现存的)VM 208关联。在各实施例中,在箭头2-G处,每VM资源监视器210可这样做,例如,通过将由资源监视器插件216提供的VMID(与新的或现存的VM关联)存储在新创建的VMCS 220 (也被称作“标记VMCS”)中。
[0030]现在转到图3,当希望监视由特定VM 208的资源使用时,资源监视器插件216可请求(在箭头3-A处)平台级聚合器218监视由VM 208的资源使用。在各实施例中,请求可包含对应于VM 208的VMID。可监视各种类型的资源使用。在各实施例中,请求可以是监视由VM 208的缓存使用,或监视存储器带宽使用。
[0031]平台级聚合器218可查阅其查找表来识别用给定VMID标记的一个或更多VMCS220的一个或更多指针。在各实施例中,平台级聚合器218可分配将在资源使用监视过程期间使用的资源监视器标识符(“RMID”)。虽然在本文中的示例中使用RMID,但是那不意味着限制。应该理解,在各实施例中,可以或可以不已经存在并且与VM关联的其它标识符(例如,VMID)可用于与RMID相同或类似的目的。
[0032]在箭头3-B处,平台级聚合器218可指引每VM资源监视器210收集关于由一个或更多物理处理单元使用的资源的数据来操作与用给定VMID标记的VMCS 220关联的一个或更多vCPU。在各实施例中,平台级聚合器218可指引每VM资源监视器210将分配的RMID存储在对应的VMCS 220中。在箭头3-C处,每VM资源监视器210可将RMID存储在对应的VMCS 220中。在各实施例中,每VM资源监视器210可将RMID存储在每个特定的VMCS 220内部的预定位置中。
[0033]然后每VM资源监视器210可通过监视由涉及具有存储的RMID的一个或更多VMCS的一个或更多物理处理单元使用的资源来收集关于用于操作VM 208的资源的数据。在箭头3-D处,可操作对应于在箭头3-C处由每VM资源监视器210标记的一个或更多VMCS 220的一个或更多vCPU。在各实施例中,每VM资源监视器210可通过VM入口(例如,经由Intel?架构中的VMRESUME指令)来获悉这个。在箭头3-E处,每VM资源监视器210可从对应的VMCS 220读取RMID。然后每VM资源监视器210可收集关于由一个或更多物理处理单元使用的资源的数据来操作具有用RMID标记的VMCS 220的一个或更多vCPU。
[0034]例如,在图3中的箭头3-F处,每VM资源监视器210可通过将RMID存储在平台服务质量寄存器(“PQR”)222中来允许缓存监视。这可使与PQR 222关联的一个或更多物理处理单元相对于特定的RMID计数缓存占用率。此外或备选地,每VM资源监视器210可启动存储器带宽监视器(未示出)来收集关于由一个或更多物理处理单元使用的资源的数据来操作对应于用RMID标记的VMCS 220的一个或更多vCPU。
[0035]最终,与正在被监视的VM 208关联的一个或更多vCPU可停止执行。例如,正在被监视的VM 208可退出,如在箭头3-G处示出的。那时,每VM资源监视器210可使与VM 208关联的vCPU (例如,对应于用RMID标记的VMCS 220的vCPU)的监视停止。例如,在箭头
3-H处,每VM资源监视器210可清除PQR222。
[0036]可响应于各种事件以各种方式汇编并且输出资源使用统计。例如,用户可利用资源监视器插件216来发布命令以停止资源监视并且返回VM 208的资源使用统计。现在参考图4,在箭头4-A处,资源监视器插件216可(例如,在用户的请求下)指引平台级聚合器218停止监视由特定VM 208 (例如,具有特定VMID)的资源使用,并且返回资源使用统计。平台级聚合器218可查阅其查找表来识别用VMID标记的一个或更多VMCS 220的指针。在各实施例中,平台级聚合器218可解除分配到这些VMCS 220的RMID的分配。在箭头4-B处,平台级聚合器218可指引每VM资源监视器210从对应的VMCS 220清除RMID。在箭头
4-C处,每VM资源监视器210可从对应于操作VM208的vCPU的VMCS 220清除RMID。
[0037]然后平台级聚合器218可指引每VM资源监视器210或其它部件返回资源使用数据。例如,在箭头4-D处,平台级聚合器218可指引与每个物理处理单元关联的微程序224(在图中被称作“P代码”)读取用于给定RMID的缓存占用率计数器。在箭头4-E处,微程序224可读取适当的缓存占用率计数器,例如,从最后级缓存(“LLC”)226。
[0038]在箭头4-F处,微程序224可将缓存占用率信息返回到平台级聚合器218。然后平台级聚合器218可基于收集的数据来确定由VM 208的资源使用。例如,平台级资源聚合器218可聚合收集的数据来确定由VM 208使用的资源。在箭头4-G处,平台级聚合器218可将聚合的数据返回到资源监视器插件216。然后资源监视器插件216可利用数据来执行各种功能,例如,更新数据库、输出报告、使数据输出到一个或更多用户、等等。
[0039]例如,虽然以上示例描述缓存QoS监视,但是这不意味着限制,并且本文描述的概念同样适用于监视由VM使用的其它类型的资源。例如,可监视由VM退回的指令的数量,例如,通过在VM入口和VM出口处对核心性能监视器寄存器拍快照,并且确定差别。作为另一示例,可采用数字功率计量表或其它计量表的读数,例如,在VM入口和出口处,来确定在VM的上下文内消耗的能量。
[0040]图5图示根据各实施例的示例计算装置500。计算装置500可包含多个部件、处理器504和至少一个通信芯片506。在各实施例中,处理器504可以是处理器核。在各实施例中,至少一个通信芯片506还可物理上以及电耦合到处理器504。在另外的实现中,通信芯片506可以是处理器504的一部分。在各实施例中,计算装置500可包含印刷电路板(“PCB”)502。对于这些实施例,处理器504和通信芯片506可被布置在其上。在备选实施例中,各种部件可耦合而不采用PCB 502。
[0041]取决于其应用,计算装置500可包含可以或可以不物理上以及电耦合到PCB 502的其它部件。这些其它部件可包含但不限于每VM资源监视器510 (示为处理器504的一部分,因为它可实现为微程序)、BMC 507 (它可配置有本公开的教导的可应用部分)、易失性存储器(例如,动态随机存取存储器508,也被称作“DRAM”)、非易失性存储器(例如,只读存储器511,也被称作“ROM”)、闪速存储器512、图形处理器514、数字信号处理器(未示出)、加密处理器(未示出)、资源监视器插件516(在各实施例中它替代地可在单独的VM管理计算装置上操作)、平台级聚合器518 (在各实施例中它可以是配置有本公开的教导的可应用部分的MCU)、显示器(未示出)、触摸屏显示器520、触摸屏控制器522、电池524、音频编解码器(未示出)、视频编解码器(未示出)、全球定位系统(“GPS”)装置528、指南针530、加速计(未示出)、陀螺仪(未示出)、扬声器532、照相机534、天线536、输入/输出(“I/O”)控制器538以及大容量存储装置(例如,硬盘驱动器、固态驱动器、光盘(“⑶”)、数字多功能盘(“DVD”))(未示出)、等等。
[0042]在各实施例中,易失性存储器(例如,DRAM 508)、非易失性存储器(例如,ROM511)、闪速存储器512以及大容量存储装置可包含编程指令,所述指令配置为使计算装置500能响应于由处理器504执行而实践在图2-4中示出的操作的所有或选择的方面。例如,存储器部件(例如,易失性存储器(例如,DRAM 508)、非易失性存储器(例如,ROM 511)、闪速存储器512以及大容量存储装置)中的一个或多个可包含配置为使计算装置500能实践公开的技术(例如,在图2-4中示出的所有或选择的操作)的指令的暂时和/或持久的副本。
[0043]通信芯片506可允许有线和/或无线通信用于至以及来自计算装置500的数据的传输。术语“无线”和其派生词可用于描述可通过非固体介质的调制的电磁辐射的使用来传递数据的电路、装置、系统、方法、技术、通信信道等。术语不暗示关联的装置不包含任何线,尽管在一些实施例中它们可能不包含。通信芯片506可实现多个无线标准或协议的任何一个,包含但不限于 W1-Fi (IEEE 802.11 族)、WiMAX (IEEE 802.16 族)、IEEE 802.20、长期演进(“LTE”)、Ev-DO、HSPA+, HSDPA+, HSUPA+, EDGE、GSM、GPRS、CDMA、TDMA, DECT、Bluetooth、其派生,以及指定为3G、4G、5G及其它的任何其它无线协议。计算装置500可包含多个通信芯片506。例如,第一通信芯片506可专用于较短范围无线通信(例如,W1-Fi和Bluetooth)并且第二通信芯片506可专用于较长范围无线通信(例如,GPS、EDGE、GPRS、CDMA、WiMAX、LTE、Ev-DO 及其它)。
[0044]在各实施例中,处理器504 (或其处理器核中的一个)可与本文描述的用于监视VM资源使用的逻辑单元中的一个或多个封装在一起,包含但不限于每VM资源监视器(例如,110、210、510)、平台级聚合器(例如,218、518)和/或资源监视器插件(例如,216、516)。对于一个实施例,处理器504 (或其处理器核中的一个)可与本文描述的用于监视VMM资源使用的逻辑单元中的一个或多个封装在一起,包含但不限于每VM资源监视器(例如,110、210、510)、平台级聚合器(例如,218、518)和/或资源监视器插件(例如,216、516),来形成封装(SiP)中的系统。对于一个实施例,处理器504 (或其处理器核中的一个)可与本文描述的用于监视VMM资源使用的逻辑单元中的一个或多个封装在一起,包含但不限于每VM资源监视器(例如,110、210、510)、平台级聚合器(例如,218、518)和/或资源监视器插件(例如,216、516),并且可集成在相同的裸芯片上。对于一个实施例,处理器504 (或其处理器核中的一个)可与本文描述的用于监视VMM资源使用的逻辑单元中的一个或多个封装在一起,包含但不限于每VM资源监视器(例如,110、210、510)、平台级聚合器(例如,218、518)和/或资源监视器插件(例如,216、516)来形成片上系统(SoC)。
[0045]在各种实现中,计算装置500可以是膝上型计算机、上网本、笔记本电脑、超级本、智能电话、计算平板计算机、个人数字助理(“PDA”)、超移动PC、移动电话、台式计算机、月艮务器、打印机、扫描仪、监视器、机顶盒、娱乐控制单元(例如,游戏控制台)、数字相机、便携式音乐播放器或数字视频记录器。在另外的实现中,计算装置500可以是处理数据的任何其它电子装置。
[0046]在各实施例中,可提供计算机可读媒体(暂时性和非暂时性)、系统、方法、设备以及计算装置来协作追踪独立于VMM的每VM资源使用。在各实施例中,第一逻辑单元可关联由计算装置的一个或更多物理处理单元操作的一个或更多虚拟中央处理单元与由计算装置操作的多个虚拟机的第一虚拟机。在各实施例中,第一逻辑单元可收集关于由一个或更多物理处理单元使用的资源的数据来操作与第一虚拟机关联的一个或更多虚拟中央处理单元。在各实施例中,第一逻辑单元可执行独立于计算装置的虚拟机监视器的关联和收集。
[0047]在各实施例中,计算装置的第二逻辑单元可指引第一逻辑单元收集关于由一个或更多物理处理单元使用的资源的数据来操作与第一虚拟机关联的一个或更多虚拟中央处理单元。在各实施例中,第二逻辑单元可基于收集的数据来确定由第一虚拟机的资源使用。在各实施例中,第二逻辑单元可执行独立于计算装置的虚拟机监视器的指引和确定。
[0048]在各实施例中,第二逻辑单元可聚合收集的数据来确定由第一虚拟机使用的资源。在各实施例中,第一逻辑单元可将第一虚拟机的标识符存储在与一个或更多虚拟中央处理单元关联的一个或更多虚拟机控制结构中。在各实施例中,第二逻辑单元可响应于监视第一虚拟机的资源使用的请求而将资源监视器标识符分配到第一虚拟机,并且可指引第一逻辑单元将资源监视器标识符存储在与一个或更多虚拟中央处理单元关联的一个或更多虚拟机控制结构中。
[0049]在各实施例中,第一逻辑单元可基于涉及具有资源监视器标识符的一个或更多虚拟机控制结构的一个或更多物理处理单元执行的操作,收集关于由一个或更多物理处理单元使用的资源的数据来操作与第一虚拟机关联的一个或更多虚拟中央处理单元。
[0050]在各实施例中,第一逻辑单元可响应于新的虚拟中央处理单元的初始化,将新的虚拟中央处理单元与虚拟机之间的关联提供到第二逻辑单元。
[0051]在各实施例中,第二逻辑单元可至少部分基于由第一逻辑单元提供的关联来确定新的虚拟中央处理单元与新的虚拟机还是现存的虚拟机关联。在各实施例中,第二逻辑单元可指引第一逻辑单元关联新的虚拟机标识符与新的虚拟中央处理单元,其中确定新的虚拟中央处理单元与新的虚拟机关联。在各实施例中,第二逻辑单元可指引第一逻辑单元关联现存的虚拟机标识符与新的虚拟中央处理单元,其中确定新的虚拟中央处理单元与现存的虚拟机关联。
[0052]在各实施例中,第一逻辑单元可响应于新的虚拟中央处理单元的初始化,将新的虚拟中央处理单元、虚拟机与一个或更多扩展页表之间的关联提供到第二逻辑单元。在各实施例中,第二逻辑单元可至少部分基于一个或更多扩展页表来确定新的虚拟中央处理单元与新的虚拟机还是现存的虚拟机关联。
[0053]在各实施例中,第一逻辑单元可包括微程序。在各实施例中,第一逻辑单元可具有高于虚拟机监视器的执行特权的执行特权并且可以能够观察新的虚拟中央处理单元的创建。
[0054]在各实施例中,第二逻辑单元可以是微控制器、底板管理控制器和系统管理模式部件中的一个或多个的一部分。在各实施例中,第二逻辑单元可具有高于虚拟机监视器的执行特权的执行特权。
[0055]在各实施例中,第一逻辑单元可启动缓存服务质量监视器来收集关于由一个或更多物理处理单元使用的资源的数据以操作一个或更多虚拟中央处理单元。在各实施例中,第一逻辑单元可启动存储器带宽监视器来收集关于由一个或更多物理处理单元使用的资源的数据以操作一个或更多虚拟中央处理单元。
[0056]虽然已经为了描述的目的在本文图示并且描述某些实施例,但是本申请旨在覆盖本文讨论的实施例的任何改编或变化。因此,明显意图是只由权利要求限制本文描述的实施例。
[0057]在本公开叙述“一”或“第一”元件或其等同物的地方,这样的公开包含一个或更多这样的元件,既不要求也不排除两个或者更多这样的元件。另外,识别的元件的序数指示符(例如,第一、第二或第三)用于区分元件,并且不指示或暗示这样的元件的要求或限制的数量,它们也不指示这样的元件的特定位置或次序,除非另外特别声明。
【权利要求】
1.一种计算机实现的方法,包括: 由计算装置的第一逻辑单元指引所述计算装置的第二逻辑单元收集关于由所述计算装置的一个或更多物理处理单元使用的资源的数据以操作多个虚拟机的第一虚拟机; 由所述第二逻辑单元将由所述计算装置的所述一个或更多物理处理单元操作的一个或更多虚拟中央处理单元与所述第一虚拟机关联; 由所述第二逻辑单元收集关于由所述一个或更多物理处理单元使用的资源的数据来操作与所述第一虚拟机关联的所述一个或更多虚拟中央处理单元;以及 由所述第一逻辑单元基于所述收集的数据来确定由所述第一虚拟机的资源使用; 其中所述第一逻辑单元执行独立于所述计算装置的虚拟机监视器的所述指引和所述确定,并且其中所述第二逻辑单元执行独立于所述计算装置的所述虚拟机监视器的所述关联和所述收集。
2.如权利要求1所述的计算机实现的方法,还包括由所述第一逻辑单元聚合所述收集的数据来确定由所述第一虚拟机使用的资源。
3.如权利要求1所述的计算机实现的方法,还包括由所述第二逻辑单元将所述第一虚拟机的标识符存储在与所述一个或更多虚拟中央处理单元关联的一个或更多虚拟机控制结构中。
4.如权利要求1所述的计算机实现的方法,还包括响应于监视所述第一虚拟机的资源使用的请求,由所述第一逻辑单元将资源监视器标识符分配到所述第一虚拟机; 由所述第一逻辑单元指引所述第二逻辑单元将所述资源监视器标识符存储在与所述一个或更多虚拟中央处理单元关联的一个或更多虚拟机控制结构中;以及 基于由涉及具有所述资源监视器标识符的所述一个或更多虚拟机控制结构的所述一个或更多物理处理单元执行的操作,由所述第二逻辑单元收集关于由所述一个或更多物理处理单元使用的资源的所述数据。
5.如权利要求4所述的计算机实现的方法,还包括响应于新的虚拟中央处理单元的初始化,由所述第二逻辑单元将所述新的虚拟中央处理单元与虚拟机的关联提供到所述第一逻辑单元。
6.如权利要求5所述的计算机实现的方法,还包括由所述第一逻辑单元至少部分基于由所述第二逻辑单元提供的所述关联来确定所述新的虚拟中央处理单元与新的虚拟机还是现存的虚拟机关联。
7.如权利要求6所述的计算机实现的方法,还包括: 由所述第一逻辑单元指引所述第二逻辑单元将新的虚拟机标识符与所述新的虚拟中央处理单元关联,其中确定所述新的虚拟中央处理单元与新的虚拟机关联;以及 由所述第一逻辑单元将现存的虚拟机标识符与所述新的虚拟中央处理单元关联,其中确定所述新的虚拟中央处理单元与现存的虚拟机关联。
8.如权利要求1所述的计算机实现的方法,还包括响应于新的虚拟中央处理单元的初始化,由所述第二逻辑单元将所述新的虚拟中央处理单元、虚拟机与一个或更多扩展页表之间的关联提供到所述第一逻辑单元。
9.如权利要求8所述的计算机实现的方法,还包括由所述第一逻辑单元至少部分基于所述一个或更多扩展页表来确定所述新的虚拟中央处理单元与新的虚拟机还是现存的虚拟机关联。
10.如权利要求1所述的计算机实现的方法,其中所述第一逻辑单元包括微程序。
11.如权利要求1所述的计算机实现的方法,其中所述第一逻辑单元包括具有高于管理所述多个虚拟机的第二虚拟机监视器的执行特权的执行特权的第一虚拟机监视器。
12.如权利要求1所述的计算机实现的方法,其中所述第二逻辑单元包括微控制器、底板管理控制器和系统管理模式部件中的一个或多个。
13.如权利要求1所述的计算机实现的方法,其中所述第二逻辑单元包括具有高于管理所述多个虚拟机的第二虚拟机监视器的执行特权的执行特权的第一虚拟机监视器。
14.如权利要求1所述的计算机实现的方法,还包括由所述第二逻辑单元启动缓存服务质量监视器来收集关于由所述一个或更多物理处理单元使用的所述资源的所述数据来操作所述一个或更多虚拟中央处理单元。
15.如权利要求1所述的计算机实现的方法,还包括由所述第二逻辑单元启动存储器带宽监视器来收集关于由所述一个或更多物理处理单元使用的所述资源的所述数据来操作所述一个或更多虚拟中央处理单元。
16.至少一种机器可读介质,包括多个指令,所述指令响应于在计算装置上执行,使所述计算装置实施根据权利要求1-15的任一项所述的计算机实现的方法。
17.一种设备,包括用于执行如权利要求1-15的任一项所述的计算机实现的方法的器件。
18.—种系统,包括: 一个或更多物理处理单元,配置为操作多个虚拟中央处理单元来操作多个虚拟机,以及虚拟机监视器来管理所述虚拟机; 每虚拟机资源监视器,配置为将所述虚拟中央处理单元中的一个或多个与所述虚拟机的第一虚拟机关联,以及收集关于由所述一个或更多物理处理单元使用的资源的数据来操作与所述第一虚拟机关联的所述一个或更多虚拟中央处理单元,其中所述每虚拟机资源监视器执行独立于所述虚拟机监视器的所述关联和所述收集;以及 平台级聚合器,配置为聚合所述收集的数据来确定由所述第一虚拟机使用的资源,其中所述平台级聚合器执行独立于所述虚拟机监视器的所述聚合。
19.如权利要求18所述的系统,其中所述每虚拟机资源监视器还配置为响应于新的虚拟中央处理单元的初始化,将所述新的虚拟中央处理单元、虚拟机与一个或更多扩展页表之间的关联提供到所述平台级聚合器。
20.如权利要求19所述的系统,其中所述平台级聚合器还配置为至少部分基于所述一个或更多扩展页表来确定所述新的虚拟中央处理单元与新的虚拟机还是现存的虚拟机关联。
21.如权利要求18-20的任一项所述的系统,其中所述每虚拟机资源监视器包括微程序。
22.如权利要求18-20的任一项所述的系统,其中所述虚拟机监视器是第一虚拟机监视器,并且所述每虚拟机资源监视器包括具有高于所述第一虚拟机监视器的执行特权的执行特权的第二虚拟机监视器。
23.如权利要求18-20的任一项所述的系统,其中所述虚拟机监视器是第一虚拟机监视器,并且所述平台级聚合器包括具有高于所述第一虚拟机监视器的执行特权的执行特权的第二虚拟机监视器。
24.如权利要求18-20的任一项所述的系统,其中所述每虚拟机资源监视器配置成启动缓存服务质量监视器来收集关于由所述一个或更多物理处理单元使用的所述资源的所述数据以操作所述一个或更多虚拟中央处理单元。
25.如权利要求18-20的任一项所述的系统,其中所述每虚拟机资源监视器配置成启动存储器带宽监视器来收集关于由所述一个或更多物理处理单元使用的所述资源的所述数据以操作所述一个或更多虚拟中央处理单元。
【文档编号】G06F11/00GK104303154SQ201380026326
【公开日】2015年1月21日 申请日期:2013年5月20日 优先权日:2012年6月20日
【发明者】M.S.纳图, A.S.科沙瓦默蒂, A.J.穆诺兹, T.托马斯 申请人:英特尔公司