首页> 中国专利> 用于在综合工作负载环境中实现最佳性能的系统和方法

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

摘要

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

著录项

  • 公开/公告号CN104714849A

    专利类型发明专利

  • 公开/公告日2015-06-17

    原文格式PDF

  • 申请/专利权人 国际商业机器公司;

    申请/专利号CN201410698634.9

  • 申请日2014-11-27

  • 分类号

  • 代理机构北京市中咨律师事务所;

  • 代理人刘薇

  • 地址 美国纽约

  • 入库时间 2023-12-18 09:23:37

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-08-24

    授权

    授权

  • 2015-07-15

    实质审查的生效 IPC(主分类):G06F9/50 申请日:20141127

    实质审查的生效

  • 2015-06-17

    公开

    公开

说明书

技术领域

本申请通常涉及改进的数据处理装置和方法,更具体地,涉及用于在 综合工作环境中实现最佳性能的闭环反馈机制。

背景技术

现代计算设备是建立在多处理核体系结构上。某些计算设备提供多线 程核,其中,线程是可与其它线程并行执行的指令序列。采用多线程核, 如何在核中设计线程存在复杂性。在某些体系结构中,诸如纽约州阿蒙克 市的国际商业机器(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和C 130的客机操作系统基于优先级策略做出。在某些示例性实施例中,这些 优先级策略规定在虚拟机内的各种负载等级上在虚拟机中维持运行的虚拟 处理器的数量。

应当知道,优先级策略集合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 中包括多个处理器。可选择地,可以采用单处理器系统。

操作系统、面向对象的编程系统的指令和应用或程序位于诸如HDD 226的存储器设备上,并可以被加载到主存储器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控制器连接到系统。网络适配器也可以连接到系统, 以使得数据处理系统能够通过私有或公共网络连接到其它数据处理系统或 远程打印机或存储设备。调制解调器、线缆调制解调器和以太网卡只是几 种当前可用类型的网络适配器。

为了说明和描述的目的,已经提供了本发明的说明,但并不意味着穷 举或将本发明限于这里所公开的形式。许多修改和变化对本领域技术人员 是显而易见的。选择并描述实施例是为了更好地解释本发明的原理、实际 应用,并使得本领域其它人员能够理解本发明的各种实施例可进行各种修 改,以适合于特定的应用场合。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号