CN106415500B - 用于虚拟计算机资源调度的滚动资源信贷 - Google Patents

用于虚拟计算机资源调度的滚动资源信贷 Download PDF

Info

Publication number
CN106415500B
CN106415500B CN201580034494.8A CN201580034494A CN106415500B CN 106415500 B CN106415500 B CN 106415500B CN 201580034494 A CN201580034494 A CN 201580034494A CN 106415500 B CN106415500 B CN 106415500B
Authority
CN
China
Prior art keywords
resource
virtual
credit
credit balance
compute instance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201580034494.8A
Other languages
English (en)
Other versions
CN106415500A (zh
Inventor
J·M·菲利普斯
W·J·厄尔
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.)
Amazon Technologies Inc
Original Assignee
Amazon Technologies Inc
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 Amazon Technologies Inc filed Critical Amazon Technologies Inc
Priority to CN202010073301.2A priority Critical patent/CN111176796B/zh
Publication of CN106415500A publication Critical patent/CN106415500A/zh
Application granted granted Critical
Publication of CN106415500B publication Critical patent/CN106415500B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • 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/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of 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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources

Abstract

一种基于网络的虚拟计算资源提供者可提供实现用于调度虚拟计算资源的滚动资源信贷的虚拟计算实例。可在虚拟管理器处接收对虚拟计算实例的工作请求。可确定关于所述虚拟计算实例的资源信贷余额。所述资源信贷余额可以滚动方式累计资源信贷,从而从先前时间段转入尚未使用的信贷。资源信贷随后可在生成调度指令以提供给物理资源诸如物理CPU来执行所述工作请求时加以应用,以便根据所应用的信贷数提高所述资源的利用率。所应用资源信贷随后可从所述信贷余额中扣除。

Description

用于虚拟计算机资源调度的滚动资源信贷
背景技术
用于商用硬件的虚拟化技术的出现已针对管理大规模计算资源而为具有多样化需求的许多客户提供益处,从而允许各种计算资源有效且安全地由多个客户共享。例如,虚拟化技术可通过为每个用户提供由单一物理计算机器托管的一个或多个虚拟机而允许所述单一物理计算机器在多个用户之间共享,其中每个此类虚拟机作为充当截然不同逻辑计算系统的软件模拟,所述逻辑计算系统为用户提供以为自己是给定硬件计算资源的唯一操作者和管理员的错觉,同时还提供各种虚拟机之间的应用隔离和安全性。作为另一个实例,虚拟化技术可通过为每个用户提供可跨多个数据存储装置分布的虚拟化数据存储库而允许数据存储硬件在多个用户之间共享,其中每个这样的虚拟化数据存储库充当不同的逻辑数据存储库,所述逻辑数据存储库使用户幻想他们是数据存储资源的唯一操作者和管理者。
虚拟化技术可用来产生许多不同类型的服务或者针对客户端系统或装置执行不同的功能。例如,虚拟机可用来实现用于外部客户的基于网络的服务,诸如电子商务平台。虚拟机还可用来实现用于内部客户的服务或工具,诸如实现为企业内部网络的一部分的信息技术(IT)服务。然而,有效地利用这些虚拟资源对于许多不同类型的虚拟资源工作负荷可能要求灵活的利用率选项。在一些环境中,多个虚拟机可一起托管在单个主机上,从而在利用可依赖相同物理计算机资源的不同虚拟计算资源时产生争用和冲突的可能性。
附图说明
图1是示出根据一些实施方案的用于虚拟计算实例的滚动资源信贷余额的曲线图。
图2是示出提供虚拟计算实例的基于网络的虚拟计算服务的方框图,所述虚拟计算实例实现根据一些实施方案的用于调度虚拟计算机资源的滚动资源信贷。
图3是示出根据一些实施方案的实现用于调度虚拟计算机资源的滚动资源信贷的虚拟主机的方框图。
图4是根据一些实施方案的提供关于虚拟计算实例的滚动信贷度量的界面的示例性图示。
图5是示出根据一些实施方案的实现用于调度虚拟计算机资源的滚动计算机资源信贷的各种方法和技术的高级流程图。
图6是示出根据一些实施方案的实现用于调度虚拟计算机的处理资源的滚动计算机资源信贷的各种方法和技术的高级流程图。
图7是示出根据一些实施方案的用于根据关于多虚拟计算实例的工作请求的可用资源信贷降低或提高物理计算机资源的利用率的各种方法和技术的高级流程图。
图8是示出根据一些实施方案的用于记录并利用关于实现用于调度虚拟计算机资源的滚动信贷资源的虚拟计算实例的数据度量的各种方法和技术的高级流程图。
图9是示出根据一些实施方案的示例性计算系统的方框图。
虽然在本文中通过列举若干实施方案和示意性附图的实例的方式描述了实施方案,但是本领域的技术人员应认识到,实施方案并不限于所描述的实施方案或附图。应理解,附图和对其的详细描述并非意图将实施方案限于所公开的特定形式,而相反,其意图在于涵盖落入由所附权利要求书限定的精神和范围内的所有修改、等效物和替代方案。本文中使用的标题都仅用于组织目的,并且并不意图用于限制本说明书或权利要求书的范围。如贯穿本申请所使用的,词语“可以”是在容许意义上(即,意指具有可能性)而非强制意义上(即,意指必须)使用的。类似地,词语“包括(include/including/includes)”表示包括但不限于。
具体实施方式
根据一些实施方案,本文所述的系统和方法可实现用于调度虚拟计算资源的滚动资源信贷。实现虚拟计算资源的不同客户端可具有不同的资源需求。例如,一些客户端的工作负荷不可预测并且可能不会有效地利用固定资源。实现用于调度虚拟计算资源的滚动资源信贷的虚拟计算实例可提供资源的动态利用以便在不浪费尚未利用的固定资源的同时提供灵活的高性能。累计关于单独的虚拟计算实例的资源信贷。当虚拟计算实例需要以高表现进行工作时,资源信贷可应用到工作,从而使底层物理资源有效地充分利用达资源信贷的持续时间。当正使用小于其资源共享的虚拟计算实例时(例如,很少进行工作或不进行工作),可获得信贷并将其用于后续任务。在各种实施方案中,资源可以是由管理型物理计算机资源实现或执行的任何虚拟化计算机资源,包括但不限于处理资源、通信或联网资源、和存储资源。
虚拟计算实例可实现用于调度虚拟计算资源的滚动资源信贷,从而提供有限时间段的响应性和高表现以及低成本。图1是示出根据一些实施方案的用于虚拟计算实例的滚动资源信贷余额的曲线图。曲线图100示出关于实现用于调度的滚动资源信贷的计算实例的资源信贷使用和资源信贷余额两者。可提供110初始资源信贷余额(例如,30个信贷),其可立即使用。在一些实施方案中,随着时间的推移,计算实例可累计更多细节,直到达到滚动资源信贷余额限值120为止。所述限值可通过在一定时间段(例如,24小时)之后排除某些累计的资源信贷而加强。在一些实施方案中,当应用时,资源信贷可使资源持充分利用达特定时间(例如,计算机资源信贷可等于1分钟的充分中央处理单元(CPU)利用率、30秒的特定联网通道、或者可保障的某个其他使用段)。在使用时,可从资源信贷余额扣除资源信贷。
通过消耗资源信贷,虚拟计算实例可利用足够的资源(例如,CPU核心、网络接口卡功能等)来根据需要获得高性能。例如,时刻5处的信贷资源使用小于时刻5处的资源信贷余额。因此,通过充分利用达任务有效期做出时刻5处所进行的工作,因为与执行任务所必须的资源信贷相比,本期资源信贷余额中有更多资源信贷可供用于消耗。此外,由于不再指示任何其他资源信贷使用,资源信贷继续存在,直到达到余额限值120为止,从而为接下来的繁重使用阶段保存其他物理资源(或者对托管在相同虚拟主机上的另一个计算实例的另一个工作请求)。如果在执行任务时不可获得资源信贷,那么基线利用率保障仍可应用来执行工作请求。在一些实施方案中,基线利用率保障可以是虚拟计算实例可在不花费信贷资源余额中的任何信贷的情况下使用资源的时间量。
在至少一些实施方案中,基线利用率保障可相当于资源信贷累计费率。如果例如资源信贷等于一分钟充分利用率/小时,那么6资源信贷累计费率/小时等于60分钟减去6分钟,或者达一小时的10%资源利用率。在此实例中,基线保障可以是达一小时的10%资源利用率。然而,在一些实施方案中,资源信贷累计费率可与基线保障(例如,12资源信贷累计费率/小时和10%基线保障)无关,从而允许资源信贷归于资源信贷余额,即使计算实例提交利用定量基线利用率保障的工作请求。请注意,先前实例并不意图限制于可实现资源信贷累计费率和基线表现的各种方式或组合。
用于调度虚拟计算机资源的滚动资源信贷可实现用于托管在相同虚拟主机处的多个虚拟计算实例(如以下论述的图2和图3所示)。实现滚动资源信贷余额限值120可防止任何一个计算实例积累充足的资源信贷来阻碍对其他实例的工作请求的执行。例如,如果如图1所示,滚动资源信贷余额限值设置为144资源信贷,那么几乎任何一个虚拟计算实例可对物理计算机资源进行的垄断是2小时24分钟(假设资源信贷等于资源的1分钟充分利用率)。
请注意,先前描述并不意图是限制性的,而仅仅作为滚动资源信贷余额和计算实例的使用的实例而提供。累计费率、初始余额和余额限值可全部不同,如其中可使用各个量的资源信贷那样。
本说明书接着包括虚拟计算资源提供者的概述,所述虚拟计算资源提供者可实现包括在针对提供者网络加强的网络流量政策中的网络实体处理的网络实体注册表。随后论述虚拟计算资源提供者的各种实例,包括不同部件/模块、或者可作为实现虚拟计算资源提供商的一部分采用的部件/模块的布置。随后论述用来实现包括在针对提供者网络加强的网络流量政策中的网络实体处理的网络实体注册表的多种不同的方法和技术,其中一些方法和技术在所附流程图中例示。最后,提供各种部件、模块、系统、装置、和/或节点可实现在其上的示例性计算系统的描述。在整个说明书中提供各种实例。
图2是示出提供虚拟计算实例的基于网络的虚拟计算服务的方框图,所述虚拟计算实例实现根据一些实施方案的用于调度虚拟计算资源的滚动资源信贷。基于网络的虚拟计算服务200可由诸如公司或公共部门组织机构的实体建立用于将可通过互联网和/或其他网络访问的一种或多种服务(诸如各种类型的基于云的计算或存储)提供至客户端202。基于网络的虚拟计算服务200可包括托管实现和分布由基于网络的虚拟计算服务200提供的基础设施和服务所需的各种资源池的许多数据中心,诸如物理和/或虚拟化计算机服务器、存储装置、联网设备等的集合。在一些实施方案中,基于网络的虚拟计算服务200可提供计算资源。在一些实施方案中,可将这些计算资源以所谓“实例”234(诸如虚拟计算实例)为单元提供给客户端。
在各种实施方案中,基于网络的虚拟计算服务200可实现控制面210以便管理基于网络的虚拟计算服务200提供给客户端202的计算资源提供。控制面210可实现各种不同的部件以便管理计算资源提供。控制面210可跨多种服务器、节点、或者其他计算系统或装置(诸如以下参考图9所述的计算系统1000)实现。注意其中给定部件的一个或多个实例可存在,可使得本文中对那个部件的引用为单数的或复数的。然而,任何一种形式的使用不意图排除另一种。
在至少一些实施方案中,控制面210可实现界面212。界面212可被配置来处理通过网络260接收的输入请求并且将所述输入请求引导至适当部件以进行进一步处理。在至少一些实施方案中,界面212可以是基于网络的界面并且可实现为图形界面(例如,作为管理控制面板或网站的部分)和/或实现为程序设计界面(例如,处理各种应用编程接口(API)命令)。在各种实施方案中,界面212可实现为前端模块或部件的一部分,从而对各种其他部件分配请求,诸如资源管理214、预留管理216、资源监测218和计费220。客户端202可(在一些实施方案中,可不)直接规定、发起或配置资源,但可向控制面210发送请求,以使得所示部件(或未示出的其他部件、功能或服务)可执行所请求行为。
控制面210可实现资源管理模块214来管理对由提供者网络提供的计算资源的访问权、其容量、对其的映射、以及其他控制或方向。在至少一些实施方案中,资源管理模块214可提供用于容量预留(例如,预留的计算实例)的直销和第三方转售市场两者。例如,资源管理模块214可允许客户端202通过界面212学习、选择、购买其访问权、和/或为通过网页或通过API来自初始销售市场或转售市场的计算资源的预留容量。例如,资源管理部件可通过界面212提供各自具有不同的信贷累计费率的不同可用计算实例类型的列表。另外,在一些实施方案中,资源管理模块214可被配置来提供信贷以供购买(除了通过关于实例类型的信贷累计费率提供的信贷之外)达指定购买量或方案(例如,一次性付款、额外周期性支付等)。例如,资源管理模块214可被配置来接收信贷购买请求(例如,API请求)并且将所购信贷记入虚拟实例余额。类似地,资源管理模块214可被配置来处理提高特定实例的信贷累计费率的请求。资源管理214还可提供和/或实现灵活的资源预留套件、通过界面212对客户端202的控制和访问界面。例如,资源管理模块214可向客户端202提供凭证或权限,以使得客户端与在用计算资源之间的计算实例控制操作/交互可得以执行。
在各种实施方案中,预留管理模块216可被配置来处理各种实施方案中的实例234的各种定价方案(至少针对初始销售市场)。例如,在一些实施方案中,基于网络的虚拟计算服务200可支持若干不同的购买模式(其在本文中也可称为预留模式):例如,期限预留(即,预留的计算实例)、按需资源分配、或者基于现货价格的资源分配。使用长期预留模式,客户端可对计算实例或其他计算资源进行低的一次性提前支付,将计算实例或其他计算资源预留达指定的持续时间(诸如一年或三年期限),并且对所述实例支付较低的每小时费率;客户端将确信具有对所述预留的期限可用的预留实例。使用按需模式,在没有任何长期约定或提前支付的情况下,客户端可按小时(或某个适当的时间单位)来支付容量。在现货价格模式中,客户端可指定愿意为特定类型的计算实例或其他计算资源支付的最高价格/单位时间,并且如果客户端的最高价格超过至少部分由供给和需求确定的动态现货价格,那么那种类型的资源将被提供给客户端。
在所请求的资源类型的供给超过需求的时间期间,现货价格可变得显著低于按需模式的价格。在一些实现方式中,如果现货价格增加超过由客户端指定的最高竞价,那么可中断资源分配,即,先前分配给客户端的资源实例可被资源管理模块330回收,并且可分配给愿意支付更高价格的某个其他客户端。资源容量预留条款还可更新控制面数据存储222以便反映所有权、客户端使用、客户端账户、或者其他资源信息的变化。
在各种实施方案中,控制面210可实现资源监测模块218。资源监测模块218可追踪不同虚拟计算机资源、客户端、用户账户、和/或具体实例所消耗的各种计算实例(例如,资源信贷余额、资源信贷消耗)的消耗。在至少一些实施方案中,资源监测模块218可实现各种管理行为以便停止、结束、管理、或以其他方式响应于虚拟主机230和实例234群中的各种不同的情形。资源监测模块218还可为客户端202提供对各种度量数据的访问权并且管理客户端配置的警报。图8(以下详细论述)提供资源监测模块可实现的各种技术的其他实例。
在各种实施方案中,控制面210可实现计费管理模块220。计费管理模块220可被配置来检测计费事件(例如,具体日期、事件、用途、票据请求、或者用来生成特定用户账户或与用户账户相连的支付账户的账单的任何其他原因)。响应于检测计费事件,计费管理模块可被配置来生成用户账户或与用户账户相连的支付账户的账单。
虚拟计算实例234例如可包括具有指定的计算容量(所述计算容量可通过指示CPU的类型和数量、主存储器大小等进行指定)和指定的软件栈(例如,特定版本的操作系统,其进而可在管理程序顶上运行)的一个或多个服务器。在不同的实施方案中,许多不同类型的计算装置可单独或组合使用以实现基于网络的虚拟计算服务200的计算实例234,所述不同类型的计算装置包括通用的或专用的计算机服务器、存储装置、网络装置等。在一些实施方案中,实例客户端202或者说任何其他用户可被配置(和/或授权)来将网络流量引导至计算实例234。
计算实例234可操作或实现多种不同的平台,诸如应用程序服务器实例、JavaTM虚拟机(JVM)、通用的或专用的操作系统、支持各种解释的或编译的编程语言(诸如Ruby、Perl、Python、C、C++等)的平台,或者适合于执行客户端202应用程序而例如不要求客户端202访问实例234的高性能计算平台。可存在各种不同类型的计算实例。在至少一些实施方案中,可存在实现用于调度虚拟计算机资源操作的滚动资源信贷余额的计算实例。这种类型的实例可基于资源信贷来执行,其中资源信贷表示实例可在正在进行工作的物理资源上花费的时间(例如,关于物理CPU的处理时间、利用网络通信信道的时间等)。实例对计算机资源具有的资源信贷越多,其在进行工作(提高性能)的物理资源上花费的时间就越多。资源信贷可在实例启动时提供,并且可定义为利用时间(例如,CPU时间,诸如CPU分钟),所述利用时间可表示实例的虚拟资源可在执行任务的底层物理资源上花费的时间。
在各种实施方案中,资源信贷可表示超过基线利用率保障的时间或资源利用率。例如,计算实例可具有10%的资源基线利用率保障,因此资源信贷可将资源利用率提高到10%之上。即使没有剩余资源信贷,仍可同意计算实例的利用率处于10%基线。信贷消耗可仅在实例需要物理资源来执行超过基线表现的工作时才会发生。在一些实施方案中,不管计算实例是否提交消耗资源的基线利用率保障的工作请求,都可刷新信贷或将其累计到资源信贷余额。
可提供实现用于调度计算机资源的滚动资源信贷的不同类型的计算实例。不同的计算实例可具有特定数目的虚拟CPU核心、存储器、高速缓存、存储装置、网络、以及任何其他性能特性。计算实例的配置还可包括其在特定数据中心中的位置、可用性区域、地理位置等,并且(就预留的计算实例而言)包括预留期限长度。不同的计算实例对于不同的虚拟资源可具有不同的资源信贷累计费率,所述资源信贷累计费率可以是累计到维持用于计算实例的资源信贷的本期余额的多个资源信贷。例如,在一些实施方案中,一种类型的计算实例针对一个虚拟计算机资源可累计6信贷/小时,而另一种类型的计算实例针对同一类型的虚拟计算机资源可累计24信贷/小时。在另一个实例中,对于同一虚拟计算实例,一个资源(例如,vCPU)的资源信贷累计费率可不同于不同虚拟计算机资源(例如,联网信道)的资源信贷累计费率。在一些实施方案中,多个不同的资源信贷余额可维持用于关于由虚拟计算实例使用的多个不同的虚拟计算机资源的虚拟计算实例。基线表现保障还可实现用于虚拟计算机资源中的每一个,所述基线表现保障对于每个相应虚拟计算机资源并且对于不同的实例类型可能是不同的。
在一些实施方案中,基线表现保障可和资源信贷累计费率一起包括。因此,在一个实例中,实例类型可包括用于处理的具体资源信贷累计费率和保障的基线表现,以及用于联网信道的另一个具体资源信贷累计费率和保障的基线表现。以此方式,基于网络的计算服务200可向许多不同类型的实例提供关于不同的虚拟计算机资源的资源信贷累计费率和基线保障的不同组合。除了各种物理和/或虚拟能力之外,这些不同的配置可根据资源信贷累计费率和基线表现费率以不同方式定价。在一些实施方案中,可按小时价预留和/或利用虚拟计算实例。虽然长期预留的实例配置可利用不同的定价方案,但是仍包括信贷累计费率和基线表现保障。
如图2所示,在一些实施方案中,虚拟主机230(诸如虚拟主机230a、230b至230n)可实现和/或管理多个计算实例234,并且可以是一个或多个计算装置(诸如以下参考图9所述的计算系统1000)。虚拟主机230可包括能够例示并管理多个不同的客户端可访问虚拟机或计算实例234的虚拟管理模块232(诸如虚拟管理模块232a、232b至232n)。虚拟管理模块232例如可包括操作系统的管理程序和管理实例,所述操作系统在一些实现方式中可称为“零域”或“dom0”操作系统。所述dom0操作系统可能不可由计算实例234代表其运行的客户端访问,但相反可负责网络提供者的各种管理或控制面操作,包括处理引导去往和来自计算实例234的网络流量。
客户端202可包含可配置来向基于网络的虚拟计算服务200提交请求的任何类型的客户端。例如,给定客户端202可包括适当版本的网页浏览器,或可包括被配置来作为延伸执行或在由网页浏览器提供的执行环境内执行的插件模块或其他类型的代码模块。可替代地,客户端202可包含应用程序,诸如仪表板应用程序(或其用户接口)、媒体应用程序、办公室应用程序、或可使用计算实例234以便执行各种操作的任何其他应用程序。在一些实施方案中,这种应用程序可包括足够的协议支持(例如,用于适当版本的超文本传输协议(HTTP)),用于生成和处理基于网络的服务请求,而不必要地实现用于所有类型的基于网络的数据的完整浏览器支持。在一些实施方案中,客户端202可被配置来根据表述性状态转移(REST)类型的基于网络的服务架构、基于文件或基于消息的基于网络的服务架构、或另一适当的基于网络的服务架构生成基于网络的服务请求。在一些实施方案中,客户端202(例如,计算型客户端)可被配置来以对在利用由计算实例324提供的计算资源的客户端202上实现的应用程序透明的方式提供对计算实例234的访问。
客户端202可通过网络260将基于网络的服务请求传达至基于网络的虚拟计算服务200。在各种实施方案中,网络260可包含对在客户端202与基于网络的虚拟计算服务200之间建立基于网络的通信有必要的联网的硬件和协议的任何适当组合。例如,网络260通常可包含共同实现因特网的各种电信网络和服务提供者。网络260还可包括专用网络(诸如局域网(LAN)或广域网(WAN))以及公用无线网络或专用无线网络。例如,给定客户端202和基于网络的虚拟计算服务200可分别被供应在具有其自身内部网络的企业内。在这种环境中,网络260可包括对在给定客户端202与因特网之间以及在因特网与基于网络的虚拟计算服务200之间建立联网链接有必要的硬件(例如,调制解调器、路由器、交换器、负载均衡器、代理服务器等)和软件(例如,协议堆栈、会计软件、防火墙/安全软件等)。注意在一些实施方案中,客户端202可使用专用网络而不是公用因特网来与基于网络的虚拟计算服务200通信。
图3是示出根据一些实施方案的实现用于调度虚拟计算机资源的滚动资源信贷的虚拟主机的方框图。如以上在图2中所指出,虚拟主机可充当一个或多个虚拟计算实例的主机平台。这些虚拟计算实例可利用虚拟化的硬件接口来执行各种任务、功能、服务和/或应用程序。作为执行这些任务的一部分,虚拟计算实例可利用虚拟化的计算资源(例如,虚拟中央处理单元(vCPU),其可充当关于在虚拟主机处实现的物理CPU的虚拟代理)以便在相应计算实例的相应物理计算机资源上执行工作。
图3示出虚拟主机310。虚拟主机310可托管计算实例330a、330b、330c至330n。在至少一些实施方案中,计算实例330可以是同一类型的计算实例。在图3中,计算实例330是实现用于调度虚拟计算机资源的滚动资源信贷的计算实例。虚拟主机310还可实现虚拟管理模块320,所述虚拟管理模块320可处理虚拟计算实例330与物理计算资源340(例如,各种硬件部件、处理器、I/O装置、联网装置等)之间的各种接口。
在图3中,虚拟管理模块320可实现滚动资源信贷余额调度器324。滚动资源信贷余额调度器324可充当元调度器,用于管理、追踪、应用、扣除、和/或以其他方式处理关于计算实例330中的每一个的所有资源信贷余额。在各种实施方案中,滚动资源信贷余额调度器324可被配置来从计算实例接收虚拟计算资源工作请求332。每个工作请求332可引导朝向对应于提交工作的计算实例的虚拟计算机资源。对于每个请求332,滚动资源信贷余额调度器可被配置来确定关于正请求计算实例330的本期资源信贷余额,并且在执行工作请求时生成调度指令以便应用资源信贷。在一些实施方案中,滚动资源信贷余额调度器324可执行调度指令或引导其执行,将工作请求引导或发送至底层物理计算资源340以进行执行。例如,在一些实施方案中,可实现不同的硬件队列,并且滚动资源信贷余额调度器324可用来安插用于根据所应用资源信贷执行队列中的工作请求的任务(例如,根据所应用资源信贷的时间量的排队任务)。然而,在一些实施方案中,资源调度指令可发送334至虚拟计算资源调度器322,所述虚拟计算资源调度器322可以是用于物理资源340(诸如在虚拟主机310处实现的CPU)的调度器。滚动资源信贷余额调度器324可被配置来执行以下参考图5-7所述的各种技术,以便应用资源信贷、扣除资源信贷、和/或以其他方式确保根据所应用资源信贷执行工作请求。
在一些实施方案中,响应于接收调度指令,虚拟计算资源调度器322可向各种实施方案中的物理计算资源(诸如物理CPU)提供关于工作请求336的物理调度指令。在至少一些实施方案中,虚拟计算资源调度器322可以是关于一个或多个CPU的基于信贷的调度器。
滚动资源信贷余额调度器324还可向监测代理326报告信贷余额和使用度量362,所述监测代理326可进而向资源监测模块218报告这些度量和任何其他主机度量364(健康信息等)。
如以上所指出,参考图2,可图解地实现用于虚拟计算资源提供者的基于网络的接口。图4是根据一些实施方案的提供关于虚拟计算实例的滚动信贷度量的界面的示例性图示。滚动资源信贷界面400可实现为基于网络的、可访问站点的各种客户端。在一些实施方案中,滚动资源信贷界面400可实现为可下载的或本地运行的应用程序,所述应用程序可通过程序化界面(诸如API)与基于网络的虚拟计算资源提供者通信。
区域410示出可显示的关于各种实例的度量数据的列表。各种不同的用户界面元素(诸如选择器412a、412b、412c、414a、414b和414c)可实现来指示应该检索的物理资源和特定实例数据。区域420示出可选择以用于显示的不同类型的度量数据。例如,在一些实施方案中,关于特定实例的资源信贷余额度量422以及资源信贷使用424可由所选择实例来选择。在一些实施方案中,可示出关于特定实例的信贷刷新频率。区域430可表示实例度量显示区域。所检索实例度量可以各种形式(诸如所示线图、图表、表格、或任何其他图形或文本数据表示技术)来显示。区域440可表示用来改变所显示度量数据的格式的不同用户界面元素。例如,可选择显示设置444,从而打开允许修改不同显示设置(诸如数据显示的时间范围)的上弹窗口或对话框。显示度量元素442可选择来制定所作出的变化,从而在实例度量显示器430中生成或重新生成所显示数据。导出度量446元素可被配置来提供用于提取下载到或存储在由用户指定的位置中(例如,打开文件对话窗口)的元度量数据的各种机构。可选择工具元素448来基于度量数据运行各种不同的工具、分析、或其他推荐引擎。例如,可选择推荐是否改变实例类型(例如,改变成更大的或更小的突发处理实例)的工具。
请注意,关于图4的图示和所附说明仅仅意图提供图形用户界面的实例。可实现各种其他配置和界面(不包括图形界面),因此先前实例并不意图进行限制。例如,可通过程序化接口(API)从虚拟计算资源提供者请求以上论述的对数据、度量、或其他信息的各种请求,并且将元数据往回提供给正请求的客户端。例如如果客户端通过API请求虚拟计算资源提供者,那么关于特定计算实例的信贷使用和刷新速率、关于客户端的度量或追踪信息可提供给客户端。
已经关于由基于网络的计算资源服务提供的虚拟计算资源给出以上参考图2-4论述的实现用于调度虚拟计算资源的滚动资源信贷的实例。各种其他类型或配置的虚拟计算资源可实现这些技术,所述各种其他类型或配置的虚拟计算资源可或可不作为基于网络的服务的一部分提供。其他虚拟计算资源(例如,其想要可供用于在高表现水平下进行突发处理或其他突发利用达较短时间段)例如可实现用于调度虚拟计算资源的滚动资源信贷。图5是示出根据一些实施方案的实现用于调度虚拟计算机资源的滚动资源信贷的各种方法和技术的高级流程图。这些技术可使用如以上参考图2-4所述的基于网络的虚拟计算服务的各种部件或者其他虚拟计算资源主机来实现。
如在510处所指示,关于一个或多个虚拟计算机资源的工作请求可在虚拟计算实例的虚拟主机处接收。所述请求可识别虚拟计算机资源(例如,处理、联网、存储等)。工作请求可识别被执行以便完成工作请求的任务的工作负荷或量。
如在520处所指示,可确定虚拟计算机资源各自的计算实例的本期资源信贷余额。在各种实施方案中,资源信贷累计费率可以是添加到本期资源信贷余额的在一定时间段内尚未使用的多个资源信贷。例如,如果资源信贷累计费率被设置为12资源信贷/小时,那么在所述小时期间尚未消耗的每个资源信贷可添加到本期资源信贷余额合计(例如,如果9/12尚未使用,那么可添加9)。在一些实施方案中,资源信贷累计费率可相当于虚拟计算实例的基线利用率或表现保障。本期资源信贷余额越高,虚拟计算实例使用虚拟计算机资源可能够维持的表现水平就越高。由于可实现关于不同的虚拟计算机资源的多个不同的资源信贷余额,所确定信贷资源余额可特定于执行工作请求的虚拟计算机资源。
在至少一些实施方案中,资源信贷累计可局限于特定时间段。因此,在资源信贷累计时间段之前累计的尚未使用的资源信贷可不包括在本期资源信贷余额中。例如,在一些实施方案中,资源信贷累计时间可以是24小时,除了在早于24小时的给定时间点之前累计的任何尚未使用的资源信贷之外。在各种实施方案中,本期资源信贷余额中可用的资源信贷中的至少一个从当前时间段之前的时间段实施。
如在530处所指示,可生成调度指令以便至少部分地基于应用一个或多个资源信贷执行工作请求。因此,在一些实施方案中,出于/由于利用虚拟计算机资源,调度指令可指定执行工作请求的底层物理计算机资源的持续时间。在一些实施方案中,生成的调度指令可实现为关于物理计算机资源的任务或硬件队列。在一些实施方案中,另一个调度器或虚拟计算机资源驱动器或管理器可接收指令作为输入、参数、和/或有关引导工作请求在物理资源处的执行的其他信息。图7(以下论述)描述用于应用可用资源信贷以及在资源信贷不可用来执行工作请求时处理情境的各种技术。如在540处所指示,可对本期资源信贷余额进行更新以便扣除所应用资源信贷。
请注意,在一些实施方案中,可多次重复图5描述的各种元素以用于执行关于依赖不同物理资源的不同虚拟计算机资源的工作请求。另外,可执行不同的元素排序。因此,图示和先前论述不意图进行限制。
图6示出以上参考图5所述的执行用于处理资源的各种技术的实例。如在610处所指示,关于虚拟计算实例的一个或多个虚拟中央处理单元(vCPU)的工作请求可在托管虚拟计算实例的虚拟主机的虚拟管理器处接收。工作请求可关于特定过程、任务、或由虚拟计算实例的一个或多个vCPU执行的其他行为。例如,特定过程可以是实施实现由虚拟计算实例执行或实施的特定程序或应用程序的一个或多个指令。在一些实施方案中,工作请求可指示所使用的处理负荷或量。
如在620处所指示,可确定根据资源信贷累计费率累计资源信贷达闲置vCPU时间段的计算实例的本期资源信贷余额。如以上所指出,在各种实施方案中,资源信贷累计费率可以是添加到在一定时间段内闲置的虚拟实例的本期资源信贷余额的多个资源信贷。例如,如果资源信贷累计费率被设置为12资源信贷/小时,那么在所述小时期间尚未消耗的每个资源信贷可添加到本期资源信贷余额合计(例如,如果9/12尚未使用,那么可添加9)。在一些实施方案中,资源信贷累计费率可相当于虚拟计算实例的基线利用率或表现保障。例如,如果虚拟计算实例的基线利用率或表现保障在一小时段内是10%,那么虚拟计算实例可说成具有对物理CPU的6分钟独占处理时间。如果不使用或仅使用这些6分钟中的一些,那么剩余分钟可有效地转入下一时间段(例如,下一小时)。本期资源信贷余额越高,虚拟计算实例可能够维持的性能水平就越高,这是因为在物理CPU执行所请求工作时可能会消耗资源信贷。
如在630处所指示,在一些实施方案中,可生成调度指令以便至少部分地基于所确定本期资源信贷余额执行工作请求。可生成发送到调度器的格式的调度指令,所述调度器调度关于一个或多个物理中央处理单元(CPU)的任务或工作。如以上所论述,这些CPU可执行虚拟主机引导至其自身的vCPU的工作请求的实际处理。指令本身可被配置来应用资源信贷(如果可用)以便提高物理CPU在当前时间段的利用率。资源信贷可表示物理CPU可由虚拟计算主机唯一利用的工作量或时间量。因此,指令可被配置来确保调度器调度等于所应用资源信贷的充分利用时间。例如,关于物理CPU的调度器可被配置来接收不同的参数,所述不同的参数引导如何处理对特定虚拟计算实例的工作请求。这些参数可包括但不限于分级时间片、优先权、成比例的份额、记账时间、和/或容量。在至少一些实施方案中,调度器可以是提供成比例的、公平共享的调度器的基于信贷的调度器。如以下参考图7所论述,如果本期资源信贷余额中的资源余额在工作请求完成之前耗尽(或者在执行工作请求开始时不在),那么生成的指令可被配置来根据基线表现请求(例如,10%、20%或40%的CPU利用率)执行工作请求或者在已经流逝特定时间段之后使工作请求的性能逐渐降低到等于基线表现请求。
如在640处所指示,在各种实施方案中,随后可将调度指令发送至用于物理CPU的调度器。发送调度指令可包括以编程方式调用、激活、或发送调度器来执行工作请求,从而传递各种参数和/或其他信息来根据生成的调度指令对工作请求的执行进行调度。如在550处所指示,可对本期资源信贷余额进行更新以便扣除在执行工作请求时应用的资源信贷。
请注意,在一些实施方案中,可多次重复图6所述的各种元件以用于执行工作请求的各种子部分。另外,可执行不同的元素排序,诸如在将调度指令发送至调度器之前对资源信贷余额进行更新。因此,图示和先前论述不意图进行限制。
如以上所指出,资源信贷可增加特定虚拟计算实例可利用物理资源(诸如一个或多个CPU)的时间量。相反,缺乏资源信贷可降低物理资源的利用率。图6是示出根据一些实施方案的用于根据关于多虚拟计算实例的工作请求的可用资源信贷降低或提高物理计算机资源的利用率的各种方法和技术的高级流程图。
如在610处所指示,在各种实施方案中,可检查虚拟计算实例的本期资源信贷余额以便应用资源信贷来执行工作请求。如果存在要应用的资源信贷(如由从620肯定退出所指示),那么资源信贷可应用来提高物理资源执行对虚拟计算实例的工作请求的利用率(如在640出所指示)。资源信贷(如先前所陈述)可提供附加时间来利用物理资源以执行工作请求。例如如果关于虚拟计算实例的基线处理速率是每小时6分钟(例如,10%利用率),那么添加等于额外1分钟的额外计算资源信贷可使关于vCPU的工作请求的处理利用速率提高到每小时7分钟(例如,11.667%利用率)。
然而,如果没有资源信贷待应用(如从620否定退出),那么无力资源执行工作请求的利用率可逐渐降低到关于虚拟计算实例处的虚拟资源的基线利用速率。例如,虚拟计算实例的vCPU的当前利用率(例如,25%)可逐渐降低持续特定时间段(例如,15分钟)以便逐渐地降低利用率。因此,如果关于vCPU在虚拟计算实例处的基线利用率时10%,那么15%的利用率可跨15分钟时间段划分成分布均匀(或几乎均匀)的单独比率变化。逐渐降低利用率可防止资源信贷外的虚拟计算实例(和与它们交互的任何客户端或系统)面临快速性能下降。
不同于为特定客户端提供专用资源的虚拟计算实例,可能需要对实现用于调度虚拟计算机资源的滚动资源信贷的虚拟实例的行为或使用进行分析以便确定所分配资源利用率是否足以满足特定客户端购买或预留虚拟计算实例的需要。客户端或客户可能想要确定他们是否已经做出了对提供滚动资源信贷的特定类型的计算实例的适当选择。例如,预留提供中等大小资源信贷累计费率的虚拟计算资源的客户可能够基于所使用的信贷和/或信贷余额的历史进行辨别,不管是较小的还是较大的虚拟计算实例可能是适当的。图8是示出根据一些实施方案的用于记录并利用关于实现用于调度虚拟计算机资源的滚动信贷资源的虚拟计算实例的数据度量的各种方法和技术的高级流程图。
如在810处所指示,随着虚拟计算实例的时间的推移可记录关于本期资源信贷余额的信贷余额度量。可在不同粒度水平下记录本期资源信贷余额。例如,在一些实施方案中,可仅在发生变化时(例如,其中余额增加或减小)记录本期资源信贷余额。在另一个实例中,即使可能未发生变化,非常小的时间段在记录本期资源信贷余额期间流逝。在一些实施方案中,客户端、管理者、或其他用户在记录数据时可能够调整时间间隔的粒度。信贷余额度量可存储在持久数据存储系统诸如数据库中。数据度量可存储在数据库中以便可选择性地检索。例如,将度量存储在数据库中可允许具体队列获得特定范围的信息、最小值、最大值、或其他更多指定的或选择的数据集合,而不会返回度量的整个数据集合。
如在820处所指示,可记录关于用来随时间执行对虚拟计算实例的工作请求的所应用资源信贷的信贷使用度量。至于信贷余额度量,可在不同时间或者响应与不同事件存储或记录信贷使用度量。例如,在一些实施方案中,可当每次应用特定信贷来执行工作请求时记录使用值。或者,聚集的使用量,诸如应用到整个工作请求(例如,30)的信贷量可表示为单一数据点。当然,可实现(例如,记录用于执行特定工作请求的一部分的所应用信贷,诸如关于工作请求的9信贷总成本中的4所应用信贷)这两个实例之间的各种其他组合或粒度。至于以上论述的信贷余额度量,可存储度量使用度量以便为可选择性地维持。例如,将度量存储在数据库中可允许具体队列获得特定范围的信息、最小值、最大值、或其他更多指定的或选择的数据集合,而不会返回度量的整个数据集合。
关于虚拟计算实例所记录的度量可以许多方式使用。可随着新的度量例如记录在组件面板或提供看一眼的当前资源信息的其他用户界面中而执行现场报告或直播度量。具体地,在一些实施方案中,信贷余额和信贷使用的度量可响应于请求提供给客户端。例如,如在830处所指示,可通过界面接收对关于虚拟计算实例的信贷余额度量和/或信贷使用度量的请求。与界面212相同,界面可以是基于网络的界面(例如,可通过网络诸如因特网访问)并且可提供各种图形或程序化通信方式。例如,在一些实施方案中,基于网络的界面可以是应用编程接口(API)。可根据API对关于数据的特定请求进行格式化,所述数据包括关于待返回的特定数据集合的各种不同的参数或限制。类似地,诸如图形界面可托管或实现用于网站,或者其他可显示应用程序可允许用户选择待提供的特定信息(诸如以上参考图4所论述)。响应于接收请求,所请求的度量(一些、没有或所有使用度量可通过基于网络的界面往回提供(例如,通过根据API格式化的响应或者显示给请求者以查看的图形或文本数据)),如在840处所指示。
在一些实施方案中,各种不同的动态工具、监测器、部件、或其他装置可用来分析度量数据。在一些实施方案中,虚拟计算资源提供者网络的客户端可限定、修改、或设置可触发的警报和通知。如在850处所指示,在一些实施方案中,可监测关于虚拟计算实例的信贷余额度量和用户值度量。例如,可评估当前值(例如,当前资源信贷余额或信贷使用值)的特定或急性变化。例如,如果资源信贷使用快速增加或者交叉某种阈值,那么可触发警报,如在860处所指示。可通过监测关于虚拟计算实例的信贷余额和/或信贷使用度量来收集长期趋势和其他类型的信息。例如,如果长期趋势示出低的信贷使用(或者具有特定时间百分比(诸如98%)的高当前资源信贷余额),那么可触发警报,如860所指示。更一般地,警报可被配置来以许多方式评估信贷余额度量和/或信贷使用度量。如果没有触发警报(如从860否定退出所指示),那么信贷余额度量和/或使用度量的监测可继续。
在各种实施方案中,当触发警报时(如从860肯定退出所指示),可提供所触发警报的通知,如在870处所指示。例如,留言系统(例如,声音、文本或电子邮件)可用来通知警报物主/创造者或责任方(其可以是虚拟计算资源提供者网络的客户端/客户)触发警报的实例。除了提供警报通知之外,在一些实施方案中,可采取自动化或程序化行为以便解决或对警报作出反应。例如如果特定虚拟实例正看到高资源信贷利用率,那么由虚拟实例执行的工作中的一些可转移到另一个虚拟主机上的另一个虚拟实例以便按比例增加执行某些过程的虚拟计算实例的数目。
除了基于单独的虚拟计算服务提供者向客户端或其他人提供记录的资源信贷余额度量和/或资源信贷使用度量之外,基于网络的虚拟计算服务提供者或其他实现者、操作者、管理者、或其他控制系统或代理可发现信贷余额度量和/或资源信贷使用度量的聚合视图,所述聚合视图将基于网络的虚拟计算资源提供者洞察为整体。
例如,在一些实施方案中,系统管理员、控制系统、或其他部件可实现热量或争夺管理以便检测接收过多流量并且因此可能不会满足对客户端的服务保障的特定虚拟计算实例,或者在特定主机上的虚拟计算实例之间可存在过大竞争活动(例如,争夺)。所记录的关于虚拟主机上的每个虚拟计算实例的数据可聚集在一起,如以上参考图2的资源监测模块218所论述。随后,基于所聚集的度量,可作出关于虚拟主机的管理决策。例如,如果关于虚拟主机上的不同虚拟计算实例的使用度量似乎请求在类似的时间在vCPU上工作,那么使用度量可指示虚拟主机上的虚拟实例之间的某个争夺水平。如果争夺水平超过某个最大争夺阈值,那么虚拟计算实例中的一个或多个可被移动或在不同的虚拟主机上重启,腾出计算资源以更大的灵活性执行剩余虚拟计算实例的工作请求。
在一些实施方案中,控制面、系统管理员、保健部件、或其他系统或装置可启动基准实例来与虚拟主机上的其他虚拟计算实例共同运行,而不是依赖(或仅仅依赖)虚拟计算实例行为的报告。这些基准实例可被配置来执行某些种类的行为,诸如请求关于vCPU的某些大小或类型的工作负荷以便测试此类请求可能对关于其他虚拟计算实例的工作请求的执行具有的影响。基准实例还可被配置来收集它们的测试的结果并且直接向报告模块或服务(诸如资源监测模块218)报告。请注意,先前实例并不意图进行限制,而是其中可关于滚动信贷资源使用的已收集度量的许多不同方式中的一些。
可鉴于以下条款对本公开的各个实施方案进行描述:
1.一种系统,其包括:
计算节点,其包括至少一个相应处理器和存储器,所述计算节点实现虚拟主机;
所述虚拟主机包括可执行指令,所述可执行指令被配置来:
从虚拟计算实例接收关于一个或多个中央处理单元(vCPU)的工作请求;
计算关于与所述vCPU对应的所述虚拟计算实例的本期资源信贷余额,其中资源信贷累计费率至少部分地基于相应时间段的固定费率应用到所述本期资源信贷余额,其中所述本期资源信贷余额的至少一个资源信贷在当前时间段之前累计到所述本期资源信贷余额达一定时间段;
生成一个或多个调度指令以便利用所述计算节点的所述相应至少一个处理器调度用于执行的所述工作请求,其中所述一个或多个调度指令至少部分地基于关于所述虚拟计算实例的所述本期资源信贷余额的一个或多个资源信贷的应用来生成,其中应用到所述工作请求的所述一个或多个资源信贷中的每一个在所述当前时间段内相应地提高所述相应至少一个处理器的利用率;以及
更新所述本期资源信贷余额以便扣除应用来执行所述工作请求的所述一个或多个资源信贷。
2.如条款1所述的系统,其中为了生成所述一个或多个调度指令,所述虚拟主机进一步被配置来:
在向所述工作请求应用所述一个或多个资源信贷之后:
响应于所述本期资源信贷余额中不存在用来应用到所述工作请求的剩余资源信贷,对所述一个或多个调度指令中的至少一些进行配置,以使得所述相应至少一个处理器的利用率逐渐降低到关于所述虚拟计算实例的基线利用率。
3.如条款1所述的系统,
其中所述虚拟主机包括监测代理,所述监测代理被配置来追踪关于所述虚拟计算实例随时间的所述本期资源信贷余额以及关于对所述虚拟计算实例的工作请求随时间的所应用资源信贷;
其中所述计算节点实现为一起实现基于网络的虚拟计算服务的多个计算节点的一部分,其中所述基于网络的虚拟计算服务包括基于网络的界面,所述基于网络的界面被配置来向所述基于网络的虚拟计算服务的客户端提供关于所述虚拟计算实例随时间的所述本期资源信贷余额或者关于对所述虚拟计算实例的工作请求随时间的所应用资源信贷。
4.如条款3所述的系统,其中所述虚拟计算实例是通过所述基于网络的虚拟计算服务提供的多个不同类型的虚拟计算实例中的一个,其中所述不同类型的虚拟计算实例中的每一个对应于不同的相应资源信贷累计费率。
5.一种方法,其包括:
通过一个或多个计算装置执行以下各项:
在虚拟主机的虚拟管理器处接收对托管在所述虚拟主机处的虚拟计算实例的一个或多个计算机资源的工作请求;
确定关于与所述一个或多个计算机资源对应的所述虚拟计算实例的本期资源信贷余额,其中资源信贷累计费率至少部分地基于相应时间段的固定费率应用到所述本期资源信贷余额,其中所述本期资源信贷余额的至少一个资源信贷在当前时间段之前累计到所述本期资源信贷余额达一定时间段;
生成一个或多个调度指令以便调度用于在实现为所述虚拟主机的一部分的一个或多个物理计算机资源处执行的所述工作请求,其中所述一个或多个调度指令至少部分地基于应用关于所述虚拟计算实例的所述本期资源信贷余额的一个或多个资源信贷来生成,其中应用到所述工作请求的所述一个或多个资源信贷中的每一个在所述当前时间段内相应地提高所述一个或多个物理计算机资源的利用率;以及
更新关于所述虚拟计算实例的所述本期资源信贷余额以便扣除应用来执行所述工作请求的所述一个或多个资源信贷。
6.如条款5所述的方法,其还包括:
其中所述接收、所述确定、所述生成、和所述更新针对多个不同的工作请求来执行;
将关于所述多个不同的工作请求中的每一个的所确定本期资源信贷余额记录为信贷余额度量;以及
将关于所述多个不同的工作请求中的每一个的所应用一个或多个资源信贷记录为信贷使用度量。
7.如条款6所述的方法,其还包括:
通过基于网络的界面接收对关于所述虚拟计算实例的所述信贷余额度量中的至少一些的请求;以及
响应于接收所述请求,通过所述基于网络的界面提供关于所述虚拟计算实例的所述至少一些信贷余额度量。
8.如条款6所述的方法,其还包括:
通过基于网络的界面接收对关于所述虚拟计算实例的所述信贷使用度量中的至少一些的请求;以及
响应于接收所述请求,通过所述基于网络的界面提供关于所述虚拟计算实例的所述至少一些信贷使用度量。
9.如条款6所述的方法,其还包括:
监测关于所述虚拟计算实例的所述信贷余额度量或所述信贷使用度量;
至少部分地基于所述监测来检测关于所述虚拟计算实例的警报事件;以及
响应于检测所述警报事件来提供关于所述虚拟计算实例的所述警报事件的通知。
10.如条款5所述的方法,其中所述生成所述一个或多个调度指令以便发送至所述调度器包括:
在向所述工作请求应用所述一个或多个资源信贷之后:
确定所述本期资源信贷余额中没有用来应用到所述工作请求的剩余资源信贷;
响应于确定没有剩余资源信贷,对所述一个或多个生成的调度指令中的至少一个进行配置,以使得所述一个或多个物理计算资源的利用率逐渐降低到关于所述虚拟计算实例的基线利用率。
11.如条款5所述的方法,其中所述一个或多个计算机资源是一个或多个虚拟中央处理单元(vCPU),其中所述一个或多个物理计算机资源是一个或多个中央处理单元(CPU)并且其中所述方法还包括将所述一个或多个调度指令发送至用于所述一个或多个物理CPU的调度器。
12.如条款5所述的方法,其中所述确定关于所述一个虚拟计算实例的所述本期资源信贷余额包括从所述本期资源信贷余额中排除那些在资源信贷累计时间段之前累计的尚未使用的资源信贷。
13.如条款5所述的方法,其中所述一个或多个计算机资源是多个不同的计算机资源中的一些,其中不同的相应本期资源信贷余额维持用于所述多个不同的计算机资源中的不同计算机资源,并且其中接收关于所述多个不同的计算机资源中的另一个的另一个工作请求,并且其中所述确定、所述生成、和所述更新针对另一个工作请求来执行。
14.一种存储程序指令的非暂态计算机可读存储介质,所述程序指令在由一个或多个计算装置执行时致使所述一个或多个计算装置实现:
在虚拟主机的虚拟管理器处接收对托管在所述虚拟主机处的虚拟计算实例的一个或多个计算机资源的工作请求;
确定关于与所述一个或多个虚拟计算机资源对应的所述虚拟计算实例的本期资源信贷余额,其中资源信贷累计费率至少部分地基于相应时间段的固定费率应用到所述本期资源信贷余额,其中所述本期资源信贷余额的至少一个资源信贷在当前时间段之前累计到所述本期资源信贷余额达一定时间段;
生成一个或多个调度指令以便调度用于在实现为所述虚拟主机的一部分的一个或多个物理计算机资源处执行的所述工作请求,其中所述一个或多个调度指令至少部分地基于应用关于所述虚拟计算实例的所述本期资源信贷余额的一个或多个资源信贷来生成,其中应用到所述工作请求的所述一个或多个资源信贷中的每一个在所述当前时间段内相应地提高所述一个或多个物理计算机资源的利用率;以及
更新关于所述一个虚拟计算实例的所述本期资源信贷余额以便扣除应用来执行所述工作请求的所述一个或多个资源信贷。
15.如条款14所述的非暂态计算机可读存储介质,其中所述程序指令致使所述一个或多个计算装置进一步实现:
其中所述接收、所述确定、所述生成、所述发送、和所述更新针对多个不同的工作请求来执行;
将关于所述多个不同的工作请求中的每一个的所确定本期资源信贷余额记录为信贷余额度量;以及
将关于所述多个不同的工作请求中的每一个的所应用一个或多个资源信贷记录为信贷使用度量。
16.如条款15所述的非暂态计算机可读存储介质,其中所述程序指令致使所述一个或多个计算装置进一步实现:
监测关于所述虚拟计算实例的所述信贷余额度量或所述信贷使用度量;
至少部分地基于所述监测来检测关于所述虚拟计算实例的警报事件;以及
响应于检测所述警报事件来提供关于所述虚拟计算实例的所述警报事件的通知。
17.如条款14所述的非暂态计算机可读存储介质,其中所述一个或多个计算资源是一个或多个联网资源并且其中所述一个或多个物理计算机资源是一个或多个网络通信装置。
18.如条款14所述的非暂态计算机可读存储介质,其中在所述生成所述一个或多个调度指令以发送至所述调度器中,所述程序指令致使所述一个或多个计算装置实现:
在向所述工作请求应用所述一个或多个资源信贷之后:
确定所述本期资源信贷余额中没有用来应用到所述工作请求的剩余资源信贷;
响应于确定没有剩余资源信贷,对所述一个或多个生成的调度指令中的至少一个进行配置,以使得所述一个或多个物理计算机资源的利用率逐渐降低到关于所述虚拟计算实例的基线利用率。
19.如条款14所述的非暂态计算机可读存储介质,其中在所述确定关于所述虚拟计算实例的所述本期资源信贷余额中,所述程序指令致使所述一个或多个计算装置实现从所述本期资源信贷余额中排除那些在资源信贷累计时间段之前累计的尚未使用的资源信贷。
20.如条款14所述的非暂态计算机可读存储介质,其中所述虚拟主机实现为基于网络的虚拟计算服务的一部分,其中所述一个虚拟计算实例是通过所述基于网络的虚拟计算服务提供的多个不同类型的虚拟计算实例中的一个,其中所述不同类型的虚拟计算实例中的每一个对应于不同的相应资源信贷累计费率。
在各种实施方案中,本文所述的方法可通过硬件和软件的任何组合来实现。例如,在一个实施方案中,所述方法可由包括执行程序指令的一个或多个处理器的计算机系统(例如,如图9中的计算机系统)来实现,所述程序指令存储在联接到处理器的计算机可读存储介质上。程序指令可被配置来实现本文所述的功能(例如,实现本文所述的基于网络的虚拟计算资源提供者的各种服务器和其他部件的功能)。如在图中所示和本文所述的各种方法表示方法的示例性实施方案。任何方法的顺序可改变,并且各个元素可被添加、重新排序、组合、省略、修改等。
如本文所述的用于调度虚拟计算机资源的滚动信贷资源的实施方案可在一个或多个计算机系统上实施,所述计算机系统可与各种其他装置交互。图9是示出根据各种实施方案的示例性计算机系统的方框图。例如,在不同的实施方案中,计算机系统1000可被配置来实现计算群集的节点、分布式键值数据存储库、和/或客户端。计算机系统1000可能是各种类型的装置中的任何一种,包括但不限于:个人计算机系统、台式计算机、膝上型计算机或笔记本电脑、主机计算机系统、手持式计算机、工作站、网络计算机、消费装置、应用服务器、存储装置、电话、移动电话、或大体上任何类型的计算装置。
计算机系统1000包括通过输入/输出(I/O)接口1030连接到系统存储器1020的一个或多个处理器1010(其中的任何一个可包括多个核心,所述多个核心可为单线程的或多线程的)。计算机系统1000还包括联接到I/O接口1030的网络接口1040。在各种实施方案中,计算机系统1000可以是包括一个处理器1010的单处理器系统,或包括若干处理器1010(例如两个、四个、八个或另一合适数量)的多处理器系统。处理器1010可以是能够执行指令的任何合适的处理器。例如,在各种实施方案中,处理器1010可以是实现各种指令集架构(ISA)中任何一种架构的通用或嵌入式处理器,所述架构诸如x86、PowerPC、SPARC、或MIPSISA或任何其他合适ISA。在多处理器系统中,每一个处理器1010通常可但不一定实现相同的ISA。计算机系统1000还包括一个或多个网络通信装置(例如,网络接口1040),用于与其他系统和/或部件通过通信网络(例如,因特网、LAN等)通信。例如,在系统1000上实施的客户端应用程序可使用网络接口1040,以便与在单个服务器或一组服务器上实施的服务器应用程序通信,所述一组服务器实现本文所述的数据仓库系统的一个或多个部件。在另一实例中,在计算机系统1000上实施的服务器应用程序的实例可使用网络接口1040,以便与可能在其他计算机系统(例如,计算机系统1090)上实施的服务器应用程序(或另一服务器应用程序)的其他实例通信。
在例示的实施方案中,计算机系统1000还包括一个或多个持久存储装置1060和/或一个或多个I/O装置1080。在各种实施方案中,持久存储装置1060可对应于磁盘驱动、磁带驱动、固态存储器、其他大容量存储装置、或任何其他持久存储装置。计算机系统1000(或分布式应用程序或在其上操作的操作系统)可如期望的将指令和/或数据存储在持久存储装置1060中,并且可按需检索存储的指令和/或数据。例如,在一些实施方案中,计算机系统1000可托管存储系统服务器节点,并且持久存储1060可包括附接到那个服务器节点的SSD。
计算机系统1000包括被配置来存储可由处理器1010访问的指令和数据的一个或多个系统存储器1020。在各种实施方案中,系统存储器1020可使用任何合适的存储器技术(例如,高速缓冲存储器、静态随机存取存储器(SRAM)、DRAM、RDRAM、EDO RAM、DDR 10RAM、同步动态RAM(SDRAM)、Rambus RAM、EEPROM、非暂态/闪存类型的存储器、或任何其他类型的存储器中的一个或多个)来实现。系统存储器1020可包含程序指令1025,所述程序指令1025可由处理器1010执行以便实现本文所述的方法和技术。在各种实施方案中,程序指令1025可能以平台本地二进制、任何解译语言(诸如JavaTM字节代码)、或以任何其他语言(诸如C/C++、JavaTM等)、或以其任何组合来编码。例如,在例示的实施方案中,程序指令1025包括可执行来在不同的实施方案中实现虚拟计算资源提供者网络的功能的程序指令。在一些实施方案中,程序指令1025可实现多个独立客户端、服务器节点、和/或其他部件。
在一些实施方案中,程序指令1025可包括可执行以便实现操作系统(未示出)的指令,所述操作系统可以是各种操作系统中的任何一种,诸如UNIX、LINUX、SolarisTM、MacOSTM、WindowsTM等。程序指令1025中的任何一个或所有可被提供作为可包括具有在其上存储的指令的非暂态计算机可读存储介质的计算机程序产品、或软件,所述指令可用来编程计算机系统(或其他电子装置)以便根据各种实施方案执行进程。非暂态计算机可读存储介质可包括用于存储机器(例如,计算机)可读的形式(例如,软件、处理应用程序)的信息的任何机构。一般来说,非暂态计算机可访问介质可包括计算机可读存储介质或存储器介质,诸如磁性介质或光学介质,例如通过I/O接口1030联接到计算机系统1000的磁盘或DVD/CD-ROM。非暂态计算机可读存储介质还可包括可作为系统存储器1020或另一类型的存储器被包括在计算机系统1000的一些实施方案中的任何易失性或非易失性介质,诸如RAM(例如,SDRAM、DDR SDRAM、RDRAM、SRAM等)、ROM等。在其他实施方案中,程序指令可使用通过通信介质(诸如网络链接和/或无线链接)传达的光学、声学或其他形式的传播信号(例如,载波、红外线信号、数字信号等)来通信,诸如可通过网络接口1040来实现。
在一些实施方案中,系统存储器1020可包括可如本文所述配置的数据存储1045。一般而言,系统存储器1020(例如,系统存储器1020内的数据存储1045)、持久存储1060、和/或远程存储1070可存储数据块、数据块复制品、与数据块和/或它们的状态关联的元数据、配置信息、和/或可在实现本文所述的方法和技术中使用的任何其他信息。
在一个实施方案中,I/O接口1030可被配置来协调处理器1010、系统存储器1020和系统中的任何外围装置之间的I/O流量,包括通过网络接口1040或其他外围接口。在一些实施方案中,I/O接口1030可执行任何必需协议、时序或其他数据转换以将来自一个部件(例如,系统存储器1020)的数据信号转变成适合于由另一个部件(例如,处理器1010)使用的格式。在一些实施方案中,I/O接口1030可包括对于通过各种类型的外围总线附接的装置的支持,所述外围总线诸如外围组件互连(PCI)总线标准或通用串行总线(USB)标准的改变形式。在一些实施方案中,I/O接口1030的功能可分到两个或更多个单独的部件中,例如像北桥和南桥。另外,在一些实施方案中,I/O接口1030的一些或所有功能性,诸如至系统存储器1020的接口,可直接并入处理器1010中。
例如,网络接口1040可被配置来允许数据在计算机系统1000与附接到网络的其他装置之间交换,所述其他装置例如像其他计算机系统1090(其可实现一个或多个存储系统服务器节点、数据库引擎头节点、和/或本文所述的数据库系统的客户端)。此外,网络接口1040可被配置来允许在计算机系统1000与各种I/O装置1050和/或远程存储1070之间的通信。输入/输出装置1050可在一些实施方案中包括一个或多个显示终端、键盘、小键盘、触摸屏、扫描装置、语音或光学识别装置,或适合于由一个或多个计算机系统1000键入或检索数据的任何其他装置。多个输入/输出装置1050可存在于计算机系统1000中或可分布于包括计算机系统1000的分布式系统的各种节点上。在一些实施方案中,类似输入/输出装置可与计算机系统1000分开并且可通过有线或无线连接,诸如通过网络接口1040来与包括计算机系统1000的分布式系统的一个或多个节点交互。网络接口1040通常可支持一个或多个无线网络协议(例如,Wi-Fi/IEEE 802.11、或另一无线联网标准)。然而,在各种实施方案中,网络接口1040可支持通过任何合适的有线或无线通用数据网络(例如像其他类型的以太网网络)进行通信。另外,网络接口1040可支持通过电信/电话网络(诸如模拟语音网络或数字光纤通信网络)、通过存储区域网络(诸如光纤通道SAN)或通过任何其他合适类型的网络和/或协议进行通信。在各种实施方案中,计算机系统1000可包括多于、少于、或不同于图9所示的那些的部件(例如,显示器、视频卡、音频卡、外围装置、其他网络接口,诸如ATM接口、以太网接口、帧中继接口等)。
注意本文所述的分布式系统实施方案中的任何一个,或它们的组件中的任何一个,可被实现作为一个或多个基于网络的服务。例如,计算服务内的计算群集可将计算服务和/或采用本文所述的分布式计算系统的其他类型的服务作为基于网络的服务呈现给客户端。在一些实施方案中,基于网络的服务可由被设计来支持通过网络的彼此协作的机对机交互的软件和/或硬件系统实现。基于网络的服务可具有以机器可处理格式描述的接口,诸如网络服务描述语言(WSDL)。其他系统可以由描述基于网络的服务的接口的描述规定的方式与基于网络的服务交互。例如,基于网络的服务可限定其他系统可调用的各种操作,并且可限定特定的应用编程接口(API),当请求各种操作时,其他系统可能期望服从所述特定的应用编程接口(API)。
在各种实施方案中,通过使用包括与基于网络的服务请求关联的参数和/或数据的消息,基于网络的服务可被请求或调用。这种消息可根据特定的标记语言(诸如可延伸标记语言(XML))被格式化,和/或使用协议(诸如简单对象访问协议(SOAP))来封装。为执行基于网络的服务请求,基于网络的服务客户端可组装包括所述请求的消息,并且使用基于因特网的应用层转移协议(诸如超文本传输协议(HTTP))将所述消息传达至对应于基于网络的服务的可寻址端点(例如,统一资源定位符(URL))。
在一些实施方案中,基于网络的服务可使用表述性状态传输(“RESTful”)技术而不是基于消息的技术来实现。例如,根据RESTful技术实现的基于网络的服务可通过包括在HTTP方法(诸如PUT、GET或DELETE)内而不是封装在SOAP消息内的参数来调用。
尽管已相当详细地描述了以上实施方案,但一旦完全了解以上公开内容,各种改变和修改对所属领域的技术人员将变为显而易见。旨在所附权利要求被解释成包含所有这些修改和改变,并且相应地,以上描述应视为具有说明性而非限制性意义。

Claims (15)

1.一种调度一个或多个计算机资源的方法,其包括:
通过一个或多个计算装置执行以下各项:
在虚拟主机的虚拟管理器处接收对托管在所述虚拟主机处的虚拟计算实例的一个或多个计算机资源的工作请求;
确定在当前时间段的所述虚拟计算实例的资源信贷余额,其中所述资源信贷余额的信贷是用于超过基线利用率的一个或多个计算机资源的利用率的分配信贷,其中资源信贷累计费率应用到将相同数量的资源信贷添加到相应连续时间段的资源信贷余额,其中至少一个资源信贷在当前时间段之前累计到本期资源信贷余额达一定时间段,以及其中资源信贷余额不超过资源信贷余额限值;
生成一个或多个调度指令以便调度用于在实现为所述虚拟主机的一部分的一个或多个物理计算机资源处执行的所述工作请求,其中所述一个或多个调度指令至少部分地基于应用所述本期资源信贷余额的一个或多个资源信贷来生成,以在当前时间段内分配对实现为所述虚拟主机的一部分的所述一个或多个物理计算机资源的提高的利用率,从而超过对于所述虚拟计算实例的对应于所述基线利用率的分配,其中所述基线利用率在所述相应连续时间段中的每一个内保障对于所述虚拟计算实例的所述一个或多个计算机资源的基线利用率,其中应用到所述工作请求的所述一个或多个资源信贷中的每一个在所述当前时间段内相应地提高所述一个或多个物理计算机资源的利用率以超过所述基线利用率;以及
更新关于所述虚拟计算实例的所述本期资源信贷余额以便扣除应用来执行所述工作请求的所述一个或多个资源信贷。
2.如权利要求1所述的方法,其还包括:
其中所述接收、所述确定、所述生成、和所述更新针对多个不同的工作请求来执行;
将关于所述多个不同的工作请求中的每一个的在当前时间段的所确定资源信贷余额记录为信贷余额度量;以及
将关于所述多个不同的工作请求中的每一个的所应用一个或多个资源信贷记录为信贷使用度量。
3.如权利要求2所述的方法,其还包括:
通过基于网络的界面接收对关于所述虚拟计算实例的所述信贷余额度量中的至少一些信贷余额度量的请求;以及
响应于接收所述请求,通过所述基于网络的界面提供关于所述虚拟计算实例的所述至少一些信贷余额度量。
4.如权利要求2所述的方法,其还包括:
通过基于网络的界面接收对关于所述虚拟计算实例的所述信贷使用度量中的至少一些信贷使用度量的请求;以及
响应于接收所述请求,通过所述基于网络的界面提供关于所述虚拟计算实例的所述至少一些信贷使用度量。
5.如权利要求2所述的方法,其还包括:
监测关于所述虚拟计算实例的所述信贷余额度量或所述信贷使用度量;
至少部分地基于所述监测来检测关于所述虚拟计算实例的警报事件;以及
响应于检测所述警报事件来提供关于所述虚拟计算实例的所述警报事件的通知。
6.如权利要求1所述的方法,其中所述生成所述一个或多个调度指令包括:
在自从所述应用所述本期资源信贷余额的所述一个或多个资源信贷以为所述工作请求分配所述一个或多个物理计算机资源的提高的利用率过去一定时间之后,确定所述本期资源信贷余额中没有用来应用到所述工作请求的剩余资源信贷;以及
响应于确定没有剩余资源信贷,对所述一个或多个生成的调度指令中的至少一个进行配置,以使得所述一个或多个物理计算机资源的利用率逐渐降低到所述基线利用率。
7.如权利要求1所述的方法,其中所述一个或多个计算机资源是一个或多个虚拟中央处理单元(vCPU),其中所述一个或多个物理计算机资源是一个或多个中央处理单元CPU并且其中所述方法还包括将所述一个或多个调度指令发送至用于所述一个或多个中央处理单元CPU的调度器。
8.如权利要求1所述的方法,其中所述确定关于所述虚拟计算实例的所述资源信贷余额包括从所述资源信贷余额中排除那些在资源信贷累计时间段之前累计的尚未使用的资源信贷。
9.如权利要求1所述的方法,其中所述一个或多个计算机资源是多个不同的计算机资源中的一些,其中不同的相应资源信贷余额维持用于所述多个不同的计算机资源中的不同计算机资源,并且其中接收关于所述多个不同的计算机资源中的另一个的另一个工作请求,并且其中所述确定、所述生成、和所述更新针对另一个工作请求来执行。
10.一种包括联接到存储程序指令的一个或多个非暂态计算机可读存储介质的一个或多个处理器的系统,所述程序指令在由所述一个或多个处理器执行时致使所述系统来:
在虚拟主机的虚拟管理器处接收关于托管在所述虚拟主机处的虚拟计算实例的一个或多个计算机资源的工作请求;
确定在当前时间段的所述虚拟计算实例的资源信贷余额,其中所述资源信贷余额的信贷是用于超过基线利用率的一个或多个计算机资源的利用率的分配信贷,其中资源信贷累计费率应用到将相同数量的资源信贷添加到相应连续时间段的资源信贷余额,其中至少一个资源信贷在当前时间段之前累计到本期资源信贷余额达一定时间段,以及其中资源信贷余额不超过资源信贷余额限值;
生成一个或多个调度指令以便调度用于在实现为所述虚拟主机的一部分的一个或多个物理计算机资源处执行的所述工作请求,其中所述一个或多个调度指令至少部分地基于应用所述本期资源信贷余额的一个或多个资源信贷来生成,以在当前时间段内分配对实现为所述虚拟主机的一部分的所述一个或多个物理计算机资源的提高的利用率,从而超过对于所述虚拟计算实例的对应于所述基线利用率的分配,其中所述基线利用率在所述相应连续时间段中的每一个内保障对于所述虚拟计算实例的所述一个或多个计算机资源的基线利用率,其中应用到所述工作请求的所述一个或多个资源信贷中的每一个在所述当前时间段内相应地提高所述一个或多个物理计算机资源的利用率以超过所述基线利用率;以及
更新关于所述一个虚拟计算实例的所述本期资源信贷余额以便扣除应用来执行所述工作请求的所述一个或多个资源信贷。
11.如权利要求10所述的系统,其中所述程序指令进一步致使所述系统来:
将关于多个不同的工作请求中的每一个的所确定资源信贷余额记录为信贷余额度量;以及
将关于所述多个不同的工作请求中的每一个的所应用一个或多个资源信贷记录为信贷使用度量。
12.如权利要求11所述的系统,其中所述程序指令进一步致使所述系统来:
监测关于所述虚拟计算实例的所述信贷余额度量或所述信贷使用度量;
至少部分地基于所述监测来检测关于所述虚拟计算实例的警报事件;以及
响应于检测所述警报事件来发送关于所述虚拟计算实例的所述警报事件的通知。
13.如权利要求10所述的系统,其中所述一个或多个计算机资源是一个或多个联网资源并且其中所述一个或多个物理计算机资源是一个或多个网络通信装置。
14.如权利要求10所述的系统,其中在所述生成所述一个或多个调度指令中,所述程序指令进一步致使所述系统来:
在自从所述应用所述本期资源信贷余额的所述一个或多个资源信贷以为所述工作请求分配所述一个或多个物理计算机资源的提高的利用率过去一定时间之后,确定所述本期资源信贷余额中没有用来应用到所述工作请求的剩余资源信贷;
响应于确定没有剩余资源信贷,对所述一个或多个生成的调度指令中的至少一个进行配置,以使得所述一个或多个物理计算机资源的利用率逐渐降低到关于所述虚拟计算实例的所述基线利用率。
15.如权利要求10所述的系统,其中在所述确定关于所述虚拟计算实例的所述资源信贷余额中,所述程序指令进一步致使所述系统从所述资源信贷余额中排除那些在资源信贷累计时间段之前累计的尚未使用的资源信贷。
CN201580034494.8A 2014-06-27 2015-06-24 用于虚拟计算机资源调度的滚动资源信贷 Active CN106415500B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010073301.2A CN111176796B (zh) 2014-06-27 2015-06-24 用于虚拟计算机资源调度的滚动资源信贷

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201462018466P 2014-06-27 2014-06-27
US62/018,466 2014-06-27
US14/331,745 US10649796B2 (en) 2014-06-27 2014-07-15 Rolling resource credits for scheduling of virtual computer resources
US14/331,745 2014-07-15
PCT/US2015/037443 WO2015200493A1 (en) 2014-06-27 2015-06-24 Rolling resource credits for scheduling of virtual computer resources

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202010073301.2A Division CN111176796B (zh) 2014-06-27 2015-06-24 用于虚拟计算机资源调度的滚动资源信贷

