CN109582434A - 基于虚拟机运行时需求的动态平台特征调谐 - Google Patents
基于虚拟机运行时需求的动态平台特征调谐 Download PDFInfo
- Publication number
- CN109582434A CN109582434A CN201810990688.0A CN201810990688A CN109582434A CN 109582434 A CN109582434 A CN 109582434A CN 201810990688 A CN201810990688 A CN 201810990688A CN 109582434 A CN109582434 A CN 109582434A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- enliven
- setting
- feature
- logic
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0895—Configuration of virtualised networks or elements, e.g. virtualised network function or OpenFlow elements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0896—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities
- H04L41/0897—Bandwidth or capacity management, i.e. automatically increasing or decreasing capacities by horizontal or vertical scaling of resources, or by migrating entities, e.g. virtual resources or entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/40—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using virtualisation of network functions or resources, e.g. SDN or NFV entities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45591—Monitoring or debugging support
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Power Sources (AREA)
Abstract
系统、装置和方法可提供基于虚拟机运行时需求来动态调谐平台特征的技术。在一个示例中,云服务器平台的第一虚拟机和第二虚拟机可各自与一个或多个逻辑核相关联。第一虚拟机可具有第一配置,用于在相关联逻辑核上高效地支持第一特征设置布置。第二虚拟机可具有不同的第二配置,用于在不同的相关联逻辑核上高效地支持不同的第二特征设置布置。可基于应用运行时需求来确定为与虚拟机相关联的应用所特有的特征设置。此类所确定特征设置可被存储为虚拟机控制的控制字段中的位掩码,并且在与给定虚拟机相关联的逻辑核上实施。
Description
技术领域
诸实施例一般涉及云服务器管理。更具体地,诸实施例涉及基于虚拟机运行时需求来动态调谐平台特征的技术。
背景技术
在本地(native)服务器中,管理员可通过修改(例如,通过启用、禁用或改变)整个平台的平台特征(例如,预取器、C状态、P状态等)来优化工作负荷性能。例如,在一些实例中,为整个平台开启预取器可将高性能计算(HPC)应用程序的性能提升数个数量级。在公共云服务器上,可跨整个平台(例如,对在此平台上运行的每个和每一个虚拟机)来应用对平台特征的此类修改(例如,通过启用、禁用或改变平台特征)。
附图说明
通过阅读以下说明书和所附权利要求并通过参考以下附图,各实施例的各种优点对于本领域技术人员将变得显而易见,其中:
图1是根据实施例的云服务器平台系统的示例的框图;
图2是根据实施例的在云服务器平台中进行的操作的示例的序列图;
图3是根据实施例的图形用户界面的示例的屏幕截图;
图4是根据实施例的实验结果的示例的图表;
图5是根据实施例的逻辑架构的示例的框图;
图6是根据实施例的处理器的示例的框图;以及
图7是根据实施例的计算系统的示例的框图。
具体实施方式
如已讨论的,在常规办法下,在公共云服务器上启用、禁用和/或改变平台特征可应用于在此平台上运行的每个和每一个虚拟机。例如,工作负荷可跨整个云服务器平台使用相同平台特征(例如,预取器、C状态、P状态等)。因此,可能不存在针对每个个体虚拟机来调整这些特征的高效方法。另一附加困难可能是虚拟机典型地在多个核上被调度,并且还被虚拟机监视器(VMM/协调器(Orchestrator))有规律地重新调度。
因此,在公共云服务器平台上运行的个体虚拟机可受益于在运行时使用独特的特征/控制设置。解决此需要的一个选项可以是在每个上下文切换处写入每线程平台特征模型特定寄存器(MSR),以调整与运行于个体核上的工作负荷的运行时需求相匹配的设置。然而,由于在每个上下文切换处读取/写入这些MSR所涉及的时间,此类办法从性能角度来看可能是不切实际的。运行重负载的现代“2P”服务器(例如,一个主板中的两个CPU插槽)每秒可具有超过一百万个上下文切换。实际上,上下文切换可能已招致可测量的性能惩罚。因此,向上下文切换添加更多开销可能不是适当的解决方案。
如将更详细地描述的,增强的办法可针对在同一平台上操作的不同虚拟机来不同地调整平台特征,因为在虚拟机中运行的每个工作负荷可在运行时要求不同的平台特征。例如,此类平台设置需求典型地可以是工作负荷特定的。例如,软件定义的联网(SDN)负载平衡器/多路复用器应用(例如,其可以是等待时间敏感的)可要求禁用C状态,而其他应用可能不一定需要这样做。更一般地,基本输入/输出系统(BIOS)优化指南常常涉及针对不同种类的工作负荷的不同设置。
现在转向图1,示出了用于管理虚拟机的虚拟机动态调谐器系统100。系统100可基于虚拟机运行时需求来动态地调谐平台特征。
在所例示的示例中,系统100可包括虚拟资源110和云服务器平台112。虚拟资源110可包括多个虚拟机114。多个虚拟机114中的每一个可用作自包含单元,运行其自己的操作系统(OS)和/或应用软件。例如,多个虚拟机114可包括运行第一应用(“应用”)118的第一虚拟机116,以及运行活跃第二应用(“应用”)122的活跃第二虚拟机120。类似地,第N虚拟机124可运行第N应用(“应用”)126。
例如,与活跃第二虚拟机120相关联的活跃第二应用122可与应用运行时需求相关联。此类应用运行时需求可包括对等待时间敏感度的指示或者对数据参考模式的指示等,和/或其组合。数据参考模式可包括对活跃第二应用122是以随机方式还是顺序方式访问存储器的指示,诸如例如,活跃第二应用122包括流送应用。
系统100中的第一虚拟机116和第二虚拟机120各自可与云服务器平台112的一个或多个相关联硬件核131(“HC0”到“HCN”)的部分中的一个或多个逻辑核130(“LC0”到“LC2N+1”)相关联。如所例示的,硬件核131中的每一个可包括两个或更多个逻辑核130。如下文将更详细描述的,可使用本文描述的技术来独立地配置逻辑核130中的每一个(例如,无需使用对每线程平台特征模型特定寄存器/MSR的写入)。第一虚拟机116可具有第一配置,用于在相关联逻辑核130上高效地支持第一特征设置(“特征”)132。第二虚拟机120可具有不同的第二配置,用于在相关联逻辑核130的不同部分上高效地支持不同的第二特征设置(“特征”)134。例如,第一特征设置132可至少部分地基于与第一应用118相关联的应用运行时需求,而第二特征设置134可至少部分地基于与第二应用122相关联的应用运行时需求。类似地,第N虚拟机124可具有依旧不同的配置,用于高效地支持与第N应用126相关联的依旧不同的特征设置(“特征”)136。
虚拟资源110可包括特征管理员140。如本文所使用的,术语“特征管理员”一般可指自动化管理员和/或用户管理员,其被配置成至少部分地基于应用运行时需求来控制云服务器平台上的每个虚拟机的平台设置。此类自动化代理型特征管理员140可以是智能代理,该智能代理可标识要在虚拟机控制160上设置的适当特征设置。例如,此类自动化代理型特征管理员140可通过收集历史性能数据来推断特征设置,该历史性能数据将指向特定虚拟机工作负荷的运行时需求。在所例示的示例中,特征管理员140可至少部分地基于应用运行时需求来确定为活跃第二应用122所特有的活跃第二特征设置134。如以上所讨论的,活跃第二特征设置可包括空闲功率状态设置、执行功率状态设置或预取设置等,和/或其组合。预取器设置可包括核预取器设置、非核预取器设置等,和/或其组合。功率状态设置可包括C状态等待时间容限(tolerance)、C状态高速缓存转储清除容限、硬件控制性能(HWP)最小值、HWP最大值、HWP能量/性能偏好(EPP)等,和/或其组合。
虚拟资源110可包括虚拟机监视器150。如本文所使用的,术语“虚拟机监视器”一般可指例如虚拟机监视器(VMM)、管理程序、虚拟机协调器等,其被配置成管理虚拟机上的虚拟环境中的客户操作系统的执行。在所例示的示例中,虚拟机监视器150可在逐个虚拟机的基础上将活跃第二特征设置134独立地指派给活跃第二虚拟机120,而将第一特征设置132独立地指派给第一虚拟机116。另外,虚拟机监视器150可迭代地标识重新调度事件,然后响应于所标识的重新调度事件来将活跃第二虚拟机120迭代地调度为在逻辑核130的特定集上运行。
虚拟资源110可包括虚拟机控制160。如本文所使用的,术语“虚拟机控制”一般可指虚拟机控制系统(VMCS)、虚拟机控制(VMC)或存储器中用于管理虚拟机的任何其他类似数据结构,这些数据结构包括存储器中可在被虚拟机监视器管理时每个体虚拟机地指派的数据结构。在所例示的示例中,虚拟机控制160可包括控制字段162,用于存储活跃第二特征设置134的位掩码。逻辑核130的、与活跃第二虚拟机120相关联的特定集可传递来自虚拟机控制160的控制字段162的为活跃第二应用122所特有的活跃第二特征设置134的位掩码,并通过使逻辑核130的、与活跃第二虚拟机120相关联的特定集的操作适应成支持活跃第二虚拟机120和活跃第二应用122来实施为活跃第二应用122所特有的活跃第二特征设置134。
在一些示例中,虚拟机控制160可以是虚拟机控制系统(VMCS)。在此类示例中,每个VMCS可包括每虚拟机特征管理位掩码。位掩码可允许特权软件操纵运行于云服务器平台112上的个体虚拟机114中的每一个的特征设置。所提出的特征设置是虚拟机特定需求(例如,HWP级别),这些虚拟机特定需求是平台特征(例如,核频率)的底层微架构集的抽象。VMCS区域可包括多个不同的区。控制字段162可将特征位掩码存储在VMCS的先前保留位(例如,未定义/未使用位)中。例如,软件接口可指定某些位作为保留,以便当需要扩展该接口以添加新能力时,可使用这些保留位。因此,当添加特征位掩码的新能力时,先前保留的位此时可被重新定义为特征位掩码。逻辑核130可实施位掩码来替代当前模型特定寄存器(MSR)设置(例如,IA32_MISC_ENABLE(IA32_MISC_启用)等)。也就是说,当在逻辑核130的特定集上调度虚拟机114中的一个时,逻辑核130的特定集将根据VMCS中的位掩码字段重置平台特征。
云服务器平台112可包括功率源170。功率源170可向系统100提供功率。应当理解,为了清楚起见,系统100和云服务器平台112可包括未在此处例示的其他组件。
在操作中,虚拟机监视器150可通过设置虚拟机控制160上的位掩码来控制/管理工作负荷运行时需求。此位掩码可定义活跃第二虚拟机120所需的活跃特征设置134。与活跃第二虚拟机120相关联的逻辑核130可改变以读取此位掩码并实施针对活跃第二虚拟机120而请求的活跃特征设置134。不管在哪个核/插槽或系统上调度虚拟机114,这些设置可保持被配置成用于虚拟机114中的每一个。例如,虚拟机114可跨物理系统而迁移。在此类迁移中,虚拟机114可保留所有应用和状态信息。
图2示出动态调谐虚拟机的方法300。方法300一般可经由已讨论系统100(图1)中组件中的一个或多个来实现。
继续参看图1和图2,在操作302(例如,“传递应用运行时需求”)处,可传递应用运行时需求。例如,可在活跃应用122(“应用”)与特征管理员140之间传递应用运行时需求。
在操作304(例如,“基于应用运行时需求来确定特征设置”)处,可至少部分地基于应用运行时需求来确定特征设置。例如,为与活跃第二虚拟机120相关联的活跃应用122所特有的活跃特征设置134(“特征”)可由特征管理员140至少部分地基于应用运行时需求来确定。
在一些实现中,应用运行时需求可包括以下各项中的一个或多个:对等待时间敏感度的指示或者对数据参考模式的指示等,和/或其组合。数据参考模式可包括对活跃应用122是以随机方式还是顺序方式访问存储器的指示。例如,操作304可确定活跃应用122是否是流送应用。活跃特征设置134可包括以下各项中的一个或多个:空闲功率状态设置、执行功率状态设置或预取设置等,和/或其组合。
在操作306(例如,“将所确定特征设置指派给相关联虚拟机”)处,可将所确定特征设置指派给相关联虚拟机。例如,可经由虚拟机监视器150将活跃特征设置134独立地指派给活跃第二虚拟机120。类似地,可在逐个虚拟机的基础上将不同活跃特征设置(此处未示出)独立地指派给其他虚拟机(此处未示出)。
在操作308(例如,“将所指派特征设置存储为位映射”)处,可将所指派特征设置存储为位掩码。例如,可将活跃特征设置134存储为虚拟机控制160的控制字段162中的位掩码。
在操作310(例如,“标识重新调度事件”),可标识重新调度事件。例如,重新调度事件可由虚拟机监视器150迭代地标识。
在操作312(例如,“调度活跃虚拟机来在逻辑核的特定集上运行”)处,可将活跃虚拟机调度为在逻辑核的特定集上运行。例如,响应于所标识的重新调度事件,虚拟机监视器150可将活跃第二虚拟机120迭代地调度为在逻辑核130的特定集上运行。
在操作314(例如,“传递位掩码”)处,可传递位掩码。例如,可将为活跃应用122所特有的活跃特征设置134的位掩码从虚拟机控制160的控制字段162传递至逻辑核130的特定集。
在操作316(例如,“实施特征设置”)处,可实施特征设置。例如,可通过使逻辑核130的特定集的操作适应于支持活跃第二虚拟机120和活跃应用122来在逻辑核130的特定集上实施为活跃应用122所特有的活跃特征设置134。在一个实现中,云服务器平台112的第一虚拟机116和第二虚拟机120可各自与逻辑核130中的一个或多个相关联。第一虚拟机116可具有第一配置,用于在相关联逻辑核130上高效地支持第一特征设置布置,其中可在类似于操作316的操作中实施此配置。第二虚拟机120可具有不同的第二配置,用于在不同的相关联逻辑核130上高效地支持不同的第二特征设置布置,其中可在操作316处实施此配置。如上所述,可基于应用运行时需求来确定为与对应虚拟机相关联的任何特定应用所特有的特征设置。
在一个实现中,方法300可操作使得特征管理员140可通过例如虚拟机监视器150将虚拟基本输入/输出系统(BIOS)中的活跃特征设置134指派给相关联的活跃第二虚拟机120。虚拟机监视器150可将活跃特征设置134指派给相关联的活跃第二虚拟机120(例如,以开启高性能计算/HPC风格预取器)。虚拟机监视器150可将特征设置作为活跃第二虚拟机120所需的所有特征设置134的位掩码写入虚拟机控制160的控制字段162中。活跃第二虚拟机120可被调度为在逻辑核130的特定集上运行。逻辑核130的特定集从虚拟机控制160的控制字段162访问活跃第二虚拟机120所需的活跃特征设置134的位掩码。逻辑核130的特定集至少部分地基于活跃特征设置134来实施活跃第二虚拟机120所需的平台设置。
方法300的实施例可在系统、装置、处理器、可重配置设备等(例如诸如,本文所描述的那些)中被实现。更具体地,方法300的硬件实现可包括可配置逻辑(诸如例如PLA、FPGA、CPLD)、或者使用电路技术(诸如例如,ASIC、CMOS或TTL技术)的固定功能逻辑硬件,或其任何组合。替代地或附加地,方法300可在一个或多个模块中被实现为存储在机器或计算机可读存储介质(诸如,RAM、ROM、PROM、固件、闪存等)中以由处理器或计算设备执行的逻辑指令集。例如,用于实现组件操作的计算机程序代码能以一种或多种OS适用/适当的编程语言的任何组合来进行编写,包括诸如PYTHON、PERL、JAVA、SMALLTALK、C++、C#之类的面向对象编程语言,以及诸如“C”编程语言或类似编程语言之类的常规过程式编程语言。
例如,方法300的实施例或部分可在运行于OS上的应用(例如,通过应用编程接口/API)或驱动软件中实现。另外,逻辑指令可包括汇编程序指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、状态设置数据、用于集成电路的配置数据、使产自于硬件的电子电路和/或其他结构组件(例如,主机处理器、中央处理单元/CPU、微控制器等)个性化的状态信息。
图3示出界面400的例示。界面400是特征管理器的示例,该特征管理器指定用于确定特征设置的应用运行时需求。如上所述,应用运行时需求可包括以下各项中的一个或多个:对等待时间敏感度的指示或者对数据参考模式的指示等,和/或其组合。数据参考模式可包括对活跃应用是否是流送应用的指示。除了经由界面400以简单的英文向信息技术(IT)操作员/管理员提供用户体验(UX)之外,本文描述的技术可获取这些应用运行时需求并将其转换成要被编程为位掩码的活跃特征设置(例如,经由底层每线程平台特征模型特定寄存器/MSR设置)以用于对每一个体虚拟机的特征管理。因此,所得活跃特征设置可包括以下各项中的一个或多个:空闲功率状态设置、执行功率状态设置或预取设置等,和/或其组合。
以下是可使用本文描述的技术来优化的高级用例中的一些示例。在一个示例中,HPC虚拟机可能需要启用预取器,而web虚拟机可能不需要同一预取器,且两个虚拟机在同一平台上操作。在另一示例中,等待时间敏感的虚拟机可能需要在一天中的特定时间期间禁用C状态。在又一示例中,可能需要确定性性能的虚拟机可将HWP最小值设置为100,而其他虚拟机可能需要不同级别的HWP,且所有虚拟机在同一平台上操作。
另外,在一个示例实现中,负责监视健康诊断和生命支持系统的应用可能对等待时间极其敏感,而不具有特定的数据访问模式。在此类实现中,界面400还可针对所有应用需求立刻在虚拟机监视器级以预设定义来暴露概况选项(例如,“HPC概况”)。此类生命支持示例可能需要禁用激进的功率管理特征以减少等待时间,并且很可能对预取器设置没有偏好,这对于流送应用或具有高度空间局部性的应用是有利的。
图4示出例示出实验结果的图表500。在实验室中,平台特征的影响通过同时运行不同工作负荷来原型化,并且一次改变这些特征中的一个(例如,基线510、功率管理/PM520、涡轮(Turbo)开启530、预取器关闭/“Pre-f”540等)。如图表500所示,平台特征对工作负荷性能具有显著影响。
图4中所例示的结果示出,对于高性能计算(HPC)工作负荷,当预取器关闭时,性能会受到负面影响,而它不会影响Web事务工作负荷的性能。此外,结果示出,开关P状态和C状态对某些工作负荷(例如,HPC型应用)的性能没有影响,而它确实会对其他工作负荷(例如,Web事务工作负荷)的性能产生负面影响。最后,结果示出,开启涡轮对Web事务工作负荷具有正面影响,而对HPC工作负荷的性能具有极小的正面影响。
表1示出所实施的另一实验,该实验运行web工作负荷(例如,在分开的虚拟机内运行的每个工作负荷)与需要预取器开启的另一工作负荷(例如,分开的虚拟机中的HPC工作负荷)。下表示出不同运行的结果。
表1中的第一列示出在预取器开启的情况下在平台上单独运行的工作负荷的吞吐量和响应时间。第二列示出在需要预取器开启的嘈杂近邻被添加至混合时的相同数字。最后一列示出通过关闭预取器而回到与初始运行同一水平的吞吐量和响应时间。
表1中例示的结果示出web工作负荷不一定需要预取器开启(例如,当预取器关闭时,甚至在高性能计算(HPC)工作负荷运行的情况下,响应时间实际上提升4%)。
此外,本文描述的技术可高效地实现表一中例示的这种优化。例如,实验本文描述的技术,虚拟机监视器将能够关闭预取器(例如,通过将虚拟机控制上的配置设置为web预取器设置)。如上所述,这可由用户管理员和/或自动化管理员来触发。
最后,当预取器关闭时,高性能计算(HPC)工作负荷的性能受到负面影响。可用本文描述的技术来显著地减小此影响,因为虚拟机监视器可在虚拟机控制中针对此工作负荷而开启这些预取器(例如,通过将虚拟机控制上的配置设置为高性能计算(HPC)预取器设置)。这可意味着,甚至所有的工作负荷——不管其运行时需求如何——可从本文描述的技术受益。
上述示例例示出本文描述的技术可如何被用于通过虚拟机监视器来优化不同工作负荷在运行时的性能。此优化不会在损害其他工作负荷运行的情况下发生;然而,在没有适当虚拟机控制配置的情况下,多个工作负荷的性能可被同时优化。
如本文所例示的,在公共云中很难一直预测所有工作负荷的运行时平台需求。因此,本文描述的程序可允许设施在其认为合适时修改平台特征。
图5示出虚拟机动态调谐器装置600(例如,半导体封装、芯片、管芯)。装置600可实现方法300(图2)的一个或多个方面。装置600可易于取代已讨论的虚拟机动态调谐器系统100(图1)的某些或全部。所例示的装置600包括一个或多个衬底602(例如,硅、蓝宝石、砷化镓)和耦合至(诸)衬底602的逻辑604(例如,晶体管阵列和其他集成电路/IC组件)。逻辑604可被至少部分地实现于可配置逻辑或固定功能逻辑硬件中。
此外,逻辑604可配置与云服务器平台中第一虚拟机相关联的一个或多个第一逻辑核,其中对一个或多个第一逻辑核的配置至少部分地基于一个或多个第一特征设置。逻辑604还可配置与云服务器平台的活跃虚拟机相关联的一个或多个活跃逻辑核,其中对一个或多个逻辑核的配置是基于一个或多个活跃特征设置的,且其中活跃特征设置与第一特征设置不同。
图6例示了根据一个实施例的处理器核700。处理器核700可以是任何类型的处理器的核,诸如微处理器、嵌入式处理器、数字信号处理器(DSP)、网络处理器、或用于执行代码的其他设备。尽管图6中仅例示了一个处理器核700,但处理元件可替换地包括一个以上图6中所例示的处理器核700。处理器核700可以是单线程核,或对于至少一个实施例,处理器核700可以是多线程的,因为其每个核可包括一个以上的硬件线程上下文(或“逻辑处理器”)。
图6还例示出耦合至处理器核700的存储器770。存储器770可以是本领域技术人员已知的或以其他方式对本领域技术人员可用的各种各样的存储器(包括存储器层级的各个层)中的任何一种。存储器770可包括要由处理器核700执行的一个或多个代码713指令,其中代码713可实现已讨论的方法300(图2)的一个或多个方面。
处理器核700遵循由代码713指示的指令的程序序列。每条指令可进入前端部分710并由一个或多个解码器720处理。解码器720可生成微操作(诸如,按预定义格式的固定宽度的微操作)作为其输出,或者可生成反映原始代码指令的其他指令、微指令或控制信号。所例示的前端部分710还包括寄存器重命名逻辑725和调度逻辑730,这些逻辑一般分配资源并将与转换指令相对应的操作进行排队以供执行。
处理器核700被示为包括具有一组执行单元755-1到755-N的执行逻辑750。一些实施例可以包括专用于特定功能或功能集的多个执行单元。其他实施例可包括仅一个执行单元或可执行特定的功能的仅一个执行单元。所例示的执行逻辑750执行由代码指令指定的操作。
在完成执行由代码指令指定的操作之后,后端逻辑760引退代码713的指令。在一个实施例中,处理器核700允许乱序执行,但是要求指令的有序引退。引退逻辑765可采取如本领域技术人员已知的各种形式(例如,重排序缓冲器等等)。以此方式,至少在由解码器生成的输出、由寄存器重命名逻辑725利用的硬件寄存器和表、以及由执行逻辑750修改的任何寄存器(未示出)方面,处理器核700在代码713的执行期间被转换。
尽管在图6中未例示,但处理元件可包括与处理器核700一起在芯片上的其他元件。例如,处理元件可包括与处理器核700一起的存储器控制逻辑。处理元件可包括I/O控制逻辑和/或可包括与存储器控制逻辑集成的I/O控制逻辑。处理元件也可以包括一个或多个高速缓存。
现在参考图7,所示为根据一实施例的计算系统1000实施例的框图。图7中所示出的是多处理器系统1000,其包括第一处理元件1070和第二处理元件1080。尽管示出了两个处理元件1070和1080,但是要理解,系统1000的实施例还可包括仅一个此类处理元件。
系统1000被例示为点对点互连系统,其中第一处理元件1070和第二处理元件1080经由点对点互连1050相耦合。应当理解,图7中所例示的互连中的任何或全部可被实现为多分支总线而不是点对点互连。
如图7中所示,处理元件1070和1080中的每一者可以是包括第一和第二处理器核(即,处理器核1074a和1074b以及处理器核1084a和1084b)的多核处理器。此类核1074a、1074b、1084a、1084b可被配置成以与上面结合图6所讨论的方式类似的方式来执行指令代码。
每个处理元件1070、1080可包括至少一个共享高速缓存1896a、1896b。共享高速缓存1896a、1896b可存储分别由处理器的一个或多个组件(诸如核1074a、1074b以及1084a、1084b)利用的数据(例如,指令)。例如,共享高速缓存1896a、1896b可本地地高速缓存存储器1032、1034中所存储的数据以供处理器的各组件的更快速访问。在一个或多个实施例中,共享高速缓存1896a、1896b可包括一个或多个中级高速缓存(诸如,2级(L2)、3级(L3)、4级(L4)、或其他级的高速缓存)、末级高速缓存(LLC)和/或其组合。
虽然被示出为仅具有两个处理元件1070、1080,但要理解,各实施例的范围并不受限于此。在其他实施例中,在给定的处理器中可存在一个或多个附加处理元件。替换地,处理元件1070、1080中的一者或多者可以是除处理器之外的元件,诸如加速器或场可编程门阵列。例如,(诸)附加处理元件可包括与第一处理器1070相同的(诸)附加处理器、与第一处理器1070异构或不对称的(诸)附加处理器、加速器(诸如举例而言,图形加速器或数字信号处理(DSP)单元)、场可编程门阵列、或任何其他处理元件。在包括架构、微架构、热、功耗特性等一系列品质度量方面,处理元件1070、1080之间可存在各种差异。这些差异自身可有效地表现为处理元件1070、1080之中的不对称性和异构性。对于至少一个实施例,各种处理元件1070、1080可驻留在相同的管芯封装中。
第一处理元件1070可进一步包括存储器控制器逻辑(MC)1072以及点对点(P-P)接口1076和1078。类似地,第二处理元件1080可包括MC 1082以及P-P接口1086和1088。如图7中所示,MC 1072和1082将处理器耦合至相应的存储器,即存储器1032和存储器1034,这些存储器可以是本地附连到相应处理器的主存储器的部分。虽然MC 1072和1082被例示为集成到处理元件1070、1080中,但对于替换实施例,MC逻辑可以是处理元件1070、1080外部的分立逻辑,而不是被集成于其中。
第一处理元件1070和第二处理元件1080可分别经由P-P互连1076、1086耦合至I/O子系统1090。如图7中所示,I/O子系统1090包括P-P接口1094和1098。此外,I/O子系统1090包括将I/O子系统1090与高性能图形引擎1038耦合的接口1092。在一个实施例中,可使用总线1049将图形引擎1038耦合至I/O子系统1090。替换地,点对点互连可耦合这些组件。
进而,I/O子系统1090可经由接口1096耦合至第一总线1016。在一个实施例中,第一总线1016可以是外设组件互连(PCI)总线,或诸如高速PCI总线或另一第三代I/O互连总线之类的总线,尽管各实施例的范围并不受限于此。
如图7中所示,各种I/O设备1014(例如,扬声器、相机、传感器)可与总线桥接器1018一起耦合至第一总线1016,该总线桥接器1018可将第一总线1016耦合至第二总线1020。在一个实施例中,第二总线1020可以是低引脚数(LPC)总线。在一个实施例中,各种设备可被耦合至第二总线1020,包括例如键盘/鼠标1012、(诸)通信设备1026、以及诸如可包括代码1030的盘驱动器或其他大容量存储设备之类的数据存储单元1019。
可与代码713(图6)类似的所例示代码1030可实现已讨论方法300(图2)的一个或多个方面。进一步,音频I/O 1024可被耦合至第二总线1020,并且电池端口1010可向计算系统1000提供功率。
注意,构想了其他实施例。例如,系统可实现多分支总线或者另一此类通信拓扑,而不是图7的点对点架构。另外,可替换地使用比图7中所示的更多或更少的集成芯片来划分图7的各元件。
附加注解与示例:
示例1可包括一种用于管理虚拟机的系统,包括云服务器平台,该云服务器平台包括衬底以及耦合至衬底的逻辑,其中该逻辑用于:配置与云服务器平台的第一虚拟机相关联的一个或多个第一逻辑核,其中对一个或多个第一逻辑核的配置至少部分地基于一个或多个第一特征设置;至少部分地基于应用运行时需求来确定为与活跃虚拟机相关联的活跃应用所特有的一个或多个活跃特征设置,其中活跃特征设置与第一特征设置不同;配置与云服务器平台的活跃虚拟机相关联的一个或多个活跃逻辑核,其中对一个或多个活跃逻辑核的配置至少部分地基于一个或多个活跃特征设置。
示例2可包括示例1的系统,其中应用运行时需求包括对等待时间敏感性的指示以及对数据参考模式的指示中的至少一个,其中数据参考模式包括对活跃应用是否是流送应用的指示。
示例3可包括示例1的系统,其中活跃特征设置包括空闲功率状态设置、执行功率状态设置、或预取设置。
示例4可包括示例1的系统,其中逻辑用于:在逐个虚拟机的基础上,将活跃特征设置独立地指派给活跃虚拟机,以及将第一特征设置独立地指派给第一虚拟机。
示例5可包括示例4的系统,其中逻辑用于:迭代地标识重新调度事件,以及响应于所标识的重新调度事件来将活跃虚拟机迭代地调度为在逻辑核的、包括一个或多个活跃逻辑核的特定集上运行。
示例6可包括示例1的系统,其中逻辑用于:将活跃特征设置的位掩码存储在与活跃虚拟机相关联的虚拟机控制的控制字段中。
示例7可包括示例6的系统,其中逻辑用于:从虚拟机控制的控制字段传递为活跃应用所特有的活跃特征设置的位掩码,以及通过使活跃逻辑核的操作适应于支持活跃虚拟机和活跃应用来实施为活跃应用所特有的活跃特征设置。
示例8可包括一种用于管理虚拟机的方法,包括配置与云服务器平台的第一虚拟机相关联的一个或多个第一逻辑核,其中配置一个或多个第一逻辑核至少部分地基于一个或多个第一特征设置;至少部分地基于应用运行时需求来确定为与活跃虚拟机相关联的活跃应用所特有的一个或多个活跃特征设置,其中活跃特征设置与第一特征设置不同;以及配置与云服务器平台的活跃虚拟机相关联的一个或多个活跃逻辑核,其中配置一个或多个活跃逻辑核是至少部分地基于一个或多个活跃特征设置。
示例9可包括示例8的方法,其中应用运行时需求包括对等待时间敏感性的指示以及对数据参考模式的指示中的一个或多个,其中数据参考模式包括对活跃应用是否是流送应用的指示;并且其中活跃特征设置包括以下各项中的一个或多个:空闲功率状态设置、执行功率状态设置、或预取设置。
示例10可包括示例8的方法,进一步包括:在逐个虚拟机的基础上,将活跃特征设置独立地指派给活跃虚拟机,以及将第一特征设置独立地指派给第一虚拟机;迭代地标识重新调度事件;以及响应于所标识的重新调度事件来将活跃虚拟机迭代地调度为在逻辑核的、包括一个或多个活跃逻辑核的特定集上运行。
示例11可包括示例8的方法,进一步包括:将活跃特征设置的位掩码存储在与活跃虚拟机相关联的虚拟机控制的控制字段中,从虚拟机控制的控制字段传递为活跃应用所特有的活跃特征设置的位掩码,以及通过使活跃逻辑核的操作适应于支持活跃虚拟机和活跃应用来实施为活跃应用所特有的活跃特征设置。
示例12可包括至少一种计算机可读存储介质,包括指令集,指令集在由计算系统执行时,使计算系统用于:配置与云服务器平台的第一虚拟机相关联的一个或多个第一逻辑核,其中对一个或多个第一逻辑核的配置至少部分地基于一个或多个第一特征设置;至少部分地基于应用运行时需求来确定为与活跃虚拟机相关联的活跃应用所特有的一个或多个活跃特征设置,其中活跃特征设置与第一特征设置不同;配置与云服务器平台的活跃虚拟机相关联的一个或多个活跃逻辑核,其中对一个或多个活跃逻辑核的配置至少部分地基于一个或多个活跃特征设置。
示例13可包括示例12的至少一种计算机可读存储介质,其中应用运行时需求包括对等待时间敏感性的指示以及对数据参考模式的指示中的至少一个,其中数据参考模式包括对活跃应用是否是流送应用的指示;并且其中活跃特征设置包括:空闲功率状态设置、执行功率状态设置、或预取设置。
示例14可包括示例12的至少一种计算机可读存储介质,其中指令在被执行时,使计算系统用于:在逐个虚拟机的基础上,将活跃特征设置独立地指派给活跃虚拟机,以及将第一特征设置独立地指派给第一虚拟机;迭代地标识重新调度事件;以及响应于所标识的重新调度事件来将活跃虚拟机迭代地调度为在逻辑核的、包括一个或多个活跃逻辑核的特定集上运行。
示例15可包括示例12的至少一种计算机可读存储介质,其中指令在被执行时,使计算系统用于:将活跃特征设置的位掩码存储在与活跃虚拟机相关联的虚拟机控制的控制字段中,从虚拟机控制的控制字段传递为活跃应用所特有的活跃特征设置的位掩码,以及通过使活跃逻辑核的操作适应于支持活跃虚拟机和活跃应用来实施为活跃应用所特有的活跃特征设置。
示例16可包括用于管理虚拟机的装置,包括:云服务器平台中的第一虚拟机,该第一虚拟机包括一个或多个第一逻辑核,该第一虚拟机具有第一配置,该第一配置用于在一个或多个第一逻辑核上高效地支持第一特征设置布置;特征管理器,该特征管理器用于至少部分地基于应用运行时需求来确定为活跃应用所特有的活跃特征设置布置,其中活跃特征设置布置与第一特征设置布置不同;以及云服务器平台的活跃虚拟机,该活跃虚拟机与活跃应用相关联,该活跃虚拟机包括一个或多个活跃逻辑核,该活跃虚拟机具有活跃配置,该活跃配置用于在一个或多个活跃逻辑核上高效地支持活跃特征设置配置。
示例17可包括示例16的装置,进一步包括与活跃虚拟机相关联的活跃应用,其中活跃应用与应用运行时需求相关联,其中应用运行时需求包括对等待时间敏感性的指示以及对数据参考模式的指示中的至少一个,其中数据参考模式包括对活跃应用是否是流送应用的指示。
示例18可包括示例16的装置,其中活跃特征设置包括空闲功率状态设置、执行功率状态设置、或预取设置。
示例19可包括示例16的装置,进一步包括虚拟机监视器,该虚拟机监视器用于:在逐个虚拟机的基础上,将活跃特征设置独立地指派给活跃虚拟机,以及将第一特征设置独立地指派给第一虚拟机;迭代地标识重新调度事件;以及响应于所标识的重新调度事件来将活跃虚拟机迭代地调度为在逻辑核的、包括一个或多个活跃逻辑核的特定集上运行。
示例20可包括示例16的装置,进一步包括虚拟机控制,其中虚拟机控制包括控制字段,该控制字段用于存储活跃特征设置的位掩码,虚拟机控制与活跃虚拟机相关联;其中与活跃虚拟机相关联的一个或多个活跃逻辑核用于:从虚拟机控制的控制字段传递为活跃应用所特有的活跃特征设置的位掩码,以及通过使活跃逻辑核的操作适应于支持活跃虚拟机和活跃应用来实施为活跃应用所特有的活跃特征设置。
示例21可包括示例16的装置,进一步包括与活跃虚拟机相关联的活跃应用,其中活跃应用与应用运行时需求相关联,其中应用运行时需求包括对等待时间敏感性的指示以及对数据参考模式的指示中的至少一个,其中数据参考模式包括对活跃应用是否是流送应用的指示;其中活跃特征设置包括空闲功率状态设置、执行功率状态设置、或预取设置;虚拟机监视器,该虚拟机监视器用于:在逐个虚拟机的基础上,将活跃特征设置独立地指派给活跃虚拟机,以及将第一特征设置独立地指派给第一虚拟机,迭代地标识重新调度事件,以及响应于所标识的重新调度事件来将活跃虚拟机迭代地调度为在逻辑核的、包括一个或多个活跃逻辑核的特定集上运行;虚拟机控制,其中虚拟机控制包括控制字段,该控制字段用于存储活跃特征设置的位掩码,虚拟机控制与活跃虚拟机相关联;其中与活跃虚拟机相关联的一个或多个活跃逻辑核用于:从虚拟机控制的控制字段传递为活跃应用所特有的活跃特征设置的位掩码,以及通过使活跃逻辑核的操作适应于支持活跃虚拟机和活跃应用来实施为活跃应用所特有的活跃特征设置。
示例22可包括一种设备,包括用于执行任何前述示例中描述的方法的装置。
示例23可包括机器可读存储,包括机器可读指令,当执行该机器可读指令时,该机器可读指令执行如任何前述示例中描述的方法或实现如任何前述示例中描述的装置。
各实施例适用于与各种类型的半导体集成电路(“IC”)芯片一起使用。这些IC芯片的示例包括但不限于处理器、控制器、芯片组组件、可编程逻辑阵列(PLA)、存储器芯片、网络芯片、芯片上系统(SoC)、SSD/NAND控制器ASIC等等。另外,在一些附图中,信号导线是用线表示的。一些线可以是不同的,以表示更具构成性的信号路径,具有数字标号以表示构成性信号路径的数目,和/或在一端或多端具有箭头以表示主要信息流向。但是,这不应以限制性方式来解释。相反,这种增加的细节可与一个或多个示例性实施例结合使用以便更容易地理解电路。任何所表示的信号线,不管是否具有附加信息,实际上都可包括一个或多个信号,这一个或多个信号可在多个方向上行进,并且可用任何适合类型的信号方案来实现,例如利用差分对来实现的数字或模拟线路、光纤线路,和/或单端线路。
示例尺寸/模型/值/范围可能已经被给出,但是各实施例不限于此。随着制造技术(例如,光刻法)随时间的成熟,可望能制造出更小尺寸的设备。另外,为了例示和说明的简单,与IC芯片公知的功率/接地连接和其它组件可在附图中示出也可不示出,并且这样做也是为了不使所述实施例的某些方面变得晦涩。此外,各种配置可以方框图形式示出以避免使各实施例变得晦涩,并鉴于相对于这些方框图配置的实现的具体细节很大程度地依赖于所述实施例实现的平台这一事实,即这些具体细节应当落在本领域内技术人员的眼界内。在阐述具体细节(例如电路)以描述示例性实施例的情形下,显然本领域内技术人员能不经过这些具体细节或对这些具体细节作出变化地实现各实施例。说明书因此被视为是示例性的而不是限制性的。
术语“耦合”在本文中被用于表示所讨论的组件之间的任何类型的直接或间接关系,且可应用于电气的、机械的、流体的、光学的、电磁的、机电的或其他连接。另外,术语“第一”、“第二”等等本文只用于便于讨论,没有特定时间的或按时间顺序的意义,除非另有陈述。
如在本申请和权利要求书中所使用的,由术语“一个或多个”联接的项列表可意指着所列项的任何组合。例如,短语“A、B或C中的一个或多个”可意指A;B;C;A和B;A和C;B和C;或A、B和C。
本领域内技术人员从前面的描述将可以理解,所述实施例的广泛技术可以用多种形式来实现。因此,尽管已结合其特定示例描述了所述实施例,然而所述实施例的真实范围不受此限,因为本领域内技术人员在研究附图、说明书和下面的权利要求书之后很容易理解其它的修正形式。
Claims (19)
1.一种用于管理虚拟机的系统,包括:
云服务器平台,所述云服务器平台包括衬底以及耦合至所述衬底的逻辑,其中所述逻辑用于:
配置与所述云服务器平台的第一虚拟机相关联的一个或多个第一逻辑核,其中对所述一个或多个第一逻辑核的配置至少部分地基于一个或多个第一特征设置;
至少部分地基于应用运行时需求来确定为与活跃虚拟机相关联的活跃应用所特有的一个或多个活跃特征设置,其中所述活跃特征设置与所述第一特征设置不同;
配置与所述云服务器平台的所述活跃虚拟机相关联的一个或多个活跃逻辑核,其中对所述一个或多个活跃逻辑核的配置至少部分地基于所述一个或多个活跃特征设置;以及
功率源,所述功率源用于向所述云服务器平台提供功率。
2.如权利要求1所述的系统,其特征在于,所述应用运行时需求包括对等待时间敏感性的指示以及对数据参考模式的指示中的至少一个,其中所述数据参考模式包括对所述活跃应用是否是流送应用的指示。
3.如权利要求1所述的系统,其特征在于,所述活跃特征设置包括空闲功率状态设置、执行功率状态设置、或预取设置。
4.如权利要求1所述的系统,其特征在于,所述逻辑用于:
在逐个虚拟机的基础上,将所述活跃特征设置独立地指派给所述活跃虚拟机,以及将所述第一特征设置独立地指派给所述第一虚拟机。
5.如权利要求4所述的系统,其特征在于,所述逻辑用于:
迭代地标识重新调度事件;以及
响应于所标识的重新调度事件将所述活跃虚拟机迭代地调度为在逻辑核的、包括所述一个或多个活跃逻辑核的特定集上运行。
6.如权利要求1所述的系统,其特征在于,所述逻辑用于:
将所述活跃特征设置的位掩码存储在与所述活跃虚拟机相关联的虚拟机控制的控制字段中。
7.如权利要求6所述的系统,其特征在于,所述逻辑用于:
从所述虚拟机控制的所述控制字段传递为所述活跃应用所特有的活跃特征设置的所述位掩码;以及
通过使所述活跃逻辑核的操作适应于支持所述活跃虚拟机和活跃应用来实施为所述活跃应用所特有的所述活跃特征设置。
8.一种用于管理虚拟机的方法,包括:
配置与云服务器平台的第一虚拟机相关联的一个或多个第一逻辑核,其中配置所述一个或多个第一逻辑核是至少部分地基于一个或多个第一特征设置;
至少部分地基于应用运行时需求来确定为与活跃虚拟机相关联的活跃应用所特有的一个或多个活跃特征设置,其中所述活跃特征设置与所述第一特征设置不同;以及
配置与所述云服务器平台的所述活跃虚拟机相关联的一个或多个活跃逻辑核,其中配置所述一个或多个活跃逻辑核是至少部分地基于所述一个或多个活跃特征设置。
9.如权利要求8所述的方法,其特征在于,所述应用运行时需求包括对等待时间敏感性的指示以及对数据参考模式的指示中的一个或多个,其中所述数据参考模式包括对所述活跃应用是否是流送应用的指示,并且其中所述活跃特征设置包括以下各项中的一个或多个:空闲功率状态设置、执行功率状态设置、或预取设置。
10.如权利要求8所述的方法,其特征在于,进一步包括:
在逐个虚拟机的基础上,将所述活跃特征设置独立地指派给所述活跃虚拟机,以及将所述第一特征设置独立地指派给所述第一虚拟机;
迭代地标识重新调度事件;以及
响应于所标识的重新调度事件来将所述活跃虚拟机迭代地调度为在逻辑核的、包括所述一个或多个活跃逻辑核的特定集上运行。
11.如权利要求8所述的方法,其特征在于,进一步包括:
将所述活跃特征设置的位掩码存储在与所述活跃虚拟机相关联的虚拟机控制的控制字段中;
从所述虚拟机控制的所述控制字段传递为所述活跃应用所特有的活跃特征设置的所述位掩码;以及
通过使所述活跃逻辑核的操作适应于支持所述活跃虚拟机和活跃应用来实施为所述活跃应用所特有的所述活跃特征设置。
12.一种用于管理虚拟机的装置,包括:
云服务器平台的第一虚拟机,所述第一虚拟机包括一个或多个第一逻辑核,所述第一虚拟机具有第一配置,所述第一配置用于在所述一个或多个第一逻辑核上高效地支持第一特征设置布置;
特征管理器,所述特征管理器用于至少部分地基于应用运行时需求来确定为活跃应用所特有的活跃特征设置布置,其中所述活跃特征设置布置与所述第一特征设置布置不同;以及
所述云服务器平台的活跃虚拟机,所述活跃虚拟机与所述活跃应用相关联,所述活跃虚拟机包括一个或多个活跃逻辑核,所述活跃虚拟机具有活跃配置,所述活跃配置用于在所述一个或多个活跃逻辑核上高效地支持所述活跃特征设置配置。
13.如权利要求12所述的装置,其特征在于,进一步包括:
与所述活跃虚拟机相关联的活跃应用,其中所述活跃应用与应用运行时需求相关联,其中所述应用运行时需求包括对等待时间敏感性的指示以及对数据参考模式的指示中的至少一个,其中所述数据参考模式包括对所述活跃应用是否是流送应用的指示。
14.如权利要求12所述的装置,其特征在于,所述活跃特征设置包括空闲功率状态设置、执行功率状态设置、或预取设置。
15.如权利要求12所述的设备,其特征在于,进一步包括:
虚拟机监视器,所述虚拟机监视器用于:
在逐个虚拟机的基础上,将所述活跃特征设置独立地指派给所述活跃虚拟机,以及将所述第一特征设置独立地指派给所述第一虚拟机,
迭代地标识重新调度事件,以及
响应于所标识的重新调度事件将所述活跃虚拟机迭代地调度为在逻辑核的、包括所述一个或多个活跃逻辑核的特定集上运行。
16.如权利要求12所述的装置,其特征在于,进一步包括:
虚拟机控制,其中所述虚拟机控制包括控制字段,所述控制字段用于存储所述活跃特征设置的位掩码,所述虚拟机控制与所述活跃虚拟机相关联;
其中与所述活跃虚拟机相关联的一个或多个活跃逻辑核用于:
从所述虚拟机控制的所述控制字段传递为所述活跃应用所特有的活跃特征设置的所述位掩码,以及
通过使所述活跃逻辑核的操作适应于支持所述活跃虚拟机和活跃应用来实施为所述活跃应用所特有的所述活跃特征设置。
17.如权利要求12所述的装置,其特征在于,进一步包括:
与所述活跃虚拟机相关联的活跃应用,其中所述活跃应用与应用运行时需求相关联,其中所述应用运行时需求包括对等待时间敏感性的指示以及对数据参考模式的指示中的至少一个,其中所述数据参考模式包括对所述活跃应用是否是流送应用的指示;
其中所述活跃特征设置包括空闲功率状态设置、执行功率状态设置、或预取设置;
虚拟机监视器,所述虚拟机监视器用于:
在逐个虚拟机的基础上,将所述活跃特征设置独立地指派给所述活跃虚拟机,以及将所述第一特征设置独立地指派给所述第一虚拟机,
迭代地标识重新调度事件,
响应于所标识的重新调度事件将所述活跃虚拟机迭代地调度为在逻辑核的、包括所述一个或多个活跃逻辑核的特定集上运行;
虚拟机控制,其中所述虚拟机控制包括控制字段,所述控制字段用于存储所述活跃特征设置的位掩码,所述虚拟机控制与所述活跃虚拟机相关联;
其中与所述活跃虚拟机相关联的一个或多个活跃逻辑核用于:
从所述虚拟机控制的所述控制字段传递为所述活跃应用所特有的活跃特征设置的所述位掩码,以及
通过使所述活跃逻辑核的操作适应于支持所述活跃虚拟机和活跃应用来实施为所述活跃应用所特有的所述活跃特征设置。
18.一种设备,包括用于执行如任何前述权利要求中所述的方法的装置。
19.一种包括机器可读指令的机器可读存储,所述机器可读指令在被执行时,执行如任何前述权利要求中所述的方法或实现如任何前述权利要求中所述的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/718,655 | 2017-09-28 | ||
US15/718,655 US11169834B2 (en) | 2017-09-28 | 2017-09-28 | Dynamic platform feature tuning based on virtual machine runtime requirements |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109582434A true CN109582434A (zh) | 2019-04-05 |
Family
ID=65638700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810990688.0A Pending CN109582434A (zh) | 2017-09-28 | 2018-08-28 | 基于虚拟机运行时需求的动态平台特征调谐 |
Country Status (3)
Country | Link |
---|---|
US (2) | US11169834B2 (zh) |
CN (1) | CN109582434A (zh) |
DE (1) | DE102018214008A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10713075B2 (en) | 2017-11-30 | 2020-07-14 | International Business Machines Corporation | Workload manager control of dynamic thread mode switch |
US11429415B2 (en) * | 2019-03-27 | 2022-08-30 | Red Hat Israel, Ltd. | Dynamic tuning of hypervisor for high-performance virtual machines |
US10963362B2 (en) * | 2019-04-11 | 2021-03-30 | Dell Products L.P. | Method and system for identifying latency-sensitive computing workloads of information handling systems |
CN110247863A (zh) * | 2019-07-12 | 2019-09-17 | 广州西麦科技股份有限公司 | 数据包处理方法、装置、sdn交换机及存储介质 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6058466A (en) * | 1997-06-24 | 2000-05-02 | Sun Microsystems, Inc. | System for allocation of execution resources amongst multiple executing processes |
US7725895B2 (en) * | 2004-03-31 | 2010-05-25 | Intel Corporation | Processor control register virtualization to minimize virtual machine exits |
US7962771B2 (en) * | 2007-12-31 | 2011-06-14 | Intel Corporation | Method, system, and apparatus for rerouting interrupts in a multi-core processor |
US8418177B2 (en) * | 2010-10-01 | 2013-04-09 | Microsoft Corporation | Virtual machine and/or multi-level scheduling support on systems with asymmetric processor cores |
US9262196B2 (en) * | 2010-11-30 | 2016-02-16 | International Business Machines Corporation | Virtual machine deployment planning method and associated apparatus |
EP2458501A1 (en) * | 2010-11-30 | 2012-05-30 | France Telecom | Method of operating a communication device and related communication device |
US8892919B2 (en) * | 2011-12-14 | 2014-11-18 | Ati Technologies Ulc | Method and apparatus for power management of a processor in a virtual environment |
US9003218B2 (en) * | 2012-05-21 | 2015-04-07 | International Business Machines Corporation | Power shifting in multicore platforms by varying SMT levels |
US10313345B2 (en) * | 2013-03-11 | 2019-06-04 | Amazon Technologies, Inc. | Application marketplace for virtual desktops |
US9575541B2 (en) * | 2013-08-28 | 2017-02-21 | Via Technologies, Inc. | Propagation of updates to per-core-instantiated architecturally-visible storage resource |
US10372498B2 (en) * | 2016-09-26 | 2019-08-06 | Intel Corporation | Dynamic virtual CPU core allocation |
-
2017
- 2017-09-28 US US15/718,655 patent/US11169834B2/en active Active
-
2018
- 2018-08-20 DE DE102018214008.1A patent/DE102018214008A1/de active Pending
- 2018-08-28 CN CN201810990688.0A patent/CN109582434A/zh active Pending
-
2021
- 2021-09-30 US US17/490,863 patent/US11853787B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
US11169834B2 (en) | 2021-11-09 |
US20220019458A1 (en) | 2022-01-20 |
US20190095231A1 (en) | 2019-03-28 |
US11853787B2 (en) | 2023-12-26 |
DE102018214008A1 (de) | 2019-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11645099B2 (en) | Parallel hardware hypervisor for virtualizing application-specific supercomputers | |
US8516280B2 (en) | Parallel processing computer systems with reduced power consumption and methods for providing the same | |
CN109582434A (zh) | 基于虚拟机运行时需求的动态平台特征调谐 | |
US8776066B2 (en) | Managing task execution on accelerators | |
CN104049712B (zh) | 用于计算机系统的功率管理方法和系统 | |
US9183063B2 (en) | Power-constrained compiler code generation and scheduling of work in a heterogeneous processing system | |
CN113010468A (zh) | 用于为异构系统划分计算机应用的自动学习技术 | |
CN112673348A (zh) | 混合虚拟gpu协同调度 | |
Mytilinis et al. | The vision of a heterogenerous scheduler | |
CN106030517A (zh) | 用于仿真共享内存架构中的长延迟操作的架构 | |
DB et al. | HDL Programming and Sequential Circuitry for Multi-Core RISC-V Processor | |
Tasoulas | Resource management and application customization for hardware accelerated systems | |
Dhar | Reconfigurable and heterogeneous architectures for efficient computing | |
Villebonnet | Scheduling and Dynamic Provisioning for Energy Proportional Heterogeneous Infrastructures | |
Carrington | Thrify: UCSD/SDSC Final Report: Energy Efficient Execution of Large-scale HPC Applications | |
Singh et al. | Multi FPGA Based Novel Reconfigurable Hybrid Architecture for High Performance Computing | |
Xie et al. | A real-time asymmetric multiprocessor reconfigurable system-on-chip architecture | |
Biedermann et al. | Virtualizable Architecture for embedded MPSoC | |
Vega | Performance and power optimizations in chip multiprocessors for throughput-aware computation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |