CN102027453A - 用于在虚拟环境中优化中断处理的系统和方法 - Google Patents
用于在虚拟环境中优化中断处理的系统和方法 Download PDFInfo
- Publication number
- CN102027453A CN102027453A CN2009801175316A CN200980117531A CN102027453A CN 102027453 A CN102027453 A CN 102027453A CN 2009801175316 A CN2009801175316 A CN 2009801175316A CN 200980117531 A CN200980117531 A CN 200980117531A CN 102027453 A CN102027453 A CN 102027453A
- Authority
- CN
- China
- Prior art keywords
- value
- virtual cpu
- subregion
- cpu
- selected subregion
- 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.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
提供了一种检索对应于从在计算机系统上运行的虚拟环境中包括的多个分区中选择的所选择的分区的时间耗费值的方法。所述虚拟环境由管理程序提供。所述时间耗费值对应于所选择的分区已经为处理中断耗费的时间量。已经为所选择的分区分配了多个虚拟CPU。将所述时间耗费值(例如,所选择的分区处理中断所耗费的时间的百分比)与一个或多个中断阈值比较。如果所述比较显示所述分区正在为处理中断耗费的时间超过阈值,则增加分配给所选择的分区的虚拟CPU的数量。
Description
技术领域
本发明涉及虚拟环境。更具体地,本发明涉及用于在虚拟环境中优化中断处理的方法。
背景技术
虚拟I/O(VIO)服务器分区提供了在整个逻辑分区上共享物理设备的机制。当与“一般的”逻辑分区比较时,它们提供专门化的服务,并具有独特的计算要求。VIO服务器上的计算主要由外部中断驱动,并且,最小化处理每个中断的等待时间受到迫切的关注。可以通过增加分配到逻辑分区的计算资源的量(处理能力)来缩短服务时间。
不同于系统管理员给分区真实地分配更多计算能力,这么做的另一已有的方法是“不封顶(uncap)”分区。不封顶分区允许分区的虚拟CPU中的每个能够潜在地消耗多至全部物理处理器所相当的处理能力。即,如果分区具有2个虚拟CPU,则在不封顶模式中,其可以消耗至多(且不超过)2个物理处理器所相当的计算能力。每个逻辑分区请求“确保的”或“授权的(entitled)”处理能力,其是服务器上的物理处理器的总数的(系统管理员配置的)一部分。
将逻辑分区的虚拟CPU的数目保持到满足所述分区的授权的处理能力所需要的最小数量具有重要的价值。更少的虚拟CPU减少了将多个虚拟CPU(vCPU)交换进(swap in)和交换出(swap out)物理处理器的环境切换(context-switch)的开销。而且,更少的vCPU在SMP环境中导致更少的锁定竞争(lock contention)。一种称为CPU折叠(folding)的特征设法通过将能力分解(collapse)到最少数目的vCPU来实现此探索。CPU折叠可在不封顶的分区上导致增加的中断服务等待时间,这是因为,其通过限制分区可消耗的可用自由周期数而降低了分区可获得的最大处理能力。例如,具有两个vCPU且总共分配了0.4个处理器的能力的不封顶的分区可在没有CPU折叠的情况下,潜在地消耗至多两个完整物理CPU所相当的处理能力。CPU折叠可以导致将此分区分解到具有0.4的处理能力的单个vCPU,因此,将其最大可能的处理能力降低到1个物理CPU所相当的。自然,CPU折叠机制具有随着时间增加或减少所使用的虚拟处理器的数量的算法。理论上,所述算法可以是保守的(conservative),从而虚拟处理器的数量不会不必要地波动。
传统CPU折叠机制的挑战是:它们使用具有比中断处理所需要的周期更长的周期的算法。所述两个要求(缩短的中断服务等待时间以及减少vCPU的数量)互相矛盾,特别是在中断繁重的环境中。
发明内容
已经发现利用检索(retrieve)对应于所选择的分区的时间耗费值的方法解决前述的挑战,所选择的分区是从包括在计算机系统上运行的虚拟环境中的一组分区中选择的。通过管理程序(Hypervisor)提供虚拟环境。所述时间耗费值对应于所选择的分区已经为处理中断耗费的时间量。多个虚拟CPU已被分配给所选择的分区。将此时间耗费值(例如,所选择的分区为处理中断所耗费的时间的百分比)与一个或多个中断阈值比较。如果所述比较显示出所述分区正为处理中断耗费的时间超过阈值,则增加分配给所选择的分区的虚拟CPU的数量。
以上是总结,所以必然具有简化、概况和细节的省略;因此,本领域的技术人员将理解:该总结仅是说明性的,而不意在作为限制。仅被权利要求限定的本发明的其它方面、发明特征以及优点在以下给出的非限定性的详细说明中将变得明显。
附图说明
现在将参照以下附图仅示例性地描述本发明的优选实施例,其中:
图1是可以根据本发明的优选实施例实施这里所描述的方法的数据处理系统的框图;
图2提供了图1中所示的信息处理系统环境的扩展,以说明可以在许多种在网络化环境中操作的信息处理系统中执行这里所描述的方法;
图3是根据本发明的优选实施例的使用包括虚拟I/O服务器(VIOS)分区的虚拟环境的计算机系统的图;
图4是示出根据本发明的优选实施例的、由系统管理员执行的向各个虚拟分区分配处理能力和中断百分比阈值的设立处理的流程图;
图5是示出根据本发明的优选实施例的、由操作系统进行的折叠/展开(fold/unfold)分配给虚拟分区的虚拟CPU(vCPU)的步骤的流程图;以及
图6是示出根据本发明的优选实施例的、由操作系统执行的例程所执行的分析分区正在为服务中断所耗费的时间量的步骤的流程图。
具体实施方式
在以下说明和附图中给出某些具体细节以提供对本发明各种实施例的深刻理解。但以下公开中不提供某些经常与计算和软件技术关联的公知细节,以避免不必要地模糊本发明的各种实施例。此外,有关领域的普通技术人员将理解他们可以实施本发明的、没有下述的一个或多个细节的其它实施例。最后,当参考以下公开中的步骤和次序描述各种方法时,这样的描述用于提供本发明的实施例的清晰的实施,这些步骤和步骤的次序不应被认为是要求的或必须。相反,下文意在提供本发明的示例实施例的详细描述,而不应被认为是限定。
以下详细描述通常将遵循上述发明内容,必要时进一步解释和扩展本发明的各个方面和实施例的定义。对此,此详细描述首先阐述图1中的计算环境,所述计算环境适合实施与本发明的实施例相关联的软件和/或硬件技术。图2中示出了作为基本计算环境的扩展的网络化的环境,以强调可以横跨多个分立设备执行现代计算技术。
图1示出了信息处理系统100,其是能够执行这里所述的计算操作的计算机系统的简化示例。信息处理系统100包括与处理器接口总线112连接的一个或多个处理器110。处理器接口总线112将处理器110连接到北桥115,北桥115也被称为存储控制集线器(MCH)。北桥115连接到系统存储器120,并提供处理器110存取系统存储器的手段。图形控制器125也被连接到北桥115。在一个实施例中,PCI Express(PCI高速)总线118被用于将北桥115连接到图形控制器125。图形控制器125连接到显示设备130,如计算机监视器。北桥115和南桥135利用总线119互相连接。在一个实施例中,所述总线是在北桥115和南桥135之间的每个方向上以高速传输数据的直接媒体接口(DMI)总线。在另一实施例中,周边元件扩展接口(PCI)总线被用于连接北桥和南桥。南桥135也被称为I/O控制集线器(ICH),其是通常实施以比北桥提供的能力慢的速度操作的能力的芯片。南桥135典型地提供用于连接各种部件的各种总线。所述总线可以包括PCI和PCI Express总线、ISA总线、系统管理总线(SMBus或SMB)、低引脚计数(LPC)总线。LPC总线通常被用于连接低带宽设备,如启动ROM 196和“遗留(legacy)”I/O设备(使用“超级I/O”芯片)。“遗留”I/O设备(198)可以包括串行和并行端口、键盘、鼠标、软盘控制器。LPC总线还被用于将南桥135连接到可信平台模块(TPM)195。经常包括在南桥135中的其它部件包括直接存储器存取(DMA)控制器、可编程中断控制器(PIC)、存储设备控制器,所述存储设备控制器利用总线184将南桥135连接到诸如硬盘驱动器的非易失性存储设备185。
高速卡(ExpressCard)155是用于将可热插拔设备连接到信息处理系统的插槽。高速卡155支持PCI Express连接和USB连接两者,这是因为其利用通用串行总线(USB)和PCI Express总线连接到南桥135。南桥135包括对连接到USB的设备提供USB连接的USB控制器140。所述设备包括网页摄像机(摄像头)150、红外(IR)接收器148、为无线个人区域网络(PAN)提供的蓝牙设备146、键盘和触摸板144、以及其它各种USB连接的设备142,如鼠标、可移除非易失性存储设备145、调制解调器、网络卡、ISDN连接器、传真机、打印机、USB集线器以及许多其它类型的USB连接的设备。虽然可移除非易失性存储设备145被示为USB连接的设备,但可移除非易失性存储设备145可以利用如火线(Firewire)接口等的不同接口连接。
无线局域网(LAN)设备175经由PCI或PCI Express总线172连接到南桥135。LAN设备175典型地实施空中(over-the-air)调制技术的IEEE 802.11标准之一,所述空中调制技术全部使用相同的协议来在信息处理系统100和另一计算机系统或设备之间进行无线通信。光学存储设备190利用串行ATA(SATA)总线188连接到南桥135。串行ATA适配器和设备在高速串行链路上通信。串行ATA总线还被用于将南桥135连接到其它形式的存储设备,如硬盘驱动器。诸如声卡的音频电路160经由总线158连接到南桥135。音频电路160被用于提供诸如音频线路输入和光学数字音频输入端口162、光学数字输出和耳机插孔164、内部扬声器166与内部麦克风168的功能。以太网控制器170利用诸如PCI或PCI Express总线的总线连接到南桥135。以太网控制器170被用于将信息处理系统100连接到计算机网络,如局域网(LAN)、因特网以及其它公共和私有计算机网络。
虽然图1示出了一个信息处理系统,但信息处理系统可以采用许多形式。例如,信息处理系统可以采用桌面、服务器、便携、膝上型、笔记本的形式或其它形式因素的计算机或数据处理系统。此外,信息处理系统可以采用包括处理器和存储器的其它形式因素,如个人数字助理(PDA)、游戏机、ATM机、便携电话机、通信设备或其它设备。
图1中所示和这里所述的提供安全功能的可信平台模块(TPM 195)仅是硬件安全模块(HSM)的一个示例。因此,这里所述和要求保护的TPM包括任何类型的HSM,其包括但不限于遵循被命名为“可信平台模块(TPM)规范版本1.2”的可信计算组织(TCG)标准的硬件安全设备。所述TPM是可以合并到任何数量的信息处理系统(诸如图2中所概述的信息处理系统)中的硬件安全子系统。
图2提供了图1中所示的信息处理系统的扩展,以说明可以在许多种在网络化环境中操作的信息处理系统中执行这里所描述的方法。信息处理系统的类型的范围从诸如手持计算机/移动电话210的小型手持设备到诸如大型计算机270的大型的大型机系统。手持计算机210的示例包括个人数字助理(PDA)、诸如MP3播放器、便携电视以及CD播放器的个人娱乐设备。信息处理系统的其它示例包括笔式或平板式计算机220、膝上型或笔记本计算机230、工作站240、个人计算机系统250和服务器260。图2中未单独示出的其它类型的信息处理系统由信息处理系统280表示。如所示,各种信息处理系统可以利用计算机网络200而被联网在一起。可以用于将各种信息处理系统互连的计算机网络的类型包括局域网(LAN)、无线局域网(WLAN)、因特网、公共交换电话网(PSTN)、其它无线网络以及任何其它可以用于将信息处理系统互连的网络拓扑结构。信息处理系统中的许多包括非易失性数据存储装置,如硬盘驱动器和/或非易失性存储器。图2中所示的信息处理系统中的某些被显示为具有分离的非易失性数据存储装置(服务器260被显示为带有非易失性数据存储装置265,大型计算机270被显示为带有非易失性数据存储装置275,以及信息数据处理系统280被显示为带有非易失性数据存储装置285)。非易失性数据存储装置可以是各个信息处理系统外部的部件,或者是所述信息处理系统之一内部的部件。此外,可以利用各种技术在两个或更多个信息处理系统之间共享可移除非易失性存储设备145,诸如将可移除非易失性存储设备145连接到信息处理系统的USB端口或其它连接器。
图3是利用包括虚拟I/O服务器(VIOS)分区的虚拟环境的计算机系统的图。计算机系统300被示出为带有多个虚拟分区(分区375、376、377和380)。所述分区是由管理程序305协调的虚拟环境的部分。所述分区之一(分区380)是作为虚拟I/O服务器(VIOS)的专用分区。如所暗示的,VIOS分区为其它分区提供I/O服务。为了促进VIOS为其它分区处理I/O服务,在其它分区与VIOS分区之间建立一个或多个通信信道(391、392和393)。
网络适配器315和硬件设备320连接到使用各种由管理程序305管理的接口的计算机系统。在一个实施例中,当硬件(物理)中断在一个硬件接口处发生时,管理程序将中断传递给VIOS分区380用于处理。如所示,网络适配器315被用于将计算机系统连接到计算机网络200,以便促进计算机系统与网络服务器和设备335之间的通信。在另一实施例中,所述硬件被在一个分区中执行的一个操作系统管理(“拥有”)。在此实施例中,I/O中断被递送到物理处理器(例如,运行各个分区的处理器)。在此实施例中,如果在中断发生时I/O中断被引导至其的分区当前正运行在处理器上,则所述分区直接接收所述中断。另一方面,如果另一分区正运行在所述处理器上,则所述分区产生管理程序调用,并接收“没关系(never mind)”响应,并且,所述中断在管理程序中排队,用于以后被递送到正确的分区。此外,如果没有分区当前正运行在所述处理器上,则管理程序使中断排队,并且,在某些情况下,唤醒正确的分区,使得正确的分区可以处理所述中断。
因为其在处理中断和为其它分区提供I/O服务器中的作用,VIOS分区380一般比其它分区375、376和377耗费更多时间来处理中断。然而,由于CPU折叠,VIOS分区(以及其它耗费大量时间处理硬件中断的分区)可以使它的虚拟CPU折叠(减少)。这是虚拟CPU的减少。
在创建分区时,系统管理员为分区配置“期望”数量的虚拟CPU(vCPU),并且,为分区分配一定的授权的处理能力(虚拟CPU授权值)。管理程序将vCPU切换进和切换出物理处理器,与OS在多编程环境中切换进程(或线程)类似。因此,减少vCPU的数量导致更少的用于系统的环境切换开销。在分区的整个生存时间上,CPU折叠可能潜在地开始(kick in),并将分区的vCPU的数量从系统管理员的“期望”数量减少到系统确定的“最佳”数量。该折叠算法传统上被导向将处理能力集中到最少数量的vCPU中。减少虚拟CPU的数量可能不是用于中断繁重环境的最佳方案,如用于VIOS分区380的方案。为了补偿CPU折叠对中断密集的分区(例如VIOS分区380)的影响,操作系统使用分区在服务中断中耗费的总处理时间的百分比作为展开vCPU的触发。在中断繁重的环境中,通过使更多的计算资源更易于可得,这缩短了中断服务等待时间,特别是对于不封顶的分区。甚至对于封顶的(capped)分区,添加(展开)vCPU也将帮助减小在具有空闲的和可用的物理处理器的服务器上的中断等待时间。当存在可用物理处理器时展开vCPU将允许在不同物理处理器上对多个中断进行并行处理,从而缩短服务等待时间。对于不封顶的分区,另一优点是当添加更多vCPU时提高了用于该分区的最大可用处理能力。使用总中断处理时间而不是总的忙碌时间作为触发的背后的原理在于:相比于中断,计算线程(其对忙碌时间有贡献,但对中断处理时间无贡献)倾向于具有更“宽松的”响应时间要求。因此,不受中断束缚的环境不太可能从展开中受益,并可能更不积极地展开。
许多操作系统(如IBM的AIXTM操作系统)保持处理中断所耗费的时间量的连续计数。操作系统使用此度量来计算分区(例如,分区375、376、377和380)为处理中断所耗费的分区忙碌时间的百分比。当此百分比超过管理员定义的(可调的)阈值时,假定vCPU的当前数量小于在分区创建期间指定的vCPU的“期望”数量,该百分比被用作展开vCPU的触发。由于操作系统保持此信息作为其正常操作的部分,所以,计算处理中断耗费的时间的代价相当低。
在一个实施例中,进行折叠/展开决定的操作系统是在管理程序中运行的操作系统,从而,本质上由管理程序折叠/展开分配给分区(例如,分区375、376、377和380)的vCPU。在另一实施例中,在各个分区中运行的操作系统运行折叠算法,并因此负责基于折叠/展开的决定确定分配多少vCPU给它们的具体分区。在任何情况下,如这里所使用的,术语“操作系统”被用于指确定给分区分配多少vCPU的处理,而不论该操作系统是运行在管理程序中还是运行在一个特定分区中。
因为该计算代价低,所以,检查之间的时间间隔可以设置得相当积极。例如,调度程序(dispatcher)可以在每次被调用来调度新的线程时都计算耗费的时间值,其可以潜在地导致此度量在每次中断被服务之后都被更新。换句话说,操作系统可以在许多不同点进行基于分区为处理中断所耗费的时间量的展开决定。可以通过以固定的时间间隔(例如,每10毫秒一次)检查所耗费的时间值来进行所述决定,或者可以由事件触发进行决定的需要,例如,调度程序被调用来调度新线程(或空闲线程)。为了避免乒乓(ping-pong)效应,可以较不积极地进行折叠vCPU的决定。换句话说,可以比进行基于分区资源(例如CPU)使用的折叠vCPU的决定更经常地进行基于分区正在为处理中断耗费的时间量的展开vCPU的决定。
图4是示出由系统管理员执行的向各个虚拟分区分配处理能力和中断百分比阈值的设立处理的流程图。处理在400开始,接着,在步骤410,从系统配置数据存储器420中选择由虚拟环境中的管理程序所管理的分区。系统配置数据存储器420用于存储关于由管理程序管理的包括任何虚拟I/O服务器(VIOS)分区的各种分区的信息。进行系统管理员是否希望向所选择的分区分配计算能力的确定(决定430)。如果系统管理员选择向所选择的分区分配计算能力,则决定430分支到“是”分支435,接着,在步骤440,系统管理员向所选择的分区分配“授权的”处理能力(“授权值”)。在一个实施例中,系统管理员可以选择“不封顶”所选择的分区。不封顶分区允许分区的虚拟CPU中的每个都潜在地消耗至多全部物理处理器所相当的处理能力。即,如果分区具有2个虚拟CPU,则在不封顶模式中,其可以消耗至多(且不超过)2个物理(真实)CPU所相当的计算能力。在步骤450,所分配的“授权值”被存储在非易失性的分区分配能力数据存储器460中。
返回到决定430,如果系统管理员决定不向所选择的分区分配计算能力,则决定430越过步骤440和450而分支到“否”分支465。进行系统管理员是否进行选取另一分区的选择的确定(决定470)。如果系统管理员欲选择另一分区,则决定470分支到“是”分支474,其循环回到步骤410的选择下一分区。此循环继续,直到系统管理员不再希望选择其它的分区为止,此时决定470分支到“否”分支476。
在步骤480,系统管理员设立和存储一个或多个中断百分比阈值。当分区满足所述中断百分比阈值之一时,所述分区的vCPU将被“展开”,以允许正为处理中断耗费更多时间的该分区具有更多的vCPU(多至步骤440中设置的“授权的”vCPU能力的量)。在一个实施例中,在系统范围的基础上设置中断百分比阈值,从而为了“展开”vCPU,每个分区使用相同的中断百分比阈值。在另一实施例中,每个分区可以被分别调整来允许每个分区具有不同的中断百分比阈值、以及缺省的中断百分比阈值(在未对特定分区设立中断百分比阈值的情况下)。这些中断百分比阈值被存储在非易失性的中断百分比阈值数据存储器490中。因此,设立处理在495处结束。
图5是示出由操作系统采取的用来折叠/展开分配给虚拟分区的虚拟CPU(vCPU)的步骤的流程图。处理在500开始,接着,在步骤510,管理程序基于存储在分区分配能力数据存储器460中的授权值,初始化虚拟CPU的分配。
在预定义的处理515,操作系统周期性地检查分区为处理中断所耗费的时间量(预定义的处理515,处理细节见图6和对应的文字)。如前所解释,在某些系统中,用于检查分区正为处理中断耗费多少时间的数据易于获得,使得可以在所述环境中积极地执行预定义的处理515(例如,比步骤530至580所示的用于折叠vCPU的使用检查更经常)。
周期性地,但并非必要地,操作系统以与执行预定处理515相同的时间间隔,在步骤520检查分区的使用。当检查分区的使用时,在步骤530,利用各种计算机系统资源度量(如从操作系统检索并从存储器540读取的分区的CPU使用度量),来处理虚拟CPU折叠/展开算法。基于折叠/展开算法的执行,进行给定分区是否需要更少的虚拟CPU的确定(决定550)。如果需要更少的虚拟CPU,则决定550分支到“是”分支555,接着,在步骤560,分配到所述分区的虚拟CPU的数量被减少(“折叠”),并且,此减少值被存储在当向分区分配虚拟CPU时使用的虚拟CPU存储区域575中。
另一方面,如果基于折叠/展开算法、不需要更少的虚拟CPU,则决定550分支到“否”分支565,接着,进行所述分区是否需要更多虚拟CPU、以及分配给所述分区的虚拟CPU的当前数量是否少于所述分区的虚拟CPU的“授权值”的确定(决定570)。如果所述分区需要更多的虚拟CPU并且分配给所述分区的虚拟CPU的当前数量少于所述分区的虚拟CPU的“授权值”,则决定570分支到“是”分支572,接着,在步骤580,将分配给所述分区的虚拟CPU的数量增加(“展开”)到少于或等于所述分区的授权值的值。该增加的值被存储在当向分区分配虚拟CPU时使用的虚拟CPU存储区域575中。
另一方面,如果(a)所述分区不需要更多的虚拟CPU、以及/或者(b)所述分区已经使用了与其被授权使用的虚拟CPU相同数量的虚拟CPU(例如,正在使用的vCPU=授权值),则决定570越过步骤580而分支到“否”分支585,并且循环回到等待对分区为服务中断所耗费的时间的下一周期的检查、或者对分区的系统资源使用的下一检查。
图6是示出由被操作系统执行的例程执行的分析分区正为服务中断所耗费的时间量的步骤的流程图。处理在600开始,接着,在步骤610,从分区分配能力数据存储器460检索已被分配给此分区的虚拟CPU的“授权值”。进行分配给此分区的虚拟CPU的当前数量是否等于分配给此分区的虚拟CPU的授权值的确定(决定620)。如果分配给此分区的虚拟CPU的当前数量不等于此分区的授权值(例如,当前数量小于授权值),则决定620分支到“否”分支625,以基于所述分区正为处理中断耗费的时间量来确定是否应该向此分区分配附加的虚拟CPU。
在步骤630,从存储区域640检索此分区为处理中断所耗费的时间量,其是由操作系统保持的、此分区已为处理中断耗费的时间量(例如,处理器周期、实际CPU时间等)的计数。在步骤650,时间量值被转换为百分比(所述分区为处理中断耗费的分区时间的百分比)。所计算的百分比被存储在存储区域660中。在步骤670,将所述分区的当前中断时间百分比值与由系统管理员建立的并存储在数据存储器490中的时间百分比阈值比较。基于该比较,对所述分区的当前中断时间百分比是否超过阈值进行确定(决定680)。如果所述分区的当前中断时间百分比超过阈值,则决定680分支到“是”分支685,接着,在步骤690,分配给所述分区的虚拟CPU的数量被增加(“展开”)到小于或等于所述分区的授权值的值。所述增加的值被存储在当向分区分配虚拟CPU时使用的虚拟CPU存储区域575中。另一方面,如果所述分区的当前中断时间百分比不超过阈值,则决定680越过步骤690而分支到“否”分支692。随后,处理在695处返回到调用例程(见图5)。
返回到决定620,如果分配到此分区的虚拟CPU的当前数量等于所述分区的授权值(例如,虚拟CPU的当前数量等于所述授权值),则决定620越过步骤630至690而分支到“是”分支694。然后,处理在695处返回到调用例程(见图5)。
本发明的优选实施例之一是客户端应用程序,即代码模块中的指令集(程序代码)或其它功能描述资料,例如所述代码模块可以位于计算机的随机存取存储器中。在被计算机要求之前,该指令集可以存储在另一计算机存储器中,例如在硬盘驱动器中,或者在诸如光盘(为偶尔使用,在CD ROM中)或软盘(为偶尔使用,在软盘驱动器中)的可移除存储器中,或者经由因特网或其它计算机网络下载。因此,本发明的实施例可以被实施作为在计算机中使用的计算机程序产品。此外,虽然在被软件选择性地激活或重配置的通用计算机中方便地实施了所描述的各种方法,但是本领域的普通技术人员还将意识到:可以在硬件、固件或构建来执行所需要的方法步骤的更专用的设备中执行这样的方法。功能描述资料是将功能告知机器的信息。功能描述资料包括但不限制于计算机程序、指令、规则、事实、可计算函数的定义、对象和数据结构。
虽然已经显示和描述了本发明的特定实施例,但对本领域的技术人员讲很明显:基于这里的教导,可以进行改变和修改。此外,将理解:本发明仅由所附权利要求限定。本领域的技术人员将理解:如果意图(限定)被引导的权利要求元素的特定数量,则将在权利要求中明确地叙述这样的意图,在没有这样的叙述的情况下,不存在这样的限制。对于非限定的示例,作为对理解的帮助,以下所附的权利要求包括引导词“至少一个”和“一个或多个”的使用来引导权利要求元素。然而,这样的词汇的使用应该不被理解为隐含:由不定冠词“a”或“an”引导权利要求元素将包括这样引导的权利要求元素的任何特定权利要求限定为包括仅一个这种元素的发明,甚至在相同的权利要求包括引导词“一个或多个”或“至少一个”与诸如“a”或“an”的不定冠词时也是如此;对于在权利要求中定冠词的使用也同样适用。
Claims (20)
1.一种计算机实现的方法,包括步骤:
检索与从在计算机系统上运行的虚拟环境中包括的多个分区中选择的所选分区相对应的时间耗费值,其中,所述时间耗费值对应于所选分区已经为处理中断所耗费的时间量,并且,向所选分区分配某个数量的虚拟CPU;
将所述时间耗费值与一个或多个中断阈值比较;以及
响应于该比较显示出所述时间耗费值大于所述中断阈值之一,增加向所选分区分配的虚拟CPU的数量。
2.如权利要求1所述的方法,还包括:
基于第一时间间隔,周期性地检查所选分区的一个或多个资源使用,其中,所述检查包括:执行折叠算法,以基于所述资源使用来改变向所选分区分配的虚拟CPU的数量;以及
基于第二时间间隔,周期性地执行所述检索、比较和增加步骤,其中,所述第二时间间隔小于所述第一时间间隔。
3.如权利要求2所述的方法,其中,所述资源使用之一是CPU使用值。
4.如权利要求1所述的方法,包括:
在所述增加步骤之前,检索对应于所选分区的虚拟CPU授权值、以及向所选分区分配的虚拟CPU的当前数量,其中,仅响应于虚拟CPU的所述当前数量小于所述虚拟CPU授权值而执行所述增加步骤。
5.如权利要求4所述的方法,还包括:
在检索所述时间耗费值之前,在设立处理期间,将所述虚拟CPU授权值分配给所选分区;以及
在非易失性存储区域中存储所述虚拟CPU授权值,其中,对所述虚拟CPU授权值的检索为:从所述非易失性存储区域检索所述虚拟CPU授权值。
6.如权利要求1所述的方法,还包括:
将所述时间耗费值转换为百分比值,其中,所述百分比值表示所选分区在处理中断中所耗费的时间的百分比,其中,所述中断阈值包括一个或多个阈值百分比,并且其中,所述比较将所述百分比值与所述阈值百分比比较。
7.如权利要求1所述的方法,还包括:
在检索所述时间耗费值之前,从用户接收一个或多个中断阈值百分比;以及
将所接收的中断阈值百分比存储在非易失性存储区域中,其中,在将所述时间耗费值与所述中断阈值比较之前,从所述非易失性存储区域检索所存储的中断阈值百分比。
8.一种信息处理系统,包括:
一个或多个处理器(CPU);
存储器,其可以由所述CPU中的至少一个存取;
非易失性存储设备,其可以由所述CPU中的至少一个存取;
管理应用程序,其被载入所述存储器中,并且由所述CPU中的至少一个执行,以提供虚拟环境,其中,在所述虚拟环境中包括多个分区,其中,操作系统在所述分区的一个或多个中运行;
一个或多个数据存储区,其被存储在所述非易失性存储设备上,其中,所述数据存储区存储与所述一个或多个分区相对应的一个或多个虚拟CPU授权值和一个或多个中断阈值;
指令集,其被载入所述存储器中,并由所选择的一个操作系统执行,以执行以下操作:
检索与从包括在所述虚拟环境中的多个分区中选择的所选分区相对应的时间耗费值,其中,所述时间耗费值对应于所选分区已经为处理中断所耗费的时间量,并且其中,向所选分区分配某个数量的虚拟CPU;
检索存储在所述数据存储区中的中断阈值;
将所述时间耗费值与所检索的中断阈值比较;以及
响应于该比较显示出所述时间耗费值大于所述中断阈值之一,增加向所选分区分配的虚拟CPU的数量。
9.如权利要求8所述的信息处理系统,其中,由所选操作系统执行的指令集执行附加的操作,包括:
基于第一时间间隔,周期性地检查所选分区的一个或多个资源使用,其中,所述资源使用之一是CPU使用值,并且其中,所述检查包括:执行折叠算法,以基于所述资源使用而改变向所选分区分配的虚拟CPU的数量;以及
基于第二时间间隔,周期性地执行所述检索、比较和增加步骤,其中,所述第二时间间隔小于所述第一时间间隔。
10.如权利要求8所述的信息处理系统,其中,由所选操作系统执行的指令集执行附加的操作,包括:
在所述增加步骤之前,检索对应于所选分区的虚拟CPU授权值、以及向所选分区分配的虚拟CPU的当前数量,其中,仅响应于虚拟CPU的所述当前数量小于所述虚拟CPU授权值而执行所述增加步骤。
11.如权利要求10所述的信息处理系统,其中,由所选操作系统执行的指令集执行附加的操作,包括:
在检索所述时间耗费值之前,在设立处理期间,将所述虚拟CPU授权值分配给所选分区;以及
在非易失性存储区域中存储所述虚拟CPU授权值,其中,对所述虚拟CPU授权值的检索为:从所述非易失性存储区域检索所述虚拟CPU授权值。
12.如权利要求8所述的信息处理系统,其中由所选操作系统执行的指令集执行附加的操作,包括:
将所述时间耗费值转换为百分比值,其中,所述百分比值表示所选分区在处理中断中所耗费的时间的百分比,其中,所述中断阈值包括一个或多个阈值百分比,并且其中,所述比较将所述百分比值与所述阈值百分比比较。
13.如权利要求8所述的信息处理系统,其中,由所选操作系统执行的指令集执行附加的操作,包括:
在检索所述时间耗费值之前,从用户接收一个或多个中断阈值百分比;以及
将所接收的中断阈值百分比存储在非易失性存储设备上的数据存储区之一中。
14.一种存储在计算机可读介质中的计算机程序产品,包括功能描述资料,当所述功能描述资料被信息处理系统执行时使所述信息处理系统执行以下操作:
检索与从在计算机系统上运行的虚拟环境中包括的多个分区中选择的所选分区相对应的时间耗费值,其中,所述时间耗费值对应于所选分区已经为处理中断所耗费的时间量,并且,向所选分区分配某个数量的虚拟CPU;
将所述时间耗费值与一个或多个中断阈值比较;以及
响应于该比较显示出所述时间耗费值大于所述中断阈值之一,增加向所选分区分配的虚拟CPU的数量。
15.如权利要求14所述的计算机程序产品,还包括使所述信息处理系统执行以下附加操作的功能描述资料:
基于第一时间间隔,周期性地检查所选分区的一个或多个资源使用,其中,所述检查包括:执行折叠算法,以基于所述资源使用来改变向所选分区分配的虚拟CPU的数量;以及
基于第二时间间隔,周期性地执行所述检索、比较和增加步骤,其中,所述第二时间间隔小于所述第一时间间隔。
16.如权利要求15所述的计算机程序产品,其中,所述资源使用之一是CPU使用值。
17.如权利要求14所述的计算机程序产品,还包括使所述信息处理系统执行以下附加操作的功能描述资料:
在所述增加步骤之前,检索对应于所选分区的虚拟CPU授权值、以及向所选分区分配的虚拟CPU的当前数量,其中,仅响应于虚拟CPU的所述当前数量小于所述虚拟CPU授权值而执行所述增加步骤。
18.如权利要求17所述的计算机程序产品,还包括使所述信息处理系统执行以下附加操作的功能描述资料:
在检索所述时间耗费值之前,在设立处理期间,将所述虚拟CPU授权值分配给所选分区;以及
在非易失性存储区域中存储所述虚拟CPU授权值,其中,对所述虚拟CPU授权值的检索为:从所述非易失性存储区域检索所述虚拟CPU授权值。
19.如权利要求1所述的方法,还包括使所述信息处理系统执行以下附加操作的功能描述资料:
将所述时间耗费值转换为百分比值,其中,所述百分比值表示所选分区在处理中断中所耗费的时间的百分比,其中,所述中断阈值包括一个或多个阈值百分比,并且其中,所述比较将所述百分比值与所述阈值百分比比较。
20.如权利要求1所述的方法,还包括使所述信息处理系统执行以下附加操作的功能描述资料:
在检索所述时间耗费值之前,从用户接收一个或多个中断阈值百分比;以及
将所接收的中断阈值百分比存储在非易失性存储区域中,其中,在将所述时间耗费值与所述中断阈值比较之前,从所述非易失性存储区域检索所存储的中断阈值百分比。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/129,808 | 2008-05-30 | ||
US12/129,808 US8312456B2 (en) | 2008-05-30 | 2008-05-30 | System and method for optimizing interrupt processing in virtualized environments |
PCT/EP2009/056203 WO2009144169A1 (en) | 2008-05-30 | 2009-05-21 | System and method for optimizing interrupt processing in virtualized environments |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102027453A true CN102027453A (zh) | 2011-04-20 |
CN102027453B CN102027453B (zh) | 2014-04-09 |
Family
ID=40957608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200980117531.6A Active CN102027453B (zh) | 2008-05-30 | 2009-05-21 | 用于在虚拟环境中优化中断处理的系统和方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US8312456B2 (zh) |
EP (1) | EP2281239B1 (zh) |
JP (1) | JP4833380B2 (zh) |
KR (1) | KR101385873B1 (zh) |
CN (1) | CN102027453B (zh) |
WO (1) | WO2009144169A1 (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104714849A (zh) * | 2013-12-12 | 2015-06-17 | 国际商业机器公司 | 用于在综合工作负载环境中实现最佳性能的系统和方法 |
CN109542610A (zh) * | 2018-12-04 | 2019-03-29 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多分区操作系统虚中断标准组件实现方法 |
CN110140328A (zh) * | 2016-12-29 | 2019-08-16 | 西门子股份公司 | 用于运行工业自动化系统的包括多个通信设备的通信网络的方法和控制单元 |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100990412B1 (ko) * | 2009-10-29 | 2010-10-29 | 주식회사 팀스톤 | 씨피유 가상화를 지원할 수 있는 컴퓨터 서버 |
US9088609B2 (en) | 2009-12-24 | 2015-07-21 | International Business Machines Corporation | Logical partition media access control impostor detector |
US8122167B1 (en) | 2010-08-06 | 2012-02-21 | International Business Machines Corporation | Polling in a virtualized information handling system |
US9183030B2 (en) * | 2011-04-27 | 2015-11-10 | Microsoft Technology Licensing, Llc | Virtual processor allocation techniques |
EP2698711B1 (en) * | 2011-06-30 | 2015-08-05 | Huawei Technologies Co., Ltd. | Method for dispatching central processing unit of hotspot domain virtual machine and virtual machine system |
CN103049318B (zh) * | 2011-10-11 | 2017-10-17 | 北京科银京成技术有限公司 | 分区操作系统的虚拟中断方法 |
US10114679B2 (en) * | 2011-10-26 | 2018-10-30 | Microsoft Technology Licensing, Llc | Logical CPU division usage heat map representation |
US9411624B2 (en) * | 2011-11-22 | 2016-08-09 | Red Hat Israel, Ltd. | Virtual device interrupt hinting in a virtualization system |
KR101394365B1 (ko) * | 2011-12-27 | 2014-05-14 | 서강대학교산학협력단 | 가상화 환경에서 프로세서를 할당하는 장치 및 방법 |
US9785460B2 (en) * | 2013-05-03 | 2017-10-10 | Vmware, Inc. | Dynamic virtual machine sizing |
US9342372B1 (en) | 2015-03-23 | 2016-05-17 | Bmc Software, Inc. | Dynamic workload capping |
US9680657B2 (en) | 2015-08-31 | 2017-06-13 | Bmc Software, Inc. | Cost optimization in dynamic workload capping |
US11467882B2 (en) * | 2018-12-21 | 2022-10-11 | Target Brands, Inc. | Methods and systems for rapid deployment of configurable computing resources |
US11620154B2 (en) * | 2020-01-02 | 2023-04-04 | International Business Machines Corporation | Suppressing interrupts to an application thread |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060101470A1 (en) * | 2004-10-14 | 2006-05-11 | International Business Machines Corporation | Method, apparatus, and computer program product for dynamically tuning amount of physical processor capacity allocation in shared processor systems |
US7080378B1 (en) * | 2002-05-17 | 2006-07-18 | Storage Technology Corporation | Workload balancing using dynamically allocated virtual servers |
US20080082977A1 (en) * | 2006-09-29 | 2008-04-03 | Microsoft Corporation | Automatic load and balancing for virtual machines to meet resource requirements |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6986137B1 (en) | 1999-09-28 | 2006-01-10 | International Business Machines Corporation | Method, system and program products for managing logical processors of a computing environment |
US20020099753A1 (en) * | 2001-01-20 | 2002-07-25 | Hardin David S. | System and method for concurrently supporting multiple independent virtual machines |
US6957435B2 (en) * | 2001-04-19 | 2005-10-18 | International Business Machines Corporation | Method and apparatus for allocating processor resources in a logically partitioned computer system |
US7000051B2 (en) * | 2003-03-31 | 2006-02-14 | International Business Machines Corporation | Apparatus and method for virtualizing interrupts in a logically partitioned computer system |
JP3922576B2 (ja) | 2003-06-27 | 2007-05-30 | 株式会社日立製作所 | 命令プロセッサ割り当てスケジューリング方法、該命令プロセッサ割り当てスケジューリング方法を実現する計算機システムおよびそのためのプログラム |
US20070061441A1 (en) * | 2003-10-08 | 2007-03-15 | Landis John A | Para-virtualized computer system with I/0 server partitions that map physical host hardware for access by guest partitions |
US20070067366A1 (en) * | 2003-10-08 | 2007-03-22 | Landis John A | Scalable partition memory mapping system |
WO2005036806A2 (en) * | 2003-10-08 | 2005-04-21 | Unisys Corporation | Scalable partition memory mapping system |
US20050138422A1 (en) * | 2003-12-23 | 2005-06-23 | Hancock Peter J. | System and method for metering the performance of a data processing system |
JP2006059052A (ja) | 2004-08-19 | 2006-03-02 | Hitachi Ltd | 仮想計算機システム |
US20060048160A1 (en) * | 2004-09-02 | 2006-03-02 | International Business Machines Corporation | Method, apparatus, and computer program product for providing a self-tunable parameter used for dynamically yielding an idle processor |
US7260664B2 (en) * | 2005-02-25 | 2007-08-21 | International Business Machines Corporation | Interrupt mechanism on an IO adapter that supports virtualization |
US8387052B2 (en) * | 2005-03-14 | 2013-02-26 | Qnx Software Systems Limited | Adaptive partitioning for operating system |
US7613897B2 (en) * | 2005-03-30 | 2009-11-03 | International Business Machines Corporation | Allocating entitled processor cycles for preempted virtual processors |
GB0618894D0 (en) * | 2006-09-26 | 2006-11-01 | Ibm | An entitlement management system |
US8209684B2 (en) * | 2007-07-20 | 2012-06-26 | Eg Innovations Pte. Ltd. | Monitoring system for virtual application environments |
-
2008
- 2008-05-30 US US12/129,808 patent/US8312456B2/en active Active
-
2009
- 2009-05-21 CN CN200980117531.6A patent/CN102027453B/zh active Active
- 2009-05-21 EP EP09753824.3A patent/EP2281239B1/en active Active
- 2009-05-21 WO PCT/EP2009/056203 patent/WO2009144169A1/en active Application Filing
- 2009-05-21 KR KR1020107025500A patent/KR101385873B1/ko active IP Right Grant
- 2009-05-21 JP JP2011510955A patent/JP4833380B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7080378B1 (en) * | 2002-05-17 | 2006-07-18 | Storage Technology Corporation | Workload balancing using dynamically allocated virtual servers |
US20060101470A1 (en) * | 2004-10-14 | 2006-05-11 | International Business Machines Corporation | Method, apparatus, and computer program product for dynamically tuning amount of physical processor capacity allocation in shared processor systems |
US20080082977A1 (en) * | 2006-09-29 | 2008-04-03 | Microsoft Corporation | Automatic load and balancing for virtual machines to meet resource requirements |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104714849A (zh) * | 2013-12-12 | 2015-06-17 | 国际商业机器公司 | 用于在综合工作负载环境中实现最佳性能的系统和方法 |
CN104714849B (zh) * | 2013-12-12 | 2018-08-24 | 国际商业机器公司 | 用于在综合工作负载环境中实现最佳性能的系统和方法 |
CN110140328A (zh) * | 2016-12-29 | 2019-08-16 | 西门子股份公司 | 用于运行工业自动化系统的包括多个通信设备的通信网络的方法和控制单元 |
CN110140328B (zh) * | 2016-12-29 | 2021-08-06 | 西门子股份公司 | 用于运行工业自动化系统的通信网络的方法和控制设备 |
CN109542610A (zh) * | 2018-12-04 | 2019-03-29 | 中国航空工业集团公司西安航空计算技术研究所 | 一种多分区操作系统虚中断标准组件实现方法 |
Also Published As
Publication number | Publication date |
---|---|
WO2009144169A1 (en) | 2009-12-03 |
KR101385873B1 (ko) | 2014-04-29 |
US20090300317A1 (en) | 2009-12-03 |
EP2281239A1 (en) | 2011-02-09 |
JP4833380B2 (ja) | 2011-12-07 |
CN102027453B (zh) | 2014-04-09 |
JP2011521384A (ja) | 2011-07-21 |
EP2281239B1 (en) | 2015-07-01 |
US8312456B2 (en) | 2012-11-13 |
KR20110030426A (ko) | 2011-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102027453B (zh) | 用于在虚拟环境中优化中断处理的系统和方法 | |
JP5697284B2 (ja) | コンピュータプラットフォームのシステム電力状態を遷移させる方法、装置およびシステム | |
US9251027B2 (en) | Information handling system performance optimization system | |
CN101211289B (zh) | 恢复操作管理系统和方法 | |
EP2798491B1 (en) | Method and device for managing hardware errors in a multi-core environment | |
CN105190550B (zh) | 用于启动具有多个中央处理器的计算机系统的方法 | |
KR20180097674A (ko) | 메모리 리클레임 방법 및 장치 | |
KR100900439B1 (ko) | 임베디드 시스템을 위한 메모리 부족상황 관리 방법 및장치 | |
CN109960575B (zh) | 一种计算能力共享方法、系统及相关设备 | |
US10831539B2 (en) | Hardware thread switching for scheduling policy in a processor | |
CN107766145B (zh) | 双系统下的内存管理方法和装置 | |
CN102473106A (zh) | 虚拟环境中的资源分配 | |
WO2015101091A1 (zh) | 一种分布式资源调度方法及装置 | |
WO2012050224A1 (ja) | コンピュータリソース制御システム | |
CN104598426A (zh) | 用于异构多核处理器系统的任务调度方法 | |
CN104102548A (zh) | 任务资源调度处理方法和系统 | |
US9395803B2 (en) | Multi-core processor system implementing migration of a task from a group of cores to another group of cores | |
CN104932933A (zh) | 一种获取自旋锁的方法及装置 | |
US20090037610A1 (en) | Electronic device interface control system | |
CN104580194A (zh) | 面向视频应用的虚拟化资源管理方法及装置 | |
CN112306669A (zh) | 一种基于多核系统的任务处理方法及装置 | |
CN106789337B (zh) | 一种kvm的网络性能优化方法 | |
US11567884B2 (en) | Efficient management of bus bandwidth for multiple drivers | |
CN105677481A (zh) | 一种数据处理方法、系统及电子设备 | |
US9405470B2 (en) | Data processing system and data processing method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |