CN113614694A - 使用预测容量使用情况对虚拟机工作负载进行装箱 - Google Patents

使用预测容量使用情况对虚拟机工作负载进行装箱 Download PDF

Info

Publication number
CN113614694A
CN113614694A CN202080023177.7A CN202080023177A CN113614694A CN 113614694 A CN113614694 A CN 113614694A CN 202080023177 A CN202080023177 A CN 202080023177A CN 113614694 A CN113614694 A CN 113614694A
Authority
CN
China
Prior art keywords
compute
workload
computing
instances
pool
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
Application number
CN202080023177.7A
Other languages
English (en)
Other versions
CN113614694B (zh
Inventor
J·A·加布里埃尔松
J·M·伯金
B·巴尼特
K·F·唐
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
Priority claimed from US16/362,542 external-priority patent/US11243794B2/en
Priority claimed from US16/362,539 external-priority patent/US11221887B2/en
Priority claimed from US16/362,545 external-priority patent/US11249810B2/en
Application filed by Amazon Technologies Inc filed Critical Amazon Technologies Inc
Publication of CN113614694A publication Critical patent/CN113614694A/zh
Application granted granted Critical
Publication of CN113614694B publication Critical patent/CN113614694B/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/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
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

描述了用于优化在与服务提供商网络的用户或用户组相关联的计算工作负载之间由服务提供商网络提供的计算资源(例如,诸如虚拟机(VM)实例、容器、独立服务器的计算资源以及可能地其他类型的计算资源)的分配的技术。服务提供商网络提供各种工具和界面以帮助企业和其他组织优化组织从服务提供商网络获得的计算资源池的利用率,包括在具有不同资源需求、使用模式、相对优先级、执行期限或其组合的工作负载之间有效调度资源使用的能力。服务提供商网络还提供各种图形用户界面(GUI)以帮助用户根据用户偏好可视化和管理用户工作负载对计算资源的历史和调度使用。

Description

使用预测容量使用情况对虚拟机工作负载进行装箱
背景技术
服务提供商网络使企业和其他组织能够使用各种类型的计算资源更轻松地开发、部署和缩放几乎任何类型的计算工作负载。服务提供商网络通常为用户提供使用例如计算资源(例如,通过托管虚拟机(VM)实例或容器、执行批作业、执行代码而非预配置服务器等)、数据/存储资源(例如,对象存储、块级存储、数据档案存储、数据库和数据库表等)、网络相关资源(例如,配置虚拟网络(包括多组计算资源)、内容递送网络(CDN)、域名服务(DNS))、应用程序资源(例如,数据库、应用程序构建/部署服务)等的能力。
使用服务提供商网络提供的此类计算资源的现代企业和其他组织通常使用所述资源来支持将计算资源用于不同目的的几个或许多单独的工作负载和开发团队。工作负载通常表示将由一个或多个计算系统执行的任何类型的处理,包括例如应用程序、批作业、脚本等。例如,运营视频流服务的企业可能依赖于实现网站或其他类型前端界面的第一工作负载、用于将视频编码为各种格式以供不同类型的客户端装置使用的第二工作负载,并且进一步依赖于用于生成财务报告、分析用户统计数据等的各种其他工作负载的定期执行。
附图说明
将参考附图描述根据本公开的各种实施方案,在附图中:
图1是示出根据一些实施方案的用于优化在与服务提供商网络的用户或用户组相关联的计算工作负载之间由服务提供商网络提供的计算资源的分配的环境的图。
图2是示出根据一些实施方案的计算工作负载对由计算实例池提供的计算容量的使用的图。
图3是示出根据一些实施方案的两个单独的计算工作负载共享由计算实例池提供的计算容量的图。
图4A是示出根据一些实施方案的在与服务提供商网络的用户或用户组相关联的多个计算工作负载之间由计算实例池提供的计算容量的历史和调度使用的图。
图4B是根据一些实施方案的使用户能够管理由计算实例池提供的计算容量的调度使用的示例性图形用户界面(GUI)。
图5是示出根据一些实施方案的用于在两个或更多个单独的计算工作负载之间分配由计算资源池提供的计算资源的方法的操作的流程图。
图6是示出根据一些实施方案的用于在包括至少一个受期限驱动的工作负载的两个或更多个单独的计算工作负载之间分配由计算资源池提供的计算资源的方法的操作的流程图。
图7是示出根据一些实施方案的用于使图形用户界面(GUI)显示的方法的操作的流程图,所述图形用户界面使用户能够在与用户或用户组相关联的计算工作负载之间配置由计算资源池提供的计算资源的分配。
图8示出了根据一些实施方案的示例性提供商网络环境。
图9是根据一些实施方案的向客户提供存储服务和硬件虚拟化服务的示例性提供商网络的框图。
图10是示出可以用于一些实施方案中的示例性计算机系统的框图。
具体实施方式
描述了用于优化在与服务提供商网络的用户或用户组相关联的计算工作负载之间由服务提供商网络提供的计算资源(例如,诸如VM实例、容器、独立服务器的计算资源以及可能地其他类型的计算资源)的分配的方法、设备、系统和非暂时性计算机可读存储介质的各种实施方案。在本文描述的其他特征中,服务提供商网络提供各种工具和界面以帮助企业和其他组织优化组织从服务提供商网络获得的计算资源池的利用率,包括在具有不同资源需求、使用模式、相对优先级、执行期限或其组合的工作负载之间有效调度资源使用的能力。根据一些实施方案,服务提供商网络还提供各种图形用户界面(GUI)以帮助用户根据用户偏好可视化和管理用户工作负载对计算资源的历史和调度使用。
服务提供商网络使用户能够使用各种类型的计算资源更轻松地开发、部署和缩放工作负载。使用由服务提供商网络提供的计算资源的现代企业和其他组织通常使用这些资源来支持可能将所提供的计算资源用于不同端的许多单独的计算工作负载和开发团队。如本文中所使用的,工作负载通常表示要使用获得的计算资源执行的任何类型的计算机处理,包括例如软件应用程序、批作业、脚本、数据库工作负载等。例如,考虑经营基于Web的视频流服务的企业。视频流服务的运营可能依赖于实现网站或其他类型的前端界面的第一工作负载,所述网站或其他类型的前端界面使用户能够访问视频流服务并选择要观看的视频。视频流服务可能进一步依赖于定期执行的第二工作负载,所述第二工作负载用于将可用视频编码为各种格式以供不同类型的客户端装置使用。运营视频流服务的企业可能进一步依赖于定期执行各种其他工作负载,所述各种其他工作负载用于生成财务和其他业务相关报告、分析用户统计数据以及执行其他辅助任务。
在上面的示例中,这些工作负载中的每一者都可能与可以随时间推移而变化的不同执行模式和资源需求相关联。例如,支持视频流服务网站的持续运营所需的计算资源可能是巨大的,但每天和/或每周变化很大,具体取决于其客户通常何时访问服务。编码过程可能消耗相对较少的资源,并且仅在新视频内容可用时偶尔执行。最后,与业务相关的报告和用户统计数据的生成可能消耗更少的资源,但在某些情况下可能是期限驱动的以满足业务需求。在这些和许多其他情况下,组织经常面临确定和获得适当量的计算资源以用于各种工作负载中的每一者并随着需求随时间推移变化而缩放为每个工作负载获得的资源的挑战。
负责获得用于执行如上示例中的各种工作负载的计算资源的组织通常可能从服务提供商网络获得一个或多个单独的计算资源池以支持工作负载中的每一者。例如,组织可能获得第一“预留”计算实例池以支持第一工作负载的执行、第二较小的预留计算实例池以支持单独的第二个工作负载的执行,并使用“按需”计算实例来支持附加工作负载的执行。此处,预留的计算实例通常表示以与使用按需或其他类型的计算实例相比较低的成本在定义的时间段(例如,1年或3年期限)内从服务提供商网络预留的计算容量。
服务提供商网络的用户还可以使用“自动缩放”功能来缩放各种工作负载使用的计算资源量(例如,多个计算实例)。例如,自动缩放服务通常通过监测用于支持一个或多个工作负载的执行的计算实例或其他计算资源的运行状况和性能、在需要时用新实例替换受损实例以及基于定义的缩放条件动态缩放所使用实例的数量来运行。例如,可供工作负载使用的自动缩放计算实例池或“队列”通常可包括任意数量的可用VM实例、容器实例或可用于支持工作负载的执行的其他类型的计算资源。自动缩放功能的使用可以部分地基于用户指定的自动缩放策略,所述自动缩放策略定义例如在需求高峰期间自动增加计算资源容量以保持性能并且在平静期间自动减少容量以减少资源浪费和成本的条件。
在一些实施方案中,用户可以使用服务提供商网络的自动缩放服务来创建计算资源的“自动缩放组”。例如,自动缩放组可以与一个或多个计算资源池、使用计算资源池的一个或多个工作负载以及一个或多个自动缩放策略相关联,其通常被配置为基于与工作负载相关联的一个或多个资源负载度量(例如,中央处理单元(CPU)利用率、图形处理单元(GPU)利用率、输入/输出(I/O)延迟或其组合)来监测和缩放可用的计算资源。如果工作负载的资源需求表现出可预测的模式,用户还可以调度缩放活动,例如,在工作日自动增加自动缩放组可用的容量并在周末减少容量,如果这种模式与典型的资源需求相匹配的话。
虽然服务提供商网络使用户能够使用上述工具轻松预配置和缩放用于托管和执行工作负载的计算资源,但组织如何优化使用预配置的计算资源池通常仍然具有挑战性。再次考虑组织的示例,所述组织购买了一段时间(例如,一年期限、三年期限)的预留计算实例池,以确保始终有足够的计算容量来支持其视频流服务网站的运营。由于视频流服务的客户通常与服务交互时的周期性(例如,更频繁地在晚上和周末),计算实例池中的全部可用容量可能仅在极少数情况下被充分利用,因此每天和每周可能会有成百上千的可用计算实例小时数未使用。尽管这些未使用的计算资源可能会被组织的其他工作负载使用(例如,以执行编码任务、生成业务报告和用户统计数据等),但现有的服务提供商网络通常缺乏使用户能够在组织内的不同团队和工作负载之间轻松共享此类计算资源池的特征。组织可以改为选择对这些工作负载使用按需资源,但是与预留的计算资源相比,按需资源通常具有更高的成本,并且不能保证资源在需要时的可用性。
为了解决这些和其他问题,根据本文描述的实施方案,服务提供商网络提供容量预测和调度服务,其使用户能够在具有不同资源需求、资源使用模式、工作负载优先级、执行期限或其任何组合的任意数量的工作负载之间优化计算资源池的使用。再次参考视频流服务的示例,容量预测和调度服务可用于监测第一工作负载对预留的计算实例池的使用(例如,工作负载实现服务网站),学习并能够预测第一工作负载的使用模式如何随时间推移而变化,并且以最大限度地减少对主要获得资源的第一工作负载的干扰的方式智能地将过剩的计算资源分配给一个或多个其他次级工作负载。在一些实施方案中,容量预测和调度服务还可以用于监测现有工作负载的计算资源使用模式,并将附加的可能受期限驱动的工作负载调度到预计具有足够可用容量来支持附加工作负载的执行的未来时隙中。此外,本文描述的容量预测和调度服务的实施方案包括各种GUI和其他界面,其使得用户能够查看一个或多个计算资源池的历史使用模式,查看和管理预期可从计算资源池中获得的容量的调度使用,和/或执行其他容量管理操作。除了其他好处之外,本文描述的实施方案的容量管理特征通常使得能够更有效地使用对用户或用户组可用的计算资源并提高组织管理任意数量的单独工作负载的执行的能力,从而减少计算时间(并且更一般的说是计算资源使用量)、用电量和可能的费用。
图1是示出根据一些实施方案的用于优化在与服务提供商网络的用户或用户组相关联的计算工作负载之间由服务提供商网络100提供的计算资源的分配的环境的图。在一些实施方案中,硬件虚拟化服务102、批处理服务104、映射规约服务106、队列服务108、容器执行服务110以及任何数量的其他可能的服务作为服务提供商网络100的一部分操作,并且每一个包括由一个或多个数据中心和地理位置处的一个或多个电子装置执行的一个或多个软件模块。使用一个或多个电子装置114(其可以是服务提供商网络100的一部分或与其相分离)的用户112可以经由一个或多个网络(诸如因特网)与服务提供商网络100的各种服务进行交互。
如上所述,服务提供商网络100为用户提供利用各种类型的计算相关资源诸如计算资源(例如,执行VM实例和/或容器、执行批作业、执行代码而非预配置服务器)、数据/存储资源(例如,对象存储、块级存储、数据档案存储、数据库和数据库表等)、网络相关资源(例如,配置虚拟网络(包括多组计算资源)、内容递送网络(CDN)、域名服务(DNS))、应用程序资源(例如,数据库、应用程序构建/部署服务)、访问策略或角色、身份策略或角色、机器映像、路由器及其他数据处理资源等中的一者或多者的能力。这些和其他计算资源可以作为服务(诸如可以执行计算实例的硬件虚拟化服务102、可以存储数据对象的存储服务等)来提供。服务提供商网络100的用户(或“客户”)可以利用与客户账户相关联的一个或多个用户账户,然而这些术语也可以根据使用情景而在某种程度上互换使用。用户可以经由一个或多个接口118(诸如通过使用应用程序编程接口(API)调用)、经由被实现为网站或应用程序的控制台等跨一个或多个中间网络116(例如,因特网)与服务提供商网络100进行交互。接口118可以是服务提供商网络100的控制平面120的一部分,或者用作其前端,所述控制平面包括支持和启用可能会更直接地提供给客户的服务的“后端”服务。
为了提供这些和其他计算资源服务,服务提供商网络100通常依赖于虚拟化技术。例如,虚拟化技术可以用于为用户提供控制或利用计算实例(例如,使用访客操作系统(O/S)的VM,所述访客操作系统使用管理程序来操作,所述管理程序可以在或可以不在底层主机O/S的顶上进一步监测;可以在或可以不在VM中操作的容器;可以在无底层管理程序的“裸金属”硬件上执行的实例)的能力,其中可以使用单个电子装置来实现一个或多个计算实例。因此,用户可以直接利用由提供商网络托管的计算实例来执行各种计算任务,或者可以通过提交要由提供商网络执行的计算任务或代码来间接地利用计算实例,所述提供商网络继而利用一个或多个计算实例来执行任务或代码(通常无需用户具有对所涉及的底层计算实例的任何控制或了解)。
如上所述,用户通常希望在与用户相关联的各种工作负载中优化从服务提供商网络100获得的计算资源池的使用。再次考虑具有多个不同部门或开发团队的示例性业务组织,每个部门或开发团队都与一个或多个计算工作负载相关联。例如,第一开发团队可能会为与稳态工作负载相关联的组织管理大型数据库,并且为了这些目的,所述团队已经从服务提供商网络100的硬件虚拟化服务102获得了一些存储优化实例以托管数据库。第二团队可能会为组织管理网站和中间层服务,其中这种工作负载通常在工作时间期间使用相对较多,但在工作时间以外使用较少。在该示例中,第二团队使用硬件虚拟化服务102获得一千(1,000)个预留计算实例的池,以支持网站和中间层服务的运营。此外,由于对网站的需求每天和每周都有波动,因此团队创建了自动缩放组并将其与网站工作负载相关联,使得用于支持网站的计算实例数量在高需求时段期间增加,但在原本这些资源将被浪费的非高峰时段期间减少。
图2是示出计算工作负载对由计算实例池提供的计算容量的使用的图,如以上示例中所述。例如,图表200示出了与自动缩放组相关联的单个工作负载(例如,支持如上所述的组织网站的运营的工作负载)对1,000个预留计算实例的池的使用,其中x轴上的每个条目对应一天中的一个小时,并且y轴中每个黑条的大小表示该小时期间使用的实例数。如图表200所示,示例性工作负载在清晨和傍晚使用来自计算实例池的相对较少的计算实例,但在一天当中的中间期间使用几乎全部可用容量。图表200示出了对于此类周期性工作负载,每天可能有显著量容量未被使用,这在预留计算实例池的期限内可能相当于甚至更大量的未使用容量。
如图2所示的示例示出了定义的工作负载对计算资源池的使用。在一些实施方案中,使用此类计算资源的工作负载可以源自多个工作负载源中的任何一个,包括例如服务提供商网络100的其他服务、由用户创建的单独工作负载源或可以利用计算资源的可执行软件的任何其他源。再次参考图1,所示的示例性计算工作负载源122包括批处理服务104、映射规约服务106、队列服务108、容器执行服务110,以及任何数量的其他可能的工作负载源。
如上所述,计算工作负载源122的一个示例是批处理服务104。批处理服务104通常使用户能够在没有人工干预的情况下执行队列或批量计算作业。在一些实施方案中,批处理服务104使用服务提供商网络100的其他服务来执行计算作业。例如,取决于要执行的计算作业的细节,批处理服务104可以使用由硬件虚拟化服务102提供的一个或多个计算实例,使用容器执行服务110(其本身使用由硬件虚拟化服务提供的计算实例102)执行一个或多个容器实例,使用由数据库服务提供的一个或多个数据库,或者使用任何其他类型的计算资源或其组合。
批处理服务104使用户能够指定批处理服务104执行所需的各种类型的计算作业。响应于接收到新的计算作业请求,批处理服务104通过基于提交的计算作业的估计资源需求而预配置一定数量和类型的计算资源(例如,CPU优化或存储器优化的计算实例)来使用各种过程来计划、调度和执行所请求的计算作业。一旦完成请求的计算作业的执行,批处理服务104通常缩减用于执行作业的资源并等待接收附加计算作业请求。
批处理服务104执行的计算作业通常可以是用户提交给批处理服务104执行的任何计算工作单元(例如外壳脚本、可执行文件或容器映像)。每个提交的计算作业可以包括配置信息,所述配置信息指定例如作业的名称或其他标识符、作业的存储器和处理要求,以及计算作业所在位置的标识符(例如,外壳脚本、可执行文件或容器映像的位置)。在一些示例中,提交给批处理服务104的计算作业可以作为在定义的计算环境中的计算实例上运行的容器化应用程序来执行。计算作业还可以通过名称或标识符引用其他作业,并且可以依赖于其他作业的成功完成。可以使用作业定义来描述计算作业,所述作业定义描述了要执行的作业,包括任何参数、环境变量、计算要求以及用于执行计算作业的其他信息。参考图1,在某些情况下,提交给批处理服务104的计算作业(例如,使用基于Web的控制台或服务提供的其他接口)可以作为使用计算实例池124的一个或多个计算实例的一个或多个工作负载来执行。
在一些实施方案中,计算工作负载源122的另一个示例是队列服务108。例如,队列服务108可用于创建计算作业或其他类型的计算工作负载的队列,其类似地可使用计算实例池124的计算实例来执行。工作负载源的其他示例包括映射规约服务106和容器执行服务110,它们中的每一者类似地可以被配置为在一些情况中使用来自计算实例池124的计算实例来执行各种类型的工作负载(例如,映射规约作业或容器执行)。如本文更详细地描述的,根据各种实施方案,可以使用由容量调度服务或由相应服务提供的接口向容量预测和调度服务126识别此类工作负载。在一些实施方案中,识别在服务提供商网络100的各种服务处配置的工作负载可以基于分配给用于执行各种工作负载的资源的用户生成的“标签”或标记。例如,用户可能会将“视频编码”与实现视频编码过程的一个或多个批作业相关联,将“Web应用程序”标签与用于实现Web应用程序的一个或多个VM映像相关联,等等。
如上所述,由工作负载128A-128N中的一者或多个使用的计算实例池124的计算实例可以与一个或多个相应的自动缩放组相关联——例如,自动缩放组130A可以与工作负载128A相关联,并且自动缩放组130N可以与工作负载128N相关联。在一些实施方案中,自动缩放组定义了计算实例的逻辑池或队列,其可以共享相似的特征并且可以出于管理和缩放实例组的目的而被共同处理。例如,如果工作负载128A跨自动缩放组130A的多个实例执行,有时可能需要增加该组中的实例数量以提高工作负载的性能或当需求低时减少实例数量以降低成本(如图2中所示的示例所示)。如上所述,自动缩放组可以与一个或多个自动缩放策略相关联,所述一个或多个自动缩放策略定义用于自动扩大或缩减该组中可用实例的数量的条件。为了实现此类缩放,在一些实施方案中,计算实例池124的一些或所有计算实例可以被配置为收集和发送各种性能度量132,所述各种性能度量使缩放过程能够确定何时缩放对应的自动缩放组的大小,例如,通过将获得的度量与一个或多个相应的自动缩放策略进行比较。
在图1中,使用由硬件虚拟化服务102或其他服务提供并且由服务提供商网络100的用户获得的计算资源(例如VM、容器、独立服务器或任何其他类型的计算容量)来执行一个或多个工作负载(例如,工作负载128A-128N)。再次参考示例性视频流服务,工作负载128A可以实现应用程序前端,工作负载128B可以实现各种视频编码操作,并且各种其他工作负载128N可以实现报告生成、用户统计数据分析和其他辅助过程。在以上示例中,工作负载128A-128N中的每一者可能与和诸如商业组织或其他实体的同一组织相关联的不同用户或用户组相关联并由其管理。
如图1所示,工作负载128A-128N中的每一者在硬件虚拟化服务102的一定数量的计算实例上执行(例如,工作负载128A在计算实例134A上运行,工作负载128B在计算实例134B上运行,并且工作负载128N在计算实例134N上运行,而计算实例134Z表示当前未由任何特定工作负载使用的计算实例)。在该示例中,计算实例池124的每个计算实例可以托管相应工作负载的单独实例,例如,作为在VM或容器实例上运行的对应应用程序或其他可执行文件的单独实例。在一些实施方案中,执行工作负载的计算实例可以托管在任意数量的计算装置上—例如,计算实例134A中的每一者可以由单独的计算装置托管,或者在一些情况下,计算装置可以托管两个或多个计算实例134A。如上所述,最初用于工作负载中的一者或多个的计算实例的数量可以基于每个单独工作负载的预期资源需求来选择和预配置。
在一些实施方案中,服务提供商网络100提供各种计算实例类型,每个计算实例类型具有不同的资源容量,并且可以基于预期的工作负载类型来进一步选择用于各种工作负载的计算实例类型。例如,可以为CPU密集程度更高的工作负载预配置与更大CPU容量相关联的计算实例,而可以为通常GPU密集程度更高的不同工作负载预配置与更大GPU容量相关联的计算实例。尽管图1中仅示出了单个计算实例池124,但是服务提供商网络的用户或用户组可以创建任意数量的单独计算实例池,每一个可能与不同类型或数量的计算实例或其他计算资源相关联。
在一些实施方案中,计算实例池124的所有计算实例中的一些被配置为周期性地向服务提供商网络100的数据监测服务136发出或以其他方式发送各种性能度量132。数据监测服务136以日志、度量和事件的形式收集与服务提供商网络100的几乎任何类型的计算资源相关的监测和运行数据。如下文所述,在一些实施方案中,由数据监测服务136从计算实例池124的计算实例收集的度量132可由容量预测和调度服务126使用以确定由各种工作负载(例如,工作负载128A-128N)中的每一者随时间推移所使用的来自计算实例池124的计算容量的量,并做出关于各种工作负载的未来资源使用模式的预测。尽管数据监测服务136在图1中被示为硬件虚拟化服务102的一部分,但是在其他示例中,数据监测服务136可以是不同服务的一部分或作为服务提供商网络100的独立服务提供。在一些实施方案中,可以为每个工作负载单独收集和存储度量(例如,存储为对应于工作负载128A的工作负载度量138A、对应于工作负载128B的工作负载度量138B和对应于工作负载128N的工作负载度量138N,等等),例如,其中每个工作负载可以与用于在数据监测服务136处识别工作负载的度量的单独的“命名空间”相关联。
在一些实施方案中,在图1中标记为“1”的圆圈处,用户使用一个或多个电子装置114来生成并发送请求,以针对源自一个或多个工作负载源的工作负载启用计算实例池的优化容量调度。例如,用户112可以经由基于Web的控制台、命令行界面或其他提供的界面与硬件虚拟化服务102的容量预测和调度服务126交互。在其他示例中,用户112可以经由服务提供商网络102的单独服务为一个或多个工作负载启用优化的容量调度,并且所述服务可以与容量预测和调度服务126集成(例如,经由与批处理服务104、容器执行服务110或能够利用由计算实例池124或其他计算资源池提供的容量的任何其他服务)。在一些实施方案中,容量预测和调度服务126是服务提供商网络100的单独服务,而在其他实施方案中,容量预测和调度服务126可以是硬件虚拟化服务102或服务提供商网络100的任何其他服务的部件。
在一些实施方案中,容量预测和调度服务126通常使用户能够识别与用户相关联的工作负载,管理哪些工作负载可以访问计算实例池124中的可用容量,使工作负载优先访问可用容量,以及管理如何分配计算实例池124中的可用容量的其他方面(或如何分配其他类型的计算资源的池)。作为一个示例,用户112可以使用与容量预测和调度服务126相关联的界面来查看与主要工作负载随时间推移使用计算实例池124中的计算实例相关的历史数据,确定计算实例池124中过剩计算实例周期性地可供使用(例如,如图2的示例所示),识别源自一个或多个计算工作负载源122的一个或多个附加工作负载,并提供指示希望附加工作负载在可能的情况下使用计算实例池124中的可用容量的输入。
在一些实施方案中,容量预测和调度服务126使用户能够将优先级与要由所述服务管理的工作负载相关联。例如,主要获得计算实例池124的工作负载可以被分配最高优先级,并在工作负载请求时首先访问可用容量(例如,其中容量可以由与工作负载相关联的自动缩放组或由执行工作负载的服务提供商网络100的单独服务请求)。其他工作负载可以根据工作负载对管理多个单独工作负载的用户或组织的相对重要性逐渐分配较低的优先级,其中只有当来自具有更高优先级的工作负载的容量请求当前得到满足并且池中存在剩余可用容量时,才可以为每个优先级的工作负载提供可用计算容量。
在一些实施方案中,容量预测和调度服务126的使用可以是基于许可的,使得可以在组织内管理用户配置工作负载优先级和其他设置的能力。例如,组织内的容量预测和调度服务126的一个或多个选定用户可以与使用户能够设置工作负载优先级和其他配置的管理权限相关联。此类许可的使用可以使系统管理员或与组织相关联的其他更高级用户能够确定组织内可能许多单独用户或用户组(例如,组织内与各种相应业务单元或软件开发项目相关联的用户团队)的优先级,以避免例如许多用户将最高优先级分配给他们自己的相应工作负载的情况。
在一些实施方案中,容量预测和调度服务126维护“工作负载”表(或本领域技术人员已知的其他数据结构),所述表表示用户或各种用户组已经从计算实例池124中识别为使用容量的候选的工作负载。例如,工作负载表中的每个条目可以包括工作负载的标识符(可能包括如何访问可执行应用程序或用于执行工作负载的其他计算资源的指示)、工作负载优先级的指示、与工作负载相关联的任何执行期限,和/或其他工作负载配置文件信息,所述其他工作负载配置文件信息指示例如工作负载预期使用的计算实例的数量、工作负载的预期执行持续时间(例如,指示为通常用于完成工作负载的执行的CPU分钟数或小时数)、与工作负载相关联的存储器要求、用于执行工作负载的优选计算实例类型等。
在一些示例中,用户可能无法指定或访问容量预测和调度服务126所识别的一个或多个工作负载的完整配置文件信息。例如,用户可能不知道执行特定工作负载通常需要多长时间、工作负载通常使用多少计算实例,或者工作负载是否与任何期限相关联。在一些实施方案中,容量预测和调度服务126自动监测与用户账户或用户账户组相关联的工作负载并且可以自动识别和学习与工作负载相关联的各种配置文件属性。例如,在一些实施方案中,容量预测和调度服务126可以获得由数据监测服务136收集的度量132并且使用机器学习(ML)或其他统计技术来学习与用户的工作负载相关联的各种属性,例如,诸如资源使用和缩放信息、执行持续时间等。在某些情况下或基于请求监测一个或多个识别的工作负载的用户输入,可以自动执行对用户工作负载的监测。
在一些实施方案中,对工作负载的监测还可用于学习工作负载启动新计算实例并变得完全运行通常需要多长时间。例如,如果用户具有实现Web应用程序的工作负载,容量预测和调度服务126可以监测Web应用程序的执行并确定启动用于执行Web应用程序的实例的新计算实例、预热相关联的缓存并在实例完全运行之前执行其他应用程序启动过程平均需要大约五分钟。容量预测和调度服务126还可以监测自动缩放组的性能以确定扩大和缩减资源通常需要多长时间,并确定这些缩放速率是否随时间推移变化。如在下文中更详细描述的,除其他用途之外,容量预测和调度服务126可以使用此类信息来更好地预测未来的容量可用性并且更准确地调度具有相关联的执行期限和其他属性的工作负载。
在一些实施方案中,容量预测和调度服务126还可以通过自动识别可能非常适合共享计算资源池容量的工作负载来帮助用户。例如,容量预测和调度服务126可以分析度量132或使用其他过程来识别表现出通常导致可用容量时段的缩放模式的自动缩放组或工作负载。在该示例中,容量预测和调度服务126可以提供指示各种自动缩放组或工作负载随时间推移使用的计算实例池容量的量的接口,包括哪些类型的计算实例可用以及此类实例通常在什么时间可供其他工作负载使用的指示。在一些实施方案中,容量预测和调度服务126还可以为一个或多个现有的自动缩放组或工作负载识别与容量使用模式相关联的其他自动缩放组或工作负载,所述其他自动缩放组或工作负载与自动缩放组或工作负载一致,使得容量可以被有效地共享(例如,通常在白天期间扩大并在晚上缩减的自动缩放组可以与通常在晚上扩大并在白天期间缩减的一个或多个其他自动缩放组相匹配)。在该示例中,用户可以提供链接用户希望共享计算资源池的一个或多个识别的自动缩放组和/或工作负载的输入,所述输入包括自动缩放组和/或工作负载之间的相对优先级等。
在一些实施方案中,容量预测和调度服务126还可以帮助用户调度各种工作负载在未来时间点对计算容量的使用。工作负载对未来可用计算容量的访问的调度可以基于对一个或多个现有工作负载使用可用计算容量的预测、与要调度以使用过剩容量的工作负载相关联的配置文件信息(例如,包括预期资源需求、优先级、执行期限等),以及其他如上所述的用户偏好。计算容量的未来使用的调度和管理在本文例如关于图3和图4更详细地描述。
图3是示出根据一些实施方案的两个单独的计算工作负载共享由计算实例池提供的计算容量的图。图3类似于图2,其中它示出了主要工作负载在24小时时段内使用的1,000个预留计算实例池的计算实例的数量,如图中的黑条所示。如图3所示的示例还示出了在主要工作负载未使用整个容量的时间段期间次级工作负载对计算实例池中可用的过剩容量的使用,次级工作负载对计算实例的使用由虚线的阴影条示出。
在图3所示的示例中,与工作负载相关联的用户已将主要工作负载识别为最高优先级工作负载,并进一步将次级工作负载与较低优先级相关联,以便从相关联的计算实例池访问计算实例。主要工作负载和次级工作负载可能已经被识别,例如,基于它们与相应的自动缩放组的关联,或者通过它们源自一个或多个工作负载源122。基于对工作负载的识别和相关联的工作负载优先级,容量预测和调度服务126能够至少部分地基于主要工作负载当前正在使用的所确定的计算实例数量来随时间推移自动增加和减少可用于次级工作负载的计算实例的数量。如图3所示,例如,次级工作负载被示出为在当主工作负载仅使用总计算容量的一部分时的白天早些时候和晚上的时间段期间使用可用计算实例的一部分。尽管图3中仅示出了单个主要工作负载和单个次级工作负载,但是一般而言,可以根据分配的工作负载优先级和其他因素为任何数量的附加工作负载提供过剩容量。
如上所述,在一些实施方案中,容量预测和调度服务126对附加工作负载的扩大和缩减可以包括考虑对关于各种工作负载对计算实例池资源的未来使用做出的预测。在图3中,容量预测和调度服务126可以监测和分析主要工作负载的使用模式以做出关于主要工作负载在未来时间点可能使用多少容量的预测。除其他目的外,此信息可用于影响次级工作负载的缩放,以最大限度地减少对更高优先级主要工作负载的干扰。例如,如果容量预测和调度服务126基于过去的使用模式确定主要工作负载可能在不久的将来增加其容量,并且工作负载通常需要一些时间来启动新的计算实例和预热,则容量预测和调度服务126可以足够提前地开始缩减提供给次级工作负载的容量,使得主要工作负载可以根据其正常模式扩大。在一些实施方案中,如果用户已经指示工作负载不是容错的并且要运行到完成,但是容量预测和调度服务126需要缩减其相关联的容量,则容量预测和调度服务126可以生成请求输入的通知,所述通知指示用户是希望工作负载被终止还是移动到其他容量(例如,按需容量或来自不同计算实例池的可用容量)。
参考图1,在一些实施方案中,在圆圈“2A”处,与一个或多个用户账户相关联的一个或多个工作负载使用来自计算实例池124的计算实例来执行。如图1所示,工作负载128A-128N使用可从计算实例池124获得的计算实例134A-134N来执行。如上所述,工作负载128A-128N可以源自任何数量的计算工作负载源122。此外,根据本文描述的容量管理过程,工作负载128A-128N中的每一者的执行可以涉及相关联容量随时间推移可能基于相关联的自动缩放组的缩放。
在一些实施方案中,在圆圈“2B”处,计算实例池124的计算实例的一些或所有计算实例可选地获得并且周期性地向数据监测服务136发送利用率度量。如上所述,报告的度量132可以被分析和使用,例如,以学习各种工作负载的历史使用模式,以监测计算实例池124容量的持续使用,并做出关于一个或多个工作负载128A-128N的未来使用模式的预测,以及其他可能的用途。
在一些实施方案中,在图1中的圆圈“3”处,容量预测和调度服务126获得一个或多个过去时间窗口的一个或多个工作负载的历史数据。容量预测和调度服务126可以被配置为在周期性基础上(其可以基于默认时段、由用户配置和/或基于随时间推移检测的工作负载活动而自适应地)或响应于请求测量当前工作负载或计算实例池124状态而获得度量。在一些实施方案中,容量预测和调度服务126可以基于与度量已经相关联的命名空间来获得特定工作负载或自动缩放组的度量,如上所述。
在一些实施方案中,在圆圈“4”处,容量预测和调度服务126调度一个或多个识别的工作负载对来自计算实例池124的容量的使用。如上所述,容量预测和调度服务126可用于基于预测的计算资源可用性、预期的工作负载需求、预期的工作负载执行持续时间、工作负载优先级、工作负载期限以及其他可能的因素或其组合来调度工作负载在未来时间点的执行。
在一些实施方案中,容量预测和调度服务126可以使用包括自回归模型、机器学习(例如,基于循环神经网络(RNN)或其他时间序列预测模型)的多种不同技术中的任一种或本领域技术人员已知的其他形式的预测建模和概率预测来生成计算容量使用的预测。在一些实施方案中,容量预测和调度服务126使用服务提供商网络100的单独ML服务来为各种工作负载创建基于ML的容量使用模型。例如,此类模型的训练可以基于使用历史时间序列数据的窗口(例如,2周),其中随着更多数据变得可用,模型可以随时间推移更新(或完全重新生成)。在一些实施方案中,容量使用预测可以是概率性的并且用于基于历史趋势向用户提供计算容量的未来调度使用将被满足的可能性有多大的指示。
图4A是示出根据一些实施方案的在与服务提供商网络的用户或用户组相关联的多个计算工作负载之间由计算实例池提供的计算容量的历史和调度使用的示例性图。图4A所示的图表400再次示出了包括1,000个可用计算实例的计算实例池的使用。如图所示,这些计算实例的使用在一个或多个固定工作负载402、一个或多个周期性工作负载404以及包括工作负载A406A、工作负载B406B和工作负载C406A的各种其他工作负载之间共享。
在该示例中,一个或多个固定工作负载402表示随时间推移使用相同数量的计算实例的稳态工作负载。另一方面,周期性工作负载404表示在某些时间段表现出相对高的资源使用并且在其他时间段期间表现出相对低的资源使用的模式的工作负载。例如,一个或多个周期性工作负载404可以与相应的自动缩放组相关联,所述自动缩放组随时间推移管理可用于工作负载的计算实例的数量。
图表400还示出了在固定工作负载402和周期性工作负载404对计算实例池的预期低利用率的时间段期间附加工作负载对可用计算容量的调度使用。如图所示,工作负载A406A、工作负载B406B和工作负载C406C中的每一者被调度为使用预期在各个时间点可用的容量的一部分。在一些实施方案中,容量预测和调度服务126基于与每个工作负载相关联的属性(例如,存储在如上所述的工作负载表中)将工作负载打包到预期资源可用性的时段中,其中可以调度工作负载至少部分基于以下各项中的一项或多项来使用一定量的容量:每个工作负载请求或预期使用的计算容量的量、与每个工作负载相关联的相对优先级、每个工作负载使用的资源类型等。例如,工作负载A406A可以安排在明天大约上午11:00到下午3:00使用最多100个计算实例,工作负载B406B可以安排在大约下午6:00到晚上10:00点使用最多75个实例,工作负载C 406C可以从晚上10:00开始使用可用的尽可能多的实例,等等。在一些实施方案中,每个调度使用可以存储在如上所述的工作负载表中或存储在容量预测和调度服务126可访问的任何其他类型的数据存储装置中。如预热缓冲器410所示,可以以尝试最大限度地减少对其他更高优先级工作负载的干扰的方式来执行附加工作负载的调度。例如,如果容量预测和调度服务126基于过去的使用模式确定周期性工作负载404可能在未来的某个时间增加容量使用,并且周期性工作负载404通常花费一些时间来启动新的计算实例并预热,容量预测和调度服务126可以提前开始缩减提供给附加工作负载的容量,使得周期性工作负载可以根据正常模式扩大。
图4中的示例示出有时可能仅部分满足工作负载对容量的请求。例如,工作负载A406A被示为被调度到容量槽中,其中工作负载要使用的实例数量超过计算实例池中的实例总数。在该示例中,可以为工作负载分配按需实例或来自不同池的实例以满足附加请求的容量。在一些实施方案中,如果请求不能完全满足,用户可以指定他们是否希望工作负载使用来自池的容量,或者容量预测和调度服务126可以生成通知,所述通知请求用户指示用户是希望工作负载使用附加按需容量还是让工作负载等待被安排在将来可以完全满足工作负载需求的时间。
该图进一步示出了工作负载相对于与工作负载相关联的执行期限的调度。例如,图表400示出了与工作负载A406A相关联的第一期限A408A和与工作负载B406B相关联的第二期限B408B的存在。如图所示,相关联的工作负载以工作负载的执行预期在相关联的期限之前完成的方式被打包到容量计划中。尽管对于每个工作负载仅示出了一个期限,但是一般而言,工作负载可以与用户指定的或容量预测和调度服务126获知的任何数量的重复或不定时发生的期限相关联。与上文类似,如果容量预测和调度服务126无法将工作负载安排在预期满足相关联的执行期限的时隙,则所述服务可以请求来自用户的输入,所述输入指示用户是希望使用其他类型的资源来满足期限还是允许超过期限并将工作负载安排在后续时间。
在一些实施方案中,容量预测和调度服务126可以提供各种GUI,所述GUI显示指示用户工作负载的历史容量使用和未来容量的调度使用的信息,并且还使用户能够对提议的容量调度进行修改。图4B例如示出了根据一些实施方案的使用户能够管理由计算实例池提供的计算容量的调度使用的示例性图形用户界面(GUI)。例如,图4B所示的界面412是示例性交互式GUI,其使用户能够查看和修改与用户的资源和工作负载相关的容量调度细节。如图所示,界面412包括指示当前时间点的线418,其中线左侧示出的工作负载基于关于相关联的计算实例池的使用的历史数据,并且线右侧示出的工作负载表示池资源的预测的和/或调度使用。
在一些实施方案中,界面412还包括预测图414,其示出了在各种误差幅度(例如,指示各种百分位数的单独图形线)的情况下一个或多个工作负载对计算实例池的预测使用。如本文所述,在一些实现方式中可以使用机器学习模型生成预测使用(例如,计算实例或其他虚拟资源随时间推移的数量)。例如,用户可以使用可视化预测和百分位数来帮助确定在无需求助于其他类型的容量的情况下池中资源满足容量的各种调度使用的可能性。在一些实施方案中,用户可以提供指定在做出调度决定时用户愿意接受的错误量的输入,使得可以在预测的准确性和资源池的容量能够完全满足容量的调度使用的可能性之间进行折衷。在这方面,用户可能能够从预测的使用中选择表示可接受的误差幅度的百分位数线中的一个,并且可以根据在所选百分位数下的预测未使用容量来调度其他作业。
在一些实施方案中,用户可以向交互式容量调度GUI提供各种类型的输入以修改计算实例池容量的调度使用。例如,输入的类型可以包括指定执行一个或多个工作负载的不同时间的输入、指定要分配给一个或多个工作负载的不同优先级的输入、请求取消一个或多个工作负载对计算实例池的多个可用计算实例的调度使用的输入(例如,使用接口元件416来取消调度使用),用于调整被安排在将来由工作负载使用的计算实例的数量的输入(例如,基于用户愿意接受的误差幅度增加或减少计算实例的调度数量)、与一个或多个工作负载相关联的执行期限等。在图4B的示例中,用户可以使用GUI来选择表示特定工作负载过去对计算实例池的使用的图形元素(例如,图中的矩形框),以获得关于使用的附加信息(例如,执行持续了多长时间,实际使用了多少计算实例,是否存在容量不足异常或其他错误等)。
在一些实施方案中,用户还可以选择表示计算容量的调度使用的图形元素,以将调度使用移动到不同时间(例如,通过将图形元素拖放到图形中的不同位置,其中如果可能的话,界面可以自动将图形元素适配到可用容量和/或在需要时重新调度其他作业以适应用户请求的重新调度),更改工作负载的优先级(例如,通过选择框并指定不同的优先级或拖放图形元素相对于其他工作负载的位置),取消调度使用(例如,通过选择界面元素416以删除工作负载图标),添加或修改期限(例如,通过添加期限条并沿图形的时间线拖动期限条),以及其他可能的交互。在一些实施方案中,经由GUI进行此类修改的能力可以基于用户是否具有对工作负载进行此类更改的足够许可,如上所述,其中用户可能具有修改一些工作负载而不是其他工作负载的足够许可。
再次参考图1,在一些实施方案中,在圆圈“5”处,容量预测和调度服务126根据执行的调度过程导致工作负载的执行和缩放。例如,容量预测和调度服务126可以向硬件虚拟化服务102或管理计算实例池124、相关联的自动缩放组和其他容量相关部件的其他系统部件发送缩放指令。在图1中,例如,容量预测和调度服务126可以向硬件虚拟化服务102发送指令,所述指令指示所述服务增加或减少可用于工作负载128A-128N中的每一者的计算实例的数量,假设容量预测和调度服务126确定缩放是适当的。在一个示例中,容量预测和调度服务126使硬件虚拟化服务102增加或减少与一个或多个自动缩放组中的每一者相关联的计算实例的数量。
如上所述,容量预测和调度服务126可以帮助用户和用户组织在任意数量的单独工作负载之间共享计算资源。在一些实施方案中,容量预测和调度服务126还可以跨服务提供商网络100的用户和用户组织更广泛地分析计算资源的使用。例如,容量预测和调度服务126可以分析由区域中的许多不同用户账户使用的自动缩放组,以监测所有可用计算容量的高利用率和低利用率时段。在一些实施方案中,对计算资源使用的更广泛的监测和分析可以使容量预测和调度服务126可能在与可能彼此不直接相关联的不同用户账户相关联的计算资源池之间移动用户工作负载,例如,如果所述服务可以有足够的信心确保资源将不会被一个或多个用户账户使用。作为另一个示例,容量预测和调度服务126可以以更好地确保足够的容量可用于区域中的所有用户的方式来调度用户已经指示具有灵活执行期限的工作负载。更好地利用可用资源和预测未来资源使用的能力通常可以使服务提供商网络100能够更好地避免用户请求容量但提供商网络不能满足请求的情况。
尽管在工作负载使用服务提供商网络100的计算资源进行执行的背景下描述了本文中的许多示例,但是一般而言,工作负载调度技术可用于包括服务提供商网络、本地环境或其组合的任何计算环境。例如,用户的本地计算实例可以收集利用率度量并将其发送到服务提供商网络100的数据监测服务136,并且服务提供商网络或用户的本地环境的容量预测和调度服务126可以从数据监测服务获得所述度量,并基于获得的度量做出缩放决策。
图5是示出根据一些实施方案的用于在两个或更多个单独的计算工作负载之间分配由计算资源池提供的计算资源的方法的操作500的流程图。图6是示出根据一些实施方案的用于在包括至少一个受期限驱动的工作负载的两个或更多个单独的计算工作负载之间分配由计算资源池提供的计算资源的方法的操作600的流程图。图7是示出根据一些实施方案的用于使图形用户界面(GUI)显示的方法的操作700的流程图,所述图形用户界面使用户能够在与用户或用户组相关联的计算工作负载之间配置由计算资源池提供的计算资源的分配。一些或全部操作500、600和700(或本文描述的其他过程、或其变型和/或组合)在配置有可执行指令的一个或多个计算机系统的控制下执行,并且作为共同在一个或多个处理器上执行的代码(例如,可执行指令、一个或多个计算机程序或一个或多个应用程序)、由硬件或其组合实现。代码以例如包括可由一个或多个处理器执行的指令的计算机程序的形式存储在计算机可读储存介质上。计算机可读储存介质是非暂时性的。在一些实施方案中,操作500、600或700中的一者或多者(或全部)由容量预测和调度服务126、硬件虚拟化服务102或其他附图的其他部件或其组合来执行。
参考图5,操作500包括在框502处识别与服务提供商网络的一个或多个用户相关联的第一计算工作负载和第二计算工作负载。
操作500还包括在框504处获得指示计算实例池的用于执行第一计算工作负载的计算实例的数量的历史数据,计算实例池表示被预留供一个或多个用户使用的计算容量的量。在一些实施方案中,计算实例池包括固定数量的计算实例,并且其中第一计算工作负载随时间推移使用计算实例池的变化数量的计算实例。如图2所示,例如,工作负载可能会随时间推移表现出一定周期性或模式的计算实例池使用。在一些实施方案中,第一计算工作负载的执行由批处理服务、容器执行服务、映射规约服务和队列服务中的一者或多者管理。
在一些实施方案中,计算实例池包括多个VM实例或多个容器实例。在一些实施方案中,第一计算工作负载的执行基于VM映像、容器、脚本和可执行软件应用程序中的一者或多者。
操作500还包括在框506处基于历史数据生成在未来时间点将用于执行第一计算工作负载的计算实例的预测数量。在一些实施方案中,在一个或多个未来时间点将用于执行第一计算工作负载的计算实例的预测数量是使用基于与计算实例池相关的历史数据训练的RNN生成的,其中用于训练RNN的历史数据可以与指示用于执行上述第一计算工作负载的计算实例池的计算实例的数量的数据历史数据重叠,也可以不重叠。
操作500还包括在框508处基于在未来时间点将用于执行第一计算工作负载的计算实例的预测数量,缩放在未来时间点之前计算实例池中可供第二计算工作负载使用的计算实例的数量。在一些实施方案中,第二计算工作负载与预期执行持续时间和执行期限相关联,并且其中所述操作还包括增加计算实例池中可供第二计算工作负载在某个时间点使用的计算实例的数量,所述时间点是基于例外执行持续时间、执行期限和在一个或多个未来时间点将用于执行第一计算工作负载的计算实例的预测数量中的至少一者确定的。
在一些实施方案中,第一计算工作负载和第二计算工作负载中的至少一者与自动缩放组相关联,其中自动缩放组定义可供相应工作负载使用的一组计算实例。
在一些实施方案中,第一计算工作负载和第二计算工作负载与属于同一组织的用户相关联。例如,每个用户可以是同一商业组织的雇员、组织的独立开发团队或部门的一部分等。
在一些实施方案中,部分地基于指示与第一计算工作负载相关联的预热时间量的信息来确定计算实例池中可供第二计算工作负载使用的计算实例的数量减少的时间。
在一些实施方案中,所述操作还包括使GUI的显示显示历史数据的表示,所述历史数据指示用于执行第一计算工作负载的计算实例池的计算实例的数量。
参考图6,操作600包括在框602处获得指示一个或多个第一工作负载随时间推移使用的计算资源池的相应计算资源量的历史数据。在一些实施方案中,计算资源池包括固定量的计算资源,并且第一计算工作负载随时间推移使用来自计算资源池的变化量的计算资源。在一些实施方案中,第一计算工作负载的执行由批处理服务、容器执行服务、映射规约服务和队列服务中的一者管理。在一些实施方案中,第一计算工作负载的执行基于VM映像、容器、脚本和可执行软件应用程序中的一者或多者。
操作600还包括在框604处基于历史数据来生成关于在未来时间间隔期间将未被一个或多个第一计算工作负载使用的计算资源池的可用计算资源的预测。在一些实施方案中,在一个或多个未来时间点将用于执行第一计算工作负载的计算资源的预测量是使用基于与计算实例池相关的历史数据训练的RNN生成的,其中用于训练RNN的历史数据可以与指示用于执行上述第一计算工作负载的计算实例池的计算实例的数量的数据历史数据重叠,也可以不重叠。
操作600还包括在框606处确定用于执行第二计算工作负载的要求,所述要求包括在估计的执行持续时间和执行期限内的计算资源量。
操作600还包括在框608处确定关于可用计算资源和未来时间间隔的预测可以满足执行第二计算工作负载的要求。
操作600还包括在框610处调度第二计算工作负载在未来时间间隔期间的执行,包括调度第二计算工作负载对计算资源池的计算资源量的使用。在一些实施方案中,第二计算工作负载是与多个相应估计的执行持续时间和多个相应的执行期限相关联的多个第二计算工作负载中的一者,并且其中调度是基于计算资源的预测量、多个相应估计的执行持续时间以及多个相应的执行期限。在一些实施方案中,计算资源池为计算实例池,并且计算实例池包括多个VM实例或多个容器实例。
在一些实施方案中,所述操作还包括基于一个或多个第一计算工作负载和第二计算工作负载随时间推移所使用的计算资源量,来缩放与执行期限不相关联的第三计算工作负载所使用的来自计算资源池的计算资源量。
在一些实施方案中,调度第二计算工作负载在未来要使用的计算资源池的计算资源量部分地由指示与第一计算工作负载相关联的预热时间量的信息确定。在一些实施方案中,所述操作还包括调度第三计算工作负载在未来时间段期间对计算资源池的计算资源量的使用,其中所述调度部分地基于分配给第二计算工作负载和第三计算工作负载的相应优先级。
在一些实施方案中,第一计算工作负载和第二计算工作负载与属于同一组织的用户相关联。在一些实施方案中,操作还包括使GUI的显示显示历史数据的表示,所述历史数据的表示指示一个或多个第一工作负载随时间推移使用的计算资源池的相应的计算资源量。
参考图7,操作700包括在框702处获得指示一个或多个计算工作负载随时间推移使用的计算资源池的相应计算资源量的历史数据。在一些实施方案中,计算资源池包括计算实例池,所述计算实例池包括固定数量的计算实例,并且其中第一计算工作负载随时间推移使用计算实例池的变化数量的计算实例。在一些实施方案中,第一计算工作负载的执行由批处理服务、容器执行服务、映射规约服务和队列服务中的一者管理。在一些实施方案中,计算资源池为计算实例池,其中计算实例池包括多个虚拟机(VM)实例或多个容器实例。
操作700还包括在框704处基于历史数据来生成关于在未来时间间隔期间将未被一个或多个第一计算工作负载使用的来自计算资源池的可用计算资源的预测。在一些实施方案中,使用基于历史数据的至少一部分训练的循环神经网络(RNN)生成在一个或多个未来时间点将用于第一计算工作负载的计算资源的预测量。
操作700还包括在框706处基于执行第二计算工作负载的要求和关于在未来时间间隔期间将未被一个或多个第一计算工作负载使用的可用计算资源的预测,调度第二计算工作负载在未来时间间隔期间对来自计算资源池的计算资源量的使用。在一些实施方案中,第二计算工作负载是与多个相应估计的执行持续时间和多个相应的执行期限相关联的多个第二计算工作负载中的一者,并且其中调度是基于计算资源的预测量、多个相应估计的执行持续时间以及多个相应的执行期限。
操作700还包括在框708处使图形用户界面(GUI)的输出显示给用户,GUI包括显示信息的界面元素,所述信息识别(a)关于未来时间间隔期间可用计算实例的预测,以及(b)第二计算工作负载在未来时间间隔期间对计算资源量的调度使用的图形表示。在一些实施方案中,第一计算工作负载和第二计算工作负载中的至少一者与自动缩放组相关联,其中自动缩放组定义可用于相应计算工作负载的计算资源量。
在一些实施方案中,操作还包括经由GUI接收输入以修改第二计算工作负载在未来对计算资源池的可用计算资源量的调度使用,所述输入指定以下各项中的一者或多者:执行第二计算工作负载的不同时间、分配给第二计算工作负载的不同优先级、取消第二计算工作负载对计算资源量的调度使用、与第二计算工作负载相关联的执行期限。
在一些实施方案中,GUI还显示对一个或多个计算工作负载中的第二计算工作负载对来自计算资源池的计算资源量的调度使用的一个或多个建议的修改。
在一些实施方案中,操作还包括确定一个或多个计算工作负载中的至少一个特定计算工作负载在未来对计算实例池的多个可用计算实例的调度使用预期超过计算实例池中可用的总容量;并向用户发送通知,所述通知指示调度使用预期将超过计算实例池中可用的总容量。
在一些实施方案中,第一计算工作负载和第二计算工作负载与属于同一组织的用户相关联。
图8示出了根据一些实施方案的示例性提供商网络(或“服务提供商系统”)环境。提供商网络800可经由一个或多个虚拟化服务810向客户提供资源虚拟化,所述一个或多个虚拟化服务允许客户购买、租借或以其他方式获得在一个或多个数据中心中在一个或多个提供商网络内的装置上实现的虚拟化资源(包括但不限于计算资源和存储资源)的实例812。本地因特网协议(IP)地址816可与资源实例812相关联;本地IP地址是提供商网络800上的资源实例812的内部网络地址。在一些实施方案中,提供商网络800还可提供客户可从提供商800获得的公共IP地址814和/或公共IP地址范围(例如,因特网协议版本4(IPv4)或因特网协议版本6(IPv6)地址)。
常规上,提供商网络800可经由虚拟化服务810来允许服务提供商的客户(例如,操作包括一个或多个客户装置852的一个或多个客户端网络850A-850C的客户)使指派或分配给客户的至少一些公共IP地址814与指派给客户的特定资源实例812动态地相关联。提供商网络800还可允许客户将先前映射到分配给客户的一个虚拟化计算资源实例812的公共IP地址814重新映射到也分配给客户的另一虚拟化计算资源实例812。例如,服务提供商(诸如,一个或多个客户网络850A-850C的运营商)的客户可使用由服务提供商提供的虚拟化计算资源实例812和公共IP地址814来实现客户特定的应用程序并在诸如因特网的中间网络840上呈现客户的应用程序。然后,中间网络840上的其他网络实体820可生成到由一个或多个客户网络850A-850C发布的目的地公共IP地址814的流量;所述流量被路由到服务提供商数据中心,并且在数据中心处经由网络底层被路由到当前映射到目的地公共IP地址814的虚拟化计算资源实例812的本地IP地址816。类似地,来自虚拟化计算资源实例812的响应流量可经由网络底层被路由回到中间网络840上到源实体820。
如本文中所使用的,本地IP地址是指例如提供商网络中的资源实例的内部或“私有”网络地址。本地IP地址可以在由因特网工程任务组(IETF)的注释请求(RFC)1918预留的地址块内和/或具有由IETF RFC 4193指定的地址格式,并且可以在提供商网络内更改。源自提供商网络外部的网络流量不会直接路由到本地IP地址;而是,流量使用映射到资源实例的本地IP地址的公共IP地址。提供商网络可以包括提供网络地址转译(NAT)或类似功能以执行从公共IP地址到本地IP地址的映射的网络装置或设备,反之亦然。
公共IP地址是由服务提供商或由客户分配给资源实例的因特网可变网络地址。例如,经由1:1NAT转译路由到公共IP地址的流量,并将其转发到资源实例的相应本地IP地址。
提供商网络基础结构可能会将一些公共IP地址分配给特定的资源实例;这些公共IP地址可以被称为标准公共IP地址,或简称为标准IP地址。在一些实施方案中,标准IP地址到资源实例的本地IP地址的映射是所有资源实例类型的默认启动配置。
至少一些公共IP地址可以被分配给提供商网络800的客户或由提供商网络的客户获得;然后,客户可以将其分配的公共IP地址指派给分配给客户的特定资源实例。这些公共IP地址可以被称为客户公共IP地址,或简称为客户IP地址。代替如在标准IP地址的情况下一样由提供商网络800指派给资源实例,客户IP地址可以由客户例如经由服务提供商提供的API指派给资源实例。与标准IP地址不同,客户IP地址被分配给客户账户,并且可以根据需要或期望由相应客户重新映射到其他资源实例。客户IP地址与客户账户(而不是特定的资源实例)相关联,并且客户控制该IP地址,直到客户选择释放它为止。与常规的静态IP地址不同,客户IP地址允许客户通过将客户的公共IP地址重新映射到与客户账户相关联的任何资源实例来掩盖资源实例或可用性区域故障。例如,客户IP地址使客户能够通过将客户IP地址重新映射到替换资源实例来解决客户资源实例或软件的问题。
图9是根据一些实施方案的向客户提供存储服务和硬件虚拟化服务的示例性提供商网络的框图。硬件虚拟化服务920向客户提供多个计算资源924(例如,VM)。例如,可将计算资源924租借或租赁给提供商网络900的客户(例如,实现客户网络950的客户)。每个计算资源924可以设置有一个或多个本地IP地址。提供商网络900可以被配置为将分组从计算资源924的本地IP地址路由到公共因特网目的地,以及从公共因特网源路由到计算资源924的本地IP地址。
提供商网络900可为例如经由本地网络956耦合到中间网络940的客户网络950提供经由耦合到中间网络940和提供商网络900的硬件虚拟化服务920实现虚拟计算系统992的能力。在一些实施方案中,硬件虚拟化服务920可提供一个或多个API 902(例如,Web服务接口),经由所述API,客户网络950可例如经由控制台994(例如,基于web的应用程序、独立应用程序、移动应用程序等)访问由硬件虚拟化服务920提供的功能。在一些实施方案中,在提供商网络900处,客户网络950处的每个虚拟计算系统992可对应于被租赁、租借或以其他方式提供给客户网络950的计算资源924。
客户可例如经由一个或多个API 902从虚拟计算系统992和/或另一客户装置990(例如,经由控制台994)的实例访问存储服务910的功能性,以从提供商网络900所提供的虚拟数据存储区916的存储资源918A-918N中访问数据(例如,文件夹或“桶”、虚拟化卷、数据库等)以及将数据存储到所述存储资源。在一些实施方案中,可在客户网络950处提供虚拟化数据存储网关(未示出),所述虚拟化数据存储网关可在本地缓存至少一些数据(例如,频繁访问的或关键的数据),并且可经由一个或多个通信信道与存储服务910通信以从本地高速缓存上载新的或修改的数据,以便维护数据的主存储区(虚拟化数据存储区916)。在一些实施方案中,用户经由虚拟计算系统992和/或在另一个客户装置990上可以经由充当存储虚拟化服务的存储服务910安装和访问虚拟化数据存储916卷,并且这些卷在用户看来可以是本地(虚拟化)存储装置998。
虽然在图9中未示出,但还可经由一个或多个API 902从提供商网络900内的资源实例访问一个或多个虚拟化服务。例如,客户、设备服务提供商或其他实体可经由API 902从提供商网络900上的相应的虚拟网络内访问虚拟化服务,以请求分配虚拟网络内或另一虚拟网络内的一个或多个资源实例。
在一些实施方案中,实现如本文描述的用于优化在与服务提供商网络的用户或用户组相关联的计算工作负载之间由服务提供商网络提供的计算资源的分配的技术的一部分或全部的系统可包括通用计算机系统,所述通用计算机系统包括或被配置为访问一个或多个计算机可访问介质,诸如图10所示的计算机系统1000。在所示的实施方案中,计算机系统1000包括经由输入/输出(I/O)接口1030耦合到系统存储器1020的一个或多个处理器1010。计算机系统1000还包括耦合到I/O接口1030的网络接口1040。虽然图10将计算机系统1000示出为单个计算装置,但在各种实施方案中,计算机系统1000可以包括一个计算装置或被配置为作为单个计算机系统1000一起工作的任何数量的计算装置。
在各种实施方案中,计算机系统1000可以为包括一个处理器1010的单处理器系统或包括若干处理器1010(例如,两个、四个、八个或另一合适数量)的多处理器系统。处理器1010可以是能够执行指令的任何合适的处理器。例如,在各种实施方案中,处理器1010可以为实施多种指令集架构(ISA)中的任何一种(诸如,x86、ARM、PowerPC、SPARC、或MIPS ISA或任何其他合适的ISA)的通用或嵌入式处理器。在多处理器系统中,处理器1010中的每一个通常可以但未必实施相同的ISA。
系统存储器1020可以存储可由一个或多个处理器1010访问的指令和数据。在各种实施方案中,可以使用任何合适的存储器技术(诸如,随机存取存储器(RAM)、静态RAM(SRAM)、同步动态RAM(SDRAM)、非易失性/快闪型存储器或任何其他类型的存储器)来实现系统存储器1020。在示出的实施方案中,实现一个或多个期望功能的程序指令和数据(诸如,上述那些方法、技术和数据)被示出为作为代码1025和数据1026存储在系统存储器1020内。
在一些实施方案中,I/O接口1030可以被配置为协调装置中的处理器1010、系统存储器1020与任何外围装置(包括网络接口1040或其他外围接口)之间的I/O流量。在一些实施方案中,I/O接口1030可以执行任何必需协议、时序或其他数据变换以将来自一个部件(例如,系统存储器1020)的数据信号转换成适于供另一部件(例如,处理器1010)使用的格式。在一些实施方案中,I/O接口1030可以包括支持通过各种类型的外围总线(例如,诸如外围部件互连(PCI)总线标准或通用串行总线(USB)标准的变体)附接的装置。在一些实施方案中,I/O接口1030的功能可以分成两个或更多个单独部件,例如,诸如北桥和南桥。而且,在一些实施方案中,I/O接口1030(诸如至系统存储器1020的接口)的功能性中的一些或全部可以直接并入处理器1010中。
网络接口1040可以被配置为允许在计算机系统1000与附接到一个或多个网络1050的其他装置1060(例如诸如,其他计算机系统或如图1中示出的装置)之间交换数据。在各种实施方案中,例如,网络接口1040可以支持经由任何适当的有线或无线通用数据网络(诸如,以太网网络类型)进行的通信。另外,网络接口1040可以支持经由电信/电话网络(诸如模拟语音网络或数字光纤通信网络)、经由存储局域网(SAN)(诸如光纤通道SAN)或经由I/O任何其他合适类型的网络和/或协议进行的通信。
在一些实施方案中,计算机系统1000包括一个或多个卸载卡1070(包括一个或多个处理器1075,并且可能包括一个或多个网络接口1040),所述一个或多个卸载卡使用I/O接口1030(例如,实现快速外围组件互连(PCI-E)标准的一个版本或诸如快速路径互连(QPI)或超路径互连(UPI)的另一互连的总线)来连接。例如,在一些实施方案中,计算机系统1000可以充当托管计算实例的主机电子装置(例如,作为硬件虚拟化服务的一部分进行操作),并且一个或多个卸载卡1070执行可管理在主机电子装置上执行的计算实例的虚拟化管理器。作为示例,在一些实施方案中,一个或多个卸载卡1070可以执行计算实例管理操作,诸如暂停和/或取消暂停计算实例、启动和/或终止计算实例、执行存储器转移/复制操作等。在一些实施方案中,这些管理操作可以由一个或多个卸载卡1070与由计算机系统1000的其他处理器1010A至1010N执行的管理程序(例如,根据来自管理程序的请求)协作来执行。然而,在一些实施方案中,由一个或多个卸载卡1070实现的虚拟化管理器可以容纳来自其他实体(例如,来自计算实例本身)的请求,并且可以不与任何单独的管理程序协作或(服务于)任何单独的管理程序。
在一些实施方案中,系统存储器1020可以为被配置为存储如上文所描述的程序指令和数据的计算机可访问介质的一些实施方案。然而,在其他实施方案中,程序指令和/或数据可以在不同类型的计算机可访问介质上接收、发送或存储。一般来说,计算机可访问介质可以包括非暂时性存储介质或存储器介质,诸如磁性介质或光学介质,例如经由I/O接口1030耦合到计算机系统1000的磁盘或DVD/CD。非暂时性计算机可访问存储介质还可包括任何易失性或非易失性介质,诸如RAM(例如,SDRAM、双倍数据速率(DDR)SDRAM、SRAM等)、只读存储器(ROM)等,它们可作为系统存储器1020或另一种类型的存储器包括在计算机系统1000的一些实施方案中。此外,计算机可访问介质可包括经由通信介质(诸如网络和/或无线链路,诸如可经由网络接口1040实现)传达的传输介质或信号,诸如电信号、电磁信号或数字信号。
在前面的描述中,描述了各种实施方案。出于解释的目的,阐述了具体的配置和细节,以便提供对实施方案的透彻理解。然而,对本领域的技术人员将显而易见的是,可以在没有具体细节的情况下实践所述实施方案。此外,为了不使所描述的实施方案变得模糊,可能会省略或简化众所周知的特征。
在本文中使用带有虚线边框(例如,大破折号、小破折号、点破折号和点)的带括号的文本和框来说明向一些实施方案添加附加特征的可选操作。然而,这种表示法不应被视为意味着这些是仅有的选项或可选操作,和/或在某些实施方案中,带有实线边界的框不是可选的。
在各种实施方案中,具有后缀字母的附图标记(例如,918A至918N)可以用于指示所引用实体的一个或多个实例,并且当存在多个实例时,每个实例不必相同,而是可以替代地共享一些一般特征或按惯例行事。此外,除非有相反的明确说明,否则所使用的特定后缀并非意在暗示存在特定量的实体。因此,在各种实施方案中,使用相同或不同后缀字母的两个实体可以具有或可以不具有相同数量的实例。
提及“一些实施方案”、“一个实施方案”、“示例性实施方案”等指示所描述的实施方案可以包括特定特征、结构或特性,但是每个实施方案可能不一定包括所述特定特征、结构或特性。此外,此类短语不一定是指同一实施方案。此外,当结合实施方案来描述特定特征、结构或特性时,应认为,无论是否有明确描述,结合其他实施方案来实现此类特征、结构或特性也在本领域技术人员的知识范围内。
此外,在上述各种实施方案中,除非另外特别指出,否则诸如短语“A、B或C中的至少一个”的析取语言意图被理解为表示A、B或C或其任何组合(例如,A、B和/或C)。因此,析取语言通常不意图并且也不应被理解为暗示给定实施方案要求A中的至少一个、B中的至少一个和C中的至少一个各自存在。
可以根据以下示例描述所公开的技术的至少一些实施方案:
1.一种计算机实现的方法,其包括:
识别与服务提供商网络的一个或多个用户相关联的第一计算工作负载和第二计算工作负载;
获得指示计算实例池的用于执行所述第一计算工作负载的计算实例的数量的历史数据,所述计算实例池表示被预留供所述一个或多个用户使用的计算容量的量;
确定在特定时间点所述计算实例池的当前未使用的计算实例的数量;
基于当前未使用的计算实例的数量,分配所述计算实例池的多个计算实例供所述第二计算工作负载使用;
基于所述历史数据,生成在未来时间点将用于执行所述第一计算工作负载的计算实例的预测数量;以及
基于在所述未来时间点将用于执行所述第一计算工作负载的计算实例的所述预测数量,减少在所述未来时间点之前所述计算实例池的可供所述第二计算工作负载使用的计算实例的所述数量。
2.根据条款1所述的计算机实现的方法,其中至少所述第一计算工作负载与自动缩放组相关联,并且其中所述自动缩放组响应于所述第一计算工作负载的资源使用的变化自动确定所述计算实例池的多少计算实例可供所述第一计算工作负载使用。
3.根据条款1或2中任一项所述的计算机实现的方法,其中所述计算实例池包括固定数量的计算实例,并且其中所述第一计算工作负载随时间推移使用所述计算实例池的周期性变化的数量的计算实例。
4.一种计算机实现的方法,其包括:
识别与服务提供商网络的一个或多个用户相关联的第一计算工作负载和第二计算工作负载;
获得指示计算实例池的用于执行所述第一计算工作负载的计算实例的数量的历史数据,所述计算实例池表示可用于与所述一个或多个用户相关联的计算工作负载的计算容量的量;
基于所述历史数据,生成在未来时间点将用于执行所述第一计算工作负载的计算实例的预测数量;以及
基于在所述未来时间点将用于执行所述第一计算工作负载的计算实例的所述预测数量,缩放在所述未来时间点之前所述计算实例池中可供第二计算工作负载使用的计算实例的数量。
5.根据条款4所述的计算机实现的方法,其中所述第一计算工作负载与自动缩放组相关联,并且其中所述自动缩放组响应于所述第一计算工作负载的资源使用的变化自动确定所述计算实例池的多少计算实例可供所述第一计算工作负载使用。
6.根据条款4或5中任一项所述的计算机实现的方法,其中所述计算实例池包括固定数量的计算实例,并且其中所述第一计算工作负载随时间推移使用所述计算实例池的周期性变化的数量的计算实例。
7.根据条款4至6中任一项所述的计算机实现的方法,其中所述第一计算工作负载的执行由批处理服务、容器执行服务、映射规约服务和队列服务中的一者管理。
8.根据条款4至7中任一项所述的计算机实现的方法,其中指示所述计算实例池的用于执行所述第一计算工作负载的计算实例的所述数量的所述历史数据是第一历史数据,并且其中在所述未来时间点将用于执行所述第一计算工作负载的计算实例的所述预测数量是使用基于与所述计算实例池相关的第二历史数据训练的循环神经网络(RNN)生成的。
9.根据条款4至8中任一项所述的计算机实现的方法,其中所述第二计算工作负载与预期执行持续时间和执行期限相关联,并且其中所述方法还包括增加所述计算实例池中可供所述第二计算工作负载在某个时间点使用的计算实例的数量,所述时间点是基于所述预期执行持续时间、所述执行期限和在所述未来时间点将用于执行所述第一计算工作负载的计算实例的所述预测数量来确定的。
10.根据条款4至9中任一项所述的计算机实现的方法,其中所述计算实例池包括多个虚拟机(VM)实例或多个容器实例。
11.根据条款4至10中任一项所述的计算机实现的方法,其中所述第一计算工作负载的执行基于虚拟机(VM)映像、容器、脚本和可执行软件应用中的一者或多者。
12.根据条款4至11中任一项所述的计算机实现的方法,其中所述第一计算工作负载和所述第二计算工作负载与属于同一组织的用户相关联。
13.根据条款4至12中任一项所述的计算机实现的方法,其中缩放所述计算实例池中可供所述第二计算工作负载使用的计算实例的所述数量的时间部分地由指示与所述第一计算工作负载相关联的预热时间量的信息确定。
14.根据条款4至13中任一项所述的计算机实现的方法,其还包括引起图形用户界面(GUI)显示,所述GUI显示所述历史数据的表示,所述历史数据的表示指示用于执行所述第一计算工作负载的计算实例池的计算实例的数量。
15.一种系统,其包括:
由第一一个或多个电子装置实现的容量预测和调度服务,所述容量预测和调度服务包括指令,所述指令在执行时使所述容量预测和调度服务:
识别与服务提供商网络的一个或多个用户相关联的第一计算工作负载和第二计算工作负载;
获得指示计算实例池的用于执行所述第一计算工作负载的计算实例的数量的历史数据,所述计算实例池表示可用于与一个或多个用户相关联的计算工作负载的计算容量的量;
确定在特定时间点所述计算实例池的当前未使用的计算实例的数量;
向硬件虚拟化服务发送第一指令以基于当前未使用的计算实例的所述数量来分配所述计算实例池的可用于与所述一个或多个用户相关联的所述第二计算工作负载使用的自动缩放组的计算实例的数量;
基于所述历史数据,生成在未来时间点将由所述第一计算工作负载使用的计算实例的预测数量;以及
向所述硬件虚拟化服务发送第二指令以基于在所述未来时间点将由所述第一计算工作负载使用的计算实例的所述预测数量来减少在所述未来时间点之前所述计算实例池的可用于所述第二计算工作负载使用的所述自动缩放组的计算实例的所述数量;以及
由第二一个或多个电子装置实现的硬件虚拟化服务,所述硬件虚拟化服务包括指令,所述指令在执行时使所述硬件虚拟化服务:
基于所述第一指令,增加所述计算实例池的可用于第二计算工作负载使用的自动缩放组的计算实例的所述数量;以及
减少所述计算实例池的可用于所述第二计算工作负载使用的所述自动缩放组的计算实例的所述数量。
16.根据条款15所述的系统,其中所述计算实例池包括固定数量的计算实例,并且其中所述第一计算工作负载随时间推移使用所述计算实例池的周期性变化的数量的计算实例。
17.根据条款15或16中任一项所述的系统,其中所述第一计算工作负载的执行由批处理服务、容器执行服务、映射规约服务和队列服务中的一者管理。
18.根据条款15至17中任一项所述的系统,其中指示所述计算实例池的用于执行所述第一计算工作负载的计算实例的所述数量的所述历史数据是第一历史数据,并且其中在一个或多个未来时间点将用于所述第一计算工作负载的计算实例的所述预测数量是使用基于与所述计算实例池相关的第二历史数据训练的循环神经网络(RNN)生成的。
19.根据条款15至18中任一项所述的系统,其中所述第二计算工作负载与预期执行持续时间和执行期限相关联,并且其中所述指令在执行时还使所述容量预测和调度服务增加在某个时间点所述计算实例池中的计算实例的数量,所述时间点是基于所述预期执行持续时间、所述执行期限和在所述一个或多个未来时间点将用于所述第一计算工作负载的计算实例的所述预测数量来确定的。
20.根据条款15至19中任一项所述的系统,其中所述计算实例池包括多个虚拟机(VM)实例或多个容器实例。
21.一种计算机实现的方法,其包括:
获得指示一个或多个计算工作负载随时间推移使用的计算实例池的相应的计算实例数量的历史数据,所述计算实例池表示为与服务提供商网络的用户相关联的计算工作负载预留的计算容量的量;
基于所述历史数据来生成关于在未来时间间隔期间将未被所述一个或多个计算工作负载使用的所述计算资源池的可用计算资源的预测;
基于执行第二计算工作负载的要求和关于所述可用计算资源的所述预测,调度用于在所述未来时间间隔期间执行所述第二计算工作负载的所述可用计算资源中的至少一些的使用;以及
引起图形用户界面(GUI)输出以向所述用户显示,所述GUI包括显示信息的界面元素,所述信息识别(a)关于所述未来时间间隔期间可用计算实例的所述预测,以及(b)所述第二计算工作负载在所述未来时间间隔期间对所述可用计算实例中的至少一些的所述调度使用的图形表示。
22.根据条款21所述的计算机实现的方法,其还包括经由所述GUI接收输入以修改所述第二计算工作负载在未来对所述计算实例池的所述可用计算实例中的至少一些的所述调度使用,所述输入指定以下中各项的一者或多者:执行所述第二计算工作负载的不同时间、分配给所述第二计算工作负载的不同优先级、取消所述第二计算工作负载对所述计算实例池的所述可用计算实例中的至少一些的所述调度使用、与所述第二计算工作负载相关联的执行期限。
23.根据条款21或22中任一项所述的计算机实现的方法,其中所述计算实例池包括固定数量的计算实例,并且其中所述一个或多个计算工作负载随时间推移使用所述计算实例池的变化数量的计算实例。
24.一种计算机实现的方法,其包括:
获得指示一个或多个计算工作负载随时间推移使用的计算资源池的相应计算资源量的历史数据;
基于所述历史数据来生成关于在未来时间间隔期间将未被所述一个或多个计算工作负载使用的来自所述计算资源池的可用计算资源的预测;
基于执行第二计算工作负载的要求和关于将在所述未来时间间隔期间未被所述一个或多个第一计算工作负载使用的可用计算资源的预测,调度所述第二计算工作负载在所述未来时间间隔期间对来自所述计算资源池的计算资源量的使用。
引起图形用户界面(GUI)输出以向所述用户显示,所述GUI包括显示信息的界面元素,所述信息识别(a)关于所述未来时间间隔期间可用计算实例的所述预测,以及(b)所述第二计算工作负载在所述未来时间间隔期间对所述计算资源量的所述调度使用的图形表示。
25.根据条款24所述的计算机实现的方法,其还包括经由所述GUI接收输入以修改所述第二计算工作负载在未来对所述计算资源池的可用计算资源量的调度使用,所述输入指定以下各项中的一者或多者:执行所述第二计算工作负载的不同时间、分配给所述第二计算工作负载的不同优先级、取消所述第二计算工作负载对所述计算资源量的所述调度使用、与所述第二计算工作负载相关联的执行期限。
26.根据条款24或25中任一项所述的计算机实现的方法,其中所述计算资源池包括计算实例池,所述计算实例池包括固定数量的计算实例,并且其中所述一个或多个计算工作负载随时间推移使用所述计算实例池的变化数量的计算实例。
27.根据条款24至26中任一项所述的计算机实现的方法,其中所述一个或多个计算工作负载中的至少一个与自动缩放组相关联,其中所述自动缩放组定义可用于相应计算工作负载的计算资源量。
28.根据条款24至27中任一项所述的计算机实现的方法,其中所述一个或多个计算工作负载的执行由批处理服务、容器执行服务、映射规约服务和队列服务中的一者管理。
29.根据条款24至28中任一项所述的计算机实现的方法,其中指示一个或多个计算工作负载随时间推移使用的计算资源池的相应计算资源量的所述历史数据是第一历史数据,并且其中关于将在所述未来时间间隔期间未被所述一个或多个计算工作负载使用的可用计算资源的预测是使用基于与所述计算资源池相关的第二历史数据训练的循环神经网络(RNN)生成的。
30.根据条款24至29中任一项所述的计算机实现的方法,其中所述计算资源池为计算实例池,其中所述计算实例池包括多个虚拟机(VM)实例或多个容器实例。
31.根据条款24至30中任一项所述的计算机实现的方法,其中所述第二计算工作负载是与多个相应估计的执行持续时间和多个相应的执行期限相关联的多个第二计算工作负载中的一者,并且其中所述调度是基于关于可用计算资源的所述预测、所述多个相应估计的执行持续时间以及所述多个相应的执行期限。
32.根据条款24至31中任一项所述的计算机实现的方法,其中所述一个或多个计算工作负载与属于同一组织的用户相关联。
33.根据条款24至32中任一项所述的计算机实现的方法,其还包括:
确定一个或多个计算工作负载中的至少一个特定计算工作负载在未来对所述计算资源池的可用计算资源量的调度使用预期超过所述计算资源池中可用的总容量;以及
向用户发送通知,所述通知指示所述调度使用预期将超过所述计算资源池中可用的所述总容量。
34.根据条款24至33中任一项所述的计算机实现的方法,其中所述GUI还显示对所述一个或多个计算工作负载中的所述第二计算工作负载对来自所述计算资源池的所述计算资源量的所述调度使用的一个或多个建议的修改。
35.一种系统,其包括:
由第一一个或多个电子装置实现的容量预测和调度服务,所述容量预测和调度服务包括指令,所述指令在执行时使所述容量预测和调度服务:
获得指示一个或多个计算工作负载随时间推移使用的计算实例池的相应的计算实例数量的历史数据,所述计算实例池表示可用于与服务提供商网络的用户相关联的计算工作负载的计算容量的量;
基于所述历史数据来生成关于在未来时间间隔期间将未被所述一个或多个计算工作负载使用的所述计算资源池的可用计算资源的预测;
基于执行第二计算工作负载的要求和关于所述可用计算资源的所述预测,调度用于在所述未来时间间隔期间执行所述第二计算工作负载的所述可用计算资源中的至少一些的使用;以及
引起图形用户界面(GUI)输出以向所述用户显示,所述GUI包括显示信息的界面元素,所述信息识别(a)关于所述未来时间间隔期间可用计算实例的所述预测,以及(b)所述第二计算工作负载在所述未来时间间隔期间对所述可用计算实例中的至少一些的所述调度使用的图形表示;以及
由第二一个或多个电子装置实现的硬件虚拟化服务,所述硬件虚拟化服务包括指令,所述指令在执行时使所述硬件虚拟化服务在所述未来时间间隔期间使用所述可用计算实例中的至少一个执行所述第二计算工作负载。
36.根据条款35所述的系统,其中所述指令在执行时还使所述容量预测和调度服务经由所述GUI接收输入以修改所述第二计算工作负载在未来对所述计算实例池的所述可用计算实例中的至少一些的所述调度使用,所述输入指定以下各项中的一者或多者:执行所述第二计算工作负载的不同时间、分配给所述第二计算工作负载的不同优先级、取消所述第二计算工作负载对所述数量的计算资源的所述调度使用、与所述第二计算工作负载相关联的执行期限。
37.根据条款35或36中任一项所述的系统,其中所述计算实例池包括固定数量的计算实例,并且其中所述一个或多个计算工作负载随时间推移使用所述计算实例池的变化数量的计算实例。
38.根据条款35至37中任一项所述的系统,其中所述一个或多个计算工作负载中的至少一个与自动缩放组相关联,其中所述自动缩放组定义可用于相应计算工作负载的计算资源量。
39.根据条款35至38中任一项所述的系统,其中所述一个或多个计算工作负载的执行由批处理服务、容器执行服务、映射规约服务和队列服务中的一者管理。
40.根据条款35至39中任一项所述的系统,其中指示所述计算实例池的用于执行所述第一计算工作负载的计算实例的所述数量的所述历史数据是第一历史数据,并且其中关于在一个或多个未来时间点将由所述一个或多个计算工作负载中的每一者使用的可用计算实例的预测是使用基于与所述计算实例池相关的第二历史数据训练的循环神经网络(RNN)生成的。
41.一种计算机实现的方法,其包括:
获得指示一个或多个第一计算工作负载随时间推移使用的计算实例池的相应的计算实例数量的历史数据,所述计算实例池表示为与服务提供商网络的一个或多个用户相关联的计算工作负载预留的计算容量的量;
基于所述历史数据来生成关于在未来时间间隔期间将未被所述一个或多个第一计算工作负载使用的所述计算资源池的可用计算资源的预测;
确定执行第二计算工作负载的要求,所述要求包括在估计的执行持续时间和执行期限内所需计算实例的数量;
确定关于可用计算实例和所述未来时间间隔的所述预测可以满足执行所述第二计算工作负载的所述要求;以及
调度所述第二计算工作负载在所述未来时间间隔期间的执行,包括调度所述第二计算工作负载要使用的来自所述计算实例池的所述数量的所需计算实例的使用。
42.根据条款41所述的计算机实现的方法,其中所述第二计算工作负载是多个附加计算工作负载中的一者,每个附加计算工作负载与相应估计的执行持续时间和相应的执行期限相关联,并且其中所述调度包括确定何时通过利用所述可用计算实例中的至少一些来执行所述多个附加计算工作负载中的每一者以在所述多个附加计算工作负载相应的执行期限之前运行所述多个附加计算工作负载达其相应估计的执行持续时间。
43.根据条款41或42中任一项所述的计算机实现的方法,其中所述计算实例池包括固定数量的计算实例,并且其中所述第一计算工作负载随时间推移使用所述计算实例池的变化数量的计算实例。
44.一种计算机实现的方法,其包括:
获得指示一个或多个第一计算工作负载随时间推移使用的计算资源池的相应计算资源量的历史数据;
基于所述历史数据来生成关于在未来时间间隔期间将未被所述一个或多个第一计算工作负载使用的所述计算资源池的可用计算资源的预测;
确定执行第二计算工作负载的要求,所述要求包括在估计的执行持续时间和执行期限内的计算资源量;
确定关于可用计算资源和所述未来时间间隔的所述预测可以满足执行所述第二计算工作负载的所述要求;以及
调度所述第二计算工作负载在所述未来时间间隔期间的执行,包括调度所述第二计算工作负载对所述计算资源池的所述计算资源量的使用。
45.根据条款44所述的计算机实现的方法,其中所述第二计算工作负载是多个附加计算工作负载中的一者,每个附加计算工作负载与相应估计的执行持续时间和相应的执行期限相关联,并且其中所述调度包括确定何时通过利用所述预测量的未使用的计算资源中的至少一些来执行所述多个附加计算工作负载中的每一者以在所述多个附加计算工作负载相应的执行期限之前运行所述多个附加计算工作负载达其相应估计的执行持续时间。
46.根据条款44或45中任一项所述的计算机实现的方法,其中所述计算资源池包括固定量的计算资源,并且其中所述第一计算工作负载随时间推移使用来自所述计算实例池的周期性变化的数量的计算资源。
47.根据条款44至46中任一项所述的计算机实现的方法,其中所述第一计算工作负载的执行由批处理服务、容器执行服务、映射规约服务和队列服务中的一者管理。
48.根据条款44至47中任一项所述的计算机实现的方法,其中一个或多个计算工作负载随时间推移使用的计算资源池的所述相应计算资源量是第一历史数据,并且其中关于在未来时间间隔期间将未被所述一个或多个第一计算工作负载使用的可用计算资源的预测是使用基于与所述计算资源池相关的第二历史数据训练的循环神经网络(RNN)生成的。
49.根据条款44至48中任一项所述的计算机实现的方法,其还包括基于所述一个或多个第一计算工作负载和所述第二计算工作负载随时间推移所使用的所述计算资源量,来缩放与执行期限不相关联的第三计算工作负载所使用的来自所述计算资源池的计算资源量。
50.根据条款44至49中任一项所述的计算机实现的方法,其中所述计算资源池为计算实例池,其中所述计算实例池包括多个虚拟机(VM)实例或多个容器实例。
51.根据条款44至50中任一项所述的计算机实现的方法,其还包括调度第三计算工作负载在未来时间段期间对所述计算资源池的计算资源量的使用,其中所述调度部分地基于分配给所述第二计算工作负载和所述第三计算工作负载的相应优先级。
52.根据条款44至51中任一项所述的计算机实现的方法,其中所述第一计算工作负载和所述第二计算工作负载与属于同一组织的用户相关联。
53.根据条款44至52中任一项所述的计算机实现的方法,其中调度所述第二计算工作负载在未来要使用的所述计算资源池的所述计算资源量部分地由指示与所述第一计算工作负载相关联的预热时间量的信息确定。
54.根据条款44至53中任一项所述的计算机实现的方法,其还包括引起图形用户界面(GUI)显示,所述GUI显示所述历史数据的表示,所述历史数据的表示指示所述一个或多个第一工作负载随时间推移使用的所述计算资源池的相应计算资源量。
55.一种系统,其包括:
由第一一个或多个电子装置实现的容量预测和调度服务,所述容量预测和调度服务包括指令,所述指令在执行时使所述容量预测和调度服务:
获得指示一个或多个第一计算工作负载随时间推移使用的计算实例池的相应的计算实例数量的历史数据,所述计算实例池表示可用于与服务提供商网络的一个或多个用户相关联的计算工作负载的计算容量的量;
基于所述历史数据来生成关于在未来时间间隔期间将未被所述一个或多个第一计算工作负载使用的所述计算资源池的可用计算资源的预测;
确定执行第二计算工作负载的要求,所述要求包括在估计的执行持续时间和执行期限内所需计算实例的数量;
确定关于可用计算实例和所述未来时间间隔的所述预测可以满足执行所述第二计算工作负载的所述要求;以及
调度所述第二计算工作负载在所述未来时间间隔期间的执行,包括调度所述第二计算工作负载要使用的来自所述计算实例池的所述数量的所需计算实例的使用;以及
由第二一个或多个电子装置实现的硬件虚拟化服务,所述硬件虚拟化服务包括指令,所述指令在执行时使所述硬件虚拟化服务在所述未来时间间隔期间使用来自所述计算实例池的所述数量的所需计算实例来执行所述第二计算工作负载。
56.根据条款55所述的系统,其中所述第二计算工作负载是与多个相应估计的执行持续时间和多个相应的执行期限相关联的多个第二计算工作负载中的一者,并且其中所述调度是基于关于可用计算实例的所述预测、所述多个相应估计的执行持续时间以及所述多个相应的执行期限。
57.根据条款55或56中任一项所述的系统,其中所述计算实例池包括固定数量的计算实例,并且其中所述第一计算工作负载随时间推移使用来自所述计算实例池的变化数量的计算实例。
58.根据条款55至57中任一项所述的系统,其中所述第一计算工作负载的执行由批处理服务、容器执行服务、映射规约服务和队列服务中的一者管理。
59.根据条款55至58中任一项所述的系统,其中指示所述计算实例池的用于执行所述第一计算工作负载的计算实例的所述数量的所述历史数据是第一历史数据,并且其中在所述一个或多个未来时间点将用于所述第一计算工作负载的计算实例的所述预测数量是使用基于与所述计算实例池相关的第二历史数据训练的循环神经网络(RNN)生成的。
60.根据条款55至59中任一项所述的系统,其中所述指令在执行时还使所述容量预测和调度服务基于所述一个或多个第一计算工作负载和所述第二计算工作负载随时间推移使用的计算实例的数量来缩放与执行期限不相关联的第三计算工作负载使用的来自计算实例池的计算实例的数量。
因此,说明书和附图应被认为是说明性的而不是限制性的。然而,将显而易见的是,在不脱离如在权利要求中阐述的本公开的更宽泛精神和范围的情况下,可以对其做出各种修改和改变。

Claims (15)

1.一种计算机实现的方法,其包括:
识别与服务提供商网络的一个或多个用户相关联的第一计算工作负载和第二计算工作负载;
获得指示计算实例池的用于执行所述第一计算工作负载的计算实例的数量的历史数据,所述计算实例池表示可用于与所述一个或多个用户相关联的计算工作负载的计算容量的量;
基于所述历史数据,生成在未来时间点将用于执行所述第一计算工作负载的计算实例的预测数量;以及
基于在所述未来时间点将用于执行所述第一计算工作负载的计算实例的所述预测数量,缩放在所述未来时间点之前所述计算实例池中可供第二计算工作负载使用的计算实例的数量。
2.根据权利要求1所述的计算机实现的方法,其中所述第一计算工作负载与自动缩放组相关联,并且其中所述自动缩放组响应于所述第一计算工作负载的资源使用的变化自动确定所述计算实例池的多少计算实例可供所述第一计算工作负载使用。
3.根据权利要求1或2中任一项所述的计算机实现的方法,其中所述计算实例池包括固定数量的计算实例,并且其中所述第一计算工作负载随时间推移使用所述计算实例池的周期性变化的数量的计算实例。
4.根据权利要求1至3中任一项所述的计算机实现的方法,其中所述第一计算工作负载的执行由批处理服务、容器执行服务、映射规约服务和队列服务中的一者管理。
5.根据权利要求1至4中任一项所述的计算机实现的方法,其中指示所述计算实例池的用于执行所述第一计算工作负载的计算实例的数量的所述历史数据是第一历史数据,并且其中在所述未来时间点将用于执行所述第一计算工作负载的计算实例的所述预测数量是使用基于与所述计算实例池相关的第二历史数据训练的循环神经网络(RNN)生成的。
6.根据权利要求1至5中任一项所述的计算机实现的方法,其中所述第二计算工作负载与预期执行持续时间和执行期限相关联,并且其中所述方法还包括增加所述计算实例池中可供所述第二计算工作负载在一时间点使用的计算实例的数量,所述时间点是基于所述预期执行持续时间、所述执行期限和用于在所述未来时间点执行所述第一计算工作负载的计算实例的所述预测数量确定的。
7.根据权利要求1至6中任一项所述的计算机实现的方法,其中所述计算实例池包括多个虚拟机(VM)实例或多个容器实例。
8.根据权利要求1至7中任一项所述的计算机实现的方法,其中缩放所述计算实例池中可供所述第二计算工作负载使用的计算实例的数量的时间部分地由指示与所述第一计算工作负载相关联的预热时间量的信息确定。
9.根据权利要求1至8中任一项所述的计算机实现的方法,其还包括引起图形用户界面(GUI)显示,所述GUP显示所述历史数据的表示,所述历史数据的表示指示计算实例池的用于执行所述第一计算工作负载的计算实例的数量。
10.一种系统,其包括:
由第一一个或多个电子装置实现的容量预测和调度服务,所述容量预测和调度服务包括指令,所述指令在执行时使所述容量预测和调度服务:
识别与服务提供商网络的一个或多个用户相关联的第一计算工作负载和第二计算工作负载;
获得指示计算实例池的用于执行所述第一计算工作负载的计算实例的数量的历史数据,所述计算实例池表示可用于与一个或多个用户相关联的计算工作负载的计算容量的量;
在特定时间点确定所述计算实例池的当前未使用的计算实例的数量;
向硬件虚拟化服务发送第一指令以基于当前未使用的计算实例的数量来分配所述计算实例池的可用于由与所述一个或多个用户相关联的所述第二计算工作负载使用的自动缩放组的计算实例的数量;
基于所述历史数据,生成在未来时间点将由所述第一计算工作负载使用的计算实例的预测数量;以及
向所述硬件虚拟化服务发送第二指令以基于在所述未来时间点将由所述第一计算工作负载使用的计算实例的所述预测数量来减少在所述未来时间点之前所述计算实例池的可用于由所述第二计算工作负载使用的所述自动缩放组的计算实例的数量;以及
由第二一个或多个电子装置实现的硬件虚拟化服务,所述硬件虚拟化服务包括指令,所述指令在执行时使所述硬件虚拟化服务:
基于所述第一指令,增加所述计算实例池的可用于由第二计算工作负载使用的自动缩放组的计算实例的数量;以及
减少所述计算实例池的可用于由所述第二计算工作负载使用的所述自动缩放组的计算实例的数量。
11.根据权利要求10所述的系统,其中所述计算实例池包括固定数量的计算实例,并且其中所述第一计算工作负载随时间推移使用所述计算实例池的周期性变化的数量的计算实例。
12.根据权利要求10或11中任一项所述的系统,其中所述第一计算工作负载的执行由批处理服务、容器执行服务、映射规约服务和队列服务中的一者管理。
13.根据权利要求10至12中任一项所述的系统,其中指示所述计算实例池的用于执行所述第一计算工作负载的计算实例的数量的所述历史数据是第一历史数据,并且其中在一个或多个未来时间点将用于所述第一计算工作负载的计算实例的所述预测数量是使用基于与所述计算实例池相关的第二历史数据训练的循环神经网络(RNN)生成的。
14.根据权利要求10至13中任一项所述的系统,其中所述第二计算工作负载与预期执行持续时间和执行期限相关联,并且其中所述指令在执行时还使所述容量预测和调度服务增加在一时间点所述计算实例池中的计算实例的数量,所述时间点是基于所述预期执行持续时间、所述执行期限和在所述一个或多个未来时间点将用于所述第一计算工作负载的计算实例的所述预测数量来确定的。
15.根据权利要求10至14中任一项所述的系统,其中所述计算实例池包括多个虚拟机(VM)实例或多个容器实例。
CN202080023177.7A 2019-03-22 2020-02-27 使用预测容量使用情况对虚拟机工作负载进行装箱 Active CN113614694B (zh)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US16/362,542 2019-03-22
US16/362,542 US11243794B2 (en) 2019-03-22 2019-03-22 Interactive GUI for bin-packing virtual machine workloads based on predicted availability of compute instances and scheduled use of the compute instances
US16/362,539 US11221887B2 (en) 2019-03-22 2019-03-22 Bin-packing virtual machine workloads using forecasted capacity usage
US16/362,539 2019-03-22
US16/362,545 US11249810B2 (en) 2019-03-22 2019-03-22 Coordinated predictive autoscaling of virtualized resource groups
US16/362,545 2019-03-22
PCT/US2020/020209 WO2020197688A1 (en) 2019-03-22 2020-02-27 Bin-packing virtual machine workloads using forecasted capacity usage

Publications (2)

Publication Number Publication Date
CN113614694A true CN113614694A (zh) 2021-11-05
CN113614694B CN113614694B (zh) 2024-04-16

Family

ID=70058468

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080023177.7A Active CN113614694B (zh) 2019-03-22 2020-02-27 使用预测容量使用情况对虚拟机工作负载进行装箱

Country Status (3)

Country Link
EP (1) EP3942409B1 (zh)
CN (1) CN113614694B (zh)
WO (1) WO2020197688A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115061702A (zh) * 2022-08-19 2022-09-16 荣耀终端有限公司 一种ide管理方法及电子设备
CN118069376A (zh) * 2024-04-18 2024-05-24 北京大道云行科技有限公司 一种基于san存储的多租户高可用系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100131959A1 (en) * 2008-11-26 2010-05-27 Spiers Adam Z Proactive application workload management
CN105324760A (zh) * 2013-06-10 2016-02-10 亚马逊技术有限公司 预配置和预启动计算资源
CN107567696A (zh) * 2015-05-01 2018-01-09 亚马逊科技公司 计算集群内的资源实例群组的自动扩展
CN109117269A (zh) * 2018-07-26 2019-01-01 郑州云海信息技术有限公司 一种分布式系统虚拟机调度方法、装置和可读存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9720732B1 (en) * 2013-02-11 2017-08-01 Amazon Technologies, Inc. Parameter selection for optimization of task execution based on execution history for prior tasks
US9612878B2 (en) * 2014-03-31 2017-04-04 International Business Machines Corporation Resource allocation in job scheduling environment
US9971621B1 (en) * 2015-02-02 2018-05-15 Amazon Technologies, Inc. Hotpooling virtual machines
US20170323377A1 (en) * 2016-05-09 2017-11-09 Jane Koo Method of raising capital via a business entity with a contract to generate revenue for the entity
US10042676B1 (en) * 2016-06-28 2018-08-07 Amazon Technologies, Inc. Capacity pool health index

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100131959A1 (en) * 2008-11-26 2010-05-27 Spiers Adam Z Proactive application workload management
CN105324760A (zh) * 2013-06-10 2016-02-10 亚马逊技术有限公司 预配置和预启动计算资源
CN107567696A (zh) * 2015-05-01 2018-01-09 亚马逊科技公司 计算集群内的资源实例群组的自动扩展
CN109117269A (zh) * 2018-07-26 2019-01-01 郑州云海信息技术有限公司 一种分布式系统虚拟机调度方法、装置和可读存储介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115061702A (zh) * 2022-08-19 2022-09-16 荣耀终端有限公司 一种ide管理方法及电子设备
CN118069376A (zh) * 2024-04-18 2024-05-24 北京大道云行科技有限公司 一种基于san存储的多租户高可用系统

Also Published As

Publication number Publication date
EP3942409A1 (en) 2022-01-26
CN113614694B (zh) 2024-04-16
EP3942409B1 (en) 2023-11-01
WO2020197688A1 (en) 2020-10-01

Similar Documents

Publication Publication Date Title
US11249810B2 (en) Coordinated predictive autoscaling of virtualized resource groups
US11221887B2 (en) Bin-packing virtual machine workloads using forecasted capacity usage
US11243794B2 (en) Interactive GUI for bin-packing virtual machine workloads based on predicted availability of compute instances and scheduled use of the compute instances
US11175954B2 (en) Multi-layer QoS management in a distributed computing environment
US20200192703A1 (en) Utilization-aware resource scheduling in a distributed computing cluster
US10277525B2 (en) Method and apparatus for disaggregated overlays via application services profiles
CN113900767B (zh) 监测集群和实施自动缩放策略的容器即服务控制器
CN107567696B (zh) 计算集群内的资源实例群组的自动扩展
US9600262B2 (en) System, method and program product for updating virtual machine images
US8839260B2 (en) Automated cloud workload management in a map-reduce environment
US9009294B2 (en) Dynamic provisioning of resources within a cloud computing environment
US11113120B1 (en) Intent-based auto scaling of virtual computing resources
US20180253244A1 (en) Method and system for memory allocation in a disaggregated memory architecture
US20120271949A1 (en) Real-time data analysis for resource provisioning among systems in a networked computing environment
US10474502B2 (en) Multi-tenant license enforcement across job requests
US11150951B2 (en) Releasable resource based preemptive scheduling
CN111399970B (zh) 一种预留资源管理方法、装置和存储介质
WO2016030973A1 (ja) マルチテナントリソース調停方法
US11470144B1 (en) Optimization-based pool protection for a cloud provider network
US11656912B1 (en) Enabling conditional computing resource terminations based on forecasted capacity availability
WO2023169329A1 (en) Resource utilization efficiency based job scheduling
US9928092B1 (en) Resource management in a virtual machine cluster
US10635492B2 (en) Leveraging shared work to enhance job performance across analytics platforms
CN113614694B (zh) 使用预测容量使用情况对虚拟机工作负载进行装箱
US20230266997A1 (en) Distributed scheduling in container orchestration engines

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant