CN104714849B - 用于在综合工作负载环境中实现最佳性能的系统和方法 - Google Patents

用于在综合工作负载环境中实现最佳性能的系统和方法 Download PDF

Info

Publication number
CN104714849B
CN104714849B CN201410698634.9A CN201410698634A CN104714849B CN 104714849 B CN104714849 B CN 104714849B CN 201410698634 A CN201410698634 A CN 201410698634A CN 104714849 B CN104714849 B CN 104714849B
Authority
CN
China
Prior art keywords
data processing
executed
priority
utilization
processing system
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.)
Expired - Fee Related
Application number
CN201410698634.9A
Other languages
English (en)
Other versions
CN104714849A (zh
Inventor
V·K·阿南德
D·J·伯迪克
B·G·米利
D·米歇尔
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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN104714849A publication Critical patent/CN104714849A/zh
Application granted granted Critical
Publication of CN104714849B publication Critical patent/CN104714849B/zh
Expired - Fee Related 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/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
    • 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
    • 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/5083Techniques for rebalancing the load in a distributed system
    • 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
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/504Resource capping
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明涉及用于在综合工作负载环境中实现最佳性能的系统和方法。提供用于在虚拟机(VM)环境中动态调整软件线程到硬件线程的分配的机制。该机制通过虚拟机管理器(VMM)从多个VM接收工作负载优先级的指示。该指示表明在多个VM中的每个VM上执行的工作负载的优先级。该机制通过VMM向每个VM提供物理资源使用的指示。该物理资源使用的指示是在多个VM中的所有VM上的物理资源使用的指示。该机制通过每个VM基于物理资源使用的指示和在该VM上执行的工作负载的优先级,自动地调整对应的软件线程到硬件线程的分配,以达到在多个VM中的所有VM上的硬件线程的使用平衡。

Description

用于在综合工作负载环境中实现最佳性能的系统和方法
技术领域
本申请通常涉及改进的数据处理装置和方法,更具体地,涉及用于在综合工作环境中实现最佳性能的闭环反馈机制。
背景技术
现代计算设备是建立在多处理核体系结构上。某些计算设备提供多线程核,其中,线程是可与其它线程并行执行的指令序列。采用多线程核,如何在核中设计线程存在复杂性。在某些体系结构中,诸如纽约州阿蒙克市的国际商业机器(IBM)公司的体系结构,其使用对称多线程(SMT)技术,诸如SMT4(4个同时执行的线程)、SMT2(2个同时执行的线程)、或任何数量的SMT线程(即SMTn),如果这些线程并发运行,则这些线程在核中具有相同的容量和能力。然而,如果只有一个线程在运行,则该线程在性能上获得提高,因为该线程具有更大的容量,即,与当所有SMT线程都在核中运行时它所拥有的相比,它可使用更多的计算机设备资源。
当物理核被虚拟化并在整个核中或者通过时分虚拟在多个虚拟处理器之间共享时,如何在核中设计线程的复杂性增加。在虚拟环境中,多个虚拟处理器可分布在多个虚拟机(VM)或逻辑分区(LPAR)上,其中每个LPAR主要孤立地运行。应当知道,LPAR可包括一个或多个VM,而每个VM可包括一个或多个虚拟处理器,这些虚拟处理器使用计算设备的一个或多个处理器和物理资源运行。
在LPAR/VM上运行的操作系统,诸如来自IBM公司的高级交互执行(AIX)操纵系统,采用智能调度,均衡硬件能力的知识。在这种情况下,知道SMT线程取决于其它线程在核上的运行状态而获得不同的容量/能力,AIX调度程序在工作负载没有在LPAR/VM中的所有虚拟处理器的每个硬件线程上运行的任务时,调度LPAR/VM中每个虚拟处理器的主要(第一)线程以获得最佳性能。
在虚拟环境中,LPAR、VM或虚拟处理器可以在系统上过量供应容量,例如,每个LPAR/VM可依据虚拟处理器请求系统中的所有资源,如果它们可用。因此,在这个过量供应配置中,例如在现代体系结构中多达10X的虚拟处理器可处于运行中,物理核的容量和资源在这些虚拟处理器上进行时间切分(如果过量供应和所有虚拟处理器被每个LPAR中的客机(guest)操作系统分派)。AIX操作系统即使在每个虚拟处理器中只使用一个线程,也会调度每个LPAR中的所有虚拟处理器上的工作,导致物理核在大量虚拟处理器之间进行时间切分的情况。也就是说,并不是向单个虚拟处理器分派与该单个虚拟处理器相关联的多个线程,或者也不是LPAR中的所有具有线程的虚拟处理器扩展到虚拟处理器的子集上,AIX操作系统将调度每个LPAR中的所有虚拟处理器上的工作,并将线程扩展到所有虚拟处理器上,其中针对由这些虚拟处理器共享的物理资源执行时间切分,物理资源例如是物理核、存储器、缓存器等。时间切分增加了线程之间的上下文切换,并导致缓存器的颠簸(thrashing),导致相对低的性能。
发明内容
在一个示例性实施例中,提供一种在包括至少一个物理处理器和存储器的数据处理系统中用于在虚拟机(VM)环境中动态调整软件线程到硬件线程的分配的方法。该方法包括由在数据处理系统中执行的虚拟机管理器(VMM)从在数据处理系统中执行的多个VM接收工作负载优先级的指示。该指示表明在多个VM中的每个VM上执行的工作负载的优先级。该方法还包括由VMM向多个VM中的每个VM提供物理资源使用的指示。该物理资源使用的指示是在数据处理系统中执行的多个VM中的所有VM上的物理资源使用的指示。该方法还包括由多个VM中的每个VM基于物理资源使用的指示和在该VM上执行的工作负载的优先级来自动调整对应的软件线程到硬件线程的分配,以达到在多个VM中的所有VM上的硬件线程的使用平衡。
在其它示例性实施例中,提供一种计算机程序产品,其包括具有计算机可读程序的计算机可用或可读介质。当计算机可读程序在计算设备上执行时,使得计算设备执行以上参照方法的示例性实施例概括的操作的各个操作及其组合。
在再一个示例性实施例中,提供一种系统/装置。该系统/装置可包括一个或多个处理器以及连接到一个或多个处理器的存储器。存储器可包括指令,其在由一个或多个处理器执行时使得一个或多个处理器执行以上参照方法的示例性实施例概括的操作的各个操作及其组合。
本发明的这些和其它特点及优点将在以下对本发明的示例性实施例的详细说明中描述,或者将在参照对本发明的示例性实施例的详细说明后对本领域技术人员变得显而易见。
附图说明
通过参考以下示例性实施例的详细说明并结合附图阅读,本发明以及优选使用模式和其它目标和优点将得到很好理解,其中:
图1是说明根据示例性情形的一个示例性实施例的主要操作单元的示例性框图;
图2是其中可实现示例性实施例的各方面的计算设备的示例性框图;
图3是概括根据一个示例性实施例的虚拟管理机制的示例性操作的流程图;
图4是概括根据一个示例性实施例的虚拟机的客机操作系统的示例性操作的流程图。
具体实施方式
示例性实施例提供了用于在综合工作负载环境中实现最佳性能的闭环反馈机制。该闭环反馈机制缓解针对在多个线程上的物理资源的时间切分遍布在系统的逻辑分区(LPAR)或虚拟机(VM)的所有虚拟处理器上而发生的缓存器颠簸。闭环反馈机制提供了一种通信路径,管理程序或其它虚拟机或LPAR管理机制可通过它向LPAR或VM的客机操作系统通知在系统级别的资源使用或资源可用性,诸如在LPAR的其它VM中的资源可用性,以便修改客机操作系统的线程调度行为。基于来自管理程序的该反馈,客机操作系统的线程调度可以折叠(减少)或展开(增加)由LPAR或VM正在使用的虚拟处理器的数量,从而根据如由管理程序识别的资源的可用性来减少或增加与虚拟处理器相关联的时间切分。因此,在多线程环境中更有效地利用线程是可能的。
如上所述,为了在多个虚拟机上的虚拟环境中均衡多线程计算系统的硬件能力,诸如SMT使能计算系统,示例性实施例在管理程序、主机操作系统或其它LPAR/VM管理机制与客机操作系统(例如,诸如AIX、Linux、IBMi的操作系统的实例)或结合虚拟机或LPAR执行的其它操作系统之间提供闭环系统。为了下面的描述,假定LPAR/VM管理机制是管理程序,客机操作系统是AIX操作系统的实例,然而,示例性实施例并不限于此。在这种情况下,管理程序知道所有LPAR/VM的需求,而客机操作系统知道在该客机操作系统内运行的工作负载的需求。客机操作系统还实现关于各种类型的工作负载或工作负载的特性的商业策略,以便根据所建立的在商业策略中规定的商业优先级来调度工作负载。例如,商业关键应用,诸如数据库,可以相对于其它工作负载(诸如旨在开发或测试工作负载的工作负载)而被给予更高的优先级。
当这些工作负载在同一个计算系统上的虚拟机上运行时,商业策略被应用于软件栈和硬件,以确保在计算系统中的虚拟机的虚拟处理器内正确地调度线程。根据示例性实施例,通过创建其中管理程序向客机操作系统提供反馈的闭环系统,客机操作系统可以更好地应用策略以在对应的虚拟处理器上调度线程。即,管理程序基于对计算系统资源的需求,向客机操作系统传递提示以影响客机操作系统调度它的线程的方式。
例如,如果对计算系统资源的需求在计算系统的虚拟机上更少,这意味着计算系统的许多虚拟机处于低负载状态,因此需要较低的物理处理器容量,则管理程序可向被配置了较低优先级商业策略(即,执行较低优先级工作负载)的虚拟机的客机操作系统传递有关过度的资源可用性的“提示”或信息。然后,这些执行较低优先级工作负载的客机操作系统可改变它们的调度器行为以获得额外的处理器容量。
图1是表示根据示例性情形的一个示例性实施例的主要操作单元的示例性框图。在下面的示例性情形中,其应当仅被认为是示例性实施例的操作的非限定例子,假定虚拟机A 110正在运行具有高优先级策略集合114的商业关键数据库工作负载112,即规定工作负载112具有比非关键工作负载相对高的优先级的商业策略,并被配置了32个虚拟处理器116,并具有计算系统的24个物理处理器核的授权或保证(即使计算系统被完全利用,工作负载112也保证24个物理处理器核)。虚拟处理器的配置数量表示可分配给工作负载112的虚拟处理器的最大数量,该最大数量在计算系统未充分利用时达到。
还假定虚拟机B 120正在运行与较低优先级策略集合124相关联的开发工作负载122,并被配置了20个虚拟处理器126和2个物理处理器核的授权。另外,在该例子中,假定虚拟机C 130运行具有优先级策略集合134的测试工作负载132,该优先级策略集合134比虚拟机B的低优先级策略集合更高,但低于虚拟机A 110的高优先级策略集合114。虚拟机C被配置了20个虚拟处理器136和4个物理处理器核的授权。在这个例子中,系统具有32个物理处理器核140,其在三个虚拟机110、120和130之间共享。多个虚拟机110、120和130的配置策略与管理程序150共享,以使得管理程序知道与每个虚拟机相关联的优先级策略集合114、124和134,并因此知道在各个虚拟机110、120和130上运行的工作负载的优先级。
在这个例子中,基于虚拟机A 110的高优先级策略集合,虚拟机A 110的客机操作系统118将在虚拟机B 120和C 130是空闲时使用所有32个物理处理器核来向所有32个虚拟处理器116的主要线程分派工作。当在LPAR 160上的负载增加时,虚拟机A 110的客机操作系统118将开始向所有虚拟处理器116的次级线程分派工作,然后是虚拟处理器116的第三级线程。此时,虚拟机A 110将消耗来自共享处理器池140的所有容量。
当工作负载在虚拟机B 120和虚拟机C 130上开始时,这些虚拟机120和130的客机操作系统128和138将由较低优先级策略集合124和134引导,并将在虚拟处理器126和136的主要、次级和第三级线程上分派工作。展开,即增加被利用的虚拟处理器126和136的数量,仅在虚拟处理器126、136的所有线程都被利用并因此移到下一个虚拟处理器126、136或增加额外的虚拟处理器时发生。也就是说,虚拟机120和130的“引导”包含管理程序或虚拟机管理器向虚拟机通知在系统级别资源是低/高,在这种情况下,虚拟机改变其调度策略以增加/减少虚拟机正在使用的虚拟处理器的数量以及在剩余虚拟机上使用所有的硬件线程。
当工作负载在虚拟机B 120和C 130上增加时,有更多的虚拟处理器在被分派。也就是说,管理程序或虚拟机管理器150向虚拟机分派虚拟处理器,虚拟处理器包含所有的虚拟硬件线程(软件线程)。虚拟机确定是否将软件线程分派到虚拟处理器的某些或所有硬件线程上,例如,在从IBM公司可得的Power7处理器体系中,管理程序一起分派虚拟处理器的所有四个线程,并因此分派“虚拟处理器”,而虚拟机的AIX操作系统确定这些硬件线程中的哪些会具有被分配以在它们上面运行的软件线程。
因此,32个物理处理器核140在虚拟机B 120和C 130的这些虚拟处理器126和136上进行时间切分,这意味着每个虚拟处理器126、136被给予一个时间片,在该时间片期间,它可在对应的物理处理器140上运行它的工作负载,然后,时间片被供给另一个虚拟处理器126、136,依次类推,以使得在线程、虚拟处理器、虚拟机、甚至逻辑分区之间的多个上下文切换是必要的。这导致颠簸和较低的系统性能,甚至影响更高优先级的虚拟机A 110的性能,因为更高优先级的虚拟机A 110共享处理器池140的物理资源。
根据示例性实施例,管理程序150、主机操作系统或其它虚拟管理机制向所有虚拟机A-C 110、120和130传递有关缓存器颠簸的提示或信息。也就是说,管理程序150例如可认识到处理器资源受到约束,因此,管理程序150向具有“过量供应”(即,被配置的虚拟处理器的数量大于其虚拟处理器的授权数量)的虚拟机通知需要减少它们的虚拟处理器的数量,即,折叠虚拟处理器的数量。当虚拟机接收到该通知时,减少它的虚拟处理器的数量,并进行重新配置以通过使用所有的硬件(SMT)线程以代替仅仅一个硬件线程来更好地利用它剩余的虚拟处理器。该通知可以根据与虚拟机或管理程序相关联的商业策略(或优先级策略)集合进行。较低优先级的虚拟机与较高优先级的虚拟机相比会相对更早地被给予这个通知,并与较高优先级的虚拟机相比会被要求更多地减少虚拟处理器的数量。
基于优先级策略以及自动系统优化指南,特定虚拟机B 120、C 130的客机操作系统可折叠或展开虚拟处理器126、136,直到达到平衡和提高整体系统性能,其中“平衡”是指在给定系统负载和优先策略的情况下,虚拟机具有适当数量的虚拟处理器。
例如,在一个示例性实施例中,由于虚拟机A 110是运行高优先级工作负载的高优先级虚拟机,因此,虚拟机A 110不会折叠减少其虚拟处理器,而虚拟机B 120和C 130会将其虚拟处理器折叠减少到1个,因为这些虚拟机120和130正在运行较低优先级的工作负载。折叠减少到或展开到的虚拟机的特定数量可根据所配置的虚拟处理器的数量、虚拟处理器授权和应用优先级策略中的规定确定。在某些情况下,可允许虚拟机的某些过量供应,但这取决于资源可用性和特定虚拟机的优先级。例如,如果计算系统被高度加载,则较高优先级的虚拟机可被允许保留在过量供应的状态,而低较优先级的虚拟机将被通知它们将不接收超出它们的授权的任何虚拟处理器资源,并且应当减少到它们的处理器的授权数量。
因此,即使虚拟机B 120和C130具有较高的物理/虚拟处理器授权,虚拟机B 120和虚拟机C 130也要忍受较低的性能,以便不会妨碍在虚拟机A 110上的较高优先级的工作负载的执行。该决定由虚拟机B 120和C130的客机操作系统基于优先级策略做出。在某些示例性实施例中,这些优先级策略规定在虚拟机内的各种负载等级上在虚拟机中维持运行的虚拟处理器的数量。
应当知道,优先级策略集合114可以是静态或动态的。静态策略是管理程序或其它虚拟机管理器拥有静态策略,并在虚拟机的资源使用不匹配虚拟机的针对指定情形分配的优先级时通知虚拟机,以便可以进行调整。该策略仅仅对虚拟机级别的工作负载按优先顺序进行排列,但不考虑虚拟机中工作负载的特性。另一方面,动态策略由单独的虚拟机拥有,并表示在虚拟机中实际运行的工作负载的优先级。动态策略基于哪个工作负载当前正在虚拟机中执行而将工作负载的优先级传递给管理程序。然后,管理程序可根据其它虚拟机的当前相对优先级来授权或拒绝更多资源。
本发明的示例性实施例的上述方面和优点将在在下面参照附图更详细地描述。应当知道,这些附图仅仅意在说明本发明的示例性实施例。本发明可包含未在附图中明确示出但在阅读了示例性实施例的描述后对本领域技术人员是显而易见的各方面、实施例和对所描述的示例性实施例的修改。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在任意一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可用介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质是电、磁、光、电磁或半导体性质的系统、装置或器件,任意以上的组合,或者诸如此类。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有存储能力的电器件、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、基于光纤的器件、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
在某些示例性实施例中,计算机可读介质是非瞬态计算机可读介质。非瞬态计算机可读介质是任何不是无实质信号或传播波的介质,即,纯信号或传播波本身。非瞬态计算机可读介质可以利用信号和传播波,但不是信号或传播波本身。因此,例如各种形式的存储器设备以及以任何形式利用信号以维持其状态的其它类型的系统、设备或装置可以被认为是落入本说明的范围的非瞬态计算机可读介质。
另一方面,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。同样地,计算机可读存储介质是任意非计算机可读信号介质的计算机可读介质。
计算机可读介质上包含的计算机代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、射频(RF)等等,或者其任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明示范性实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其它可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
也可以把计算机程序指令加载到计算机、其它可编程数据处理装置或其它设备上,以使得一系列操作步骤在计算机、其它可编程装置或其它设备上执行,以产生一种计算机可实现过程,从而使得在计算机或其它编程装置上执行的指令提供用于实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
因此,示例性实施例可在许多不同类型的数据处理环境中使用。为了提供用于描述示例性实施例的特定单元和功能的上下文,在下文提供图2以作为其中可实现示例性实施例的各方面的示例性环境。应当知道,图2仅仅是一个例子,并不意味着声明或暗示对其中可实现本发明的实施例或各方面的环境的限制。在不脱离本发明的精神和范围的情况下,可以对所描述的环境进行许多修改。
图2是其中可实现示例性的实施例的各方面的示例性数据处理系统的框图。数据处理系统200是计算机的例子,诸如客户端计算系统或服务器计算系统,在其中可保存用于实现本发明的示例性实施例的过程的计算机可用代码或指令。
在所描述的例子中,数据处理系统200采用集线器体系结构,其包括北桥和存储器控制器集线器(NB/MCH)202、南桥和输入/输出(I/O)控制器集线器(SB/ICH)204。处理单元206、主存储器208和图形处理器210被连接到NB/MCH 202。图形处理器210可以通过加速图形端口(AGP)连接到NB/MCH 202。
在所描述的例子中,局域网(LAN)适配器212连接到SB/ICH 204。音频适配器216、键盘和鼠标适配器220、调制解调器222、只读存储器(ROM)224、硬盘驱动器(HDD)226、CD-ROM驱动器230、通用串行总线(USB)端口和其它通信端口232、以及PCI/PCIe设备234通过总线238和总线240连接到SB/ICH 204。PCI/PCIe设备例如可包括以太网适配器、插卡、用于笔记本计算机的PC卡。PCI使用卡总线控制器,而PCIe不使用。ROM 224例如可以是闪速基本输入/输出系统(BIOS)。
HDD 226和CD-ROM驱动器230通过总线240连接到SB/ICH 204。HDD 226和CD-ROM驱动器230例如可以使用集成驱动器电路(IDE)或串行高级连接技术(SATA)接口。超级I/O(SIO)设备236可连接到SB/ICH 204。
操作系统在处理单元206上运行。操作系统协调并提供图2中的数据处理系统200内的各种组件的控制。作为客户端,操作系统可以是商业可用的操作系统,诸如面向对象的编程系统,诸如JavaTM编程系统,可与操作系统一起运行,并根据在数据处理系统200上执行的JavaTM程序或应用提供对操作系统的调用。
作为服务器,数据处理系统200例如可以是系统计算机系统,其运行高级交互执行操作系统或操作系统。数据处理系统200可以是对称多处理器(SMP)系统,其在处理单元206中包括多个处理器。可选择地,可以采用单处理器系统。
操作系统、面向对象的编程系统的指令和应用或程序位于诸如HDD226的存储器设备上,并可以被加载到主存储器208中以由处理单元206执行。本发明的示例性实施例的过程可通过处理单元206使用计算机可用程序代码执行,该代码可位于存储器中,诸如例如主存储器208、ROM 224或例如一个或多个外部设备226和230中。
诸如图2所示的总线238或总线240的总线系统可包括一个或多个总线。当然,可以使用任何类型的通信结构或体系来实现总线系统,它在连接到该结构或体系的不同组件或设备之间提供数据的传输。诸如图2的调制解调器222或网络适配器212的通信单元可包括用于发送和接收数据的一个或多个设备。储存器例如可以是主存储器208、ROM 224或诸如在图2的NB/MCH 202中发现的缓存器。
本领域技术人员知道图1和2中的硬件可以根据实现而变化。其它内部硬件或外部设备,诸如闪存、等同非易失性存储器或光盘驱动器等,可用于添加到或者替换图1和2所示的硬件。另外,在不脱离本发明的精神和范围的情况下,除了上述的SMP系统外,示例性实施例的过程可以被应用于多处理器数据处理系统。
另外,数据处理系统200可采用多个不同数据处理系统的任何一个的形式,包括客户端计算设备、服务器计算设备、平板计算机、膝上型计算机、电话或其它通信设备、个人数字助理(PDA)等。在某些示例性实施例中,数据处理系统200可以是便携式计算设备,其被配置了闪存以提供非易失性存储器,用于存储例如操作系统文件和/或用户生成的数据。基本上,数据处理系统200可以是任何已知或以后开发的数据处理系统,而没有体系结构的限制。
根据示例性实施例,图2中的数据处理系统200可以实现一个或多个逻辑分区(LPAR),其中每个LPAR包括具有执行一个或多个线程的一个或多个虚拟处理器(VP)的一个或多个虚拟机(VM)。数据处理系统200的这些虚拟资源共享数据处理系统的物理资源,例如处理单元206、主存储器208等。在这种情况下,例如时间切分可用于提供每个LPAR的每个VM的每个VP对物理资源的访问,以使得每个虚拟资源可利用一部分物理资源。在一个示例性实施例中,处理单元206可包括多个处理单元,例如32个处理单元或核,其可由一个或多个LPAR的多个VM的多个VP共享。
处理单元206还可执行管理数据处理系统200的虚拟资源(例如LPAR、VM、VP等)的虚拟管理机制。在一个示例性实施例中,虚拟管理机制是管理程序或主机操作系统,其包括虚拟管理逻辑和用于提供有关资源可用性和某些虚拟机对相同或不同逻辑分区的其它虚拟机的利用的“提示”或信息,以用于调整由虚拟机或逻辑分区的客机操作系统执行的线程调度的逻辑。例如,处理单元206可以实现图1的管理程序150,其例如包括用于向客机操作系统提供资源可用性和相同或不同逻辑分区的其它虚拟资源的资源利用的提示的逻辑,以使得客机操作系统可以利用该信息调整由这些客机操作系统执行的线程调度。
如前面所述,管理程序可以监控在数据处理系统200上执行的多个虚拟机(VM)的资源利用,并可以将这种信息传送给每个逻辑分区(LPAR)或VM的客机操作系统。客机操作系统可包括用于从管理程序摄取这种提示信息并调整它们自己的线程调度操作以考虑数据处理系统资源的可用性或缺乏可用性的逻辑。例如,客机操作系统可以折叠或展开与客机操作系统和对应的VM相关联的虚拟处理器(VP),以便降低或增加由VM使用的VP的数量。此后,线程可以被分派到各个VP,以便通过当在系统级别(即在所有虚拟机上)的工作负载低时将线程遍布在利用与每个VP相关联的主线程的较大数量的VP上以实现更高性能,或者通过当工作负载水平高时将线程压缩到较小数量的VP上以便避免妨碍在其它VM的其它VP上的较高优先级的工作负载的性能,来实现最佳性能。
与VM相关联的VP的折叠或展开可不仅根据由管理程序发送给客机操作系统的反馈信息或“提示”,而且根据与工作负载相关联的优先级和随客机操作系统建立的优先级策略来执行。因此,根据工作负载优先级、反馈信息和优先级策略,客机操作系统可以确定是否折叠或者展开VM的VP以达到计算系统作为整体在分派线程和由VP的线程共享物理资源方面达到最佳性能。
图3是概括根据一个示例性实施例的虚拟管理机制的示例性操作的流程图。如图3所示,操作从虚拟管理机制(VMM)从在数据处理系统上执行的虚拟机接收有关正由各种虚拟机执行的工作负载的优先级的指示(步骤310)开始。虚拟管理机制根据正由各种虚拟机执行的工作负载的指示来确定各种虚拟机的资源利用(步骤320)。虚拟管理机制向在数据处理系统上执行的每个虚拟机提供资源利用的通知(步骤330)。然后,每个虚拟机根据在来自虚拟管理机制的通知中指定的资源利用,基于虚拟机优先级、所分配物理/虚拟处理器的当前数量和如根据资源利用确定的计算系统中的共享资源的当前可用性,确定是否折叠或展开它们相关联的虚拟处理器(VP)的数量(步骤340)。然后,每个虚拟机折叠或展开与虚拟机相关联的虚拟处理器(步骤350),并向虚拟处理器分配线程(步骤360)。然后,操作终止。
图4是概括根据一个示例性实施例的虚拟机的客机操作系统的示例性操作的流程图。应当知道,尽管图4示出了单个虚拟机的单个客机操作系统的示例性操作,但该操作可以针对当前在计算系统中执行的每个虚拟机和对应的客机操作系统执行。
如图4所示,操作从客机操作系统向虚拟管理机制提供表明在与客机操作系统相关联的虚拟机的虚拟处理器上执行的工作负载和它们的优先级的信息开始(步骤410)。客机操作系统从虚拟管理机制接收提示指示,其根据在数据处理系统上的虚拟机上执行的当前工作负载规定数据处理系统的当前资源利用或可用性(步骤420)。例如,这可以是上面论述的通知。客机操作系统获取优先级策略,其用于根据资源可用性和工作负载优先级规定管理与虚拟机相关联的虚拟处理器的方式(步骤430)。
根据优先级策略,确定虚拟机和它的工作负载的优先级是相对高的优先级还是相对低的优先级(步骤440)。应当知道,尽管示例性实施例针对较高或较低的优先级来描述,但示例性实施例并不限于此。在不脱离示例性实施例的精神和范围的情况下,可以利用优先级的范围,根据折叠或展开的不同等级,可以利用不同的折叠或展开虚拟处理器的操作。
如果虚拟机的优先级相对低,则确定虚拟机的物理处理器(CPU)利用是否小于其优先级策略下的授权(EN)。如果是,则与虚拟机相关联的虚拟处理器的数量被折叠减少到当前低优先级工作负载所需要的最小数量(步骤460)。若物理处理器利用等于或大于虚拟机的授权,则虚拟机的虚拟处理器被折叠减少到所需要的虚拟处理器的最小数量,线程被分配给剩余(未折叠)的虚拟处理器,以使得每个剩余虚拟处理器100%被利用(步骤470)。
如果虚拟机优先级相对高(步骤440),则确定虚拟机的物理处理器(CPU)利用是否大于虚拟机的授权(EN),即,保证给虚拟机的确保的处理器容量(步骤480)。如果不是,则与虚拟机相关联的虚拟处理器(其可覆盖高于并超过虚拟机的授权的容量)被展开以等于虚拟机的授权(步骤490)。如果物理处理器利用大于虚拟机的授权,则确定在计算系统中是否有可用的空闲共享资源,即,允许在计算系统中的所有虚拟机或一组虚拟机之间共享的计算系统的处理器资源(步骤500)。如果在计算系统中没有可用的空闲共享资源,则虚拟处理器的数量被折叠/展开以匹配来自共享资源的可用处理器(步骤510)。如果在计算系统中有可用的空闲共享资源,则分配给虚拟机的虚拟处理器的数量被展开以等于虚拟机处理器的最大数量,每个虚拟处理器仅仅使用每个物理处理器中的主线程(步骤520)。然后,操作终止。
因此,示例性实施例提供了用于将来自虚拟管理机制的反馈提示信息提供给在数据处理系统上执行的虚拟机的客机操作系统,以便修改科技操作系统的线程调度的操作以考虑来自其它虚拟机的资源可用性和在每个虚拟机中执行的工作负载的优先级。示例性实施例平衡了工作负载优先级与性能的担心,以便允许高优先级工作负载无障碍地执行,但同时根据资源可用性向较低优先级的工作负载提供最大的性能。
如上所述,应当知道,示例性实施例可以采用完全硬件实施例、完全软件实施例或者包含硬件和软件单元两者的实施例。在一个示例性实施例中,示例性实施例的机制以软件或程序代码实现,其包括但不限于固件、驻留软件、微代码等。
适合于存储并和/或执行程序代码的数据处理系统包括至少一个处理器,其通过系统总线直接或间接地连接到存储器单元。存储器单元可包括在程序代码的实际执行期间利用的本地存储器、海量存储器和提供至少某些程序代码的临时存储以便减少在执行期间必须从海量存储器中获取代码的次数的缓存器。
输入/输出或I/O设备(包括但不限于键盘、显示器、定位设备等)可以直接或通过中间I/O控制器连接到系统。网络适配器也可以连接到系统,以使得数据处理系统能够通过私有或公共网络连接到其它数据处理系统或远程打印机或存储设备。调制解调器、线缆调制解调器和以太网卡只是几种当前可用类型的网络适配器。
为了说明和描述的目的,已经提供了本发明的说明,但并不意味着穷举或将本发明限于这里所公开的形式。许多修改和变化对本领域技术人员是显而易见的。选择并描述实施例是为了更好地解释本发明的原理、实际应用,并使得本领域其它人员能够理解本发明的各种实施例可进行各种修改,以适合于特定的应用场合。

Claims (16)

1.一种在包括至少一个物理处理器和存储器的数据处理系统中用于在虚拟机VM环境中动态调整软件线程到硬件线程的分配的方法,所述方法包括:
由在所述数据处理系统中执行的虚拟机管理器VMM从在所述数据处理系统中执行的多个VM接收工作负载优先级的指示,其中,所述指示表明在所述多个VM中的每个VM上执行的工作负载的优先级;
由所述VMM将物理资源使用的指示提供给所述多个VM中的每个VM,其中,所述物理资源使用的指示是在所述数据处理系统中执行的所述多个VM中的所有VM上的物理资源使用指示;以及
由所述多个VM中的每个VM基于所述物理资源使用的指示和在所述VM上执行的工作负载的优先级自动调整对应的软件线程到硬件线程的分配,以达到在所述多个VM中的所有VM上的硬件线程的使用平衡;
其中,由所述多个VM中的每个VM自动调整对应的软件线程到硬件线程的分配包括:基于所述物理资源使用的指示和在所述VM上执行的工作负载的优先级,执行折叠或者展开分配给所述VM的虚拟处理器VP的数量中的一个;
其中,执行折叠或展开分配给所述VM的VP的数量中的一个包括:
确定所述VM对至少一个物理处理器的利用是否大于与所述VM相关联的授权;
响应于所述VM对所述至少一个物理处理器的利用大于与所述VM相关联的授权,确定在所述数据处理系统中是否有共享资源可用;
响应于在所述数据处理系统中共享资源不可用,折叠或展开分配给所述VM的VP的数量以等于所述数据处理系统中可用的物理处理器的数量;以及
响应于在所述数据处理系统中共享资源可用,将分配给所述VM的VP的数量展开成与VM相关联的VP的最大数量,并将软件线程只分配给所述至少一个物理处理器中的主要硬件线程。
2.如权利要求1所述的方法,其中,执行折叠或者展开分配给所述VM的VP的数量中的一个包括:
确定所述VM对至少一个物理处理器的利用是否小于与所述VM相关联的授权;以及
响应于所述VM对所述至少一个物理处理器的利用小于与所述VM相关联的授权,将分配给所述VM的VP的数量折叠减少到在所述VM上执行的工作负载所需要的最小数量。
3.如权利要求1所述的方法,其中,执行折叠或展开分配给所述VM的VP的数量中的一个包括:
确定所述VM对至少一个物理处理器的利用是否小于与所述VM相关联的授权;以及
响应于所述VM对所述至少一个物理处理器的利用等于或者大于与所述VM相关联的授权,将分配给所述VM的VP的数量折叠减少到在所述VM上执行的工作负载所需要的最小数量,并将软件线程分配给所有硬件线程以达到所述VM的剩余VP的完全利用。
4.如权利要求1所述的方法,其中,执行折叠或展开分配给所述VM的VP的数量中的一个包括:
确定所述VM对至少一个物理处理器的利用是否大于与所述VM相关联的授权;以及
响应于所述VM对所述至少一个物理处理器的利用不大于与所述VM相关联的授权,则展开分配给所述VM的VP的数量以等于与所述VM相关联的授权。
5.如权利要求1所述的方法,其中,由所述VMM向所述多个VM中的每个VM提供物理资源使用的指示包括:
根据所建立的商业策略,向关于分配给它们的VP的数量被过度供应的所述多个VM中的VM发送通知,以折叠减少它们的VP的数量。
6.如权利要求5所述的方法,其中,根据在所述多个VM中的VM上执行的工作负载的优先级发送通知,以使得在向所述多个VM中相对高优先级的VM发送通知之前,向相对低优先级的VM发送通知。
7.如权利要求5所述的方法,其中,所述通知指示所述多个VM中相对低优先级的VM以比所述多个VM中相对高优先级的VM更多数量地减少它们所分配的VP的数量。
8.如权利要求1所述的方法,其中,所述VMM是在所述数据处理系统中执行的管理程序。
9.一种用于在虚拟机VM环境中动态调整软件线程到硬件线程的分配的系统,其被配置为执行如下步骤:
由在数据处理系统中执行的虚拟机管理器VMM从在所述数据处理系统中执行的多个VM接收工作负载优先级的指示,其中,所述指示表明在所述多个VM中的每个VM上执行的工作负载的优先级;
由所述VMM将物理资源使用的指示提供给所述多个VM中的每个VM,其中,所述物理资源使用的指示是在所述数据处理系统中执行的所述多个VM中的所有VM上的物理资源使用指示;以及
由所述多个VM中的每个VM基于所述物理资源使用的指示和在所述VM上执行的工作负载的优先级自动调整对应的软件线程到硬件线程的分配,以达到在所述多个VM中的所有VM上的硬件线程的使用平衡;
其中,由所述多个VM中的每个VM自动调整对应的软件线程到硬件线程的分配包括:基于所述物理资源使用的指示和在所述VM上执行的工作负载的优先级,执行折叠或者展开分配给所述VM的虚拟处理器VP的数量中的一个;
其中,执行折叠或展开分配给所述VM的VP的数量中的一个包括:
确定所述VM对至少一个物理处理器的利用是否大于与所述VM相关联的授权;
响应于所述VM对所述至少一个物理处理器的利用大于与所述VM相关联的授权,确定在所述数据处理系统中是否有共享资源可用;
响应于在所述数据处理系统中共享资源不可用,折叠或展开分配给所述VM的VP的数量以等于所述数据处理系统中可用的物理处理器的数量;以及
响应于在所述数据处理系统中共享资源可用,将分配给所述VM的VP的数量展开成与VM相关联的VP的最大数量,并将软件线程只分配给所述至少一个物理处理器中的主要硬件线程。
10.如权利要求9所述的系统,其中,执行折叠或者展开分配给所述VM的VP的数量中的一个包括:
确定所述VM对至少一个物理处理器的利用是否小于与所述VM相关联的授权;以及
响应于所述VM对所述至少一个物理处理器的利用小于与所述VM相关联的授权,将分配给所述VM的VP的数量折叠减少到在所述VM上执行的工作负载所需要的最小数量。
11.如权利要求9所述的系统,其中,执行折叠或展开分配给所述VM的VP的数量中的一个包括:
确定所述VM对至少一个物理处理器的利用是否小于与所述VM相关联的授权;以及
响应于所述VM对所述至少一个物理处理器的利用等于或者大于与所述VM相关联的授权,将分配给所述VM的VP的数量折叠减少到在所述VM上执行的工作负载所需要的最小数量,并将软件线程分配给所有硬件线程以达到所述VM的剩余VP的完全利用。
12.如权利要求9所述的系统,其中,执行折叠或展开分配给所述VM的VP的数量中的一个包括:
确定所述VM对至少一个物理处理器的利用是否大于与所述VM相关联的授权;以及
响应于所述VM对所述至少一个物理处理器的利用不大于与所述VM相关联的授权,则展开分配给所述VM的VP的数量以等于与所述VM相关联的授权。
13.如权利要求9所述的系统,其中,由所述VMM向所述多个VM中的每个VM提供物理资源使用的指示包括:
根据所建立的商业策略,向关于分配给它们的VP的数量被过度供应的所述多个VM中的VM发送通知,以折叠减少它们的VP的数量。
14.如权利要求13所述的系统,其中,根据在所述多个VM中的VM上执行的工作负载的优先级发送通知,以使得在向所述多个VM中相对高优先级的VM发送通知之前,向相对低优先级的VM发送通知。
15.如权利要求13所述的系统,其中,所述通知指示所述多个VM中相对低优先级的VM以比所述多个VM中相对高优先级的VM更多数量地减少它们所分配的VP的数量。
16.如权利要求9所述的系统,其中,所述VMM是在所述数据处理系统中执行的管理程序。
CN201410698634.9A 2013-12-12 2014-11-27 用于在综合工作负载环境中实现最佳性能的系统和方法 Expired - Fee Related CN104714849B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/104672 2013-12-12
US14/104,672 US9727361B2 (en) 2013-12-12 2013-12-12 Closed-loop feedback mechanism for achieving optimum performance in a consolidated workload environment

Publications (2)

Publication Number Publication Date
CN104714849A CN104714849A (zh) 2015-06-17
CN104714849B true CN104714849B (zh) 2018-08-24

Family

ID=53368537

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410698634.9A Expired - Fee Related CN104714849B (zh) 2013-12-12 2014-11-27 用于在综合工作负载环境中实现最佳性能的系统和方法

Country Status (2)

Country Link
US (2) US9727361B2 (zh)
CN (1) CN104714849B (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9401869B1 (en) * 2012-06-04 2016-07-26 Google Inc. System and methods for sharing memory subsystem resources among datacenter applications
US9400672B2 (en) 2014-06-06 2016-07-26 International Business Machines Corporation Placement of virtual CPUS using a hardware multithreading parameter
US9384027B2 (en) 2014-06-06 2016-07-05 International Business Machines Corporation Selecting a host for a virtual machine using a hardware multithreading parameter
US9304805B2 (en) 2014-06-06 2016-04-05 Interinational Business Machines Corporation Provisioning virtual CPUs using a hardware multithreading parameter in hosts with split core processors
DE102015214385A1 (de) * 2015-07-29 2017-02-02 Robert Bosch Gmbh Verfahren und Vorrichtung zum Absichern der Anwendungsprogrammierschnittstelle eines Hypervisors
US20170031724A1 (en) * 2015-07-31 2017-02-02 Futurewei Technologies, Inc. Apparatus, method, and computer program for utilizing secondary threads to assist primary threads in performing application tasks
US10768995B2 (en) * 2015-10-23 2020-09-08 Telefonaktiebolaget Lm Ericsson (Publ) Allocating host for instances with anti affinity rule with adaptable sharing to allow instances associated with different failure domains to share surviving hosts
US9996393B2 (en) * 2015-11-19 2018-06-12 International Business Machines Corporation Dynamic virtual processor manager
US10372493B2 (en) * 2015-12-22 2019-08-06 Intel Corporation Thread and/or virtual machine scheduling for cores with diverse capabilities
GB2549773B (en) * 2016-04-28 2018-05-16 Metaswitch Networks Ltd Configuring host devices
US10127068B2 (en) * 2016-06-30 2018-11-13 Amazon Technologies, Inc. Performance variability reduction using an opportunistic hypervisor
CN106656553B (zh) * 2016-10-11 2019-11-05 赛特斯信息科技股份有限公司 基于nfv设备的系统性能检测及调优方法
US10372640B2 (en) * 2016-11-21 2019-08-06 International Business Machines Corporation Arbitration of data transfer requests
CN106844007B (zh) * 2016-12-29 2020-01-07 中国科学院计算技术研究所 一种基于空间复用的虚拟化方法与系统
US10587504B2 (en) 2017-02-08 2020-03-10 International Business Machines Corporation Packet broadcasting mechanism for mesh interconnected multi-computers
US10671417B2 (en) * 2017-04-26 2020-06-02 International Business Machines Corporation Server optimization control
US11188392B2 (en) * 2017-09-20 2021-11-30 Algorithmia inc. Scheduling system for computational work on heterogeneous hardware
CN107678860A (zh) * 2017-10-13 2018-02-09 郑州云海信息技术有限公司 一种kvm虚拟机cpu调度策略的优化方法及系统
US11782713B1 (en) * 2019-08-27 2023-10-10 Amazon Technologies, Inc. Security vulnerability mitigation using address space co-execution
JP7120199B2 (ja) * 2019-10-08 2022-08-17 横河電機株式会社 通信処理装置、通信処理方法、およびプログラム
US11360000B2 (en) 2020-03-20 2022-06-14 SK Hynix Inc. Priority-based dynamic resource allocation for product testing
CN113296926B (zh) * 2020-05-29 2022-06-21 阿里巴巴集团控股有限公司 一种资源分配方法、计算设备及存储介质
US11307974B2 (en) 2020-09-04 2022-04-19 SK Hynix Inc. Horizontally scalable distributed system for automated firmware testing and method thereof

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101727351A (zh) * 2009-12-14 2010-06-09 北京航空航天大学 面向多核平台的虚拟机监控器非对称调度器及其调度方法
CN102027453A (zh) * 2008-05-30 2011-04-20 国际商业机器公司 用于在虚拟环境中优化中断处理的系统和方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7707578B1 (en) 2004-12-16 2010-04-27 Vmware, Inc. Mechanism for scheduling execution of threads for fair resource allocation in a multi-threaded and/or multi-core processing system
US7945913B2 (en) * 2006-01-19 2011-05-17 International Business Machines Corporation Method, system and computer program product for optimizing allocation of resources on partitions of a data processing system
US8302102B2 (en) * 2008-02-27 2012-10-30 International Business Machines Corporation System utilization through dedicated uncapped partitions
US8332854B2 (en) 2009-05-19 2012-12-11 Microsoft Corporation Virtualized thread scheduling for hardware thread optimization based on hardware resource parameter summaries of instruction blocks in execution groups
US8448006B2 (en) * 2010-10-19 2013-05-21 International Business Machines Corporation Performing virtual and/or physical resource management for power management
US9183030B2 (en) * 2011-04-27 2015-11-10 Microsoft Technology Licensing, Llc Virtual processor allocation techniques
US9785460B2 (en) * 2013-05-03 2017-10-10 Vmware, Inc. Dynamic virtual machine sizing

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102027453A (zh) * 2008-05-30 2011-04-20 国际商业机器公司 用于在虚拟环境中优化中断处理的系统和方法
CN101727351A (zh) * 2009-12-14 2010-06-09 北京航空航天大学 面向多核平台的虚拟机监控器非对称调度器及其调度方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
AIX Virtual Processor Folding is Misunderstood;Nigel Griffiths;《https://www.ibm.com/developerworks/community/blogs/aixpert/entry/aix_virtual_processor_folding_in_misunderstood110?lang=en》;20110808;第1-2页 *
Guest-Aware Priority-Based Virtual Machine Scheduling for Highly Consolidated Server;D Kim等;《International Euro-Par conference on Parallel Processing》;20080829;第286-288页 *
Priority-Scaled Preemption of Radio Resources for 3GPPLTE Networks;SM Chadchan等;《International Journal of Computer Theory and Engineering》;20111231;第3卷(第6期);第743-747页 *

Also Published As

Publication number Publication date
CN104714849A (zh) 2015-06-17
US20150169347A1 (en) 2015-06-18
US9727361B2 (en) 2017-08-08
US9733965B2 (en) 2017-08-15
US20150169350A1 (en) 2015-06-18

Similar Documents

Publication Publication Date Title
CN104714849B (zh) 用于在综合工作负载环境中实现最佳性能的系统和方法
EP3270289B1 (en) Container-based multi-tenant computing infrastructure
US9542223B2 (en) Scheduling jobs in a cluster by constructing multiple subclusters based on entry and exit rules
Calheiros et al. Energy-efficient scheduling of urgent bag-of-tasks applications in clouds through DVFS
Williams Virtualization with Xen (tm): Including XenEnterprise, XenServer, and XenExpress
US9477286B2 (en) Energy allocation to groups of virtual machines
US20110067030A1 (en) Flow based scheduling
Sun et al. Towards distributed machine learning in shared clusters: A dynamically-partitioned approach
US20160371109A1 (en) Methods and systems to determine application license costs in a virtualized data center
JP2012221273A (ja) 動的にリソースを割り当てる方法、システム及びプログラム
US11740921B2 (en) Coordinated container scheduling for improved resource allocation in virtual computing environment
CN109417488A (zh) 虚拟网络功能资源管理的方法和设备
US9317340B2 (en) Intelligent virtual machine (VM) re-location
KR20110069717A (ko) 분산된 컴퓨팅 시스템내 커플링 오버헤드를 보상하는 방법, 데이터 처리 프로그램 및 컴퓨터 프로그램 제품, 그리고 분산된 컴퓨팅 시스템 및 대응하는 컴퓨터 시스템에 대해 대응하는 오버헤드 계산기
CN104699538A (zh) 用于多处理系统中的工作负载请求分派的方法和系统
Taghinezhad-Niar et al. QoS-aware online scheduling of multiple workflows under task execution time uncertainty in clouds
Kyi et al. An efficient approach for virtual machines scheduling on a private cloud environment
CN115102851A (zh) 一种面向hpc与ai融合计算的融合平台及其资源管理方法
Gu et al. Elastic model aggregation with parameter service
US11875190B2 (en) Methods and systems for AI-based load balancing of processing resources in distributed environments
US20230050163A1 (en) Apparatuses and methods for scheduling computing resources
US20230297441A1 (en) Methods and systems for dynamic load balancing of processing resources in distributed environments
Selvi et al. Dynamic resource allocation with efficient power utilization in cloud
Zhang et al. A dynamic memory management model on Xen virtual machine
Quang-Hung et al. Energy-efficient vm scheduling in iaas clouds

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180824