Publications (2)

Publication Number Publication Date
CN106415500A CN106415500A (zh) 2017-02-15
CN106415500B true CN106415500B (zh) 2020-02-21

Family

ID=54930573

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202010073301.2A Active CN111176796B (zh) 2014-06-27 2015-06-24 用于虚拟计算机资源调度的滚动资源信贷
CN201580034494.8A Active CN106415500B (zh) 2014-06-27 2015-06-24 用于虚拟计算机资源调度的滚动资源信贷

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202010073301.2A Active CN111176796B (zh) 2014-06-27 2015-06-24 用于虚拟计算机资源调度的滚动资源信贷

Country Status (7)

Country Link
US (2) US10649796B2 (zh)
EP (1) EP3161637A1 (zh)
JP (3) JP6560263B2 (zh)
CN (2) CN111176796B (zh)
AU (3) AU2015279996A1 (zh)
CA (1) CA2951401C (zh)
WO (1) WO2015200493A1 (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10649796B2 (en) 2014-06-27 2020-05-12 Amazon Technologies, Inc. Rolling resource credits for scheduling of virtual computer resources
US10853077B2 (en) 2015-08-26 2020-12-01 Huawei Technologies Co., Ltd. Handling Instruction Data and Shared resources in a Processor Having an Architecture Including a Pre-Execution Pipeline and a Resource and a Resource Tracker Circuit Based on Credit Availability
US11221853B2 (en) * 2015-08-26 2022-01-11 Huawei Technologies Co., Ltd. Method of dispatching instruction data when a number of available resource credits meets a resource requirement
CN107133087A (zh) 2016-02-29 2017-09-05 阿里巴巴集团控股有限公司 一种资源调度方法与设备
US10149193B2 (en) 2016-06-15 2018-12-04 At&T Intellectual Property I, L.P. Method and apparatus for dynamically managing network resources
US10284730B2 (en) 2016-11-01 2019-05-07 At&T Intellectual Property I, L.P. Method and apparatus for adaptive charging and performance in a software defined network
US10454836B2 (en) 2016-11-01 2019-10-22 At&T Intellectual Property I, L.P. Method and apparatus for dynamically adapting a software defined network
US10505870B2 (en) 2016-11-07 2019-12-10 At&T Intellectual Property I, L.P. Method and apparatus for a responsive software defined network
US10469376B2 (en) 2016-11-15 2019-11-05 At&T Intellectual Property I, L.P. Method and apparatus for dynamic network routing in a software defined network
US10039006B2 (en) 2016-12-05 2018-07-31 At&T Intellectual Property I, L.P. Method and system providing local data breakout within mobility networks
US10373284B2 (en) * 2016-12-12 2019-08-06 Amazon Technologies, Inc. Capacity reservation for virtualized graphics processing
US10264075B2 (en) * 2017-02-27 2019-04-16 At&T Intellectual Property I, L.P. Methods, systems, and devices for multiplexing service information from sensor data
US10469286B2 (en) 2017-03-06 2019-11-05 At&T Intellectual Property I, L.P. Methods, systems, and devices for managing client devices using a virtual anchor manager
US10749796B2 (en) 2017-04-27 2020-08-18 At&T Intellectual Property I, L.P. Method and apparatus for selecting processing paths in a software defined network
US10819606B2 (en) 2017-04-27 2020-10-27 At&T Intellectual Property I, L.P. Method and apparatus for selecting processing paths in a converged network
US10212289B2 (en) 2017-04-27 2019-02-19 At&T Intellectual Property I, L.P. Method and apparatus for managing resources in a software defined network
US10673751B2 (en) 2017-04-27 2020-06-02 At&T Intellectual Property I, L.P. Method and apparatus for enhancing services in a software defined network
US10382903B2 (en) 2017-05-09 2019-08-13 At&T Intellectual Property I, L.P. Multi-slicing orchestration system and method for service and/or content delivery
US10257668B2 (en) 2017-05-09 2019-04-09 At&T Intellectual Property I, L.P. Dynamic network slice-switching and handover system and method
CN108984264B (zh) * 2017-06-02 2022-11-15 阿里巴巴集团控股有限公司 虚拟gpu的实现方法、装置及系统
US10070344B1 (en) 2017-07-25 2018-09-04 At&T Intellectual Property I, L.P. Method and system for managing utilization of slices in a virtual network function environment
US10104548B1 (en) 2017-12-18 2018-10-16 At&T Intellectual Property I, L.P. Method and apparatus for dynamic instantiation of virtual service slices for autonomous machines
KR102507249B1 (ko) * 2018-03-08 2023-03-07 삼성전자주식회사 성능 모드 제어 방법 및 이를 지원하는 전자 장치
US10963296B1 (en) * 2018-06-22 2021-03-30 Amazon Technologies, Inc. Load balancing of compute resources based on resource credits
CN109033468B (zh) * 2018-08-31 2022-09-16 创新先进技术有限公司 资源变动的处理方法及装置
US11550634B2 (en) * 2019-03-08 2023-01-10 Microsoft Technology Licensing, Llc Capacity management in a cloud computing system using virtual machine series modeling
CN110648232A (zh) * 2019-08-20 2020-01-03 上海数据交易中心有限公司 处理节点的额度控制方法及装置、存储介质、终端
KR102496115B1 (ko) * 2019-11-28 2023-02-06 한국전자통신연구원 강화학습 기반 이타적 스케줄링 장치 및 방법
US20220327003A1 (en) * 2021-04-09 2022-10-13 Oracle International Corporation Cloud edge device virtualization

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1841331A (zh) * 2005-03-30 2006-10-04 国际商业机器公司 为被先占的虚拟处理器分配应得处理器周期的方法和系统
JP2011198027A (ja) * 2010-03-19 2011-10-06 Fujitsu Ltd 仮想マシンシステムおよび仮想マシン管理方法

Family Cites Families (78)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6714960B1 (en) * 1996-11-20 2004-03-30 Silicon Graphics, Inc. Earnings-based time-share scheduling
US7065762B1 (en) * 1999-03-22 2006-06-20 Cisco Technology, Inc. Method, apparatus and computer program product for borrowed-virtual-time scheduling
US7065764B1 (en) 2001-07-20 2006-06-20 Netrendered, Inc. Dynamically allocated cluster system
US7093250B1 (en) * 2001-10-11 2006-08-15 Ncr Corporation Priority scheduler for database access
US7194616B2 (en) * 2001-10-27 2007-03-20 International Business Machines Corporation Flexible temporary capacity upgrade/downgrade in a computer system without involvement of the operating system
US7330430B2 (en) * 2002-06-04 2008-02-12 Lucent Technologies Inc. Packet-based traffic shaping
US7698115B2 (en) * 2003-06-30 2010-04-13 Microsoft Corporation System and method for dynamically allocating resources in a client/server environment
US7971204B2 (en) * 2004-03-13 2011-06-28 Adaptive Computing Enterprises, Inc. System and method of co-allocating a reservation spanning different compute resources types
US20050273511A1 (en) * 2004-06-08 2005-12-08 Hewlett-Packard Development Company, L.P. Equitable resource sharing in grid-based computing environments
US7797699B2 (en) 2004-09-23 2010-09-14 Intel Corporation Method and apparatus for scheduling virtual machine access to shared resources
US20060130062A1 (en) * 2004-12-14 2006-06-15 International Business Machines Corporation Scheduling threads in a multi-threaded computer
US7770173B2 (en) * 2005-02-03 2010-08-03 International Business Machines Corporation System for dynamic processor enablement
US8091088B2 (en) * 2005-02-22 2012-01-03 Microsoft Corporation Method and system for hierarchical resource management involving hard and soft resource limits
EP2036267B1 (en) * 2006-06-22 2009-10-07 Xelerated AB A processor and a method for a processor
US8255910B2 (en) * 2006-07-18 2012-08-28 Hewlett-Packard Development Company, L.P. Fair weighted proportional-share virtual time scheduler
CN100517237C (zh) * 2006-09-28 2009-07-22 联想(北京)有限公司 一种虚拟机系统及其cpu调度方法
US9354960B2 (en) * 2010-12-27 2016-05-31 Red Hat, Inc. Assigning virtual machines to business application service groups based on ranking of the virtual machines
US7707248B2 (en) * 2007-06-25 2010-04-27 Microsoft Corporation Credit-based peer-to-peer storage
US8397236B2 (en) * 2007-08-24 2013-03-12 Virtualmetrix, Inc. Credit based performance managment of computer systems
US20090077248A1 (en) 2007-09-14 2009-03-19 International Business Machines Corporation Balancing access to shared resources
US8045563B2 (en) 2007-12-27 2011-10-25 Cellco Partnership Dynamically adjusted credit based round robin scheduler
EP2141643A1 (en) * 2008-07-04 2010-01-06 Koninklijke KPN N.V. Software usage controlled by CPU utilization
JP5157717B2 (ja) * 2008-07-28 2013-03-06 富士通株式会社 仮想バッテリを備えた仮想マシンシステムおよび仮想バッテリを備えた仮想マシンシステム用プログラム
JP2010113677A (ja) 2008-11-10 2010-05-20 Hitachi Ltd サービス管理装置、サービス管理方法およびサービス管理システム
TWI397010B (zh) * 2008-12-10 2013-05-21 Inst Information Industry Virtual machine module scheduling, scheduling methods and computer program products
US9086913B2 (en) * 2008-12-31 2015-07-21 Intel Corporation Processor extensions for execution of secure embedded containers
US8019861B2 (en) 2009-01-29 2011-09-13 Vmware, Inc. Speculative virtual machine resource scheduling
CN101488098B (zh) * 2009-02-13 2011-11-30 华中科技大学 基于虚拟计算技术的多核计算资源管理系统
US8914511B1 (en) * 2009-06-26 2014-12-16 VMTurbo, Inc. Managing resources in virtualization systems
US8910153B2 (en) * 2009-07-13 2014-12-09 Hewlett-Packard Development Company, L. P. Managing virtualized accelerators using admission control, load balancing and scheduling
US8245234B2 (en) * 2009-08-10 2012-08-14 Avaya Inc. Credit scheduler for ordering the execution of tasks
EP2323035B1 (en) * 2009-11-16 2019-04-17 Red Bend Software Scheduling system
US8037187B2 (en) * 2009-12-11 2011-10-11 International Business Machines Corporation Resource exchange management within a cloud computing environment
US8984521B2 (en) * 2010-02-18 2015-03-17 International Business Machines Corporation Computer system performance by applying rate limits to control block tenancy
JP2011182115A (ja) * 2010-02-26 2011-09-15 Hitachi Ltd 通信方法、通信システム及びサーバ
JP5388909B2 (ja) * 2010-03-09 2014-01-15 株式会社日立製作所 ハイパバイザ、計算機システム、及び、仮想プロセッサのスケジューリング方法
KR101690652B1 (ko) * 2010-08-25 2016-12-28 삼성전자주식회사 멀티코어 시스템의 스케쥴링 장치 및 방법
EP2622504A4 (en) * 2010-09-30 2018-01-17 Amazon Technologies, Inc. Virtual resource cost tracking with dedicated implementation resources
US8429276B1 (en) * 2010-10-25 2013-04-23 Juniper Networks, Inc. Dynamic resource allocation in virtual environments
US8918784B1 (en) 2010-12-21 2014-12-23 Amazon Technologies, Inc. Providing service quality levels through CPU scheduling
US8615579B1 (en) * 2010-12-28 2013-12-24 Amazon Technologies, Inc. Managing virtual machine migration
US20120221454A1 (en) * 2011-02-28 2012-08-30 Morgan Christopher Edwin Systems and methods for generating marketplace brokerage exchange of excess subscribed resources using dynamic subscription periods
US9454406B2 (en) * 2011-02-28 2016-09-27 Novell, Inc. Techniques for cloud bursting
CN102681899B (zh) * 2011-03-14 2015-06-10 金剑 云计算服务平台的虚拟计算资源动态管理方法
US8990149B2 (en) * 2011-03-15 2015-03-24 International Business Machines Corporation Generating a predictive model from multiple data sources
CN102117226A (zh) * 2011-03-18 2011-07-06 浪潮(北京)电子信息产业有限公司 一种资源调度系统及资源调度方法
US8676981B2 (en) * 2011-05-12 2014-03-18 International Business Machines Corporation Routing service requests based on lowest actual cost within a federated virtual service cloud
US8863140B2 (en) * 2011-08-29 2014-10-14 Oracle International Corporation Method for resource management allocating and freeing credits from and to a resource credit tree
US8959114B2 (en) * 2011-10-21 2015-02-17 Salesforce.Com, Inc. Entitlement management in an on-demand system
CN102413186B (zh) * 2011-12-02 2014-07-30 北京星网锐捷网络技术有限公司 基于私有云计算的资源调度方法、装置和云管理服务器
EP2798489A4 (en) 2011-12-26 2016-06-22 Intel Corp TERMINATION FOR VIRTUAL CENTRAL DATA PROCESSING UNITS ON VIRTUAL COMPUTERS BETWEEN PHYSICAL PROCESSING UNITS
CN103744714A (zh) * 2011-12-31 2014-04-23 华茂云天科技(北京)有限公司 基于云计算的虚拟机管理平台
CN103248659B (zh) * 2012-02-13 2016-04-20 北京华胜天成科技股份有限公司 一种云计算资源调度方法和系统
US20170278087A1 (en) * 2012-03-28 2017-09-28 Google Inc. Virtual machine pricing model
US9027024B2 (en) * 2012-05-09 2015-05-05 Rackspace Us, Inc. Market-based virtual machine allocation
US9218196B2 (en) * 2012-05-17 2015-12-22 International Business Machines Corporation Performing pre-stage replication of data associated with virtual machines prior to migration of virtual machines based on resource usage
US8930948B2 (en) * 2012-06-21 2015-01-06 Vmware, Inc. Opportunistically proactive resource management using spare capacity
US20140013321A1 (en) 2012-07-05 2014-01-09 Telefonica, S.A. Method for providing cloud computing resources
US8949848B2 (en) * 2012-08-20 2015-02-03 International Business Machines Corporation Reducing usage of resource utilized by a virtual machine whose resource utilization is adversely affecting neighboring virtual machines
US9130969B2 (en) * 2012-08-23 2015-09-08 Seagate Technology Llc Data storage I/O communication method and apparatus
US9379995B2 (en) * 2012-09-11 2016-06-28 Vmware, Inc. Resource allocation diagnosis on distributed computer systems based on resource hierarchy
US9189260B2 (en) * 2012-09-27 2015-11-17 International Business Machines Corporation Resource allocation for virtual machines and logical partitions
WO2014073024A1 (en) 2012-11-09 2014-05-15 Hitachi, Ltd. Management computer, computer system, and instance management method
US9304803B2 (en) * 2012-11-12 2016-04-05 Vmware, Inc. Cooperative application workload scheduling for a consolidated virtual environment
CN103036800B (zh) * 2012-12-14 2015-09-09 北京高森明晨信息科技有限公司 虚拟机负载均衡系统、节点及方法
CN103095599A (zh) * 2013-01-18 2013-05-08 浪潮电子信息产业股份有限公司 一种云计算操作系统中动态反馈加权综合负载调度方法
CN103064746B (zh) * 2013-01-23 2015-08-12 上海交通大学 基于当前credit进行预测调度的处理器资源精确分配方法
US9454294B2 (en) * 2013-03-15 2016-09-27 International Business Machines Corporation Creating, provisioning and managing virtual data centers
US9634958B2 (en) * 2013-04-02 2017-04-25 Amazon Technologies, Inc. Burst capacity for user-defined pools
US10063712B2 (en) * 2013-06-21 2018-08-28 Openet Telecom Ltd. System and method for dynamically allocating quota for shared balances in distributed telecommunications networks
US9602426B2 (en) * 2013-06-21 2017-03-21 Microsoft Technology Licensing, Llc Dynamic allocation of resources while considering resource reservations
US9218221B2 (en) * 2013-06-25 2015-12-22 Amazon Technologies, Inc. Token sharing mechanisms for burst-mode operations
KR20160004365A (ko) * 2013-06-29 2016-01-12 인텔 코포레이션 크레딧 기반의 중재를 위한 서비스 레이트 재분배
WO2015019538A1 (ja) * 2013-08-05 2015-02-12 日本電気株式会社 仮想リソース制御システムおよび仮想リソース制御方法
US10554579B2 (en) * 2014-01-02 2020-02-04 Sky Atlas Iletisim Sanayi Ve Ticaret Anonim Sirketi Method and system for allocating resources to resource consumers in a cloud computing environment
US9396009B2 (en) * 2014-01-30 2016-07-19 International Business Machines Corporation Optimized global capacity management in a virtualized computing environment
US10721173B2 (en) * 2014-03-31 2020-07-21 Hewlett Packard Enterprise Development Lp Credit distribution to clients
US10649796B2 (en) 2014-06-27 2020-05-12 Amazon Technologies, Inc. Rolling resource credits for scheduling of virtual computer resources

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1841331A (zh) * 2005-03-30 2006-10-04 国际商业机器公司 为被先占的虚拟处理器分配应得处理器周期的方法和系统
JP2011198027A (ja) * 2010-03-19 2011-10-06 Fujitsu Ltd 仮想マシンシステムおよび仮想マシン管理方法

Also Published As

Publication number Publication date
AU2018204629A1 (en) 2018-07-12
CN111176796B (zh) 2023-12-05
EP3161637A1 (en) 2017-05-03
JP2019194914A (ja) 2019-11-07
CA2951401C (en) 2020-02-25
AU2015279996A1 (en) 2017-01-05
CN111176796A (zh) 2020-05-19
JP6560263B2 (ja) 2019-08-14
AU2020250308A1 (en) 2020-11-05
CN106415500A (zh) 2017-02-15
JP2017526999A (ja) 2017-09-14
JP2021119502A (ja) 2021-08-12
JP7189997B2 (ja) 2022-12-14
US20200272486A1 (en) 2020-08-27
CA2951401A1 (en) 2015-12-30
JP6878512B2 (ja) 2021-05-26
US10649796B2 (en) 2020-05-12
WO2015200493A1 (en) 2015-12-30
US20150378753A1 (en) 2015-12-31
US11487562B2 (en) 2022-11-01

Similar Documents

Publication Publication Date Title
US11487562B2 (en) Rolling resource credits for scheduling of virtual computer resources
US9626210B2 (en) Resource credit pools for replenishing instance resource credit balances of virtual compute instances
US10452438B2 (en) Parameter selection for optimization of task execution based on execution history for prior tasks
US9635103B2 (en) Dynamic virtual resource request rate control for utilizing physical resources
US10552774B2 (en) Cost-minimizing task scheduler
US11163481B2 (en) Monitoring storage systems for performance
US9529633B2 (en) Variable timeslices for processing latency-dependent workloads
US9430280B1 (en) Task timeouts based on input data characteristics
US9294236B1 (en) Automated cloud resource trading system
US10965566B2 (en) System and method for detecting changes in cloud service up-time
US9985848B1 (en) Notification based pricing of excess cloud capacity
US11783237B2 (en) Dynamic modification of interruptibility settings for network-accessible resources
JP2023508591A (ja) クラウド・テナントのオンボード/オフボードの間の外部システムのためのスケーリング計画の生成
WO2016040743A1 (en) Dynamic virtual resource request rate control for utilizing physical resources
US11928518B2 (en) Noisy-neighbor detection and remediation
US10489198B2 (en) Scheduling workload service operations using value increase scheme
US10922666B1 (en) Resource management for logical and physical availability zones of a provider network

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