CN103514045B - 经由硬件计数器来维护硬件资源带宽服务质量的方法和系统 - Google Patents

经由硬件计数器来维护硬件资源带宽服务质量的方法和系统 Download PDF

Info

Publication number
CN103514045B
CN103514045B CN201310259553.4A CN201310259553A CN103514045B CN 103514045 B CN103514045 B CN 103514045B CN 201310259553 A CN201310259553 A CN 201310259553A CN 103514045 B CN103514045 B CN 103514045B
Authority
CN
China
Prior art keywords
hardware
nextport
virtual machine
bandwidth
monitor
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
CN201310259553.4A
Other languages
English (en)
Other versions
CN103514045A (zh
Inventor
C·J·亚格斯
J·H·肖普
M·T·斯特罗萨克尔
N·D·方特诺特
J·D·乔治
M·范德威尔
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 CN103514045A publication Critical patent/CN103514045A/zh
Application granted granted Critical
Publication of CN103514045B publication Critical patent/CN103514045B/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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • 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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4831Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority
    • G06F9/4837Task transfer initiation or dispatching by interrupt, e.g. masked with variable priority time dependent
    • 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/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/45579I/O management, e.g. providing access to device drivers or storage
    • 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)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)

Abstract

本发明涉及经由硬件计数器来维护硬件资源带宽服务质量的方法和系统。在处理器上运行的当前调度的虚拟机(VM)每次经由当前调度的VM、通过用于硬件资源的总线访问硬件资源时,硬件组件在不涉及当前调度的VM或者管理当前调度的VM的监管器的情况下,调整与针对硬件资源的总线使用相关联的带宽计数器。响应于带宽计数器到达阈值,硬件组件发出中断用于由监管器处理以维护关于硬件资源的总线带宽的带宽服务质量(QoS)。一旦定期时间间隔在带宽计数器到达阈值之前到期,在不涉及当前调度的VM或者监管器的情况下,硬件组件将带宽计数器重置至与当前调度的VM相关联的预定值,以便硬件组件不发出中断并且监管器不涉及重置带宽计数器。

Description

经由硬件计数器来维护硬件资源带宽服务质量的方法和系统
技术领域
本发明涉及硬件资源带宽,更具体,涉及经由硬件计数器来维护硬件资源带宽服务质量的方法和系统。
背景技术
计算设备通常运行对计算设备的硬件资源进行访问的操作系统的一个实例。然而,作为虚拟化而已知的技术允许计算设备来运行操作系统的多个实例。在虚拟化中,计算设备实例化多个此类虚拟机(VM),并且每个VM运行其自身的操作系统实例。
发明内容
本公开的一个实施方式的方法包括:每次在处理器上运行的当前调度的虚拟机(VM)经由所述当前调度的VM、通过用于硬件资源的总线访问所述硬件资源时,在不涉及所述当前调度的VM或者管理所述当前调度的VM的监管器(hypervisor)的情况下,硬件组件调整与针对所述硬件资源的所述总线使用相关联的带宽计数器。所述方法包括,响应于所述带宽计数器到达阈值,由所述硬件组件发出中断用于由所述监管器处理以维护关于所述硬件资源的总线带宽的带宽服务质量(QoS)。所述硬件资源和所述硬件组件各自是不同于所述处理器的硬件。所述带宽计数器相对于作为软件实现的计数器而言直接以硬件实现。
本公开的一个实施方式的系统包括:处理器;虚拟机(VM),用以在所述处理器上运行;监管器,用以管理所述VM并且用以调度所述VM来在所述处理器上运行;硬件资源;总线,将所述处理器连接至所述硬件资源;带宽计数器以及硬件组件。所述带宽计数器与所述硬件资源的所述总线的使用相关联,并且相对于作为软件实现的计数器直接以硬件实现。硬件组件用以当每次所述VM运行在所述处理器上通过所述总线访问所述硬件资源时,在不涉及所述VM或者所述监管器的情况下调整所述带宽计数器。所述硬件资源和所述硬件组件各自是不同于所述处理器的硬件。
本公开的一个实施方式的计算机可读数据存储介质存储由处理器可执行的计算机程序以实现监管器。所述处理器运行由所述监管器管理的、并且用于由所述监管器调度用于在所述处理器上运行的第一虚拟机(VM)和第二VM。所述计算机程序使得所述监管器执行一种方法,所述方法包括如下:响应于与用于硬件资源的总线的使用相关联的带宽计数器到达阈值、并且指示当前运行在所述处理器上的所述第一VM已经使用了相关于所述硬件资源的带宽分配,由硬件组件发出中断。切换使得所述第二VM而不是所述第一VM在所述处理器上运行。所述带宽计数器重置至与所述第二VM相关联的预定值。所述硬件资源和所述硬件组件是各自不同于所述处理器的硬件。所述带宽计数器相对于作为软件实现的计数器而言直接以硬件实现。
本公开的另一实施方式的方法包括:每次在处理器上运行的当前调度的虚拟机(VM)经由所述当前调度的VM、通过用于所述硬件存储器的总线访问所述硬件存储器时,由硬件存储器控制器在不涉及当前调度的VM或者管理所述当前调度的VM的监管器的情况下,将与用于所述硬件资源的所述总线使用相关联的带宽计数器递减。所述方法包括,响应于所述带宽计数器到达0,由所述硬件存储器控制器发出中断,用于由所述监管器处理以维护相关于所述硬件存储器的总线带宽服务质量(QoS)。相对于作为软件实现的计数器,所述带宽计数器直接地以硬件实现。
附图说明
在此所引用的附图形成说明书的一部分。在附图中示出的特征仅仅示出了本公开的某些实施方式,而并非示出本公开的全部实施方式,除非详细描述中明确给出相反指示,说明书的读者不应当理解为相反暗示。
图1是示例计算系统的图示,其中硬件资源带宽服务质量(QoS)是经由硬件计数器维护的;
图2是用于经由图1的计算系统中的硬件计数器来维护的硬件资源带宽QoS的示例方法;
图3是其中硬件资源带宽QoS经由硬件计数器来维护的计算系统的另一示例,并且该计算系统与图1的计算系统相一致但是更加具体;
图4是用于经由图3的计算系统中的硬件技术器来维护的硬件资源带宽QoS的示例方法的流程图,并且该流程与图2的方法相一致但是更加具体。
具体实施方式
在下文中,本公开的示例性实施方式的详细说明引用了形成描述的一部分的附图。附图示出了其中可以实践本公开的具体示例性实施方式。详细描述(包括附图)以充分的细节描述了这些实施方式,以支持本领域技术人员来实践本公开。本领域技术人员可以进一步利用本公开的其他实施方式,并且在不脱离本公开的精神和范围的情况下,可以做出逻辑上、机械上和其他方面的改变。下文的详细描述的读者不应将描述理解为限制性方式,而是仅有所附的权利要求书限定本公开的实施方式的范围。
如背景技术部分所记载,虚拟化技术允许计算设备在相同计算设备上运行操作系统的一个以上的实例,就如同存在多个计算设备那样,这些实例被称作虚拟机(VM)。VM通常共享给定计算设备的硬件资源(如,存储器和处理器)。VM管理器(VMM)或者监管器管理VM,确保他们按照特定保留、分配或者优先级来适当地共享计算设备的硬件资源,这通常被称作赋予VM的庇护期项(umbrella term)或者阶段服务质量(QoS)。
对于如硬件存储器的给定硬件资源,尽管可以保留被分配给给定VM的计算设备的全部数量的存储器,然而对于或者相关于此类存储器的相关度量、总线带宽是难以指定的。当VM运行在计算设备上的处理器上时,VM通过总线来访问硬件存储器,该总线可以将存储器控制器(诸如存储器管理单元,MMU)互联至硬件存储器和处理器两者。这样,由VM进行的对存储器的访问(借助于其在所讨论处理器上运行)使用总线的带宽。确保每个VM被赋予适当量的带宽,然而,特别是在没有以协作性方式包括VM的情况下,和/或在不涉及监管器自身的情况下,这是难以实现的。使用此类面向软件的解决方案来管理存储器带宽QoS,可能会导致VM不期望的性能降级。
通过比较,在此公开的技术提供硬件为中心的、并且实际上至少在某些实现中是仅硬件的解决方案,以管理涉及硬件存储器和其他硬件资源的总线带宽,从而维护此类总线带宽QoS。硬件寄存器直接地由特定硬件组件(诸如存储器控制器)可访问,而无需涉及如监管器的软件,或者,VM可以被设置至与VM相关联的预定值,该VM当前正调度用于在处理器上运行。当VM开始时或者刚好在开始在处理器上运行之前,预定值被从硬件寄存器拷贝至带宽计数器。带宽计数器自身可以是由所讨论硬件组件直接可访问的不同的硬件寄存器。
当VM通过相应总线访问所讨论的硬件存储器或者其他硬件资源时,硬件组件调整与总线使用相关联的带宽计数器。此类调整例如可以是减量式的,并且不涉及当前调度的VM、管理此VM的监管器或者任何其他VM。VM实际上可以不知晓并且不具有关于正在被跟踪的硬件资源的总线带宽的知识。
如果在定期时间间隔(regular time interval,诸如1毫秒)之前逝去的带宽计数器到达阈值,则硬件组件发出中断。在带宽计数器为减量的情况下,该阈值可以是0。监管器处理此中断(该中断典型地是硬件中断),因而关于所讨论硬件资源的总线带宽的QoS得到维护。例如,监管器可以将当前调度的VM切换用于不同的VM以在处理器上运行,即使在已经逝去了定期时间间隔也是如此,这是因为当前调度的VM已经用尽其总线带宽分配(对应于从硬件寄存器拷贝至带宽计数器的VM的预定值)达到定期时间间隔。
通过比较,如果在带宽计数器到达阈值之前逝去了定期时间间隔,则硬件组件通过将用于VM的预定值从硬件寄存器拷贝至带宽计数器,来重置带宽计数器。在此情况下,带宽计数器的重置中没有涉及监管器,并且硬件组件没有发出任何中断。这样,经由直接以硬件实现的带宽计数器(相对于软件实现的计数器),所讨论硬件资源的总线带宽的使用在硬件中被完全跟踪。因而,除非并且直到当前VM使用其所允许的带宽,QoS维护不涉及监管器,这导致硬件组件发出中断。
此过程被重复直到生成中断,或者直到到达作为处理器的定期调度的一部分而使得当前VM被切换用于新的VM在处理器上运行。在后一情况下,监管器拷贝预定值,该预定值对应于向硬件寄存器进行的新的VM的总线带宽分配,并且上述过程针对新的VM而再次开始以在处理器上运行,通过将预定值从硬件寄存器拷贝至带宽计数器,每次当通过总线访问硬件资源时则调整计数器,等等。每个VM可以具有不同的预定值,该预定值对应于其针对硬件资源的总线带宽分配。
由此,至少在某些实现中,监管器仅被涉及到两次:当硬件组件发出中断时,并且当当前正运行在处理器上的VM将被切换用于不同处理器时。因此,在此描述的技术不需要监管器部分的过多开销(如果有的话),这是由于当此类带宽正在被使用时,监管器自己不必保持由VM对硬件资源的带宽使用的跟踪,而是,硬件组件执行。此外,如上所述,至少在某些实施方式中,VM不必并且实际上不知晓其带宽使用正在被跟踪。
图1示出了示例计算系统100,其可以在单一计算设备(诸如单一计算机)上执行,或者可以在多个计算设备(诸如多计算机)上实现。计算系统100包括硬件102和软件104。软件104由硬件102实现(如由符号105指示),在此情况下硬件102执行软件104。
计算系统100的硬件102包括至少一个处理器106、硬件组件108和硬件资源110。处理器106、硬件组件108和硬件资源110通过硬件总线112(相关于和/或用于硬件资源110)物理地彼此连接。例如,当硬件资源110是硬件存储器时,硬件组件108可以是MMU或者其他存储器控制器,因而总线112是硬件存储器先。除了如图1中绘出的处理器106、硬件组件108、硬件资源110和总线112,硬件102可以并且典型地包括其他硬件。仅作为一个示例,在处理器106以外还可以存在多个处理器。
在图1的示例中,处理器106直接通过硬件总线112访问硬件资源110。当硬件资源110是硬件存储器时,此类实现可以被称作直接存储器访问(DMA)方案,其中处理器106访问硬件存储器。然而,在其他实现中,由处理器106对硬件资源110的访问可能会通过硬件组件108自身来实现。注意,在此使用的术语处理器106可以涵盖多核处理器的单核处理器,其中这里的核是虚拟的或者实际的物理处理器的核。例如,某些处理器具有两个或者更多的物理核,并且每个物理核可以被划分为两个或者更多虚拟核。术语处理器由此涵盖每个多核处理器的此类物理核和/或每个虚拟核。
计算系统100的硬件102还包括带宽计数器114,从而当处理器106访问硬件资源110时,硬件组件108调整以跟踪总线112的使用。例如,硬件组件108可以在每次处理器106访问硬件资源110时将带宽计数器114递减。带宽计数器114可以是硬件寄存器,并且在没有涉及计算系统110的任何软件104或者辅助的情况下由硬件组件108直接可访问。带宽计数器114可以是硬件组件108自身或者硬件资源110或者处理器106的部分,诸如其硬件寄存器,尽管出于清楚的目的而在图1中计数器114是单独命名的。
计算系统100的软件104包括监管器116和多个VM118,诸如至少一个VM118。监管器116管理VM118的安装和删除,并且进一步管理运行在处理器106上的VM的调度。监管器116还可以称作VMM。每个虚拟机112是实际物理机(也即,计算机或者计算设备)的软件实现,其如同单独的物理机那样执行软件。每个VM118通常包括其自身的操作系统(称作访客操作系统),并且其仅管理VM118而不管理所讨论的可以运行在相同宿主计算系统100上的其他VM。
图2示出了示例方法200,通过该方法来以硬件中心的方式在计算系统100内,出于QoS的目的而管理硬件资源110的总线带宽。方法200可以在调度方法内操作,其中监管器116在不同时间调度不同VM118以运行在处理器106上。具体地,可以存在定期时间间隔,诸如每个1毫秒。监管器116可以调度第一VM118以在处理器106上运行持续X个时间间隔,接着是第二VM118在处理器106上运行Y个时间间隔,以此类推,其中X可以等于或者不同于Y。然而,如果第一VM118使用其所分配的总线带宽在给定的时间间隔内用于硬件资源110,则监管器116可以在处理器106已经使用其X个时间间隔的处理器时间之前,提前切换出第一VM118而用于第二VM118在处理器106上运行。
监管器116由此调度VM118在处理器106上运行(202)。此VM118被称作当前调度的VM118。针对当前调度的VM118的预定值被拷贝至带宽计数器114(204)。预定值是与当前被调度VM118相关联的,并且对应于VM118被允许在每个定期时间间隔期间使用的总线112的带宽数量,当访问硬件资源110时,VM118运行在处理器106上。即,预定值对应于在每个定期时间间隔中硬件资源110的当前调度的VM118的总线带宽QoS。定期时间间隔由此开始(206)。
当运行在处理器106上时,每次当前调度的VM118通过总线112访问硬件资源110时,硬件组件108相应地调整带宽计数器114(208)。作为此类调整的结果,如果带宽计数器114到达阈值(210),则硬件组件108发出中断,诸如硬件中断(212)。中断向监管器116发送信号:当前调度的VM118将被从处理器106上切换出而用于不同的新的VM118(也即,新近调度的VM118),以便方法在部分202处循环。
然而,如果带宽计数器114没有到达阈值(210),并且如果当前定期时间间隔尚未过去或者到期(214),则方法200返回部分208。如果带宽计数器114在当前定期时间间隔期间没有到达阈值,则方法200从部分210前进至部分214,继而前进至部分216。如果还没有到达调度新的VM118(也即,新近调度的VM118)在处理器106上运行的时间,则硬件组件108重置带宽计数器114至用于当前调度VM118的预定值(218),并且方法200返回部分206并以新的定期时间间隔开始。
这样,如果当前调度的VM118没有超过其相关于硬件资源110的总线带宽,则带宽计数器114在当此VM118正在处理器106上运行的任何时间间隔期间内从来不会到达阈值,这样,将会有时间在处理器106上调度新的VM118在处理器106上运行。此时,方法200从部分216进行至部分212,此时硬件组件108可以发出硬件中断,还可以信号通知监管器116:现在是将正在处理器106上运行的VM118切换出的时间。例如,上述示例中,第一VM118被调度以在处理器106上运行X个定期时间间隔,在任何给定间隔期间一旦X这样的间隔已经流逝而第一VM118没有用尽其带宽QoS,则第一VM118被在处理器106上切换出以用于第二VM118。
由此,应当注意,除了当监管器116必须调度VM118用于在处理器106上运行时,在跟踪当前正在处理器106上运行的VM118的总线带宽并且此VM118正在通过总线112访问硬件资源110时,没有涉及软件。尤其是,没有涉及监管器或者任何VM118。在跟踪此类带宽使用中仅涉及硬件,尤其是,硬件组件108调节带宽计数器114,这是直接以硬件实现的并且组件108可以直接访问。当常规时间间隔结束并且还不是用于调度新的VM118在处理器上106上运行的时间时,硬件组件108在没有涉及任何软件的情况下在部分218中重置带宽计数器114。
这样,至少在某些实施方式中,仅响应于由硬件组件108发出的中断而涉及监管器116,并且更一般地,如上所述,在当VM118被调度用于在处理器106上运行时涉及监管器116。从部分210,硬件组件108在部分212中发出中断,以便信号通知监管器116:当前运行的VM118已经超过其对于硬件资源110的定期时间间隔带宽QoS。从部分216,硬件组件108可以发出中断以信号通知监管器116(或者监管器116可以以其他方式知晓):当前调度的VM118没有过早地结束其在处理器106上预调度的定期时间间隔的数量(相对于在部分210中到达阈值而提前此类结束的情况)。
此外,如上所述,不同VM118可以具有不同的总线带宽QoS,从而不同的VM118可以在部分204中将不同的预定值拷贝至带宽计数器114,并且在部分218中将带宽计数器114进行重置。例如,在计算亦服务的情况下,用户或者客户可以不管理其自身的计算系统,而是向服务提供者支付费用,以针对相同或者不同用户来提供此服务作为一个或者多个VM118。给定用户可以支付较高费用以用于相关于所讨论的硬件资源110较高带宽QoS,从而此用户的一个或者多个VM118被提供有较高预定值用于带宽计数器114。
出于清楚示出的目的而以特定顺序描述的方法200的各个部分。然而实际上,方法200的至少某些部分可以更多地是事件驱动的,而不是以图2所示的顺序来指示。例如,当前调度的VM118运行于其上的处理器106通过总线112访问硬件资源110的事件可以触发执行部分208。带宽计数器114到达阈值的事件可以触发执行部分212。定期时间间隔到期的事件可以触发执行部分218。到达调度新的VM118用于在处理器106上运行的事件可以触发执行部分212。
图3示出了计算系统100的另一示例,该示例与图1中绘出的示例相一致却更为具体。在图3中,硬件102、软件104、处理器106、硬件组件108、总线112、监管器116和VM如图1中所绘。然而,硬件资源110在图3中更为具体地示出为硬件存储器310,该硬件存储器310作为硬件资源110的一个特定类型。此外,硬件组件108示出为包括两个硬件寄存器320和322,其分别存储缓存114和预定值324。换言之,带宽计数器114实现为硬件寄存器320。
注意,计算系统100的其他实现可以包括将图1具体化的图3中的某些但不是全部方面。例如,硬件存储器310可以由其他类型的硬件资源110替换,然而硬件寄存器320和322实现为如图3所示,反之亦然。此外,硬件寄存器320和322可以是硬件组件108以外的硬件的一部分,诸如硬件存储器310自身、处理器106、另一硬件资源110或者其他类型的硬件。
在图3中,硬件资源320由此存储上文已经相关于图1和图2描述的带宽计数器114。硬件寄存器322存储预定值324,该预定值324是:当新的VM118正在调度用于在处理器106上运行时带宽计数器114被设置,以及当尚未到达预定阈值时在定期数据间隔结束时计数器114被重置的预定值。当调度新的VM118用于在处理器106上运行时,监管器116可以在硬件寄存器322内设置预定值324,其中硬件组件108继而可以将该预定值324拷贝至硬件寄存器320内的带宽计数器114。通过比较,当尚未到达预定阈值时在定期时间间隔结束处,硬件组件108将硬件寄存器320内的带宽计数器114重置至硬件寄存器322内的预定值。
图4示出了示例方法200,通过该方法来管理硬件存储器310的总线带宽,用于以图3的示例计算机系统100内的硬件中心方式来管理QoS的目的。在图4中,部分202、206、212、214和216绘出为如图2中所示。然而,图2的部分204已经被图4中的部分404所替代,并且图4的部分418还可以认为是在图2的部分204内被执行。图2的部分208已经由部分408所替代,并且部分210已经由图4的部分410所替代。此外,图4的部分418可以被认为是替代或者针对图2的部分218而被执行。图4的部分418由此可以被认为是在图2的部分204和216的每一个内被执行。
监管器116调度VM118用于在处理器106上运行(202)。监管器116进一步将预定值来作为预定值324来拷贝至硬件寄存器322(404),该预定值对应于针对硬件存储器310的当前调度的VM118的总线带宽QoS。在定期时间间隔开始之前或者开始时,硬件组件108(可以是例如MMU的存储器控制器)从硬件寄存器322来向硬件寄存器320拷贝预定值324,作为带宽计数器114(418)。定期时间间隔由此开始(206)。
每次当前调度的VM118(运行在处理器106上)通过总线112访问硬件存储器310时,硬件组件108相应地递减硬件寄存器320的带宽计数器114(408)。作为这种递减的结果,如果带宽计数器114到达阈值“0”(410),则硬件组件108发出中断(212)。此中断信号通知监管器116:当前调度的VM118将被在处理器106上切换出而用于不同的新的VM118(即,新近调度的VM118),继而方法200在部分202处重复。
然而,如果硬件寄存器320的带宽计数器114尚未到达“0”(410),并且如果当前定期时间间隔尚未逝去或者过期(214),则方法200返回部分214。如果硬件寄存器320的带宽计数器114在当前定期时间间隔期间没有到达“0”,则方法200从部分410前进至部分214,继而前进至部分216。如果尚未到达调度新的VM118在处理器106上运行的时间,则硬件组件108将硬件寄存器320的带宽计数器114重置为用于当前调度VM118的预定值324。即,方法200返回部分418,此时硬件组件108再次从硬件寄存器322将预定值324拷贝至硬件寄存器320,以重置带宽计数器114。方法200继而在部分206开始继续新的定期时间间隔。
图4继而至少以如下方式来具体化图2。首先,相对于在参见图2描述的方法200情况下的图1的示例,参见图4来描述的方法200涉及图3示例中的计算系统100。第二,参见图4描述的方法200提供了经由如下方式来提供用于拷贝图2的部分204中的VM118的预定值:在部分404中向硬件寄存器322拷贝预定值324,以及继而在部分418中将此预定值324从硬件寄存器322拷贝至作为带宽计数器114的硬件寄存器320。类似地,第三,参见图4描述的方法200还提供了经由如下方法来提供图2中部分218的重置带宽计数器114:在部分418中,从硬件寄存器322向作为带宽计数器114的硬件寄存器320拷贝预定值324。经由图3来具体化图1,经由图4来具体化图2可以包括图4中的某些但不是全部的方面。
所属技术领域的技术人员知道,本发明的各个方面可以实现为系统、方法或计算机程序产品。因此,本发明的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、驻留软件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。此外,在一些实施例中,本发明的各个方面还可以实现为在一个或多个计算机可读介质中的计算机程序产品的形式,该计算机可读介质中包含计算机可读的程序代码。
可以采用一个或多个计算机可读介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
通常,计算机程序产品包括其上存储一个或者多个计算机程序的计算机可读介质。由一个或者多个硬件设备的一个或者多个处理器从计算机可读介质执行计算机程序,这使得执行一种方法。例如,该方法可以是上文已经描述的一个或者多个方法。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、Smalltalk、C++等,还包括常规的过程式程序设计语言-诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)-连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
下面将参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。这些计算机程序指令可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器,从而生产出一种机器,使得这些计算机程序指令在通过计算机或其他可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机程序指令存储在计算机可读介质中,这些指令使得计算机、其他可编程数据处理装置、或其他设备以特定方式工作,从而,存储在计算机可读介质中的指令就产生出包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的指令的制造品(article of manufacture)。
计算机程序指令还可以被加载至计算机、其他可编程数据处理装置、或者其他设备,用以使得在计算机、其他可编程装置或者其他设备上执行一系列操作步骤,以便产生计算机执行的过程,从而在计算机或者其他可编程装置上执行的执行提供处理,用以执行在流程图和/或框图的一个或者多个方框中指定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
最后应当注意,尽管已经在此示出并描述了具体实施方式,应当理解,本领域技术人员利用实现相同目的的计算设置可以替代所示出具体实施方式。此申请由此旨在覆盖本发明的实施方式的调整或者变形。这样并且继而,其旨在表明本发明仅受到权利要求书及其等效设置的限制。

