CN109643243B - 用于动态虚拟cpu核分配的方法、系统、设备、装置和介质 - Google Patents

用于动态虚拟cpu核分配的方法、系统、设备、装置和介质 Download PDF

Info

Publication number
CN109643243B
CN109643243B CN201780052580.0A CN201780052580A CN109643243B CN 109643243 B CN109643243 B CN 109643243B CN 201780052580 A CN201780052580 A CN 201780052580A CN 109643243 B CN109643243 B CN 109643243B
Authority
CN
China
Prior art keywords
physical
performance
resource
virtual machines
data
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.)
Active
Application number
CN201780052580.0A
Other languages
English (en)
Other versions
CN109643243A (zh
Inventor
A·W·敏
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.)
Intel Corp
Original Assignee
Intel 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 Intel Corp filed Critical Intel Corp
Publication of CN109643243A publication Critical patent/CN109643243A/zh
Application granted granted Critical
Publication of CN109643243B publication Critical patent/CN109643243B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3243Power saving in microcontroller unit
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/329Power saving characterised by the action undertaken by task scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3037Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a memory, e.g. virtual memory, cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • G06F11/3433Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment for load management
    • 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/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0864Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches using pseudo-associative means, e.g. set-associative or hashing
    • 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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3058Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
    • G06F11/3062Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations where the monitored property is the power consumption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3089Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
    • G06F11/3096Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents wherein the means or processing minimize the use of computing system or of computing system component resources, e.g. non-intrusive monitoring which minimizes the probe effect: sniffing, intercepting, indirectly deriving the monitored data from other directly available data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • 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/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/45583Memory management, e.g. access or allocation
    • 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/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/60Details of cache memory
    • G06F2212/6032Way prediction in set-associative cache
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Power Sources (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本文所描述的系统和方法提供功率管理电路,该功率管理电路当确定pCPU‑vCPU核重新映射时将应用或VM的一个或多个高速缓存参数(例如,高速缓存利用率)考虑在内。通过考虑处理器和高速缓存存储器两者相关的参数的更稳健的混合,通过改善CPU和高速缓存利用率和效率同时减少高速缓存相关问题(诸如,冲突和/或污染)来增加系统性能和稳定性。

Description

用于动态虚拟CPU核分配的方法、系统、设备、装置和介质
技术领域
本公开涉及虚拟化环境中的物理CPU核合并。
背景技术
虚拟机模拟特定计算平台以向系统用户提供跨平台分配工作负载和执行的灵活性和/或选项。例如,当系统执行第一操作系统(例如,)时,特定应用可以在第二操作系统(例如,LINUX)下更高效地操作,在此类情况下,应用可以在经由虚拟机模拟的LINUX环境中执行。尽管虚拟机提供模拟的操作环境,但是此类虚拟机共享物理系统资源,诸如,一个或多个物理CPU核和耦合到物理CPU核的高速缓存存储器。虽然台式计算机、工作站和服务器系统可以提供足够的CPU核带宽和高速缓存存储器,但是诸如便携式设备、智能电话、可穿戴计算设备和手持计算设备之类的较小平台可能具有有限的物理资源。
当前的移动平台虚拟化允许由虚拟机执行的多个操作系统共享系统或平台物理资源,诸如CPU、图形处理单元(GPU)、存储器、输入/输出接口等。移动虚拟化越来越受欢迎,以适应增加数量的移动应用和/或服务,诸如,连接性、安全性、娱乐、位置确定等。移动虚拟化的可行性随着移动平台配备增加数量的系统资源(诸如,多个CPU核、GPU以及更大的和更高时钟速度的存储器和I/O)而增加。
附图说明
所要求保护的主题的各个实施例的特征和优点将随着以下具体实施方式进行并且在参照附图时变得显而易见,其中,类似数字指代类似部件,并且在附图中:
图1是根据本文所描述的至少一个实施例的说明性系统的高级框图,其中当第一模块执行第一虚拟机并且第二模块执行第二虚拟机时,虚拟机管理器监视并且合并物理资源。
图2是根据本文描述的至少一个实施例的说明性虚拟机管理器的框图;
图3A是根据本文描述的至少一个实施例的说明性设备的示意图,该设备包括由第一物理模块执行的第一虚拟机和由第二物理模块执行的第二虚拟机120B。
图3B是根据本文描述的至少一个实施例的图3中描绘的说明性设备的示意图,并且其中第一虚拟机和第二虚拟机已被合并到物理模块,从而释放物理模块上的物理资源(例如,核和高速缓存);
图4和以下讨论提供根据本文描述的至少一个实施例的形成说明性系统的组件的简要的、一般性的描述,该说明性系统包括一个或多个虚拟机管理器,这一个或多个虚拟机管理器能够将跨与多个虚拟机相关联的多个物理资源模块的负载合并到较少数量的物理资源模块;以及
图5是根据本文描述的至少一个实施例的由虚拟机使用的合并物理资源的说明性方法的高级逻辑流程图。
尽管以下具体实施方式将参照说明性实施例进行,但其许多替代方案、修改以及变型对本领域技术人员而言将显而易见。
具体实施方式
虚拟移动平台采用多种功率管理技术,包括物理CPU(pCPU)到虚拟CPU(vCPU)重映射(也称为CPU并发或核屏蔽),以在可能的情况下通过减少活动CPU核的数量来降低功耗,而不会损害应用性能和用户体验。虽然此类移动平台通常在性能、成本和安全性方面提供显著的益处,但移动虚拟化使平台资源分配和功率管理变得复杂,特别是当系统资源在多个虚拟机和/或应用之间共享时。虚拟化移动平台中的功率管理算法可能依赖于简单或单一的统计信息,诸如,在进行功率管理决策(诸如,CPU核分配)时的平均CPU利用率。此类基于CPU利用率的算法对于其他可能重要和/或系统关键的性能指标(诸如,高速缓存污染、存储器等待时间和/或存储器带宽)是不可知的。因此,功率管理算法可能导致不期望的和/或非预期的系统性能降级。例如,如果在虚拟机1(VM1)上执行的应用是高速缓存饥饿型(cache-hungry)的(例如,文件托管或视频流送),则经由pCPU-vCPU重新映射与虚拟机2(VM2)执行的应用共享相同的物理CPU核,高速缓存未命中率和存储器/高速缓存等待时间可能增加,因为在VM2中执行的应用能够用新的数据覆盖在低级高速缓存(LLC)中的数据中的至少一些并使VM1的应用高速缓存操作无效(即,高速缓存污染)。
为了避免由于高速缓存争用和污染引起的此类潜在性能降级,当前的功率管理算法在虚拟机和/或工作负载共享相同的物理CPU核的情况下对虚拟机和/或工作负载排定优先级。例如,虚拟机管理器(VMM)可以仅在没有来自VM1的待定访问请求时调度VM2。在这样做时,VMM可以使来自竞争虚拟机和/或应用的高速缓存争用和/或污染的风险最小化。然而,此类优先级排定方法对于为较低优先级的应用提供所需的性能水平可能不足够或不适合。
本文所描述的系统和方法通过使用功率管理电路解决上述问题,该功率管理电路通过以下内容在作出功率管理决策时具有更高的准确性和效率,同时提供改善的性能:
1.在作出pCPU-vCPU重映射决策之前的将应用高速缓存利用率作为考虑因素的高速缓存和/或资源知晓的功率管理决策;以及
2.基于应用的实际高速缓存覆盖范围(footprint)将不同量的高速缓存空间分配给应用的应用和/或VM级高速缓存分配。
这里描述的系统和方法提供功率管理电路,该功率管理电路当确定pCPU-vCPU核重新映射时将应用或VM的一个或多个高速缓存参数(例如,高速缓存利用率)考虑在内。通过考虑处理器和高速缓存存储器两者相关的参数的更稳健的混合,通过改善CPU和高速缓存利用率和效率同时减少高速缓存相关问题(诸如,冲突和/或污染)来增加系统性能和稳定性。当在pCPU上合并vCPU时考虑的示例参数包括高速缓存利用率、可用CPU频率、可用存储器带宽等。功率管理电路可以从在系统上执行的虚拟机管理器获得此类参数,可以在物理地将多个vCPU合并到减少数量的pCPU之前评估pCPU合并的影响。
提供了一种用于虚拟机的性能监视系统。该系统可以包括:性能监视电路,用于确定指示逻辑上与多个虚拟机中的每个虚拟机相关联的至少一个参数的性能数据;资源监视电路,用于确定资源数据,该资源数据指示:逻辑上与多个物理核中的每个物理核关联的至少一个物理核参数和至少一个物理高速缓存参数;以及逻辑上与多个物理高速缓存中的每个物理高速缓存相关联的至少物理高速缓存参数,多个物理高速缓存中的每个物理高速缓存可通信地耦合到多个物理核中的相应的一个物理核;以及功率管理电路,用于至少部分地基于所确定的性能数据和所确定的资源数据来判定是否合并多个虚拟机中的至少两个。
提供了一种包括性能监视系统的基于处理器的设备。该系统可以包括至少一个中央处理单元(CPU),该中央处理单元包括多个物理核,多个物理核中的每个物理核可通信地耦合到多个物理高速缓存中的对应的一个物理高速缓存;以及用于虚拟机的性能监视系统,该性能监视系统包括:性能监视电路,用于确定指示逻辑上与多个虚拟机中的每个虚拟机相关联的至少一个参数的性能数据;资源监视电路,用于确定指示资源数据,该资源数据指示:逻辑上与多个物理核中的每个物理核关联的至少一个物理核参数和至少一个物理高速缓存参数;以及逻辑上与多个物理高速缓存中的每个物理高速缓存相关联的至少物理高速缓存参数,多个物理高速缓存中的每个物理高速缓存可通信地耦合到多个物理核中的相应的一个物理核;以及功率管理电路,用于至少部分地基于所确定的性能数据和所确定的资源数据来判定是否合并多个虚拟机中的至少两个虚拟机。
提供了一种用于在多个物理核上合并多个虚拟机的性能监视方法,其中每个物理核可通信地耦合到对应的多个物理高速缓存中的相应的一个物理高速缓存。该方法可以包括:由性能监视电路确定指示逻辑上与多个虚拟机中的每个虚拟机相关联的至少一个参数的性能数据;由资源监视电路确定资源数据,该资源数据指示:逻辑上与多个物理核中的每个物理核相关联的至少一个物理核参数;以及逻辑上与多个物理高速缓存中的每个物理高速缓存相关联的至少物理高速缓存参数,多个物理高速缓存中的每个物理高速缓存可通信地耦合到多个物理核中的相应的一个物理核;以及由功率管理电路至少部分地基于所确定的性能数据和所确定的资源数据来判定是否合并多个虚拟机中的至少两个虚拟机。
提供了一种用于在多个物理核上合并多个虚拟机的性能监视系统,每个物理核可通信地耦合到对应的多个物理高速缓存中的相应的一个物理高速缓存。该系统可以包括:用于确定指示逻辑上与多个虚拟机中的每个虚拟机相关联的至少一个参数的性能数据的装置;用于确定资源数据的装置,该资源数据指示:逻辑上与多个物理核中的每个物理核相关联的至少一个物理核参数;以及逻辑上与多个物理高速缓存中的每个物理高速缓存相关联的至少一个物理高速缓存参数,多个物理高速缓存中的每个物理高速缓存可通信地耦合到多个物理核中的相应的一个物理核;以及用于至少部分地基于所确定的性能数据和所确定的资源数据来判定是否合并多个虚拟机中的至少两个虚拟机的装置。
提供了一种包括一个或多个机器可读指令集的存储设备。这些机器可读指令集当由电路执行时使得电路转换为虚拟机管理器,该虚拟机管理器用于:使性能监视电路确定指示逻辑上与多个虚拟机中的每个虚拟机相关联的至少一个参数的性能数据;使资源监视电路确定资源数据,该资源数据指示:逻辑上与多个物理核中的每个物理核相关联的至少一个物理核参数;以及逻辑上与多个物理高速缓存中的每个物理高速缓存相关联的至少物理高速缓存参数,多个物理高速缓存中的每个物理高速缓存可通信地耦合到多个物理核中的相应的一个物理核;以及使功率管理电路至少部分地基于所确定的性能数据和所确定的资源数据来判定是否合并多个虚拟机中的至少两个虚拟机。
提供了一种用于管理分配给多个虚拟机的物理资源的系统。该系统可以被布置为执行示例19至28中任一项的方法。
提供了用于执行示例19至28中任一项的方法的芯片组。
提供了一种机器可读介质,该机器可读介质包括多条指令,多条指令响应于在计算设备上被执行而使该计算设备执行根据示例19至28中任一项的方法。
提供了一种被配置为管理分配给多个虚拟机的物理资源的设备,该设备被布置为执行示例19至28中任一项的方法。
图1提供根据本文所描述的至少一个实施例的说明性系统100的高级框图,其中当第一模块112A执行124A第一虚拟机120A并且第二模块112B执行124B第二虚拟机120B时,虚拟机管理器102监视并且合并物理资源。如图1中所描绘,第一虚拟机120A由一个或多个虚拟中央处理单元122A-122n(统称为“虚拟CPU 122”)来实现,并且第二虚拟机120B类似地使用一个或多个vCPU 122来实现,这一个或多个vCPU 122可以是或可以不是与用于实现第一虚拟机120A的vCPU 122相同或不同。第一模块112A和第二模块112B可以使用一个或多个中央处理单元(CPU)110来实现。每个模块112包括多个物理核114A-114n(统称为“物理核114”),这些物理核中的每个物理核可通信地耦合到多个物理高速缓存116A-116n(统称为“物理高速缓存116”)中的相应一个。
虚拟机管理器102包括第一接口104,用于单向或双向地传送来自虚拟机120中的至少一些虚拟机的指示一个或多个虚拟机参数的信息和/或数据。示例虚拟机参数可包括但不限于与由一些或所有虚拟机120执行的一个或多个应用相关联的信息和/或数据。示例虚拟机参数可包括但不限于与用于执行应用的一个或多个虚拟CPU 122相关联的信息和/或数据。
虚拟机管理器102还包括第二接口106,用于单向或双向地传送来自至少模块112中的至少一些模块的指示一个或多个物理资源参数的信息和/或数据。示例物理资源参数包括但不限于:物理核利用率、物理核频率、物理核效率、物理高速缓存利用率、物理高速缓存读取速率和/或写入速率等。
使用从虚拟机120、从物理核114以及从物理高速缓存116接收的信息和/或数据,虚拟机管理器102判定是否合并物理核114和/或高速缓存116。通过考虑物理核114的功耗或利用率以及物理高速缓存116的利用率两者,当两种功率节省都是可能的并且有益地减少了存储器冲突和/或存储器污染的可能性时,虚拟机管理器102能够有利地合并物理资源。以对数据完整性或可靠性的最小妥协来降低功耗和合并物理高速缓存有利地改善了主机系统100的速度、可靠性和完整性。对于先前的合并方案尤其如此,先前的合并方案在合并耦合到被合并的物理核114的物理高速缓存116时,仅考虑功耗而很少关注或忽略数据丢失、数据冲突和/或数据污染的潜在有害影响。
例如,虚拟机管理器102可以接收指示物理CPU利用率足够低的信息和/或数据,以允许将模块112B中的物理核114上的负载合并到模块112A中的物理核114。此刻,许多常规的功率管理系统将会将负载合并到模块112A中的物理核114。然而,在本文描述的系统和方法中,虚拟机管理器102还判定模块112B中的物理高速缓存116上的负载是否足够低以在将负载合并到模块112A之前能够与模块112A中的物理高速缓存116合并。这样有益地降低了物理高速缓存116内的高速缓存污染、高速缓存冲突和潜在数据丢失或可疑数据完整性的可能性。
图2提供了根据本文描述的至少一个实施例的说明性虚拟机管理器102的框图。如图2中所描绘,模块112中的每个模块包括多个物理核(示出两个)114A和114B(统称为“核114”)。物理核114A和114B中的每一个可通信地耦合到相应的高速缓存116A和116B。尽管在图1中仅示出了各自都包括两个核114的两个模块112,但是每个模块112可以包括任何数量的物理核114。此外,CPU 110可以包括任何数量的模块112。例如,移动设备可以具有单个CPU 110,该CPU 110包括四个模块112A至112D,模块112中的每个模块包括第一物理CPU核114A和第二物理CPU核114B,总共八(8)个物理核114。继续先前的示例,八个核114中的每一个可以可通信地耦合到高速缓存116,该高速缓存116提供与耦合到该高速缓存116的物理核114之间的高数据读取和/或传输速率。在实施例中,每个核114可以同时执行一个或多个线程。
一些或所有的物理核114和相关联的物理高速缓存116可用于主管和提供资源以供虚拟机120中的至少一些虚拟机使用。例如,模块112A中的物理核114A和114B两者都可用于主管虚拟机120A,并且模块112B中的物理核114A和114B两者都可以用于主管虚拟机120B。因此,由虚拟机120A使用以执行一个或多个应用的CPU 122A至122n对模块112A中的物理核114A和114B施加计算负载或需求。由虚拟机120A使用的虚拟CPU 122A-122n还可以消耗耦合到模块112A中的物理核114A和114B的物理高速缓存116A和116B的至少一部分。同样,由虚拟机120B使用以执行一个或多个应用的CPU 122A至122n对模块112B中的物理核114A和114B施加计算负载或需求。由虚拟机120B使用的虚拟CPU 122A-122n还可以消耗耦合到模块112B中的物理核114A和114B的物理高速缓存116A和116B的至少一部分。
虚拟机管理器102包括性能监视电路230,该性能监视电路230用于在当前操作方案下从一些或所有虚拟机120收集性能和其他操作评估信息和/或数据。虚拟机管理器102还包括资源监视电路250,该资源监视电路250用于在当前操作方案下从CPU 110收集性能和其他操作评估信息和/或数据。虚拟机管理器102附加地包括性能确定电路240,该性能确定电路240用于确定用于一些或所有虚拟机120的一个或多个所提议的虚拟机操作方案。性能确定电路240还确定在一个或多个所提议的虚拟机操作方案中的每一个虚拟机操作方案下对系统100的性能影响和/或功耗影响。虚拟机管理器102进一步包括资源分配确定电路260,该资源分配确定电路260用于确定支持至少由虚拟机120呈现的当前操作负载所需的物理资源(例如,物理核114和/或物理高速缓存116)。资源分配确定电路260可以确定实现由资源监视电路250确定的所提议的虚拟机操作方案中的每一个虚拟机操作方案所需的资源分配。资源分配确定电路260基于一个或多个所定义的物理资源分配策略来分配物理资源。虚拟机管理器102进一步包括功率管理电路270。功率管理电路270选择一个或多个所提议的虚拟机操作方案中的一个虚拟机操作方案,并跨物理核114和/或物理高速缓存116重新分布一些或所有虚拟机的物理资源负载。
性能监视电路230可通信地耦合到虚拟机120的至少一部分,以从一些或所有虚拟机120收集、接收或以其他方式获取性能和操作评估信息和/或数据。性能监视电路230将收集到的、接收到的或以其他方式获取的信息和/或数据的至少一部分传送到性能确定电路240。性能监视电路230还可以将收集到的、接收到的或以其他方式获取的信息的至少一部分和/或数据传送到功率管理电路270。
在一些实现中,性能监视电路230周期性地、间歇地或连续地监视在一些或所有虚拟机120上执行的一些或全部应用或由一些或所有虚拟机120执行的一些或全部应用。在一些实现中,性能监视电路230周期性地、间歇地或连续地监视一些或所有虚拟机120的虚拟CPU 122的性能。在实现中,性能监视电路230可以单独或组合地使用软件和/或硬件计数器来确定一些或所有虚拟CPU 122是否满足所定义的性能度量和/或参数,并且还检测作为物理资源合并(诸如,合并物理核114和/或高速缓存116)的结果的虚拟机性能的变化。在实现中,性能监视电路230可用于检测一个或多个虚拟机120和/或一个或多个虚拟CPU 122的异常或不可接受和/或不令人满意的性能。在一些实现中,性能监视电路230可以评估由功率管理电路270选择的所提议的虚拟机操作方案对由一些或所有虚拟机120执行的应用的性能的影响。在一些实现中,性能监视电路230可以评估由功率管理电路270选择的所提议的虚拟机操作方案对一些或所有虚拟机120中的一些或所有虚拟CPU 122的性能的影响。
性能监视电路230可以包括任何数量的能够监视虚拟机120中的至少一个的一个或多个性能方面和/或参数的任何当前可用或未来开发的电子设备和/或半导体组件和/或能够监视虚拟机120中的至少一个的一个或多个性能方面和/或参数的任何当前可用或未来开发的电子设备和/或半导体组件的组合。在一些实现中,性能监测电路230可包括能够执行机器可读指令集的一个或多个可配置的或可编程的元件,诸如一个或多个可配置的集成电路,该机器可读指令集使得可配置的或可编程的元件以特定方式组合以创建性能监视电路230。在一些实现中,性能监视电路230可以包括一个或多个独立式设备或系统,例如,性能监视电路230可以具体化在单表面或插口插口安装集成电路中。在其他实现中,性能监视电路230可以全部或部分地经由能够提供虚拟机管理器102的全部或一部分的一个或多个处理器、控制器、数字信号处理器(DSP)、精简指令集计算机(RISC),芯片上系统(SOC)、专用集成电路(ASIC)来提供。在一些实现中,性能监测电路230可包括一个或多个通信接口,以促进信息和/或数据到性能确定电路240和到功率管理电路270的通信。
在实施例中,性能监视电路230可以周期性、间歇性或连续地轮询来自一些或所有虚拟机120中的一些或所有虚拟CPU 122的性能数据和/或参数。在其他实施例中,性能监视电路230可以周期性、间歇性或连续地接收由一些或所有虚拟机120广播或以其他方式传输的性能数据和/或参数。示例虚拟机性能数据和/或参数包括但不限于:vCPU利用率、vCPU频率;高速缓存存储器使用;高速缓存存储器访问时间;高速缓存存储器读取时间;应用执行时间;屏幕刷新速率等。
性能监视电路230将虚拟机性能信息和/或数据传送232到性能确定电路240。在一些实现中,性能确定电路240可以附加地或替代地将虚拟机性能和/或操作评估数据的至少一部分传送到功率管理电路270。在实施例中,性能确定电路240确定在当前操作方案和/或状态中的一些或全部虚拟机120、一些或全部虚拟CPU 122和/或由虚拟机120执行的一些或所有应用和/或在虚拟CPU122上执行的应用的所估计的功耗。
在一些实施例中,性能确定电路240可以确定在一个或多个所提议的操作方案或状态中的一些或全部虚拟机120、一些或全部虚拟CPU 122和/或由虚拟机120执行的一些或所有应用和/或在虚拟CPU 122上执行的应用的所估计的功耗。此类所提议的操作方案和/或状态可以包括在其中应用已经从由第一数量的物理核144执行的第一数量的虚拟CPU122合并到由较少的第二数量的物理核114执行的较少的第二数量的物理CPU 122的一个或多个提议的操作方案或状态。此类所提议的操作方案和/或状态可以包括在其中应用已经从第一数量的高速缓存116合并到较少的第二数量的高速缓存116的一个或多个提议的操作方案或状态。
性能确定电路240向功率管理电路270传送一个或多个信号242,该信号242包括指示当前操作方案或状态的所确定的功耗的信息和/或数据。性能确定电路240还可以向功率管理电路270传送一个或多个信号242,该信号242包括指示一个或多个所提议的操作方案或状态中的一些或全部的所确定的功耗的信息和/或数据。性能确定电路240可以周期性、间歇性或连续地将一个或多个信号传送到功率管理电路270。
虚拟机管理器102包括可通信地耦合到一个或多个CPU 110、一个或多个物理核114和/或一个或多个高速缓存116的资源监视电路250。资源监视电路250收集表示一些或所有CPU 110物理资源参数(诸如,核利用率、核温度、核频率、高速缓存利用率、高速缓存周转率、高速缓存访问时间等)的信息和/或数据并经由一个或多个信号252将该信息和/或数据传送到资源分配确定电路260。在一些实现中,资源监视电路250可以经由一个或多个信号252附加地或替代地将表示一些或全部CPU 110物理资源参数(诸如,核利用率、核温度、核频率、高速缓存利用率、高速缓存周转率、高速缓存访问时间等)的信息和/或数据传到资源分配确定电路260。
资源监视电路250可以包括任何数量的能够监视CPU 110、物理核114和/或高速缓存116的一个或多个性能方面和/或参数的任何当前可用或未来开发的电子设备和/或半导体组件和/或能够监视CPU 110、物理核114和/或高速缓存116的一个或多个性能方面和/或参数的任何当前可用或未来开发的电子设备和/或半导体组件的组合。在一些实现中,资源监测电路250可包括能够执行机器可读指令集的一个或多个可配置的或可编程的元件,诸如,一个或多个可配置的集成电路,该机器可读指令集使可配置的或可编程的元件以特定方式组合以创建资源监视电路250。在一些实现中,资源监视电路250可以包括一个或多个独立式设备或系统,例如,资源监视电路250可以具体化在单表面或插口安装集成电路中。在其他实现中,资源监视电路250可以全部或部分地经由能够提供虚拟机管理器102的全部或一部分的一个或多个处理器、控制器、数字信号处理器(DSP)、精简指令集计算机(RISC),芯片上系统(SOC)、专用集成电路(ASIC)来提供。资源监视电路250可以包括一个或多个通信接口,以促进一个或多个信号252到资源分配确定电路260的通信,这一个或多个信号252包括指示一个或多个CPU参数、一个或多个物理核参数和/或一个或多个高速缓存参数的信息和/或数据。资源监视电路250可以附加地或替代地包括一个或多个通信接口,以促进一个或多个信号254到功率管理电路270的通信,这一个或多个信号254包括指示一个或多个CPU参数、一个或多个物理核参数和/或一个或多个高速缓存参数的信息和/或数据。
在实施例中,资源监视电路250可以周期性、间歇性或连续地轮询来自CPU 110、一些或全部物理核114和/或一些或全部高速缓存116的性能数据和/或参数。在其他实施例中,资源监视电路250可以周期性、间歇性或连续地接收由CPU 110、一些或全部物理核114、和/或一些或全部高速缓存116广播或以其他方式传输的性能数据和/或参数。
资源监视电路250生成一个或多个信号252,并将这一个或多个信号252传送到资源分配确定电路260,这一个或多个信号252包括指示一个或多个CPU参数、一个或多个物理高速缓存性能参数和/或一个或多个高速缓存性能参数的信息和/或数据。在一些实现中,资源监视电路250可以附加地或替代地将一个或多个信号254传送到功率管理电路270,这一个或多个信号254包括指示一个或多个CPU参数、一个或多个物理高速缓存性能参数和/或一个或多个高速缓存性能参数的信息和/或数据。
资源分配确定电路260确定指示支持由CPU 110执行的应用和/或虚拟机120所需的所估计的资源(物理核带宽、高速缓存存储器等)的一个或多个值。在一些实现中,资源分配确定电路260可以为由性能确定电路240提供的一些或全部所提议的操作方案或状态确定所估计的资源。此类所提议的操作方案和/或状态可以包括在其中应用已经从由第一数量的物理核114执行的第一数量的虚拟CPU 122合并到由较少的第二数量的物理核114执行的较少的较少的第二数量的物理CPU 122的一个或多个所提议的操作方案或状态。此类所提议的操作方案和/或状态可以包括在其中应用已经从第一数量的高速缓存116合并到较少的第二数量的高速缓存116的一个或多个所提议的操作方案或状态。
资源分配确定电路260可通信地耦合到一个或多个存储设备280。此类存储设备280可以包括设置在设备100中或设置在设备100的本地的一个或多个存储设备280。此类存储设备280可以包括一个或多个设置在设备100远程的存储设备280,例如,驻留在服务器中的一个或多个设备,该服务器经由一个或多个有线和/或无线网络可通信地耦合到设备100。在一些实现中,一个或多个存储设备280可以全部或部分地包括:设置在虚拟机管理器102中、设置在虚拟机管理器102上、或设置在虚拟机管理器102周围的一个或多个非暂态存储器。在一些实现中,一个或多个存储设备280可以全部或部分地包括:设置在虚拟机管理器102中、设置在虚拟机管理器102上、或设置在虚拟机管理器102周围的一个或多个只读存储器(ROM)。一个或多个存储设备280可以包括由资源分配确定电路260在为每个应用、虚拟机120和/或虚拟CPU 122确定资源分配时实施的一个或多个资源分配策略。资源分配策略可以经由来自存储设备280的一个或多个信号264被传送到资源分配确定电路260。
资源分配确定电路260向功率管理电路270传送一个或多个信号262,这一个或多个信号262包括指示一个或多个所提议的操作方案或状态中的一些或全部的所确定的功耗的信息和/或数据。资源分配确定电路260可以周期性、间歇性或连续地将一个或多个信号262传送到功率管理电路270。
资源分配确定电路260可以包括任何数量的能够周期性地、间歇地或连续地确定资源支持由性能确定电路240所确定的一些或所有所提议的操作方案的资源要求的任何当前可用或未来开发的电子设备和/或半导体组件和/或能够周期性地、间歇地或连续地确定资源支持由性能确定电路240所确定的一些或所有所提议的操作方案的资源要求的任何当前可用或未来开发的电子设备和/或半导体组件的组合。在一些实现中,资源分配确定电路260可包括能够执行机器可读指令集的一个或多个可配置的或可编程的元件,诸如,一个或多个可配置的集成电路,该机器可读指令集使得可配置的或可编程的元件以特定方式组合以创建资源分配确定电路260。在一些实现中,资源分配确定电路260可以包括一个或多个独立式设备或系统,例如,资源分配确定电路260可以具体化在单表面或插口安装集成电路中。在其他实现中,资源分配确定电路260可以全部或部分地经由能够提供虚拟机管理器102的全部或一部分的一个或多个处理器、控制器、数字信号处理器(DSP)、精简指令集计算机(RISC),芯片上系统(SOC)、专用集成电路(ASIC)来提供。
至少部分地基于从性能确定电路240和从资源分配确定电路260接收到的信息和/或数据,功率管理电路270确定是否合并一个或多个物理资源以有益地降低系统功率需求,改善系统性能和/或增强用户体验。例如,响应于从性能确定电路240和从资源分配确定电路260接收到的信息和/或数据,并且还至少部分地基于从存储设备280获得或以其他方式检取到的资源分配策略,功率管理电路270可以确定在虚拟机120B下执行并且使用模块112B中的物理核114和物理高速缓存116的应用可以与在虚拟机120A下执行并且使用模块112A中的物理核114和物理高速缓存116的另一应用物理地合并。这样的物理资源合并将减少甚至消除模块112B对系统施加的功率需求。
在一些实现中,功率管理电路270可以包括一个或多个独立式设备或系统,例如,功率管理电路270可以具体化在单表面或插口安装集成电路中。在其他实现中,功率管理电路270可以由能够提供虚拟机管理器102的全部或一部分的一个或多个处理器、控制器、数字信号处理器(DSP)、精简指令集计算机(RISC),芯片上系统(SOC)、专用集成电路(ASIC)的全部或一部分来提供。
功率管理电路270使用虚拟机性能信息或数据的全部或一部分来跨物理核114分配工作负载、跨物理高速缓存116分配工作负载,并且当此类合并满足所定义的策略(诸如,降低系统功耗、维持最低应用性能标准,和/或提供存储在存储设备280中、存储在存储设备280上或存储在存储设备280周围的合适的用户体验(响应性,视频质量,音频质量等))时合并物理核114和高速缓存116。
存储设备280可以可通信地耦合到功率管理电路250、性能确定电路240和/或资源分配确定电路260。存储设备280可以包括能够存储或以其他方式保留数字数据的任何尺寸、组合和/或数量的存储设备。示例存储设备280包括但不限于旋转磁存储设备、旋转光存储设备、固态存储设备、分子存储设备和/或量子存储设备。在一些实现中,存储设备280可以包括一个或多个当前可用或未来开发的可移除存储设备,诸如,一个或多个闪存驱动器、一个或多个通用串行总线(USB)驱动器、一个或多个安全数字(SD)卡等。存储设备280可以包括机器可执行指令集,该机器可执行指令集使得通用处理器提供专用的虚拟机管理器102、特定的虚拟机管理器102,专用且特定的虚拟机管理器102。存储设备280可以包括表示一个或多个设备配置文件的数据,这一个或多个设备配置文件包括用于CPU 110、模块112、物理核114和/或物理高速缓存116的操作参数、阈值、限值和/或设置点。
存储设备280可以包括表示至少部分地由资源分配确定电路260实施的一个或多个资源分配策略的数据和/或信息。在一些实现中,功率管理电路270可以使用存储在存储设备280中、存储在存储设备280上或存储在存储设备280周围的一些或全部操作参数,以选择或以其他方式确定CPU 110中的模块112、物理核114和/或物理高速缓存116的操作配置。
存储设备280可以包括阈值数据,该阈值数据由虚拟机管理器102至少部分地基于由性能监视电路230接收到虚拟CPU 122利用率信息和/或数据、由资源监视电路250接收到物理核利用率信息和/或数据、和/或由资源监视电路250接收到的物理高速缓存利用率信息和/或数据在作出合并物理核114和/或高速缓存116的判定时使用。此类阈值信息可以全部或部分地由虚拟机管理器102在做出合并物理CPU核114和/或物理高速缓存116的决策时使用。
例如,功率管理电路270可以使用存储的阈值数据来判定可归因于第一虚拟机120A的物理核利用率324A和可归因于第二虚拟机120B的物理核利用率324B是否低于所定义的利用率阈值。如果物理核利用率324A、324B两者都低于所定义的利用率阈值,则功率管理电路270判定可归因于第一虚拟机120A的物理高速缓存利用率326A和可归因于第二虚拟机120B的物理高速缓存利用率326B是否低于所定义的利用率阈值。如果物理核利用率324和物理高速缓存利用率326两者都低于所定义的阈值利用率,则功率管理电路270将第一和第二虚拟机120A、120B合并在先前用于仅支持第一虚拟机120A的单个模块112中的物理核114和物理高速缓存116上。
图3A提供了根据本文描述的至少一个实施例的说明性设备300的示意图,该说明性设备300包括由第一物理模块112A执行的第一虚拟机120A和由第二物理模块112B执行的第二虚拟机120B。第一虚拟机120A使用多个虚拟CPU122A和122B执行一个或多个应用310A。第二虚拟机120B使用多个虚拟CPU122A和122B执行一个或多个应用310B。第一物理模块112A包括分别提供虚拟CPU 122A和虚拟CPU 122B的第一物理核114A和第二物理核114B。第一物理模块112A还包括高速缓存116A和高速缓存116B,该高速缓存116A和高速缓存116B分别可通信地耦合到第一物理核114A和耦合到第二物理核114B。物理核114A和114B共享第3级(L3)高速缓存330。第二物理模块112B包括分别提供虚拟CPU 122A和虚拟CPU 122B的第一物理核114A和第二物理核114B。第二物理模块112B还包括高速缓存116A和高速缓存116B,该高速缓存116A和高速缓存116B分别可通信地耦合到第一物理核114A和第二物理核114B。物理核114A和114B共享第3级(L3)高速缓存330。模块112A和112B共享共同的存储器340和虚拟机管理器102。
如图3A中所描绘,性能监视电路230确定指示与虚拟CPU 122A相关联的一个或多个参数的一个或多个值,这一个或多个参数诸如,虚拟机120A的CPU利用率322A,该CPU利用率322A被示出为虚拟CPU 122A中的说明性阴影条。性能监视电路230确定表示与虚拟CPU122B相关联的一个或多个参数的一个或多个值,这一个或多个参数诸如虚拟机120A的CPU利用率322B,该CPU利用率322B被示出为虚拟CPU 122B中的说明性阴影条。性能监视电路230还确定指示与虚拟CPU 122B相关联的一个或多个参数的一个或多个值,这一个或多个参数诸如虚拟机120B的CPU利用率322C,该CPU利用率322C被示出为虚拟CPU 122A中的说明性阴影条。性能监视电路230确定表示与虚拟CPU 122B相关联的一个或多个参数的一个或多个值,这一个或多个参数诸如虚拟机120B的CPU利用率322D之类的参数,该CPU利用率322D被示出为虚拟CPU 122B中的说明性阴影条。指示虚拟机120A和虚拟机120B的性能的一些或全部所确定的值可以经由一个或多个信号232传送到性能确定电路240。指示虚拟机120A和虚拟机120B的性能的一些或全部所确定的值可以经由一个或多个信号234传送到功率管理电路270。
如图3A中所描绘,资源监视电路250确定指示与物理核114A相关联的一个或多个参数的一个或多个值,这一个或多个参数诸如模块112A的核利用率324A(在核114A中示出为说明性阴影条)。资源监视电路250确定表示与物理核114B相关联的一个或多个参数的一个或多个值,这一个或多个参数诸如模块112A的核利用率324B(在核114B中示出为说明性阴影条)。资源监视电路250还确定指示与物理核114A相关联的一个或多个参数的一个或多个值,这一个或多个参数诸如模块112B的核利用率324C(在核114A中示出为说明性阴影条)。资源监视电路250还确定表示与物理核114B相关联的一个或多个参数的一个或多个值,这一个或多个参数诸如模块112B的核利用率324D(在核114B中示出为说明性阴影条)。资源监视电路250经由一个或多个信号252将指示模块112A和112B中的物理核114的性能的一些或全部所确定的值传送到资源分配确定电路260。资源监视电路250经由一个或多个信号254将指示模块112A和112B中的物理核114的性能的一些或全部所确定的值传送到功率管理电路270。
如图3A中所描绘,资源监视电路250确定指示与高速缓存116A相关联的一个或多个参数的一个或多个值,这一个或多个参数诸如模块112A的高速缓存利用率326A(在高速缓存116A中示出为说明性阴影条)。资源监视电路250还确定表示与高速缓存116B相关联的一个或多个参数的一个或多个值,这一个或多个参数诸如模块112A的高速缓存利用率326B(在高速缓存116B中示出为说明性阴影条)。资源监视电路250进一步确定表示与高速缓存116A相关联的一个或多个参数的一个或多个值,这一个或多个参数诸如模块112B的高速缓存利用率326C(在高速缓存116A中示出为说明性阴影条)。资源监视电路250进一步确定表示与高速缓存116B相关联的一个或多个参数的一个或多个值,这一个或多个参数诸如模块112B的高速缓存利用率326D(在高速缓存116B中示出为说明性阴影条)。资源监视电路250可经由一个或多个信号252将指示模块112A和112B中的高速缓存116的性能的一些或全部所确定的值传送到资源分配确定电路260。资源监视电路250可经由一个或多个信号254将指示模块112A和112B中的高速缓存116的性能的一些或全部所确定的值传送到功率管理电路270。
图3B提供了根据本文描述的至少一个实施例的图3A中描绘的说明性设备300的示意图,并且其中第一虚拟机120A和第二虚拟机120B已被合并到物理模块112A中,从而释放物理模块112B上的物理资源(例如,核114和高速缓存116)。
如图3B中所描绘,性能确定电路240可以确定可以通过将用于支持虚拟机120B的物理资源与用于支持虚拟机120A的物理资源合并来实现功率节省。使用诸如核利用率324A-324D之类的接收到的资源参数,资源分配确定电路260可以确定第二模块112B中的物理核114与第一模块112A中的物理核114的合并不违反存储在存储设备280上的一个或多个资源分配策略。使用诸如高速缓存利用率326A-324D之类的接收到的资源参数,资源分配确定电路260可以确定第二模块112B中的物理高速缓存116与第一模块112A中的物理高速缓存116的合并不违反存储在存储设备280上的一个或多个资源分配策略。
基于由性能确定电路240确定的功率节省并遵从由资源分配确定电路260确定的资源分配策略,功率管理电路270可以将施加在虚拟机120B中的虚拟CPU 122A上的物理CPU负载与施加在虚拟机120A中的虚拟CPU 122A上的物理CPU负载合并在模块112A中的物理核114A上。基于由性能确定电路240确定的功率节省并遵从由资源分配确定电路260确定的资源分配策略,功率管理电路270可以将施加在虚拟机120B中的虚拟CPU 122B上的物理CPU负载和施加在虚拟机120A中的虚拟CPU 122B上的物理CPU负载合并260在模块112A中的物理核114B上。
基于由性能确定电路240所确定的功率节省病遵从由资源分配确定电路260确定的资源分配策略,功率管理电路270可以将由虚拟机120B中的虚拟CPU 122A施加的物理高速缓存负载和由虚拟机120A中的虚拟CPU 122A施加的物理高速缓存负载合并270在模块112A中的物理高速缓存116A上。基于由性能确定电路240确定的功率节省并遵从由资源分配确定电路260确定的资源分配策略,功率管理电路270可以将由虚拟机120B中虚拟CPU122B施加的物理高速缓存负载和由虚拟机120A中的虚拟CPU 122B施加的物理高速缓存负载合并在模块112A中的物理高速缓存116B上。
由虚拟机120B中的虚拟CPU 122A施加的物理CPU负载在模块112B中的物理核114A上的合并260有益地减少或甚至消除了物理核114A对系统300施加的功耗。类似地,由虚拟机120B中的虚拟CPU 122B施加的物理CPU负载在模块112B中的物理核114B上的合并270有益地减少或甚至消除了物理核114B对系统300施加的功耗。由虚拟机120B中的虚拟CPU122A施加的物理高速缓存负载在模块112B中的物理高速缓存116A上的合并260有益地减少或甚至消除了物理高速缓存116A对系统300施加的功耗。类似地,由虚拟机120B中的虚拟CPU 122B施加的物理CPU负载在模块112B中的物理高速缓存116B上的合并270有益地减少或甚至消除了物理高速缓存116B对系统300施加的功耗。
图4和以下讨论提供了根据本文描述的至少一个实施例的形成说明性系统400的组件的简要的、一般性的描述,该说明性系统400包括一个或多个虚拟机管理器102,这一个或多个虚拟机管理器102能够将跨与多个虚拟机120相关联的多个物理资源模块112的负载合并到更少数量的物理资源模块112。一些实施例可以包括机器可读或计算机可执行指令集,诸如,由虚拟机管理器102执行的程序应用模块、对象或宏。一些实施例可以包括以硬连线电路、半导体电路、微处理器、控制器或类似设备的形式实现的电路,该硬连线电路、半导体电路、微处理器、控制器或类似设备提供形成虚拟机管理器102的各种组件或模块,包括但不限于,性能监视电路230、性能确定电路240、资源监视电路250、资源分配确定电路260、功率管理电路270等。
相关领域的技术人员将理解,所示出的实施例以及其他实施例可以用其他基于电路的设备配置来实践,该基于电路的设备配置包括便携式电子或手持式电子设备,例如,智能电话、便携式计算机、可穿戴计算机、基于微处理器或可编程的消费电子产品、个人计算机(“PC”)、网络PC、小型计算机、大型计算机等。实施例可以在分布式计算环境中实践,在分布式计算环境中,由通过通信网络链接的远程处理设备执行任务或模块。在分布式计算环境中,程序模块可位于本地和远程的存储器存储设备两者中。
系统402可以包括任何数量的电路410,电路410中的每个电路都可以包括部分地或全部设置在可穿戴计算机、便携式计算设备、个人数字助理、个人计算机或其他类似的当前或未来的基于处理器的设备和/或能够执行机器可读指令的系统中的各种电子组件和/或半导体组件。一个或多个电路410可以经由一个或多个通信链路406与便携式设备402内的各种组件互连,电耦合和/或可通信地耦合到便携式设备402内的各种组件。如图4中所描绘,可以将一个或多个电路410的全部或一部分分摊或分配给性能监视电路230、性能确定电路240、资源监视电路250、资源分配确定电路260,和/或功率管理电路270。
如图4中所描绘,诸如系统存储器424之类的系统组件可以经由一个或多个通信链路406可通信地耦合到一个或多个电路410。设备402有时可以在本文中以单数形式引用,但是这并不旨在将实施例限制于单个系统,因为在某些实施例中,将存在多于设备402或所涉及的其他网络系统、电路或设备。
一个或多个电路410可包括任何数量、类型或组合的导体、绝缘体、电气设备和/或半导体组件。有时,一个或多个电路410可以全部或部分地以半导体器件(诸如,二极管、晶体管、电感器、电容器和电阻器)的形式实现。此类实现可以包括但不限于任何当前或未来开发的单核或多核处理器或微处理器,诸如:一个或多个芯片上系统(SOC);一个或多个中央处理单元(CPU);一个或多个数字信号处理器(DSP);一个或多个图形处理单元(GPU);一个或多个专用集成电路(ASIC),一个或多个现场可编程门阵列(FPGA)等。除非另有说明,否则图4中所示的各种块的结构和操作是常规设计。结果,在本文中不需要进一步详细描述这些块,因为相关领域的技术人员将理解它们。互连至少一些组件的一个或多个通信链路406可以采用任何已知的串行或并行总线结构或架构。
系统存储器424可以包括只读存储器(“ROM”)426和随机存取存储器(“RAM”)428。ROM 426的一部分可以包含基本输入/输出系统(“BIOS”)430。BIOS 430可以向设备402提供基本功能。例如,在一些实现中,通过使得一个或多个电路410加载一个或多个机器可读指令集,这一个或多个机器可读指令集使得一个或多个电路410提供并用作特定且专用的虚拟机管理器102。在另一示例中,BIOS 430可以使得通用电路410、处理器、微处理器或类似设备执行机器可读指令集,该机器可读指令集使得将电路310的至少一部分转换成一个或多个专用或特定的机器和/或电路,诸如,性能监视电路230、性能确定电路240、资源监视电路250、资源分配确定电路260和/或功率管理电路270。
设备402可以包括一个或多个可通信地耦合的、非暂态的数据存储设备280。一个或多个数据存储设备280可以包括任何数量的任何当前或未来开发的非暂态的存储设备和/或存储器和/或任何当前或未来开发的非暂态的存储设备和/或存储器的组合。此类非暂态数据存储设备280的非限制性示例可以包括但不限于一个或多个磁存储设备、一个或多个光存储设备、一个或多个固态电磁存储设备、一个或多个电阻存储设备、一个或多个分子存储设备、一个或多个量子存储设备或其各种组合。
如本领域技术人员所知,一个或多个存储设备280可以包括接口或控制器(未示出),该接口或控制器将相应的(多个)存储设备280通信地耦合到一个或多个通信链路406。一个或多个存储设备280可以包含机器可读指令集、数据结构、程序模块和对设备402有用的其他数据。
在一些实例中,一个或多个外部存储设备(图4中未示出)可以可通信地耦合到设备402。此类外部存储设备可以在设备402本地或远离设备402。在一个示例中,一个或更多外部存储设备330可以包括一个或多个基于远程服务器的存储设备或“云”存储设备,这一个或多个基于远程服务器的存储设备或“云”存储设备经由一个或多个网络(诸如,一个或多个无线网络(例如,IEEE802.11“Wi-Fi”))、一个或多个有线网络(例如,IEEE 802.3“以太网”)或其组合双向可通信地耦合到便携式电子设备122。
便携式电子设备122可以包括多个传感器480,这些传感器480经由一个或多个通信链路406可通信地耦合到虚拟机管理器102。在一些实现中,传感器480可以包括以下中的一些或全部:一个或多个音频输入传感器482(例如,一个或多个麦克风或类似设备);一个或多个图像传感器484(例如,一个或多个电荷耦合器件(CCD)或互补式金属氧化物半导体(CMOS)图像传感器、环境光水平传感器或类似设备);一个或多个红外发光器/红外图像采集传感器486;一个或多个基于移动或运动的传感器488或其组合。在至少一些实现中,此类传感器480可以规则地、不规则地、周期性地或非周期性地自主收集环境数据或信息。
机器可读指令集和/或应用438和内务处理指令集440可以全部或部分地被存储或保留在系统存储器424中。此类指令集可以从一个或多个存储设备434和/或一个或多个外部存储设备传送,并且全部或部分地存储在系统存储器424中以用于由一个或多个电路410执行。机器可读指令集438可以包括提供本文描述的语义标记功能和能力的指令和/或逻辑。
例如,一个或多个应用438可以使性能监视电路230以收集表示与一些或全部虚拟机120相关联的一个或多个性能参数(虚拟CPU利用率、虚拟CPU频率等)和/或与由虚拟机120执行的应用相关联的一个或多个性能参数(应用性能、应用执行速度等)的信息和/或数据。一个或多个应用438可以进一步使性能监视电路230生成信号232、234,该信号232、234包括表示与虚拟机120中的每个虚拟机和/或由虚拟机120执行的应用相关联的一个或多个参数的所收集的信息和/或数据。
一个或多个应用438可以使得性能确定电路240以接收来自性能监视电路230的信息和/或数据,并且至少部分地基于所接收的信息和/或数据来确定指示针对当前操作方案或状态以及针对一个或多个所提议的操作方案或状态的虚拟机120和/或由虚拟机120执行的应用的预期性能的值。一个或多个应用438可以附加地使得性能确定电路240至少部分地基于所接收的信息和/或数据来确定指示针对当前操作方案或状态以及针对一个或多个所提议的操作方案或状态的虚拟机120的功耗和/或物理资源要求的值。
一个或多个应用438可以使得资源监视电路250收集表示与一些或所有物理核114相关联的一个或多个性能参数(核利用率、核频率等)的信息和/或数据和/或与一些或所有物理高速缓存116相关联的一个或多个性能参数(高速缓存利用率、高速缓存未命中率、高速缓存命中率、高速缓存读/写速率等)的信息和/或数据。一个或多个应用438可以进一步使资源监视电路250生成信号252、254,该信号252、254包括表示与物理核114和/或物理高速缓存116中的每一个相关联的一个或多个参数的收集到的信息和/或数据。
一个或多个应用438可以使资源分配确定电路260从资源监视电路250接收信息和/或数据,并且至少部分地基于所接收的信息和/或数据来确定指示对于在其中虚拟机120被合并到更少的物理模块112和/或资源的一个或多个所提议的操作方案或状态的预期物理资源需求的值。
一个或多个应用438可以使功率管理电路270至少部分地基于由性能确定电路240提供的信息和/或数据并且至少部分地基于由资源分配确定电路260提供的信息和/或数据来选择操作方案。一个或多个应用438可以使功率管理电路270生成导致设备402内的物理资源(例如,物理核和/或物理高速缓存)的合并的一个或多个输出。
设备402可以包括一个或多个可通信地耦合的物理输入设备450,诸如,一个或多个文本输入设备452(例如,键盘)、一个或多个点击设备454(例如,鼠标、轨迹球、触摸屏)和/或一个或更多音频输入设备456。此类物理输入设备450可以用于向虚拟机管理器102例如提供、输入或以其他方式提供命令(例如,确收、选择、确认等)以及信息(例如,确收等)。设备402可包括一个或多个可通信地耦合的物理输出设备460,诸如,一个或多个视觉输出设备462(例如,显示设备)、一个或多个触觉输出设备464(例如,触觉反馈等)、一个或多个音频输出设备466或其任何组合。
为方便起见,网络接口47、一个或多个电路410、系统存储器424、物理输入设备450和物理输出设备460被示为经由一个或多个通信链路406彼此可通信地耦合,从而提供上述组件之间的连接性。在替代实施例中,上述组件能以与图4中所示不同的方式可通信地耦合。例如,上述组件中的一个或多个可以直接耦合到其他组件,或者可以经由一个或多个中间组件(未示出)彼此耦合。在一些实施例中,可以省略一个或多个通信链路406,并且使用合适的有线或无线连接将组件彼此直接耦合。
图5是根据本文描述的至少一个实施例的由虚拟机120使用的合并物理资源的说明性方法500的高级逻辑流程图。虚拟机管理器102在做出合并虚拟机120的判定时考虑物理核114的参数(例如,物理核加载324)和物理高速缓存116的参数(例如,物理高速缓存加载326)。通过在合并物理资源之前考虑物理核加载和物理高速缓存加载两者,虚拟机管理器102有益地使高速缓存污染、高速缓存错误以及高速缓存数据丢失的可能性最小化,从而有益地改善系统100内的数据可靠性和一致性。方法500开始于502。
在504处,资源监视电路250将指示一个或多个物理核参数的信息和/或数据传送到资源分配确定电路260。在实施例中,资源分配确定电路260将接收到的物理核参数数据与一个或多个所定义的阈值进行比较,以判定物理核参数是否处于或低于所定义的阈值。在一些实现中,物理核参数可以包括但不限于指示物理核114的利用率的信息和/或数据。
如果物理核参数高于所定义的阈值(指示第一虚拟机120A对相应核114施加高要求),则虚拟机管理器102在504处继续监视物理核参数。如果物理核参数处于或低于定义的阈值(指示由第一虚拟机120A对相应核114施加相对低的需求),则虚拟机管理器102进行到506。
在506处,资源监视电路250将指示一个或多个物理高速缓存参数的信息和/或数据传送到资源分配确定电路260。在实施例中,资源分配确定电路260将接收到的物理高速缓存参数数据与一个或多个所定义的阈值进行比较,以判定物理高速缓存参数是否处于或低于定义的阈值。在一些实现中,物理高速缓存参数可以包括但不限于指示物理高速缓存116的利用率的信息和/或数据。
如果物理高速缓存参数高于所定义的阈值(指示有第一虚拟机120A对相应高速缓存116施加高需求),则虚拟机管理器102继续在504处开始以监视物理参数。如果物理高速缓存参数处于或低于所定义的阈值(指示有第一虚拟机120A对相应高速缓存116施加相对低的需求),则虚拟机管理器102进行到508。
在508处,资源监视电路250将指示一个或多个物理核参数的信息和/或数据传送到资源分配确定电路260。在实施例中,资源分配确定电路260将接收到的物理核参数数据与一个或多个所定义的阈值进行比较,以判定物理核参数是否处于或低于定义的阈值。在一些实现中,物理核参数可以包括但不限于指示物理核114的利用率的信息和/或数据。
如果物理核参数高于所定义的阈值(指示由第二虚拟机120B对相应核114施加高要求),则虚拟机管理器102继续在504处开始以监视物理核参数。如果物理核参数处于或低于定义的阈值(指示由第二虚拟机120B对相应核114施加相对低的需求),则虚拟机管理器102进行到510。
在510处,资源监视电路250将指示一个或多个物理高速缓存参数的信息和/或数据传送到资源分配确定电路260。在实施例中,资源分配确定电路260将接收到的物理高速缓存参数数据与一个或多个定义的阈值进行比较,以判定物理高速缓存参数是否处于或低于所定义的阈值。在一些实现中,物理高速缓存参数可以包括但不限于指示物理高速缓存116的利用率的信息和/或数据。
如果物理高速缓存参数高于所定义的阈值(指示由第二虚拟机120B对相应高速缓存116施加高需求),则虚拟机管理器102继续在504处开始以监视物理参数。如果物理高速缓存参数处于或低于所定义的阈值(指示有第二虚拟机120B对相应高速缓存116施加相对低的需求),则虚拟机管理器102进行到512。
在512处,如果分配给第二虚拟机120B的物理资源(即,(多个)物理核114和(多个)物理高速缓存116)与分配给第一虚拟机120A的物理资源(即,(多个)物理核114和(多个)物理高速缓存116)合并,则性能确定电路240确定与估计的性能和估计的功耗相对应的一个或多个值。
在514处,资源分配确定电路260判定由性能确定电路240在512处确定的估计的性能和估计的功耗是否满足一个或多个阈值,以继续将由第一虚拟机120A使用的物理资源与由第二虚拟机120B使用的物理资源进行合并。如果估计的性能和估计的功耗满足一个或多个阈值,则方法进行到516,如果估计的性能和估计的功耗未能满足一个或多个阈值,则虚拟机管理器102继续在504处开始以监视物理核参数。
在516处,虚拟机管理器102通过组合由第一虚拟机120A和由第二虚拟机120B使用的物理资源(即,(多个)物理核114和(多个)物理高速缓存116)来实施功耗策略。该方法在518处结束。
虽然图5示出了根据一个实施例的操作,但是将理解的是,对于其他实施例来说,图5中所描绘的所有操作并非都是必需的。实际上,在本文中完全设想的是,在本公开的其他实施例中,能以以任何附图中未具体地示出、但仍然完全符合本公开的方式将图5中所描绘的操作和/或本文中所描述的其他操作进行组合。因而,针对在一个附图中未确切示出的特征和/或操作有的权利要求被视为落入本公开的范围和内容内。
如在本申请和权利要求书中所使用,由术语“和/或”连接的一系列项可意指所列项的任何组合。例如,短语“A、B和/或C”可以指A;B;C;A和B;A和C;B和C;或者A、B和C。如在本申请和权利要求书中所使用,由术语“…中的至少一项”连接的一系列项可意指所列项的任何组合。例如,短语“A、B或C中的至少一者”可以指A;B;C;A和B;A和C;B和C;或者A、B和C。
另外,已经参考以上附图和所附示例进一步描述了实施例的操作。一些图可能包括逻辑流程。尽管本文呈现的这些附图可以包括特定的逻辑流程,但是可以理解,逻辑流程仅提供了可如何实现本文描述的一般功能的示例。此外,除非另有说明,否则给定的逻辑流程不一定必须以所呈现的顺序来执行。另外,给定逻辑流程可以由硬件元件、由处理器执行的软件元件或其任何组合来实现。实施例不限于此上下文。
本文已经描述了各种特征、方面和实施例。如本领域技术人员将理解的,特征、方面和实施例易于彼此组合及进行变化和修改。因此,本公开应该被认为包含此类组合、变化和修改。因此,本发明的宽度和范围不应被上述示例性实施例限制,而应当仅根据所附权利要求书及其等效方案来限定。
如本文中任何实施例所使用,术语“模块”可以指被配置用于执行前述操作中任何操作的软件、固件和/或电路。软件可以具体化为非暂态计算机可读存储介质上所记录的软件包、代码、指令、指令集和/或数据。固件可以具体化为存储器设备中硬编码(例如,非易失性的)的代码、指令或指令集和/或数据。如本文中任何实施例中所使用,“电路”可以例如单一地或以任何组合形式包括硬接线电路、可编程电路(诸如,包括一个或多个单独指令处理核的计算机处理器)、状态机电路、和/或存储可由可编程电路执行的指令的固件。模块可以共同地或单独地被具体化为形成较大系统的部分的一电路,该较大系统例如集成电路(IC)、芯片上系统(SoC)、台式计算机、膝上型计算机、平板计算机、服务器、智能电话等。
本文描述的任何操作可以在包括一个或多个存储介质的系统中实现,这一个或多个存储介质具有单独地或组合地存储在其上的指令,这些指令当由一个或多个处理器执行时执行方法。此处,处理器可以包括例如服务器CPU、移动设备CPU、和/或其他可编程电路。而且,旨在使得本文中所描述的操作可以跨多个物理设备(诸如,在多于一个不同物理位置处的处理结构)而分布。存储介质可以包括任何类型的有形介质,例如,任何类型的盘,包括:硬盘、软盘、光盘、压缩盘-只读存储器(CD-ROM)、可复写压缩盘(CD-RW)、和磁光盘、诸如只读存储器(ROM)之类的半导体器件、诸如动态和静态RAM之类的随机存取存储器(RAM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、闪存、固态盘(SSD)、磁卡或光卡、或者适合于存储电子指令的任何类型的介质。其他实施例可以实现为由可编程控制设备执行的软件模块。存储介质可以是非暂态的。
根据示例1,提供了一种用于虚拟机的性能监视系统。该系统可以包括:性能监视电路,用于确定指示逻辑上与多个虚拟机中的每个虚拟机相关联的至少一个参数的性能数据;资源监视电路系统,用于确定资源数据,该资源数据指示:逻辑上与多个物理核中的每个物理核相关联的至少一个物理核参数和至少一个物理高速缓存参数;以及逻辑上与多个物理高速缓存中的每个物理高速缓存相关联的至少物理高速缓存参数,多个物理高速缓存中的每个物理高速缓存可通信地耦合到多个物理核中的相应的一个物理核;以及功率管理电路系统,用于至少部分地基于所确定的性能数据和所确定的资源数据来判定是否合并多个虚拟机中的至少两个虚拟机。
示例2可以包括示例1的要素,并且可以附加地包括可通信地耦合到性能监视电路且可通信地耦合到功率管理电路的性能确定电路,该性能确定电路用于:至少部分地基于所确定的性能数据来确定指示用于多个虚拟机中的每个虚拟机的性能参数的值;以及将指示用于多个虚拟机中的每个虚拟机的性能参数的所确定的值传送到功率管理电路。
示例3可以包括示例2的要素,其中性能确定电路可以至少部分地基于逻辑上与多个虚拟机中的至少一些虚拟机中的每个虚拟机相关联的虚拟CPU利用率数据来确定指示用于多个虚拟机中的每个虚拟机的性能参数的值。
示例4可以包括示例1的要素,并且可以附加地包括可通信地耦合到资源监视电路且耦合到功率管理电路的资源分配确定电路,该资源分配确定电路用于:至少部分地基于所确定的资源数据来确定指示用于多个虚拟机中的每个虚拟机的物理资源分配的值;以及将指示用于多个虚拟机中的每个虚拟机的物理资源分配的所确定的值传送到功率管理电路。
示例5可以包括示例4的要素,并且可以附加地包括可通信地耦合到资源分配确定电路的至少一个存储设备,该至少一个存储设备具有存储在其上的表示一个或多个资源分配策略的数据。
示例6可以包括示例5的要素,其中资源分配确定电路至少部分地基于存储在至少一个存储设备上的一个或多个资源分配策略来确定指示用于多个虚拟机中的每个虚拟机的物理资源分配的值。
示例7可以包括示例1的要素,其中性能监视电路确定包括逻辑上与多个虚拟机中的至少一些虚拟机相关联的虚拟CPU利用率数据的性能数据。
示例8可以包括示例1的要素,其中资源监视电路生成资源数据,该资源数据指示逻辑上与多个物理核中的至少一些物理核相关联的物理核利用率数据;以及逻辑上与多个物理高速缓存中的至少一些物理高速缓存相关联的物理高速缓存利用率数据。
示例9可以包括示例1的要素,其中资源监视电路生成指示逻辑上与多个物理高速缓存中的至少一些物理高速缓存相关联的存储器利用率趋势的资源数据。
根据示例10,提供了一种基于处理器的设备,该设备包括性能监视系统。该系统可以包括至少一个中央处理单元(CPU),该中央处理单元包括多个物理核,多个物理核中的每个物理核可通信地耦合到多个物理高速缓存中的对应的一个物理高速缓存;以及用于虚拟机的性能监视系统,包括:性能监视电路,用于确定指示逻辑上与多个虚拟机中的每个虚拟机相关联的至少一个参数的性能数据;资源监视电路,用于确定指示资源数据,该资源数据指示:逻辑上与多个物理核中的每个物理核相关联的至少一个物理核参数和至少一个物理高速缓存参数;以及逻辑上与多个物理高速缓存中的每个物理高速缓存相关联的至少物理高速缓存参数,多个物理高速缓存中的每个物理高速缓存可通信地耦合到多个物理核中的相应的一个物理核;以及功率管理电路,用于至少部分地基于所确定的性能数据和所确定的资源数据来判定是否合并多个虚拟机中的至少两个虚拟机。
示例11可以包括示例10的要素,其中性能监视系统可以进一步包括可通信地耦合到性能监视电路且可通信地耦合到功率管理电路的性能确定电路,该性能确定电路用于:至少部分地基于所确定的性能数据来确定指示用于多个虚拟机中的每个虚拟机的性能参数的值;以及
将指示用于多个虚拟机中的每个虚拟机的性能参数的所确定的值传送到功率管理电路。
示例12可以包括示例11的要素,其中,性能确定电路用于:至少部分地基于逻辑上与多个虚拟机中的至少一些虚拟机中的每个虚拟机相关联的虚拟CPU利用率数据来确定指示用于多个虚拟机中的每个虚拟机的性能参数的值。
示例13可以包括示例10的要素,其中性能监视系统可以附加地包括可通信地耦合到资源监视电路且可通信地耦合到功率管理电路的资源分配确定电路,该资源分配确定电路用于:至少部分地基于所确定的资源数据来确定指示用于多个虚拟机中的每个虚拟机的物理资源分配的值;以及将指示用于多个虚拟机中的每个虚拟机的物理资源分配的所确定的值传送到功率管理电路。
示例14可以包括示例13的要素,并且可以附加地包括可通信地耦合到资源分配确定电路的至少一个存储设备,该至少一个存储设备具有存储于其上的、表示存储一个或多个资源分配策略的数据。
示例15可以包括示例14的要素,其中资源分配确定电路至少部分地基于存储在至少一个存储设备上的一个或多个资源分配策略来确定指示用于多个虚拟机中的每个虚拟机的物理资源分配的值。
示例16可以包括示例10的要素,其中性能监视电路确定包括逻辑上与多个虚拟机中的至少一些虚拟机相关联的虚拟CPU利用率数据的性能数据。
示例17可以包括示例10的要素,其中资源监视电路生成资源数据,该资源数据指示逻辑上与多个物理核中的至少一些物理核相关联的物理核利用率数据以及逻辑上与多个物理高速缓存中的至少一些物理高速缓存相关联的物理高速缓存利用率数据。
示例18可以包括示例10的要素,其中资源监视电路生成指示逻辑上与多个物理高速缓存中的至少一些物理高速缓存相关联的存储器利用率趋势的资源数据。
根据示例19,提供了一种用于在多个物理核上合并多个虚拟机的性能监视方法,每个物理核可通信地耦合到相应的多个物理高速缓存中的相应一个物理高速缓存。该方法可以包括:由性能监视电路系统确定指示逻辑上与多个虚拟机中的每个虚拟机相关联的至少一个参数的性能数据;由资源监视电路系统确定资源数据,该资源数据指示:逻辑上与所述多个物理核中的每个物理核相关联的至少一个物理核参数;以及逻辑上与多个物理高速缓存中的每个物理高速缓存相关联的至少物理高速缓存参数,多个物理高速缓存中的每个物理高速缓存可通信地耦合到多个物理核中的相应的一个物理核;以及
由功率管理电路至少部分地基于所确定的性能数据和所确定的资源数据来判定是否合并多个虚拟机中的至少两个虚拟机。
示例20可以包括示例19的要素,其中确定指示逻辑上与多个虚拟机中的每个虚拟机相关联的至少一个参数的性能数据可以包括:由可通信地耦合到性能监视电路的性能确定电路至少部分地基于所确定的性能数据来确定指示用于多个虚拟机中的每个虚拟机的性能参数的值;以及将指示多个虚拟机中的每个虚拟机的性能参数的所确定的值传送到功率管理电路。
示例21可以包括示例20的要素,其中确定指示用于多个虚拟机中的每个虚拟机的性能参数的值可以包括:由性能监视电路确定逻辑上与多个虚拟机中的至少一些虚拟机中的每个虚拟机相关联的虚拟CPU利用率数据。
示例22可以包括示例19的要素,并且可以附加地包括:由可通信地耦合到资源监视电路的资源分配确定电路至少部分地基于所确定的资源数据来确定指示用于多个虚拟机中的每个虚拟机的物理资源分配的值;以及
将指示用于多个虚拟机中的每个虚拟机的物理资源分配的所确定的值传送到功率管理电路。
示例23可以包括如示例22要素,并且可以附加地包括:
由资源分配确定电路从至少一个可通信地耦合的存储设备检取表示一个或多个资源分配策略的数据。
示例24可以包括示例23的要素,其中至少部分地基于所确定的资源分配数据来确定指示用于多个虚拟机中的每个虚拟机的物理资源分配的值可以包括:由资源分配确定电路至少部分地基于所确定的资源分配数据并且至少部分地基于一个或多个资源分配策略来确定用于多个虚拟机中的每个虚拟机的物理资源分配的值。
示例25可以包括示例19的要素,其中确定指示逻辑上与多个物理高速缓存中的每个物理高速缓存相关联的至少物理高速缓存参数的资源数据可以包括:由可通信地耦合到资源监视电路且可通信地耦合到功率管理电路的资源分配确定电路确定指示逻辑上与多个物理高速缓存中的至少一些物理高速缓存上相关的物理高速缓存利用率趋势的值;以及将指示物理高速缓存利用率趋势的所确定的值传送给功率管理电路。
示例26可以包括示例19的要素,其中确定指示逻辑上与多个物理核中的每个物理核相关联的至少一个物理核参数的资源数据可以包括:由可通信地耦合到资源监视电路且可通信地耦合到功率管理电路的资源分配确定电路确定指示逻辑上与多个物理核中的至少一些物理核逻辑相关的物理核利用率的值;以及将指示物理核利用率的所确定的值传送给功率管理电路。
示例27可以包括示例19的要素,其中确定指示逻辑上与多个物理核中的每个物理核相关联的至少一个物理核参数的资源数据可以包括:由可通信地耦合到资源监视电路且可通信地耦合到功率管理电路的资源分配确定电路确定指示逻辑上与多个物理核中的至少一些物理核相关的物理核利用率的值;以及将指示物理核利用率的所确定的值传送给功率管理电路。
示例28可以包括示例19的要素,其中确定指示逻辑上与多个物理核中的每个物理核相关联的至少一个物理核参数的资源数据可以包括:由可通信地耦合到资源监视电路且可通信地耦合到功率管理电路的资源分配确定电路确定指示逻辑上与多个物理核中的至少一些物理核相关的物理核利用率趋势的值;以及将指示物理核利用率趋势的所确定的值传送给功率管理电路。
根据示例29,提供了一种用于在多个物理核上合并多个虚拟机的性能监视系统,每个物理核可通信地耦合到相应的多个物理高速缓存中的相应的一个物理高速缓存。该系统可以包括:用于确定指示逻辑上与多个虚拟机中的每个虚拟机相关联的至少一个参数的性能数据的装置;用于确定资源数据的装置,该资源数据指示:逻辑上与多个物理核中的每个物理核相关联的至少一个物理核参数;以及逻辑上与多个物理高速缓存中的每个物理高速缓存相关联的至少物理高速缓存参数,多个物理高速缓存中的每个物理高速缓存可通信地耦合到多个物理核中的相应的一个物理核;以及用于至少部分地基于所确定的性能数据和所确定的资源数据来判定是否合并多个虚拟机中的至少两个虚拟机的装置。
示例30可以包括示例29的要素,其中用于确定指示逻辑上与多个虚拟机中的每个虚拟机相关联的至少一个参数的性能数据的装置可以包括:用于至少部分地基于所确定的性能数据来确定指示用于多个虚拟机中的每个虚拟机的性能参数的值的装置;以及用于向功率管理电路传送指示用于多个虚拟机中的每个虚拟机的性能参数的所确定的值的装置。
示例31可以包括示例30的要素,其中用于确定指示用于多个虚拟机中的每个虚拟机的性能参数的值的装置可以包括:用于确定逻辑上与多个虚拟机中的至少一些虚拟机中的每个虚拟机相关联的虚拟CPU利用率数据的装置。
示例32可以包括示例29的要素,并且可以附加地包括:用于由资源分配确定电路至少部分地基于所确定的资源数据来确定指示用于多个虚拟机中的每个虚拟机的物理资源分配的值的装置,该资源分配确定电路可通信地耦合到资源监视电路;以及用于将指示用于多个虚拟机中的每个虚拟机的物理资源分配的所确定的值传送到功率管理电路的装置。
示例33可以包括示例32的要素,并且可以附加地包括用于由资源分配确定电路从至少一个可通信地耦合的存储设备检取表示一个或多个资源分配策略的数据的装置。
示例34可以包括示例33的要素,其中至少部分地基于所确定的资源分配数据来确定指示用于多个虚拟机中的每个虚拟机的物理资源分配的值可以包括:由资源分配确定电路至少部分地基于所确定的资源分配数据并且至少部分地基于一个或多个资源分配策略来确定指示用于多个虚拟机中的每个虚拟机的物理资源分配的值。
示例35可以包括示例29的要素,其中用于确定指示逻辑上与多个物理高速缓存中的每个物理高速缓存相关联的至少物理高速缓存参数的资源数据的装置可以包括:用于由资源分配确定电路确定指示逻辑上与多个物理高速缓存中的至少一些物理高速缓存相关的物理高速缓存利用率趋势的值的装置,该资源分配确定电路可通信地耦合到资源监视电路且可通信地耦合到功率管理电路;以及用于将指示物理高速缓存利用率趋势的所确定的值传送给功率管理电路的装置。
示例36可以包括示例29的要素,其中用于确定指示逻辑上与多个物理核中的每个物理核关联的至少一个物理核参数的资源数据的装置可以包括:用于确定指示逻辑上与多个物理核中的至少一些物理核相关联的物理核利用率的值的装置;以及用于将指示物理核利用的所确定的值传送到功率管理电路的装置。
示例37可以包括示例29的要素,其中用于确定指示逻辑上与多个物理核中的每个物理核相关联的至少一个物理核参数的资源数据的装置可以包括:用于确定指示逻辑上与所述多个物理核中的至少一些物理核相关联的物理核利用率的值的装置;以及用于将指示物理核利用率的所确定的值传送到功率管理电路的装置。
示例38可以包括示例29的要素,其中用于确定指示逻辑上与多个物理核中的每个物理核相关联的至少一个物理核参数的资源数据的装置可以包括:用于由确定指示逻辑上与多个物理核中的至少一些物理核相关联的物理核利用率趋势的值的装置,该资源分配确定电路可通信地耦合到资源监视电路且可通信地耦合到功率管理电路;以及用于将指示物理核利用率趋势的所确定的值传送给功率管理电路的装置。
根据示例39,提供了一种存储设备,该存储设备包括一个或多个机器可读指令集,这一个或多个机器可读指令集当由电路执行时使得电路转换为虚拟机管理器,该虚拟机管理器用于:使性能监视电路系统确定指示逻辑上与多个虚拟机中的每个虚拟机相关联的至少一个参数的性能数据;使资源监视电路确定资源数据,该资源数据指示:逻辑上与多个物理核中的每个物理核相关联的至少一个物理核参数;以及逻辑上与多个物理高速缓存中的每个物理高速缓存相关联的至少物理高速缓存参数,多个物理高速缓存中的每个物理高速缓存可通信地耦合到多个物理核中的相应的一个物理核;以及使功率管理电路至少部分地基于所确定的性能数据和所确定的资源数据来判定是否合并多个虚拟机中的至少两个虚拟机。
示例40可以包括示例39的要素,其中使性能监视电路确定指示逻辑上与多个虚拟机中的每个虚拟机相关联的至少一个参数的性能数据的机器可读指令进一步使得虚拟机管理器用于:使可通信地耦合到性能监视电路的性能确定电路至少部分地基于所确定的性能数据来确定指示用于多个虚拟机中的每个虚拟机的性能参数的值;以及使性能确定电路将指示用于多个虚拟机中的每个虚拟机的性能参数的所确定的值传送到功率管理电路。
示例41可以包括示例40的要素,其中使性能监视电路确定指示逻辑上与多个虚拟机中的每个虚拟机相关联的至少一个参数的性能数据的机器可读指令进一步使得虚拟机管理器用于:使性能监视电路确定逻辑上与多个虚拟机中的至少一些虚拟机中的每个虚拟机相关联的虚拟CPU利用率数据。
示例42可以包括示例39的要素,其中机器可读指令使虚拟机管理器进一步:使可通信地耦合到资源监视电路的资源分配确定电路至少部分地基于所确定的资源数据来确定指示用于多个虚拟机中的每个虚拟机的物理资源分配的值;以及使资源分配确定电路将指示用于多个虚拟机中的每个虚拟机的性能参数的所确定的值传送到功率管理电路。
示例43可以包括示例42的要素,其中机器可读指令使虚拟机管理器进一步:使资源分配确定电路从至少一个可通信地耦合的存储设备检取表示一个或多个资源分配策略的数据。
示例44可以包括示例43的要素,其中使得资源分配确定电路至少部分地基于所确定的资源分配数据来确定指示用于多个虚拟机中的每个虚拟机的物理资源分配的值的机器可读介质进一步使资源分配确定电路进一步用于:至少部分地基于所确定的资源分配数据并且至少部分地基于一个或多个资源分配策略来确定指示用于多个虚拟机中的每个虚拟机的物理资源分配的值。
示例45可以包括示例39的要素,其中使得虚拟机管理器使资源监视电路确定指示逻辑上与多个物理高速缓存中的每个物理高速缓存相关联的至少物理高速缓存参数的资源数据的机器可读指令进一步使得虚拟机管理器用于:使可通信地耦合到资源监视电路且可通信地耦合到功率管理电路的资源分配确定电路确定指示逻辑上与多个物理高速缓存中的至少一些物理高速缓存相关的物理高速缓存利用率趋势的值;以及使资源分配确定电路将指示物理高速缓存利用率趋势的所确定的值传送到功率管理电路。
示例46可以包括示例39的要素,其中使得虚拟机管理器使资源监视电路确定指示逻辑上与多个物理核中的每个物理核相关联的至少一个物理核参数的资源数据的机器可读指令进一步使得虚拟机管理器用于:使可通信地耦合到资源监视电路且可通信地耦合到功率管理电路的资源分配确定电路确定指示逻辑上与多个物理核中的至少一些物理核相关的物理核利用率的值;以及使资源分配确定电路将指示物理核利用率的所确定的值传送到功率管理电路。
示例47可以包括示例39的要素,其中使得虚拟机管理器使资源监视电路确定指示逻辑上与多个物理核中的每个物理核相关联的至少一个物理核参数的资源数据的机器可读指令进一步使得虚拟机管理器用于:使可通信地耦合到资源监视电路且可通信地耦合到功率管理电路的资源分配确定电路确定指示逻辑上与多个物理核中的至少一些物理核相关的物理核利用率的值;以及使资源分配确定电路将指示物理核利用率的所确定的值传送到功率管理电路。
示例48可以包括示例39的要素,其中使得虚拟机管理器使资源监视电路确定指示逻辑上与多个物理核中的每个物理核相关联的至少一个物理核参数的资源数据的机器可读指令进一步使得虚拟机管理器用于:使可通信地耦合到资源监视电路且可通信地耦合到功率管理电路的资源分配确定电路确定指示逻辑上与多个物理核中的至少一些物理核相关的物理核利用率趋势的值;以及使资源分配确定电路将指示物理核利用率趋势的所确定的值传送到功率管理电路。
根据示例49,提供了一种用于管理分配给多个虚拟机的物理资源的系统,该系统被布置为执行示例19至28中任一项的方法。
根据示例50,提供了一种芯片组,该芯片组被布置为执行示例19至28中任一项的方法。
根据示例52,提供了一种机器可读介质,该机器可读介质包括多条指令,所述多条指令响应于在计算设备上被执行而使该计算设备执行根据示例19至28中任一项的方法。
根据示例53,提供了一种配置成用于管理分配给多个虚拟机的物理资源的设备,该设备被布置为执行示例19至28中任一项的方法。
已在本文中采用的术语和表达被用作描述性而非限制性的术语,并且在使用此类术语和表达时,不旨在排除所示出的和所描述的特征(或其某些部分)的任何等效内容,应当认识到,在权利要求书的范围之内,各种修改都是可能的。相应地,权利要求书旨在涵盖所有此类等效内容。本文已经描述了各种特征、方面和实施例。如本领域技术人员将理解,特征、方面和实施例易于彼此组合以及进行变化和修改。因此,应当认为本公开涵盖此类组合、变化和修改。
如本文中所述,可以使用硬件元件、软件元件或其任何组合来实现各种实施例。硬件元件的示例可以包括:处理器、微处理器、电路、电路元件(例如,晶体管、电阻器、电容器、电感器等等)、集成电路、专用集成电路(ASIC)、可编程逻辑器件(PLD)、数字信号处理器(DSP)、现场可编程门阵列(FPGA)、逻辑门、寄存器、半导体器件、芯片、微芯片、芯片组等等。
纵观本说明书,对“一个实施例”或“实施例”的引用意味着联系该实施例而描述的特定特征、结构、或特性被包括在至少一个实施例中。因此,在本说明书通篇中的各个位置中短语“在一个实施例中”或“在实施例中”的出现不一定全都指的是同一实施例。此外,在一个或多个实施例中,能以任何适当的方式来组合特定特征、结构、或特性。

Claims (23)

1.一种用于虚拟机的性能监视系统,包括:
性能监视电路,用于确定指示逻辑上与多个虚拟机中的每个虚拟机相关联的至少一个参数的性能数据;
资源监视电路,用于确定资源数据,所述资源数据指示:
逻辑上与多个物理核中的每个物理核相关联的至少一个物理核参数、以及至少一个物理高速缓存参数;以及
逻辑上与多个物理高速缓存中的每个物理高速缓存相关联的至少物理高速缓存参数,所述多个物理高速缓存中的每个物理高速缓存能通信地耦合到所述多个物理核中的相应的一个物理核;以及
功率管理电路,所述功率管理电路用于至少部分地基于所确定的性能数据和所确定的资源数据来判定所述多个虚拟机中的至少两个虚拟机是否能被合并到第一物理核和第一物理高速缓存中。
2.如权利要求1所述的性能监视系统,进一步包括:
性能确定电路,所述性能确定电路能通信地耦合到所述性能监视电路且能通信地耦合到所述功率管理电路,所述性能确定电路用于:
至少部分地基于所确定的性能数据来确定指示用于所述多个虚拟机中的每个虚拟机的性能参数的值;以及
将指示用于所述多个虚拟机中的每个虚拟机的性能参数的所确定的值传送到所述功率管理电路。
3.如权利要求2所述的性能监视系统,其中所述性能确定电路用于:
至少部分地基于逻辑上与所述多个虚拟机中的至少一些虚拟机中的每个虚拟机相关联的虚拟CPU利用率数据来确定指示用于所述多个虚拟机中的每个虚拟机的性能参数的值。
4.如权利要求1所述的性能监视系统,进一步包括:
资源分配确定电路,所述资源分配确定电路能通信地耦合到所述资源监视电路且能通信地耦合到所述功率管理电路,所述资源分配确定电路用于:
至少部分地基于所确定的资源数据来确定指示用于所述多个虚拟机中的每个虚拟机的物理资源分配的值;以及
将指示用于所述多个虚拟机中的每个虚拟机的物理资源分配的所确定值传送到所述功率管理电路。
5.如权利要求4所述的性能监视系统,进一步包括能通信地耦合到所述资源分配确定电路的至少一个存储设备,所述至少一个存储设备具有存储在所述至少一个存储设备上的、表示一个或多个资源分配策略的数据。
6.如权利要求5所述的性能监视系统,其特征在于,所述资源分配确定电路至少部分地基于存储在所述至少一个存储设备上的所述一个或多个资源分配策略来确定指示用于所述多个虚拟机中的每个虚拟机的物理资源分配的值。
7.如权利要求1所述的性能监视系统,其特征在于,所述性能监视电路确定包括逻辑上与所述多个虚拟机中的至少一些虚拟机相关联的虚拟CPU利用率数据的性能数据。
8.如权利要求1所述的性能监视系统,其特征在于,所述资源监视电路生成指示逻辑上与所述多个物理核中的至少一些物理核相关联的物理核利用率数据和逻辑上与所述多个物理高速缓存中的至少一些物理高速缓存相关联的物理高速缓存利用率数据的资源数据。
9.如权利要求1所述的性能监视系统,其特征在于,所述资源监视电路生成指示逻辑上与所述多个物理高速缓存中的至少一些物理高速缓存相关联的存储器利用率趋势的资源数据。
10.一种用于在多个物理核上合并多个虚拟机的性能监视方法,每个物理核能通信地耦合到对应的多个物理高速缓存中的相应的一个物理高速缓存,所述方法包括:
由性能监视电路确定指示逻辑上与多个虚拟机中的每个虚拟机相关联的至少一个参数的性能数据;
由资源监视电路确定资源数据,所述资源数据指示:
逻辑上与所述多个物理核中的每个物理核相关联的至少一个物理核参数;以及
逻辑上与所述多个物理高速缓存中的每个物理高速缓存相关联的至少物理高速缓存参数,所述多个物理高速缓存中的每个物理高速缓存能通信地耦合到所述多个物理核中的相应的一个物理核;以及
由功率管理电路至少部分地基于所确定的性能数据和所确定的资源数据来判定所述多个虚拟机中的至少两个虚拟机是否能被合并到第一物理核和第一物理高速缓存中。
11.如权利要求10所述的性能监视方法,其特征在于,确定指示逻辑上与多个虚拟机中的每个虚拟机相关联的至少一个参数的性能数据包括:
由能通信地耦合到所述性能监视电路的性能确定电路至少部分地基于所确定的性能数据来确定指示用于所述多个虚拟机中的每个虚拟机的性能参数的值;以及
将指示用于所述多个虚拟机中的每个虚拟机的性能参数的所确定的值传送到所述功率管理电路。
12.如权利要求11所述的性能监视方法,其特征在于,确定指示用于所述多个虚拟机中的每个虚拟机的性能参数的值包括:
由所述性能监视电路确定逻辑上与所述多个虚拟机中的至少一些虚拟机中的每个虚拟机相关联的虚拟CPU利用率数据。
13.如权利要求10所述的性能监视方法,进一步包括:
由能通信地耦合到所述资源监视电路的资源分配确定电路至少部分地基于所确定的资源数据来确定指示用于所述多个虚拟机中的每个虚拟机的物理资源分配的值;以及
将指示用于所述多个虚拟机中的每个虚拟机的物理资源分配的所确定的值传送到所述功率管理电路。
14.如权利要求13所述的性能监视方法,进一步包括:
由所述资源分配确定电路从至少一个能通信地耦合的存储设备检取表示一个或多个资源分配策略的数据。
15.如权利要求14所述的性能监视方法,其特征在于,至少部分地基于所确定的资源分配数据来确定指示用于所述多个虚拟机中的每个虚拟机的物理资源分配的值包括:
由所述资源分配确定电路至少部分地基于所确定的资源分配数据并且至少部分地基于所述一个或多个资源分配策略来确定指示用于所述多个虚拟机中的每个虚拟机的物理资源分配的值。
16.如权利要求10所述的性能监视方法,其特征在于,确定指示逻辑上与多个物理高速缓存中的每个物理高速缓存相关联的至少物理高速缓存参数的资源数据包括:
由能通信地耦合到所述资源监视电路且能通信地耦合到所述功率管理电路的资源分配确定电路确定指示逻辑上与所述多个物理高速缓存中的至少一些物理高速缓存相关联的物理高速缓存利用率趋势的值;以及
将指示所述物理高速缓存利用率趋势的所确定的值传送到所述功率管理电路。
17.如权利要求10所述的性能监视方法,其特征在于,确定指示逻辑上与多个物理核中的每个物理核相关联的至少一个物理核参数的资源数据包括:
由能通信地耦合到所述资源监视电路且能通信地耦合到所述功率管理电路的资源分配确定电路确定指示逻辑上与所述多个物理核中的至少一些物理核相关联的物理核利用率的值;以及
将指示所述物理核利用率的所确定的值传送到所述功率管理电路。
18.如权利要求10所述的性能监视方法,其特征在于,确定指示逻辑上与多个物理核中的每个物理核相关联的至少一个物理核参数的资源数据包括:
由能通信地耦合到所述资源监视电路且能通信地耦合到所述功率管理电路的资源分配确定电路确定指示逻辑上与所述多个物理核中的至少一些物理核相关联的物理核利用率趋势的值;以及
将指示所述物理核利用率趋势的所确定的值传送到所述功率管理电路。
19.一种用于在多个物理核上合并多个虚拟机的设备每个物理核能通信地耦合到对应的多个物理高速缓存中的相应的一个物理高速缓存,所述设备包括:
用于确定指示逻辑上与多个虚拟机中的每个虚拟机相关联的至少一个参数的性能数据的装置;
用于确定资源数据的装置,所述资源数据指示:
逻辑上与所述多个物理核中的每个物理核相关联的至少一个物理核参数;以及
逻辑上与所述多个物理高速缓存中的每个物理高速缓存相关联的至少物理高速缓存,所述多个物理高速缓存中的每个物理高速缓存能通信地耦合到所述多个物理核中的相应的一个物理核;以及
用于至少部分地基于所确定的性能数据和所确定的资源数据来判定所述多个虚拟机中的至少两个虚拟机是否能被合并到第一物理核和第一物理高速缓存中的装置。
20.如权利要求19所述的设备,其特征在于,用于确定指示逻辑上与多个虚拟机中的每个虚拟机相关联的至少一个参数的性能数据的装置包括:
用于至少部分地基于所确定的性能数据来确定指示用于所述多个虚拟机中的每个虚拟机的性能参数的值的装置;以及
用于将指示用于所述多个虚拟机中的每个虚拟机的性能参数的所确定的值传送到功率管理电路的装置。
21.如权利要求19所述的设备,其特征在于,用于确定指示用于所述多个虚拟机中的每个虚拟机的性能参数的值的装置包括:
用于确定逻辑上与所述多个虚拟机中的至少一些虚拟机中的每个虚拟机相关联的虚拟CPU利用率数据的装置。
22.如权利要求19所述的设备,进一步包括:
用于由能通信地耦合到资源监视电路的资源分配确定电路至少部分地基于所确定的资源数据来确定指示用于所述多个虚拟机中的每个虚拟机的物理资源分配的值的装置;以及
用于将指示用于所述多个虚拟机中的每个虚拟机的物理资源分配的所确定的值传送到功率管理电路的装置。
23.一种机器可读介质,所述机器可读介质包括多条指令,所述多条指令响应于在计算设备上被执行而使所述计算设备执行根据权利要求10至18中任一项所述的方法。
CN201780052580.0A 2016-09-26 2017-08-25 用于动态虚拟cpu核分配的方法、系统、设备、装置和介质 Active CN109643243B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/276,252 2016-09-26
US15/276,252 US10372498B2 (en) 2016-09-26 2016-09-26 Dynamic virtual CPU core allocation
PCT/US2017/048723 WO2018057238A1 (en) 2016-09-26 2017-08-25 Dynamic virtual cpu core allocation

Publications (2)

Publication Number Publication Date
CN109643243A CN109643243A (zh) 2019-04-16
CN109643243B true CN109643243B (zh) 2024-03-08

Family

ID=61686297

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780052580.0A Active CN109643243B (zh) 2016-09-26 2017-08-25 用于动态虚拟cpu核分配的方法、系统、设备、装置和介质

Country Status (4)

Country Link
US (1) US10372498B2 (zh)
CN (1) CN109643243B (zh)
DE (1) DE112017004808T5 (zh)
WO (1) WO2018057238A1 (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10581687B2 (en) 2013-09-26 2020-03-03 Appformix Inc. Real-time cloud-infrastructure policy implementation and management
US10291472B2 (en) 2015-07-29 2019-05-14 AppFormix, Inc. Assessment of operational states of a computing environment
US10355997B2 (en) 2013-09-26 2019-07-16 Appformix Inc. System and method for improving TCP performance in virtualized environments
US10868742B2 (en) 2017-03-29 2020-12-15 Juniper Networks, Inc. Multi-cluster dashboard for distributed virtualization infrastructure element monitoring and policy control
US11068314B2 (en) * 2017-03-29 2021-07-20 Juniper Networks, Inc. Micro-level monitoring, visibility and control of shared resources internal to a processor of a host machine for a virtual environment
US11323327B1 (en) 2017-04-19 2022-05-03 Juniper Networks, Inc. Virtualization infrastructure element monitoring and policy control in a cloud environment using profiles
US11169834B2 (en) * 2017-09-28 2021-11-09 Intel Corporation Dynamic platform feature tuning based on virtual machine runtime requirements
US10976801B2 (en) * 2018-09-20 2021-04-13 Intel Corporation System, apparatus and method for power budget distribution for a plurality of virtual machines to execute on a processor
US11216314B2 (en) * 2018-11-02 2022-01-04 EMC IP Holding Company LLC Dynamic reallocation of resources in accelerator-as-a-service computing environment
CN109634812B (zh) * 2018-12-11 2022-04-05 厦门服云信息科技有限公司 Linux系统的进程CPU占用率控制方法、终端设备及存储介质
US11366702B1 (en) * 2019-03-29 2022-06-21 United Services Automobile Association (Usaa) Dynamic allocation of resources
DE102019209086B3 (de) * 2019-06-24 2020-08-13 Audi Ag Kraftfahrzeug-Computersystem mit Hypervisor sowie Kraftfahrzeug
US11392184B2 (en) 2020-09-25 2022-07-19 Microsoft Technology Licensing, Llc Disaggregated computer systems
CN112379766B (zh) * 2020-11-25 2024-04-26 航天通信中心 数据处理方法、装置、非易失性存储介质和处理器
CN114390297A (zh) * 2021-12-22 2022-04-22 中国电信股份有限公司 通信系统、配置方法、云端服务设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314394A (zh) * 2010-06-25 2012-01-11 微软公司 数据范围化的动态数据竞争检测
CN104049906A (zh) * 2013-03-11 2014-09-17 Lsi公司 用于动态高速缓存共享的系统、方法和计算机可读介质
CN104204990A (zh) * 2012-03-30 2014-12-10 英特尔公司 在使用共享虚拟存储器的处理器中加速操作的装置和方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9600332B2 (en) 2009-04-28 2017-03-21 Cisco Technology, Inc. Server load balancing based on virtual utilization, physical utilization, and feedback
US9424094B2 (en) 2009-06-01 2016-08-23 International Business Machines Corporation Server consolidation using virtual machine resource tradeoffs
US8825863B2 (en) 2011-09-20 2014-09-02 International Business Machines Corporation Virtual machine placement within a server farm
US8966495B2 (en) * 2012-09-05 2015-02-24 Cisco Technology, Inc. Dynamic virtual machine consolidation
US9195493B2 (en) * 2014-03-27 2015-11-24 International Business Machines Corporation Dispatching multiple threads in a computer
US9733987B2 (en) * 2015-02-20 2017-08-15 Intel Corporation Techniques to dynamically allocate resources of configurable computing resources

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102314394A (zh) * 2010-06-25 2012-01-11 微软公司 数据范围化的动态数据竞争检测
CN104204990A (zh) * 2012-03-30 2014-12-10 英特尔公司 在使用共享虚拟存储器的处理器中加速操作的装置和方法
CN104049906A (zh) * 2013-03-11 2014-09-17 Lsi公司 用于动态高速缓存共享的系统、方法和计算机可读介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
基于多核处理器的动态共享缓存分配算法;周本海等;《东北大学学报(自然科学版)》;20110131;第32卷(第01期);44-47页 *

Also Published As

Publication number Publication date
WO2018057238A1 (en) 2018-03-29
CN109643243A (zh) 2019-04-16
DE112017004808T5 (de) 2019-10-10
US10372498B2 (en) 2019-08-06
US20180088997A1 (en) 2018-03-29

Similar Documents

Publication Publication Date Title
CN109643243B (zh) 用于动态虚拟cpu核分配的方法、系统、设备、装置和介质
US10223162B2 (en) Mechanism for resource utilization metering in a computer system
US8910153B2 (en) Managing virtualized accelerators using admission control, load balancing and scheduling
US8489904B2 (en) Allocating computing system power levels responsive to service level agreements
US8484495B2 (en) Power management in a multi-processor computer system
US20160306677A1 (en) Automatic Analytical Cloud Scaling of Hardware Using Resource Sub-Cloud
US9087146B2 (en) Wear-out equalization techniques for multiple functional units
US10025686B2 (en) Generating and communicating platform event digests from a processor of a system
US9954744B2 (en) Estimation of application performance variation without a priori knowledge of the application
EP2772854B1 (en) Regulation method and regulation device for i/o channels in virtualization platform
US10613606B2 (en) Wireless component state based power management
US10452443B2 (en) Dynamic tuning of multiprocessor/multicore computing systems
US20150350055A1 (en) Shared resource contention
US10120798B1 (en) Dynamic FPGA re-configuration using a virtual FPGA controller
US11734067B2 (en) Multi-core system and controlling operation of the same
US9038084B2 (en) Managing utilization of physical processors of a shared processor pool in a virtualized processor environment
US8862786B2 (en) Program execution with improved power efficiency
US9110735B2 (en) Managing performance policies based on workload scalability
CN112817836A (zh) 一种服务器负载的确定方法、装置、设备以及存储介质
US10698620B2 (en) Dynamic cache allocation
CN116868170A (zh) 嵌入式系统的运行方法和装置、嵌入式系统及芯片
US11948018B2 (en) Methods and systems for dynamic reconfiguring of hardware performance monitoring unit (PMU) events
US9792152B2 (en) Hypervisor managed scheduling of virtual machines

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
GR01 Patent grant
GR01 Patent grant