Claims (24)

1.一种用于维护硬件资源带宽服务质量的方法,包括:
每次在处理器上运行的当前调度的虚拟机经由所述当前调度的虚拟机、通过针对硬件资源的总线来访问所述硬件资源时,在不涉及所述当前调度的虚拟机或者管理所述当前调度的虚拟机的监管器的情况下,通过硬件组件调整与针对所述硬件资源的所述总线的使用相关联的带宽计数器;以及
响应于所述带宽计数器到达阈值,由所述硬件组件发出中断用于由所述监管器处理以维护关于所述硬件资源的总线带宽的带宽服务质量,
其中所述硬件资源和所述硬件组件各自是不同于所述处理器的硬件,
其中所述带宽计数器相对于作为软件实现的计数器而言直接以硬件实现,
其中,所述方法进一步包括:
在每次所述当前调度的虚拟机通过针对所述硬件资源的所述总线来访问所述硬件资源而调整所述带宽计数器之前,将所述带宽计数器重置至与所述当前调度的虚拟机相关联的预定值。
2.根据权利要求1所述的方法,进一步包括:
一旦定期时间间隔在所述带宽计数器到达所述阈值之前到期,通过硬件组件并且在不涉及当前调度的虚拟机或者监管器的情况下,将所述带宽计数器重置至与所述当前调度的虚拟机相关联的预定值,
以便由所述硬件组件不发出中断并且所述监管器不涉及重置所述带宽计数器。
3.根据权利要求2所述的方法,其中由所述硬件组件将所述带宽计数器重置至所述预定值包括:
通过所述硬件组件并且在不涉及所述当前调度的虚拟机或者所述监管器的情况下,从由所述硬件组件直接可访问的硬件寄存器来拷贝所述预定值。
4.根据权利要求1所述的方法,进一步包括:
一旦所述当前调度的虚拟机必须被切换用于新近调度的虚拟机而不是所述当前调度的虚拟机来现在在所述处理器上运行,则由所述监管器将所述带宽计数器重置至与所述新近调度的虚拟机相关联的预定值。
5.根据权利要求4所述的方法,进一步包括:
一旦所述当前调度的虚拟机必须被切换用于所述新近调度的虚拟机,则相对于作为软件实现的寄存器,由所述监管器将所述预定值拷贝至直接以硬件实现的硬件寄存器,所述硬件寄存器由所述硬件组件直接可访问。
6.根据权利要求1所述的方法,进一步包括:
在每次所述当前调度的虚拟机通过用于所述硬件资源的所述总线访问所述硬件资源而调整所述带宽计数器之前,相对于作为软件实现的寄存器,由所述监管器来将所述预定值拷贝至以硬件直接实现的硬件寄存器,所述硬件寄存器由所述硬件组件直接可访问。
7.根据权利要求1所述的方法,其中所述带宽计数器是由所述硬件组件直接可访问的硬件寄存器。
8.根据权利要求1所述的方法,其中所述硬件资源是硬件存储器,而所述硬件组件是硬件存储器控制器。
9.一种用于维护硬件资源带宽服务质量的系统,包括:
处理器;
虚拟机,用以在所述处理器上运行;
监管器,用以管理所述虚拟机并且用以调度所述虚拟机来在所述处理器上运行;
硬件资源;
总线,将所述处理器连接至所述硬件资源;
带宽计数器,与用于所述硬件资源的所述总线的使用相关联,并且相对于作为软件实现的计数器而言直接以硬件实现;以及
硬件组件,用以在不涉及所述虚拟机或者所述监管器的情况下,当每次所述虚拟机运行在所述处理器上通过所述总线访问所述硬件资源时,调整所述带宽计数器,
其中所述硬件资源和所述硬件组件各自是不同于所述处理器的硬件,
其中,在每次所述虚拟机通过用于所述硬件资源的所述总线来访问所述硬件资源而调整所述带宽计数器之前,所述硬件组件将所述带宽计数器重置至与所述虚拟机相关联的预定值。
10.根据权利要求9所述的系统,其中所述硬件组件响应于所述带宽计数器到达阈值,而发出中断以用于由所述监管器处理,以维护关于所述硬件资源的总线带宽的带宽服务质量。
11.根据权利要求9所述的系统,其中一旦定期时间间隔在所述带宽计数器到达阈值之前到期,所述硬件组件在不涉及虚拟机或者监管器的情况下,将所述带宽计数器重置至与所述虚拟机相关联的预定值,
以便由所述硬件组件不发出中断并且所述监管器不涉及重置所述带宽计数器。
12.根据权利要求11所述的系统,进一步包括:由所述硬件组件直接可访问的硬件寄存器,所述硬件寄存器用以存储所述预定值,以及所述硬件组件通过从所述硬件寄存器拷贝所述预定值来重置所述带宽计数器。
13.根据权利要求9所述的系统,其中所述虚拟机是第一虚拟机,
其中所述系统进一步包括第二虚拟机用以在所述处理器上运行,所述监管器用以管理所述第二虚拟机,并且用以调度所述第二虚拟机在所述处理器上运行,
以及其中一旦所述第一虚拟机运行在所述处理器上并且必须被切换用于将所述第二虚拟机而不是所述第一虚拟机现在将在所述处理器上运行,则所述监管器将所述带宽计数器重置至与所述第二虚拟机相关联的预定值。
14.根据权利要求13所述的系统,进一步包括:由所述硬件组件直接可访问的硬件寄存器,所述监管器用以将所述预定值拷贝至所述硬件寄存器。
15.根据权利要求9所述的系统,其中所述带宽计数器是由所述硬件组件直接可访问的硬件寄存器。
16.根据权利要求9所述的系统,其中所述硬件资源是硬件存储器,以及所述硬件组件是硬件存储器控制器。
17.一种由监管器执行的用于维护硬件资源带宽服务质量的方法,其中处理器被用于实现所述监管器,并且进一步运行由所述监管器管理的、并且用于由所述监管器调度用于在所述处理器上运行的第一虚拟机和第二虚拟机,所述方法包括:
响应于与用于硬件资源的总线的使用相关联的带宽计数器到达阈值、并且指示当前运行在所述处理器上的所述第一虚拟机已经使用了相关于所述硬件资源的预定带宽分配,响应于由硬件组件正在发出中断,
切换使得所述第二虚拟机而不是所述第一虚拟机在所述处理器上运行;以及
将所述带宽计数器重置至与所述第二虚拟机相关联的预定值,
其中所述硬件资源和所述硬件组件是各自不同于所述处理器的硬件,
以及其中所述带宽计数器相对于作为软件实现的计数器而言直接以硬件实现。
18.根据权利要求17所述的方法,其中所述方法进一步包括:响应于由所述硬件组件发出中断:
相对于作为软件实现的寄存器,向直接以硬件实现的硬件寄存器拷贝所述预定值,所述硬件寄存器直接由所述硬件组件可访问。
19.根据权利要求17所述的方法,其中所述带宽计数器是由所述硬件组件直接可访问的硬件寄存器。
20.根据权利要求17所述的方法,其中所述硬件资源是硬件存储器,而所述硬件组件是硬件存储器控制器。
21.一种用于维护硬件资源带宽服务质量的方法,包括:
每次在处理器上运行的当前调度的虚拟机经由所述当前调度的虚拟机、通过用于硬件存储器的总线访问所述硬件存储器时,由硬件存储器控制器在不涉及所述当前调度的虚拟机或者管理所述当前调度的虚拟机的监管器的情况下,将与用于所述硬件资源的所述总线使用相关联的带宽计数器递减;以及
响应于所述带宽计数器到达0,由所述硬件存储器控制器发出中断以用于由所述监管器处理,以维护相关于所述硬件存储器的总线带宽服务质量,
其中相对于作为软件实现的计数器,所述带宽计数器直接地以硬件实现。
22.根据权利要求21所述的方法,进一步包括:
一旦定期时间间隔在所述带宽计数器到达0之前到期,则通过硬件存储器控制器并且在不涉及所述当前调度的虚拟机或者所述监管器的情况下,将所述带宽计数器重置至与所述当前调度的虚拟机相关联的预定值,
以便由所述硬件组件不发出中断并且所述监管器不涉及重置所述带宽计数器。
23.根据权利要求21所述的方法,进一步包括:
一旦所述当前调度的虚拟机必须被切换用于新近调度的虚拟机而不是所述当前调度的虚拟机来现在在所述处理器上运行,则由所述监管器将所述带宽计数器重置至与所述新近调度的虚拟机相关联的预定值。
24.根据权利要求21所述的方法,进一步包括:
相对于作为软件实现的寄存器,由所述监管器将与所述当前调度的虚拟机相关联的预定值拷贝至直接以硬件实现的第一硬件寄存器,所述第一硬件寄存器直接由所述硬件存储器控制器可访问,
其中所述带宽计数器是由所述硬件存储器控制器直接可访问的第二硬件寄存器。
CN201310259553.4A 2012-06-30 2013-06-26 经由硬件计数器来维护硬件资源带宽服务质量的方法和系统 Expired - Fee Related CN103514045B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/539,318 2012-06-30
US13/539,318 US9183054B2 (en) 2012-06-30 2012-06-30 Maintaining hardware resource bandwidth quality-of-service via hardware counter

Publications (2)

Publication Number Publication Date
CN103514045A CN103514045A (zh) 2014-01-15
CN103514045B true CN103514045B (zh) 2016-12-28

Family

ID=49779692

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310259553.4A Expired - Fee Related CN103514045B (zh) 2012-06-30 2013-06-26 经由硬件计数器来维护硬件资源带宽服务质量的方法和系统

Country Status (2)

Country Link
US (2) US9183054B2 (zh)
CN (1) CN103514045B (zh)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9183022B2 (en) 2012-06-30 2015-11-10 International Business Machines Corporation Maintaining hardware resource bandwidth quality-of-service via hardware counter
US9183054B2 (en) 2012-06-30 2015-11-10 International Business Machines Corporation Maintaining hardware resource bandwidth quality-of-service via hardware counter
JP6032089B2 (ja) * 2013-03-26 2016-11-24 富士通株式会社 管理プログラム、装置及び方法
US10229043B2 (en) * 2013-07-23 2019-03-12 Intel Business Machines Corporation Requesting memory spaces and resources using a memory controller
US9348634B2 (en) 2013-08-12 2016-05-24 Amazon Technologies, Inc. Fast-booting application image using variation points in application source code
US10346148B2 (en) * 2013-08-12 2019-07-09 Amazon Technologies, Inc. Per request computer system instances
US10067800B2 (en) * 2014-11-06 2018-09-04 Vmware, Inc. Peripheral device sharing across virtual machines running on different host computing systems
US20160196231A1 (en) * 2015-01-07 2016-07-07 Qualcomm Incorporated System and method for bus bandwidth management in a system on a chip
CN105183565B (zh) * 2015-09-30 2018-12-07 华为技术有限公司 计算机、服务质量控制方法及装置
US10261935B1 (en) * 2016-09-29 2019-04-16 Amazon Technologies, Inc. Monitoring excessive use of a peripheral device
US10891773B2 (en) * 2017-04-07 2021-01-12 Intel Corporation Apparatus and method for efficient graphics virtualization
US10558392B2 (en) * 2017-06-30 2020-02-11 Seagate Technology Llc Enhancing quality of service of a storage device
US10558497B2 (en) 2017-08-28 2020-02-11 International Business Machines Corporation Prevention and resolution of a critical shortage of a shared resource in a multi-image operating system environment
FR3086780B1 (fr) * 2018-09-27 2020-11-06 Thales Sa Systeme et procede d'acces a une ressource partagee
US11579908B2 (en) 2018-12-18 2023-02-14 Vmware, Inc. Containerized workload scheduling

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6996838B2 (en) * 2001-06-12 2006-02-07 Scientific Atlanta, Inc. System and method for media processing with adaptive resource access priority assignment
CN101044458A (zh) * 2004-10-29 2007-09-26 英特尔公司 虚拟机环境中的定时器偏移机制
CN101620551A (zh) * 2009-05-07 2010-01-06 曙光信息产业(北京)有限公司 一种面向多虚拟机应用的网卡中断控制方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5771358A (en) * 1996-07-15 1998-06-23 Micron Electronics, Inc. Method and system for apportioning computer bus bandwidth
US20040168005A1 (en) * 2003-02-21 2004-08-26 Sun Microsystems, Inc. Methods for interrupting a program and for obtaining program execution acquisition
US7530068B2 (en) * 2003-12-17 2009-05-05 International Business Machines Corporation Method of resource allocation using an access control mechanism
EP1769353A2 (en) 2004-05-21 2007-04-04 Computer Associates Think, Inc. Method and apparatus for dynamic memory resource management
US7702843B1 (en) 2006-04-27 2010-04-20 Vmware, Inc. Determining memory conditions in a virtual machine
US8756608B2 (en) * 2009-07-01 2014-06-17 International Business Machines Corporation Method and system for performance isolation in virtualized environments
US8667207B2 (en) 2009-09-30 2014-03-04 Citrix Systems, Inc. Dynamic reallocation of physical memory responsive to virtual machine events
US8826270B1 (en) * 2010-03-16 2014-09-02 Amazon Technologies, Inc. Regulating memory bandwidth via CPU scheduling
US9183054B2 (en) 2012-06-30 2015-11-10 International Business Machines Corporation Maintaining hardware resource bandwidth quality-of-service via hardware counter
US9183022B2 (en) 2012-06-30 2015-11-10 International Business Machines Corporation Maintaining hardware resource bandwidth quality-of-service via hardware counter

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6996838B2 (en) * 2001-06-12 2006-02-07 Scientific Atlanta, Inc. System and method for media processing with adaptive resource access priority assignment
CN101044458A (zh) * 2004-10-29 2007-09-26 英特尔公司 虚拟机环境中的定时器偏移机制
CN101620551A (zh) * 2009-05-07 2010-01-06 曙光信息产业(北京)有限公司 一种面向多虚拟机应用的网卡中断控制方法

Also Published As

Publication number Publication date
US20160034299A1 (en) 2016-02-04
US9513951B2 (en) 2016-12-06
US9183054B2 (en) 2015-11-10
CN103514045A (zh) 2014-01-15
US20140007091A1 (en) 2014-01-02

Similar Documents

Publication Publication Date Title
CN103514045B (zh) 经由硬件计数器来维护硬件资源带宽服务质量的方法和系统
Liu et al. Online multi-workflow scheduling under uncertain task execution time in IaaS clouds
Zhang et al. Live video analytics at scale with approximation and {Delay-Tolerance}
US8051266B2 (en) Automatic memory management (AMM)
US10212098B2 (en) Performance-driven resource management in a distributed computer system
US11016808B2 (en) Multi-tenant license enforcement across job requests
CA2900948C (en) Cost-minimizing task scheduler
US9471319B2 (en) System management and instruction counting
US8424007B1 (en) Prioritizing tasks from virtual machines
US9934071B2 (en) Job scheduler for distributed systems using pervasive state estimation with modeling of capabilities of compute nodes
Ahn et al. Improving {I/O} Resource Sharing of Linux Cgroup for {NVMe}{SSDs} on Multi-core Systems
US11150951B2 (en) Releasable resource based preemptive scheduling
US9697128B2 (en) Prefetch threshold for cache restoration
WO2014042729A1 (en) Auction-based resource sharing for message queues in an on-demand services environment
US9280388B2 (en) Method and apparatus for efficient scheduling of multithreaded programs
CN109240795A (zh) 一种适用于超融合it基础设施的云计算资源池模型的资源调度方法
US20140109100A1 (en) Scheduling method and system
JP2020071779A (ja) スケジューリングプログラム、スケジューリング方法、およびスケジューリング装置
US8977752B2 (en) Event-based dynamic resource provisioning
Cheng et al. Dynamic resource provisioning for iterative workloads on Apache Spark
US9183022B2 (en) Maintaining hardware resource bandwidth quality-of-service via hardware counter
Shi et al. Adaptive QoS-aware Microservice Deployment with Excessive Loads via Intra-and Inter-Datacenter Scheduling
Partheeban et al. Versatile provisioning and workflow scheduling in WaaS under cost and deadline constraints for cloud computing
WO2016040743A1 (en) Dynamic virtual resource request rate control for utilizing physical resources
US10254962B2 (en) Asynchronously clearing page frames

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
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20161228

CF01 Termination of patent right due to non-payment of annual fee