CN114207589A - 分布式计算环境中的工作负载的寿命期间的计算平台优化 - Google Patents
分布式计算环境中的工作负载的寿命期间的计算平台优化 Download PDFInfo
- Publication number
- CN114207589A CN114207589A CN202080036150.1A CN202080036150A CN114207589A CN 114207589 A CN114207589 A CN 114207589A CN 202080036150 A CN202080036150 A CN 202080036150A CN 114207589 A CN114207589 A CN 114207589A
- Authority
- CN
- China
- Prior art keywords
- workload
- computing resource
- resource
- virtual computing
- type
- 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.)
- Pending
Links
- 238000005457 optimization Methods 0.000 title abstract description 182
- 238000000034 method Methods 0.000 claims abstract description 153
- 230000004048 modification Effects 0.000 claims abstract description 58
- 238000012986 modification Methods 0.000 claims abstract description 58
- 238000012360 testing method Methods 0.000 claims description 91
- 238000012545 processing Methods 0.000 claims description 33
- 230000036541 health Effects 0.000 claims description 13
- 230000005012 migration Effects 0.000 claims description 10
- 238000013508 migration Methods 0.000 claims description 10
- 230000004044 response Effects 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 45
- 238000004088 simulation Methods 0.000 description 31
- 230000000295 complement effect Effects 0.000 description 27
- 238000010801 machine learning Methods 0.000 description 26
- 239000003795 chemical substances by application Substances 0.000 description 14
- 238000007726 management method Methods 0.000 description 14
- 230000008569 process Effects 0.000 description 14
- 230000015572 biosynthetic process Effects 0.000 description 13
- 238000013507 mapping Methods 0.000 description 11
- 238000005516 engineering process Methods 0.000 description 8
- 230000006855 networking Effects 0.000 description 8
- 238000004422 calculation algorithm Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 5
- 238000013500 data storage Methods 0.000 description 5
- 238000001152 differential interference contrast microscopy Methods 0.000 description 4
- 230000000977 initiatory effect Effects 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000012552 review Methods 0.000 description 4
- 230000003862 health status Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000012549 training Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 238000013135 deep learning Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 239000010410 layer Substances 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 230000007423 decrease Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 238000013433 optimization analysis Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 239000002344 surface layer Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
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)
- Stored Programmes (AREA)
Abstract
用于服务提供商网络的优化服务代表用户帮助优化对虚拟机(VM)实例类型的选择、配置和利用以支持工作负载的技术。所述优化服务可以在工作负载的寿命周期中的各个阶段实现本文描述的技术以帮助优化所述工作负载的性能,并且减少计算资源的未充分利用。例如,所述优化服务可以执行技术以帮助新用户选择在上面最初启动其工作负载的优化的VM实例类型。此外,所述优化服务可以在工作负载的寿命内监视所述工作负载,并且确定优化所述工作负载的性能的新VM实例类型和/或配置修改。所述优化服务可以向用户提供帮助改进其工作负载的性能并且也提高对所述服务提供商网络的计算资源的总利用的推荐。
Description
相关申请的交叉引用
本申请要求2019年3月28日提交的标题为“Compute Platform OptimizationOver the Life of a Workload in a Distributed Computing Environment”的美国专利申请号16/367,862、2019年3月28日提交的标题为“Compute Platform OptimizationAcross Heterogeneous Hardware in a Distributed Computing Environment”的美国专利申请号16/367,914、2019年3月28日提交的标题为“Classification of Workloads in aDistributed Computing Environment”的美国专利申请号16/367,768、2019年3月28日提交的标题为“Optimizing Hardware Platform Utilization for HeterogeneousWorkloads in a Distributed Computing Environment”的美国专利申请号16/368,072以及2019年3月28日提交的标题为“Compute Platform Recommendations for NewWorkloads in a Distributed Computing Environment”的美国专利申请号16/367,801的优先权,这些申请的全部内容通过引用并入本文。
背景技术
服务提供商提供基于云的服务以履行用户的计算服务需求,而不用用户不得不对实现服务所需要的计算基础设施进行投资和维护。这些服务提供商维护受管理的计算资源和功能性的网络以实现各种类型的可扩展的按需服务,诸如存储服务、计算服务、数据库服务、联网服务等。计算资源的网络或“服务提供商网络”能够包括跨多个不同区域定位并且通过通信网络或一系列通信网络互连以交换数据的计算系统。具体地,数据中心或数据处理中心可以包括许多互连的计算装置(或“服务器”)以向服务提供商网络的用户提供计算资源。
为了提高对计算资源的利用,虚拟化技术可以允许单个物理计算装置托管多个虚拟计算资源。例如,单个计算装置能够托管虚拟机(VM)的多个实例(在本文中也称为“虚拟机实例”或“VM实例”),它们作为用于用户的独立物理计算装置出现和操作,但是每个实例共享或被分配了单个底层物理计算装置的计算资源的部分。以这种方式,不是使单个用户或进程未充分利用物理计算装置的资源,而是多个用户或进程能够利用物理计算装置的资源来提高资源利用。
为了进一步提高对计算资源的利用,并且另外为了更有效地满足用户的计算资源需要,服务提供商网络可以提供各种不同类型的虚拟机。具体地,服务提供商网络可以代表用户提供对被优化或偏向以支持不同用例的VM实例类型的选择。在此类实施例中,不同的VM实例类型可以被分配底层物理计算装置的不同量的计算资源和/或底层物理计算装置的计算资源的不同组合以给用户提供用于被更适当地优化以支持他们的计算资源需要的VM实例的灵活性。
附图说明
在下面参考附图阐述详细描述。在图中,附图标记的最左边的数字标识附图标记首次出现的图。在不同图中使用相同的附图标记指示类似或相同的项目。附图中描绘的系统不按比例绘制,并且图内的组件可能被描绘为彼此不按比例绘制。
图1图示了服务提供商网络的优化服务代表用户确定被优化以支持工作负载的VM实例类型的实施例环境的系统架构图。
图2图示了代表用户帮助优化对VM实例类型的选择、配置和利用以支持工作负载的服务提供商网络的实施例组件的组件图。
图3图示了服务提供商网络的用户能够通过其来定义要在VM实例上启动的工作负载的图形用户界面。
图4图示了利用来自跨用户账户的VM实例和工作负载的历史利用数据来生成工作负载类别和资源利用模型的服务提供商网络的系统架构图。
图5图示了服务提供商网络的用户能够通过其来审查有关被优化以支持其工作负载的VM实例类型的推荐的图形用户界面。
图6A和图6B共同地图示了用于服务提供商网络通过一个或多个用户界面从用户账户接收工作负载的定义、将工作负载映射到预定义工作负载类别、并且给用户账户提供关于用于支持其工作负载的VM实例类型的推荐的实施例方法的流程图。
图7图示了用于服务提供商网络接收工作负载的资源利用特性并且向将用于启动工作负载的VM实例类型的用户账户提供推荐的实施例方法的流程图。
图8图示了用于服务提供商网络经由一个或多个用户界面接收输入的实施例方法的流程图,所述输入指示与工作负载相关联的资源利用特性,基于资源利用特性确定VM实例类型,并且向用户账户提供针对用于支持工作负载的VM实例类型的推荐。
图9图示了在新VM实例类型上模拟工作负载以确定该新VM实例类型的性能并且在将工作负载的编队迁移到新VM实例类型上之前在VM实例上测试工作负载的服务提供商网络的系统架构图。
图10图示了服务提供商网络的用户能够通过其来审查用于将其工作负载迁移到被优化以支持其工作负载的新VM实例类型的推荐的图形用户界面。
图11图示了用于确定新VM实例类型与当前VM实例类型比被更优化以支持工作负载、将新VM实例类型推荐给与工作负载相关联的用户账户、并且将工作负载迁移到新VM实例类型的实施例方法的流程图。
图12图示了用于确定工作负载的资源利用改变了、标识被更优化以托管工作负载的新VM实例类型、并且给用户账户提供要将工作负载迁移到新VM实例类型的推荐的实施例方法的流程图。
图13图示了用于确定新VM实例类型与当前VM实例类型比被更优化以支持工作负载并且将新VM实例类型推荐给与工作负载相关联的用户账户的实施例方法的流程图。
图14图示了服务提供商网络的优化服务从在支持工作负载的VM实例上执行的代理接收配置数据并且推荐对工作负载或操作系统的配置参数做出修改的实施例环境的系统架构图。
图15图示了用于将软件代理部署到正在托管工作负载的VM实例、从代理接收配置数据、并且向用户账户提供指示要对工作负载的应用栈的配置参数做出的修改的推荐的实施例方法的流程图。
图16图示了用于接收指定应用栈或操作系统中的至少一个的配置参数的配置数据并且向用户账户提供指示要对配置参数做出的修改的推荐或者自动地修改配置参数的实施例方法的流程图。
图17图示了服务提供商网络的优化服务接收指示不同计算装置上的工作负载的资源消耗的利用数据并且将计算装置映射到被消耗以确定计算装置的性能度量的物理资源的实施例环境的系统架构图。
图18图示了用于使用计算装置之间的性能比率来确定计算装置具有性能度量使得如果工作负载被托管在计算装置上则所得的工作负载的资源利用将在期望利用率内的实施例方法的流程图。
图19图示了用于确定硬件装置具有性能度量使得硬件装置被优化以托管工作负载的实施例方法的流程图。
图20图示了服务提供商网络的优化服务确定计算上兼容的VM实例类型并且将计算上兼容的VM实例类型部署在同一计算装置上的实施例环境的系统架构图。
图21是示出了包括服务提供商网络的能够被配置为实现本文描述的功能性的各方面的数据中心的说明性操作环境的系统和网络图。
图22是图示了用于能够被利用来实现本文公开的技术的各方面的数据中心的配置的计算系统图。
图23是示出了用于实现能够被利用来实现本文呈现的各种技术的各方面的计算装置的说明性计算机硬件架构的计算机架构图。
图24图示了用于基于工作负载是计算上兼容的在由同一物理服务器支持的VM实例上部署工作负载的实施例方法的流程图。
图25图示了用于确定工作负载是计算上兼容的并且使用同一硬件资源上的VM实例来托管工作负载的实施例方法的流程图。
图26图示了用于基于工作负载属于计算上兼容的工作负载类别来确定要将工作负载放置在位于同一硬件装置上的VM实例上的实施例方法的流程图。
具体实施方式
服务提供商向用户提供各种基于网络的(或“基于云的”)服务以履行用户的计算需要。这些服务提供商可以运营包括存储在跨不同地理区域定位的数据中心中的受管理服务器(或其他基于硬件的计算装置)的聚群的服务提供商网络。服务提供商网络的用户能够请求服务提供商代表用户分配这些数据中心中的计算资源以支持计算工作负载。服务提供商网络的一个或多个服务能够接收这些请求并且分配物理计算资源以为用户支持工作负载,诸如计算装置的计算机处理器、存储器、存储驱动器、计算机网络接口和/或其他硬件资源的使用率。
如上面指出的,服务提供商网络可以利用虚拟化技术,使得计算装置能够各自托管作为独立计算装置出现和操作以支持用户的工作负载的多个VM实例。不是分配物理计算装置的所有计算资源来为用户支持单个工作负载,而是能够在支持不同工作负载的多个VM实例当中分配物理计算装置的计算资源。服务提供商网络代表用户支持许多不同类型的工作负载,并且这些工作负载常常具有不同的计算资源需要。如本文所描述的,工作负载由一组指定的计算资源实现,并且能够将工作负载它本身认为是使用计算资源来执行功能性的代码或逻辑。服务提供商网络可以支持各式各样工作负载,诸如web服务器、数据库、面向客户的应用、分布式数据暂存器、批处理、机器/深度学习训练和/或推理、在线游戏、视频编码、存储器缓存、和/或能够由服务提供商网络的计算资源支持的任何其他类型的工作负载。
鉴于代表用户支持的不同工作负载,服务提供商网络可以给用户提供对被优化以支持不同工作负载的各种VM实例类型的选择。通常,每个VM实例类型可以被分配不同量的计算资源和/或计算资源的不同组合,使得VM实例类型被优化或计算上偏向以支持不同工作负载。如本文所用,计算资源是指计算、存储器、存储、联网,并且在一些实施方案中,是指图形处理。作为实施例,一种VM实例类型可以被分配更大量的计算(例如,处理器周期)并且被优化以支持计算重的工作负载,然而另一VM实例类型可以被分配更大量的存储(例如,磁盘空间)并且被优化以支持存储密集的工作负载。以这种方式,用户能够选择被更优化以支持其工作负载的VM实例类型或平台,从而提高工作负载的性能,同时减少由服务提供商网络对计算资源的未充分利用。
通常,由服务提供商网络提供的VM实例类型的复杂性和多样性的增加是有利的并且导致工作负载由更优化的VM实例支持的可能性更高。虽然由于各种原因(例如,计算资源的高效利用、工作负载的高性能等)各种各样VM实例类型是有利的,但是对用户特别是新用户来说,选择合适或适当的VM实例类型以支持其工作负载也可能变得困难。例如,用户可能试图制订他们的工作负载的计算资源需要,然后细读VM实例类型的提供品以定位似乎适于他们的需要的VM实例类型。在其他实施例中,用户可能经历费时的试错过程以使用不同的VM实例类型来分析其工作负载的性能。然而,这不仅费时,而且也可能导致用户使其工作负载被托管在过度使用且资源受限的或者未充分利用并导致计算资源可能未使用和闲置的VM实例类型上。作为实施例,用户可能过于谨慎并选择过大的VM实例类型以帮助确保其工作负载永不受到资源限制,这可以导致对服务提供商网络的计算资源的利用低。
本公开描述了由服务提供商网络的优化服务实现以代表用户帮助优化对VM实例类型的选择、配置和利用以支持工作负载的技术和工艺。所述优化服务可以在工作负载的寿命周期中的各个阶段实现本文描述的技术以帮助优化所述工作负载的性能,并且减少计算资源的未充分利用。例如,所述优化服务可以执行技术以帮助新用户选择在上面最初启动其工作负载的优化的VM实例类型。此外,所述优化服务可以被配置为在工作负载的寿命内监视所述工作负载,并且确定优化所述工作负载的性能的不同的VM实例类型和/或不同的配置修改。以这种方式,优化服务可以向用户提供帮助改进其工作负载的性能并且也提高对服务提供商网络的计算资源的总利用的推荐。
优化服务可以执行技术以帮助新用户选择被优化以托管或支持其工作负载的VM实例类型。常常新用户可能对计算资源没经验,和/或不熟悉某些术语。因此,优化服务可以递送受管理体验,诸如逐步骤过程,这允许新用户使用新用户理解的语言和术语来描述其工作负载,然后给用户提供针对其工作负载优化的VM实例类型的推荐。在一些实施例中,优化服务可以包括新用户可经由它们的用户账户访问并且向用户呈现用户界面的向导,所述用户界面被配置为接收定义该用户的工作负载的输入数据。向导可以呈现用户界面,这些用户界面包括用于从用户接收工作负载的文本描述的文本输入字段、或带有下拉菜单的字段,这些字段包括针对有关用户的工作负载的问题的答案,使得用户能够回答关于其工作负载的高级问题。例如,向导可以给用户呈现诸如“is your workload a publicly facingwebsite(你的工作负载是否是面向公众的网站)”或“how many visitors do you expectper day?(你预期每天有多少访问者?)”的问题。优化服务可以使用从用户接收到的输入来将工作负载分类为属于预定义工作负载类别(例如,web服务器类别、数据库类别、计算重类别等),并且给用户账户提供用于支持其工作负载的推荐VM实例类型的列表。该列表还可以包括有关为什么针对其工作负载优化VM实例类型的说明以使得用户能够做出有关他们应该选择什么实例类型的更明智决定。用户然后可以选择用于支持其工作负载的VM实例类型,并且优化服务可以代表用户账户执行用于启动所选类型的一个或多个VM实例以支持工作负载的进一步技术。因此,优化服务可以被配置为为新工作负载和/或新用户标识并推荐VM实例类型。
附加地,优化服务可以被进一步配置为帮助针对工作负载的寿命优化工作负载的性能。在一些实例中,并且不管优化服务是否先前为新工作负载或新用户标识和/或推荐了VM实例类型如何,优化服务都可以确定工作负载将更适合于不同的VM实例类型。例如,工作负载可能已随着时间推移而改变了(例如,软件更新、新特征、用户业务增加等),这进而导致工作负载的不同资源消耗特性。鉴于此类修改或变化,优化服务可以连续地或周期性地分析工作负载的资源利用特性并且确定资源消耗是否足够显著地改变了,使得新VM实例类型比当前VM实例类型更适于工作负载。在其他实施例中,服务提供商网络可以开发并提供新VM实例类型以对于用户增加VM实例类型的提供。优化服务可以使用诸如工作负载模拟的各种技术,以确定新VM实例类型与当前利用的VM实例类型比被针对工作负载(或工作负载所属于的工作负载类别)更优化了。由于此类原因及可能其他原因,优化服务可以给用户账户提供推荐,即用户将其工作负载从当前VM实例类型迁移为通过针对工作负载的资源消耗/利用更优化的不同的VM实例类型来托管。
为了确定针对工作负载优化的VM实例类型,优化服务可能已生成一组预定义工作负载类别,这些类别通常将由服务提供商网络支持的工作负载表示或分组成基于工作负载的利用特性的“形状”的类别。利用特性的形状能够是指跨每个不同的计算维度—处理、存储器、存储、联网和任选地图形处理—的使用量,其可以被可视化为具有与计算维度的数量相对应的许多轴的曲线图。沿着每个轴标绘利用能够产生特定形状,例如通过连接所标绘的点而形成的四边形或其他多边形。这可以是表示平均值或平均利用的静态形状、表示随着时间推移的利用的最小值、最大值、平均值或其他统计分析的一组形状、或表示随着时间推移的跨计算维度的利用的动态形状。可以(人工地或通过应用合适的机器学习分析)确定某些利用形状(或类似利用形状的范围)以表示特定类型的工作负载。例如,优化服务可能已收集了由服务提供商网络支持的工作负载的资源利用数据,并且基于工作负载的资源利用特性(或“资源消耗特性”),执行诸如聚类的技术,以基于工作负载的资源利用的形状将工作负载分组成类别。为了说明,一个预定义工作负载类别可以是“数据库工作负载类别”并且通常对应于数据库工作负载的资源利用特性(例如,低计算消耗、高存储消耗等)。另一预定义工作负载类别可以是“计算重类别”并且通常对应于计算上偏向的工作负载的资源利用特性。
这些工作负载类别中的每一个可以由相应的资源利用模型定义,所述相应的资源利用模型指示工作负载的资源利用特性的形状由工作负载类别表示。资源利用模型可以指示由代表性工作负载消耗的不同类型资源的量(例如,CPU、存储、存储器、联网吞吐量、GPU等的量),和或由代表性工作负载消耗的不同类型的资源的组合。工作负载类别还可以与针对所表示的工作负载的资源利用特性优化的VM实例类型相关联。以这种方式,当从由新用户提供的描述中或通过贯穿工作负载的寿命的实际利用数据获得资源利用特性时,可以将资源利用特性映射到预定义工作负载类别的“最接近的”资源利用模型,并且该工作负载类别的关联VM实例类型可以作为优化工作负载的性能的推荐被提供。
除了利用资源利用特性来为工作负载确定优化的VM实例类型之外,优化服务还可以考虑底层物理计算装置的性能。服务提供商网络可以管理大量的计算资源,并且在一些实施例中,可以包括具有硬件差异的计算装置。服务提供商网络可以包括具有不同芯片组代、不同供应商和/或不同硬件架构的计算装置,使得计算装置的实际性能基于硬件差异而变化。例如,具有来自较新代的芯片组的计算装置与具有来自较旧代芯片组的芯片组的计算装置比可能执行得更好,或者具有更多的数据吞吐量。因此,即使当在两个不同的计算装置上供应VM实例时给它提供例如相同数量的虚拟中央处理器(vCPU),由于计算装置的物理资源方面的硬件差异(或改进),托管工作负载的VM实例之一的性能可能更好。为了帮助说明由物理硬件差异产生的性能差异,优化服务可以将利用数据映射回到为该计算装置得到性能度量所消耗的底层物理计算资源。以这种方式,性能度量可以被指配给在方面供应VM实例以帮助基于要利用的计算装置确定优化的VM实例类型的底层计算装置。在工作负载被从较差计算性能的装置迁移到更大计算性能的装置上的实施例中,优化服务可以部分地基于两个装置之间的性能比率来选择新VM实例类型。以这种方式,优化服务可以选择可能不需要被分配与更大计算性能的计算装置的计算能力一样多的新VM实例类型。
附加地,优化服务可以被配置为收集有关工作负载的应用栈和/或VM实例的操作系统的各种数据,并且确定要对应用栈和/或操作系统的配置参数做出以帮助优化工作负载的性能的修改。例如,优化服务可以基于利用特性来推理关于工作负载的各种配置数据,诸如基于工作负载的利用特性映射到数据库的工作负载类别来推理工作负载是数据库。在一些实例中,优化服务可以在用户账户许可的情况下,在本地将软件代理安装到支持工作负载的VM实例,并且使用软件代理来收集配置数据。优化服务可以接收指示关于应用栈和/或操作系统的信息的配置数据,诸如什么进程正在运行、什么二进制文件支持进程、那些二进制文件源自什么储存库、什么操作系统和/或版本正在运行、为操作系统、磁盘子系统、数据库栈等定义什么配置参数和/或任何其他配置数据。优化服务然后可以确定针对应用栈和/或操作系统中的至少一个的参数的修改以优化工作负载的性能,并且提供指示针对参数的修改的推荐。用户然后可以使用它们的用户账户并且接受或拒绝所提出的用于优化其工作负载的修改。
除了选择针对工作负载优化的VM实例类型之外,优化系统还可以基于VM实例类型的计算偏向将VM实例类型智能地放置在计算装置上。如上面指出的,不同类型的VM实例类型可以基于它们支持的工作负载具有不同的计算偏向,诸如CPU偏向、存储器偏向、网络吞吐量偏向等。不是将具有类似计算偏向的虚拟机放置在同一物理计算装置上,而是优化服务可以基于它们的计算偏向确定VM实例类型的互补组合,并且将那些互补组合放置在相同的服务器上。例如,优化服务可以将利用高CPU资源但低存储器资源的VM实例类型放置在与利用低CPU资源但高存储器资源的另一VM实例类型相同的计算装置上。在一些实施例中,优化服务可以存储基于VM实例类型与之相关联或所属于的工作负载类别的资源利用模型被确定为互补的VM实例类型的互补对或互补组合的指示。以这种方式,可以通过智能地托管在计算装置如何利用计算资源方面互补的不同的VM实例类型来更高效地且有效地利用计算装置的底层计算资源。
尽管主要相对于为工作负载确定VM实例类型并且供应VM实例以支持工作负载来描述本文描述的技术,但是这些技术同样地适用于任何数量的VM实例和/或工作负载。例如,工作负载可以由VM实例、由多个VM实例和/或由VM实例的编队支持。在一些实施例中,一个或多个工作负载可以由VM实例的编队支持,这些VM实例可扩展以支持使用的增加和减少,并且可以放置在服务提供商网络的一个或多个负载均衡装置后面。在此类实施例中,本文描述的技术可以适用于编队中支持相同工作负载的各种实例的所有VM实例。
为了提供用户对其工作负载和VM实例类型的更多控制,优化服务可以简单地经由用户账户提供用户应该考虑新VM实例类型和/或配置参数以优化其工作负载的性能的推荐。然而,在一些实施例中优化服务可以被配置为使工作负载到新VM实例类型的迁移和/或新配置参数的实施方案自动化。例如,用户可以选择选项,或者“选择加入”,以给予优化服务使工作负载到新VM实例类型的迁移自动化的权限。
在一些实施例中,在推荐或使工作负载到新VM实例类型的迁移自动化或修改配置参数之前,优化服务可以在一个或多个“测试”VM实例上测试所推荐的变化。也就是说,优化服务可以指定或启动被确定为与当前VM实例类型比针对工作负载更优化的VM实例类型。优化服务然后可以使工作负载由所提出的VM实例类型托管或支持并且监视工作负载的健康状态或性能。如果与当前VM实例类型相比工作负载实际上在所提出的VM实例类型上执行得更好,则优化服务可以继续向用户账户提供推荐,并且/或者使用户的工作负载到新VM实例类型的迁移自动化。
本申请描述了提高对由服务器或其他硬件装置提供的计算资源例如CPU、GPU、存储器、磁盘和/或网络可用性的整体利用的技术。优化服务可以确定被更适当地定制或者分配了更适当量的计算资源以针对工作负载支持的VM实例类型。以这种方式,本文描述的技术帮助防止对服务提供商网络的计算资源的未充分利用,这减少(i)为VM实例分配或保留但是(ii)因为VM实例对它们支持的工作负载来说过大所以闲置或未使用的计算资源的量。附加地,这些技术通过将工作负载智能地放置在被计算上偏向或优化以支持工作负载的VM实例类型上来改进工作负载的性能。优化服务可以将工作负载放置在VM实例上以帮助确保工作负载具有所需计算资源的类型的足够量的计算资源可用,以帮助避免过度受限的VM实例类型和工作负载。
尽管本文描述的技术参考虚拟机或VM实例和虚拟机类型,但是在一些实施例中,这些技术适用于任何类型的虚拟计算资源。例如,这些技术通常适用于被分配了物理计算资源的底层部分并且在虚拟机内执行或者在物理计算资源上独立地执行的任何类型的虚拟计算资源。此类虚拟计算资源能够包括在物理资源上执行的容器、运行一个或多个容器的虚拟机实例、被分配了物理计算资源的部分的进程、软件和/或任何其他可执行文件。
将在下面参考附图更充分地描述本公开的某些实施方案和实施方式,其中示出了各个方面。然而,各个方面可以被以许多不同的形式实现,而不应该被解释为限于本文阐述的实施方案。本公开包含如本文所描述的实施方式的变化。相似的标号自始至终是指相似的元件。
图1图示了服务提供商网络的优化服务代表用户确定被优化以支持工作负载的VM实例类型的实施例环境100的系统架构图。
如图示,服务提供商网络102可以由服务提供商104运营和/或管理。服务提供商网络102可以向用户105提供各种服务以履行其计算资源需要,诸如基于云的计算资源。例如,服务提供商网络102可以提供基于云的、可扩展的且网络可访问的计算能力服务、存储服务、数据库服务和/或其他服务。用户105可以利用用户装置108来订阅由服务提供商网络102提供的计算资源和/或服务的使用。服务提供商网络102可以包括优化服务106,所述优化服务被配置为选择VM实例类型以支持优化工作负载的性能的用户105的工作负载,并且避免支持VM实例和工作负载的计算资源的未充分利用或过度利用。
服务提供商网络104可以横跨不同的地理区域,并且包括计算资源网络110或与之相关联,所述计算资源网络包括存储在跨不同地理区域定位的数据中心中的受管理计算装置112(例如,服务器)的聚群。以这种方式,已订阅了由数据中心116中的计算资源支持的基于网络的服务的使用的用户105不需要对实现他们可能需要的各种服务所需要的计算基础设施进行投资和维护。在一些实施例中,服务提供商网络102的用户105可以访问或利用位于不同地理区域中的数据中心里的计算装置112的计算资源,使得位于这些不同地理区域中的用户105被提供有对这些资源和服务的访问。
通常,计算装置112可以提供各种类型的计算资源,诸如计算(CPU)资源(例如,用于处理数据的中央处理单元(CPU))、存储器资源(例如,能够存储信息的物理装置,诸如RAM或ROM)、存储资源(例如,用于通过对一个或多个旋转磁盘的表面层进行各种电子、磁、光或机械改变来存储数据的磁盘存储装置或驱动器存储装置)、图形计算(GPU)资源(例如,图形处理单元(GPU))和/或网络吞吐量资源(例如,网络之上每秒比特传输的平均或实测速率)。计算装置112可以是各种类型的计算装置,诸如具有不同的芯片组代、来自不同供应商、具有不同的硬件架构等的装置。
因此,由计算装置112提供的计算资源网络110的计算资源能够包括例如任何硬件计算装置资源,诸如处理器计算能力/容量、只读存储器和/或随机存取存储器、数据存储和检索系统、诸如网络或外围装置装置连接和端口的装置接口等。在一些实施方式中,这些资源可以分散在多个分立硬件计算装置(例如,服务器)当中,并且这些硬件计算装置112可以实现虚拟化层和对应的虚拟化系统(例如,服务器上的管理程序)或与之进行通信,由此计算资源通过诸如虚拟机的实例或“VM实例”的虚拟计算资源来表示并且变得可作为虚拟计算资源访问。虚拟计算资源可以是逻辑构造,诸如数据卷、数据结构、文件系统等,其与某些计算资源相对应。虚拟计算资源的非限制性实施例包括虚拟机和容器(如下所述)、能够存储文件和其他数据的逻辑数据存储卷、软件程序、数据处理服务等。
如图示,计算装置112可以各自支持VM实例,这些VM实例可以是由服务提供商网络102提供的不同类型的VM实例。例如,计算装置112(1)可以支持具有第一VM实例类型的一个或多个VM实例114(1)-114(N),而计算装置112(2)可以支持具有第二VM实例类型的一个或多个VM实例116(1)-116(N)。不是分配整个计算装置112的所有计算资源来为用户105支持工作负载,而是服务提供商网络可以包括虚拟化层(例如,包含一个或多个管理程序),所述虚拟化层包括表示计算装置112的物理计算资源的已分配部分的“虚拟”计算资源(在本文中也可互换地称为“虚拟机”或“VM实例”)。这些VM实例114/116可以模拟计算装置112来操作和支持工作负载,并且可以具有它们自己的操作系统、处理能力、存储容量和网络连接或接口。
用户105可以向服务提供商104创建用户账户以利用服务提供商网络的资源和服务。用户105可以利用他们的用户装置108通过一个或多个网络118(例如,WAN、PAN、LAN等)与服务提供商网络102进行通信。用户装置106可以包括被配置为通过网络118通信的任何类型的计算装置,诸如移动电话、平板、膝上型计算机、台式计算机、电视、服务器和/或任何其他类型的计算装置。用户105可能期望服务提供商网络102在由服务提供商104管理的计算资源网络110上托管或支持工作负载。因此,用户105可以经由它们的用户账户请求代表他们启动工作负载,并且经由一个或多个用户门户122(例如,web控制台、命令行接口(CLI)、应用编程接口(API)等)提供工作负载数据120。用户门户122可以向优化服务106提供工作负载数据120,所述优化服务包括推荐引擎124、优化组件126、以及存储由服务提供商网络提供的不同的VM实例类型130(1)-130(N)的指示的VM实例类型库128。
如本文所描述的,工作负载136可以通常包括计算资源网络110中的计算资源(例如,计算、存储器、存储、网络等)的指定集合或分组,以及使用这些计算资源来执行功能性的代码或逻辑。服务提供商网络102可以支持各式各样工作负载136,诸如web服务器、数据库、面向客户的应用、分布式数据暂存器、批处理、机器/深度学习训练和/或推理、在线游戏、视频编码、存储器缓存、和/或能够由计算资源网络110的计算资源支持的任何其他类型的工作负载。
用户105可以提供通常指示将代表用户的账户托管或支持的工作负载136的一个或多个资源利用特性的工作负载数据120。在一些实例中,优化服务106可以包括新用户105可经由它们的用户账户访问并且经由用户门户122向用户装置108呈现用户界面的向导,所述用户界面被配置为接收定义该用户的工作负载136的工作负载数据120。向导可以呈现用户界面,这些用户界面包括用于从用户接收工作负载的文本描述的文本输入字段、或带有下拉菜单的字段,这些字段包括针对有关用户的工作负载的问题的答案,使得用户能够回答关于其工作负载的高级问题。在下面关于至少图3找到向导的进一步描述。
在其他实施例中,用户105可能先前已使用驻地计算资源或其他受管理的计算资源来托管了他们的工作负载136,并且获得指示由工作负载136利用的计算资源的量和类型的实际资源利用特性。在此类实施例中,用户105可以将实际资源利用数据作为工作负载数据120的一部分提供给服务提供商网络102。
优化服务106包括优化组件126,所述优化组件被配置为代表用户105确定被优化以支持工作负载136的一个或多个VM实例类型130。服务提供商102可以提供基于以下项而不同的各式各样VM实例类型130:(i)被分配以供由VM实例类型130使用的物理计算资源的量,和/或(ii)被分配以供由VM实例类型130使用的物理计算资源的类型的组合。在一些实例中,可能有包括在计算资源网络110中并且由计算装置112提供的至少五个高级类别或类型的计算资源,它们是CPU、GPU、存储器、存储和网络吞吐量。不同的VM实例类型130被分配了不同量的这些和/或这些以及可能其他计算资源的组合。例如,VM实例类型130可以被分配使用更大或更少量的不同资源类型以在计算上偏向或优化支持具有各种计算资源利用特性的工作负载136。
例如,VM实例类型130能够包括计算优化类型、存储器优化类型、加速优化类型、存储优化类型和/或网络吞吐量优化类型。作为特定实施例,计算优化的VM实例类型130可以被分配使用3.0GHz处理器的4个vCPU,其中每个核心能够在高达3.5GHz下运行,但是仅被分配8吉字节(GiB)的存储器。相反地,存储器优化的VM实例类型130可以被分配32GiB的存储器,但是仅在具有2个vCPU的3.1GHz处理器上运行。
除了通过改变被分配以供由不同的VM实例类型130使用的计算资源类型的量或比率来偏向VM实例类型130之外,服务提供商104还可以针对以各种比率需要更多或更少的计算资源的工作负载136进一步包括不同大小的VM实例类型130。例如,计算上偏向的较小的VM实例类型130可能被分配了3.0GHz处理器的2个vCPU和4GiB的存储器,而计算上偏向的超大的VM实例类型130可能被分配了3.0GHz处理器上的72个vCPU和144GiB的存储器(例如,36倍于较小类型的vCPU和存储器分配)。
因此,服务提供商104可以提供被包括在VM实例类型库128中的VM实例类型130的广泛选择,其中用户105能够为他们的工作负载136搜索和选择期望的VM实例类型130。传统上,用户105将不得不智力地制订他们的工作负载136的计算资源需要,并且细读VM实例类型130的库128提供品以定位似乎适于他们的需要的VM实例类型130。然而,这不仅费时,而且也可能导致用户105使其工作负载被托管在过度使用且资源受限的或者未充分利用并导致计算资源可能未使用和闲置的VM实例类型130上。
优化组件126可以被配置为确定被优化以托管或支持工作负载136的一个或多个VM实例类型130。例如,优化组件126可以通常将工作负载数据120(例如,资源利用数据、工作负载136的描述等)映射到被计算上偏向或优化以支持工作负载136的资源利用的一个或多个VM实例类型130。在一些实施例中,并且如关于图2更详细地描述的,优化组件126可以生成预定义工作负载类别或组,这些类别或组通常表示通常托管在计算资源网络110上的工作负载136的更高级别类别。例如,一个工作负载类别可以是数据库类别并且表示由计算资源网络110支持的不同的数据库工作负载。另一类别可以是web服务器类别并且表示由计算资源网络110支持的不同的web服务器工作负载。优化组件126可以代表用户账户分析跨计算资源网络110支持的不同类型的工作负载136并且定义(例如,机器学习、聚类等)通常表示由计算资源网络110支持的不同工作负载136的一组工作负载类别。
此外,优化组件126可以为每个工作负载类别确定一种或多种资源利用模型,这些模型表示通过每个类别中表示的工作负载136的资源利用的一般“形状”或特性。也就是说,每个工作负载类别可以与通常表示通过工作负载类别中的工作负载136的资源消耗的一个或多个资源利用模型相关联。优化组件126可以基于资源利用模型(或通过用户账户选择)进一步确定对于不同的工作负载类别计算上偏向或优化VM实例类型130中的哪些。作为实施例,计算优化的VM实例类型130可以与高性能web服务器工作负载类别相关联,然而存储器优化的VM实例类型130可以与更高性能数据库类别相关联。以这种方式,可以生成或者预定义表示由计算资源网络支持的工作负载136的资源利用特性并且也指示被优化或偏向以对于每个工作负载类别支持工作负载的VM实例类型130的工作负载类别。
优化组件126可以以各种方式将工作负载数据120映射到预定义工作负载类别中的至少一个。例如,工作负载数据120可以包括描述工作负载136的资源利用数据的一个或多个单词,诸如“web服务器”、“数据库”、“计算重”等。在一些实施例中,在用户105正在将工作负载136从远程计算资源网络迁移到计算资源网络110上的实例中,优化组件126可以简单地将工作负载136的实际利用数据映射到工作负载类别。在优化组件126将工作负载数据120映射到预定义工作负载类别之一之后,推荐引擎124可以向用户装置108提供推荐数据132,所述推荐数据包括至少被优化以支持他们的工作负载136的VM实例类型130的推荐。
推荐引擎124可以确定与工作负载类别相关联的VM实例类型130中的一种或多种,并且可以基于工作负载数据120有多强烈地对应于该工作负载类别的VM实例类型130之一进一步对VM实例类型130进行排名。取决于计算资源的大小(例如,资源的量)和/或组合,对于工作负载136,推荐引擎124可以提供针对工作负载数据120推荐的VM实例类型130的排名列表。在一些实施例中,推荐引擎124可以进一步提供指示所推荐的VM实例类型130有多适合于支持工作负载136的合适性数据,诸如指示五星中的星数、百分之百中指示有多合适的百分比和/或任何其他合适性分数或指标。此外,推荐引擎124可以提供有关为什么优化VM实例类型130以支持工作负载136的文本说明,使得用户105可以做出关于他们想要在VM实例类型130中的哪一种上启动他们的工作负载136的更智能决定。VM实例推荐142可以被呈现在可经由用户门户122访问的仪表板140中,并且用户105可以选择他们想要在上面启动他们的工作负载136的VM实例类型130。
优化服务106可以接收指示对推荐的VM实例类型130的选择的输入数据,并且向计算管理服务134提供用于在对应于用户105选择的VM实例类型130的VM实例114中的一个或多个(例如,编队)上启动工作负载136的指令。在一些实施例中,工作负载136可以包括由用户105提供和/或由服务提供商网络102生成的代码,以实现所期望的工作负载136的功能性。例如,服务提供商网络102可以提供为工作负载136生成代码的服务,包括应用栈和/或其他程序,以实现工作负载136。工作负载136可由一个VM实例114和/或VM实例136的编队支持。在一些实施例中,VM实例114的编队中的一个或多个VM实例114可以代表用户105的用户账户支持相应的工作负载136。计算管理服务134可以在VM实例114的编队前面部署一个或多个负载均衡器以扩展工作负载136,并且部署其他配置或装置(例如,安全组)以支持工作负载。以这种方式,优化服务106可以帮助用户105选择、配置和利用被优化以针对用户105的账户支持新工作负载136的VM实例类型130。
在一些实施例中,优化服务106可以在工作负载136的寿命内进一步监视工作负载136,并且在检测到导致不同的VM实例类型130与VM实例114对应于的当前VM实例类型130比被更优化以支持工作负载的事件时提供附加推荐数据132。例如,用户105可以向优化服务106提供工作负载136已经历将很可能导致工作负载136的资源利用特性变化的配置变化(例如,更新、软件变化、业务变化等)的指示。在其他实施例中,优化服务106可以周期性地或连续地从VM实例114收集指示工作负载136的资源利用特性变化的资源利用数据138。
鉴于此类修改或变化,优化服务106可以连续地或周期性地分析工作负载136的资源利用特性138并且确定资源消耗是否足够显著地改变了,使得新VM实例类型130比当前VM实例类型130(例如,VM实例114)更适于工作负载136。在其他实施例中,服务提供商102可以开发并提供新VM实例类型130以对于用户105增加VM实例类型130的提供。优化服务106可以使用诸如工作负载模拟的各种技术,以确定新VM实例类型130与当前利用的VM实例类型130比被针对工作负载136(或工作负载136所属于的工作负载类别)更优化了。由于此类原因及可能其他原因,优化服务106可以给用户105的用户账户提供附加推荐数据132,所述附加推荐数据包括用于用户105将其工作负载136从当前VM实例类型130(例如,VM实例114)迁移为通过针对工作负载136的资源消耗/利用更优化的不同的VM实例类型130(例如,VM实例116)来托管的推荐。
在此类实施例中,优化服务106可以向计算管理服务134提供指令以迁移要在对应于被确定要针对工作负载136更优化的VM实例类型130的一个或多个VM实例116(1)-(N)上托管的工作负载144。
通常,优化服务106及其组件可以包括由一个计算装置或跨服务提供商网络102中的多个计算装置支持的软件、固件和/或其他逻辑。附加地,优化服务106可以包括其他装置的系统,诸如在本地存储在VM实例114/116上的软件代理。
图2图示了代表用户105帮助优化对VM实例类型130的选择、配置和利用以支持工作负载130的服务提供商网络102的实施例组件的组件图200。
如图示,服务提供商网络102可以包括一个或多个硬件处理器202(处理器),即被配置为执行一个或多个存储的指令的一个或多个装置。处理器202可以包括一个或多个核心。此外,服务提供商网络102可以包括被配置为在服务提供商网络102与其他装置如用户装置108、计算装置112和/或在服务提供商网络102中和/或远离服务提供商网络102的其他系统或装置之间提供通信的一个或多个网络接口204。网络接口204可以包括被配置为耦合到个域网(PAN)、有线和无线局域网(LAN)、有线和无线广域网(WAN)等的装置。例如,网络接口204可以包括与以太网、Wi-Fi等兼容的装置。
服务提供商网络102也可以包括存储各种可执行组件(例如,基于软件的组件、基于固件的组件等)的计算机可读介质206。除了图1中讨论的各种组件之外,计算机可读介质206还可以进一步存储用于实现本文描述的功能性的组件。虽然未图示,但是计算机可读介质206可以存储被利用来控制包括服务提供商网络102的一个或多个装置的操作的一个或多个操作系统。根据一个实施方式,操作系统包括LINUX操作系统。根据另一实施方式,操作系统包括来自华盛顿雷德蒙德的微软公司的WINDOWS SERVER操作系统。根据另外的实施方式,操作系统能够包括UNIX操作系统或其变体之一。应该领会,也能够利用其他操作系统。
附加地,服务提供商网络102可以包括数据暂存器208,所述数据暂存器可以包括用于持久地存储和管理诸如数据库、简单文件、二进制和/或任何其他数据的数据的集合的一个或多个储存库或其他存储位置。数据暂存器208可以包括可以由一个或多个数据库管理系统管理的一个或多个存储位置。
计算机可读介质206可以存储本文描述的优化服务106的部分或组件。例如,计算机可读介质206可以存储服务端点210,所述服务端点可以包括支持互联网可路由API以使用资源利用数据138或特性来描述、生成、删除和做出推荐的栈。通常,服务端点210的此服务栈可以支持API、CLI、控制台、SDK和/或优化服务的组件和/或用户装置108通过其来调用的任何其他功能。
计算机可读介质206可以进一步存储用户门户122,用户105能够通过所述用户门户经由他们的用户账户和用户装置108提供输入。在一些实施例中,用户门户122包括用户105能够通过其来从托管了其工作负载136的驻地或其他远程计算系统上传资源利用数据138的界面。附加地,用户门户122可以包括web控制台向导212,所述web控制台向导呈现一个或多个控制台用户界面214(或UI 214),用户105可以通过所述控制台用户界面来提供定义或描述其工作负载136的工作负载数据120。服务端点210可以从API、CLI、SDK和/或其他电子手段或方法接收调用。
计算机可读介质206可以进一步存储简档生成器216,所述简档生成器以规则间隔生成诸如资源利用数据138中包括的资源利用特性的简档数据的快照。简档生成器216然后可以利用这些快照来创建工作负载136的资源指纹,其通常表示工作负载136的资源消耗。这些指纹或简档可以被包括在资源利用数据138中并且被映射到用于工作负载136的VM实例类型130和/或工作负载类别。简档生成器216可以进一步累积和平均VM实例114/116的编队的所有资源利用数据138以便生成VM实例114/116的编队的消耗指纹。
计算机可读介质206可以进一步存储被配置为创建或生成工作负载类别220的聚类组件218。如关于图4更详细地描述的,聚类组件218可以获得历史(或近实时)利用数据138并且对工作负载136进行聚类以便服务提供商网络102的用户账户中的一些或全部生成通常表示服务提供商网络102中的所有工作负载136的工作负载类别220。
计算机可读介质206可以进一步存储被配置为为工作负载类别220中的每一个生成资源利用模型224的机器学习(ML)组件222。ML组件222可以执行各种技术,并且利用各种ML算法,以训练表示代表每个工作负载类别220中的工作负载136的资源利用特性的一个或多个资源利用模型224。以这种方式,当需要出于标识优化的VM实例类型130的目的对新工作负载136进行分类时,可以将新工作负载136的资源利用数据138映射到“最接近”或“最靠近”新工作负载136的资源利用数据138的指纹的资源利用模型224(例如,神经网络模型)。ML组件222可以利用任何类型的ML算法或技术来训练资源利用模型224。
计算机可读介质206可以进一步存储被配置为执行上述用于将资源利用数据138映射到适当的工作负载类别220的技术如机器学习方法或基于规则的方法的优化组件126。例如,优化组件126可以将通过工作负载136针对一个或多个计算维度(例如,CPU、GPU、存储器、磁盘和/或网络吞吐量)的利用与资源利用模型224进行比较以标识跨一个或多个计算维度的最接近匹配。优化组件126可以进一步确定VM实例标识符226中的哪些与工作负载类别220相关联,并且给用户106提供针对其工作负载136优化的经优化后的VM实例类型130的指示。
计算机可读介质206可以进一步存储推荐引擎124,所述推荐引擎被配置为生成推荐数据132并且将其提供给用户装置108以推荐要在上面最初启动工作负载136的VM实例114,并且也继续在工作负载136的寿命内监视工作负载136并且确定是否针对工作负载136更优化其他VM实例类型130。推荐引擎124可以生成包括以下项的推荐数据132:VM实例类型列表228(例如,基于工作负载136的合适性的VM实例类型130的排名列表)、指示VM实例类型130有多适合于工作负载136或优化程度的合适性/风险分数230、和/或详述为什么针对工作负载136优化VM实例类型130的文本说明232。如果用户105选择加入推荐,则推荐引擎124可以向用户装置108提供推荐数据132以帮助用户105选择要在上面最初启动新工作负载136的VM实例类型130,和/或同样工作负载136在工作负载136的整个寿命中变得更适合于由不同的VM实例类型130支持。
合适性/风险分数230可以指示有关VM实例类型130有多适合于支持工作负载136的各种数据。例如,合适性/风险分数230可以使用各种数值、基于文本的和/或其他评分手段来指示仅VM实例类型130有多适合于支持工作负载136。在一些实施例中,合适性/风险分数230可以使用评分手段(例如,瓶颈风险)来仅指示VM实例类型130支持工作负载136有多大风险。在一些实施例中,可能有指示风险和合适性的多个合适性/风险分数230。在另外的实施例中,合适性/风险分数230可以是指示风险与合适性之间的加权以指示用于支持工作负载136的VM实例类型130的总体适当性的单个分数。
计算机可读介质206可以进一步存储在VM实例114上模拟工作负载136的模拟组件234。例如,不是使用历史资源利用数据138,而是模拟组件234可以在不同的VM实例类型130上模拟通过不同的工作负载136的消耗以便确定针对什么VM实例类型130优化什么工作负载136(例如,与分配的计算资源进行比较的吞吐量)。附加地,模拟组件234可以在已经由服务提供商104引入以供由用户105使用的新VM实例类型130上模拟工作负载136。例如,模拟组件234可以在新VM实例类型130上模拟不同工作负载136的消耗,并且确定指示输入到新VM实例114中的计算资源量的数据的吞吐量的性能度量。以这种方式,当向用户105提供新VM实例类型130时,优化服务106可以仍然确定什么工作负载类别220以及因此什么工作负载136将受益于被迁移在新VM实例类型130上和/或在其上启动。
计算机可读介质206可以进一步存储被配置为在迁移工作负载136之前在VM实例114上测试工作负载136的测试组件236。例如,优化服务106可以分配计算装置112来支持测试VM实例114。使用这些测试VM实例114,与当前VM实例114相比,测试组件236可以确定工作负载136当被放置在新VM实例116上时是否实际上执行良好,或者被进一步优化。例如,测试组件236可以“启动”或供应与优化组件126已确定要针对工作负载136优化的VM实例类型130相对应的VM实例116。在向用户105推荐新VM实例类型130之前,测试组件236可以首先在测试VM实例116上测试工作负载136并且接收指示工作负载136执行得如何好的健康状态数据238。基于健康状态数据238,测试组件236能够向优化组件126提供有关新VM实例类型130与用于工作负载136的当前VM实例类型130相比是否实际上被优化的洞察。
计算机可读介质206可以进一步存储用于可以由服务提供商网络102的一个或多个计算装置112实现的计算管理服务134的代码。通常,计算管理服务134可以是服务提供商网络102的提供安全可调整大小的计算能力并且管理计算资源网络110的计算资源的服务。在一些实施例中,计算管理服务134可以执行用于管理计算资源网络110的各种功能,诸如供应VM实例114、在VM实例114/116之间迁移工作负载136、为VM实例组114的编队提供自动缩放、配置VM实例114和/或工作负载136、和/或执行用于管理计算资源网络110的任何其他功能。在一些实例中,计算管理服务134可以从优化服务106接收命令以用于为服务提供商网络102的用户105管理工作负载136和/或VM实例114/116。
在一些实施例中,计算管理服务134可以包括自动缩放组件,其当由处理器202执行时,按比例增加或减少可用于支持一个或多个工作负载136的实例114的数量。例如,自动缩放组件可以提供一种快速、高效且准确的方式来使编队容量与使用率相匹配。在一些实施例中,自动缩放组件可以跟踪编队的托管度量并且基于称作策略的一组指南来确定何时添加或移除实例114。自动缩放组件能够响应于需求变化而调整容量以帮助确保实例114的编队对于突发具有可用性,而不用维护过量的空闲资源。
为了利用由服务提供商网络102提供的服务,用户105可以向服务提供商网络102注册账户。例如,用户105可以利用用户装置108来与身份和访问管理(IAM)组件240交互,所述IAM组件允许用户105向服务提供商网络102创建用户账户242。通常,IAM组件240可以使得用户105能够安全地管理其工作负载136和其他计算资源。使用IAM组件240,用户105可以如本文所描述的那样管理他们的VM实例114。附加地,用户105可以执行用于经由他们的用户账户242与优化服务106交互的各种操作,诸如提供工作负载数据120、接收推荐数据132、证明指示对VM实例类型130的选择的输入数据,并且/或者可以经由访问用户账户242所需要的凭据对其他交互进行授权。
计算机可读介质206可以用于存储并检索信息,诸如程序模块、数据结构或其他数据。本领域的技术人员应该领会,计算机可读存储介质是提供数据的非暂时性存储并且能够由服务提供商网络102访问的任何可用介质。在一些实施例中,由服务提供商网络102和或包括在其中的任何组件执行的操作可以由一个或多个服务器装置支持。换句话说,由服务提供商网络102和或包括在其中的任何组件执行的操作中的一些或全部可以由在基于云的布置中操作的一个或多个计算机装置执行。
作为实施例而非限制,计算机可读存储介质206能够包括在任何方法或技术中实现的易失性和非易失性、可移动和不可移动介质。计算机可读存储介质包括但不限于RAM、ROM、可擦除可编程ROM(“EPROM”)、电可擦除可编程ROM(“EEPROM”)、闪速存储器或其他固态存储器技术、紧致盘ROM(“CD-ROM”)、数字通用盘(“DVD”)、高清晰度DVD(“HD-DVD”)、蓝光或其他光学存储装置、磁盒、磁带、磁盘存储装置或其他磁存储装置,或能够用于以非临时方式存储期望信息的任何其他介质。
图3图示了服务提供商网络102的用户105能够通过其来定义要在VM实例114上启动的工作负载136的图形用户界面(GUI)300。
GUI 300可以被呈现在用户装置108上,并且可经由用户账户242和控制台122访问。在一些实施例中,GUI 300可以是帮助用户105为新工作负载136选择优化或适当的VM实例类型130的web控制台向导212的一部分。Web控制台向导212可以给用户105提供足够的信息以便他们做出有关适于其工作负载136的VM实例类型130的决定。
GUI 300可以包括名称选项302,通过所述名称选项用户105可以以工作负载的名称或用于工作负载130的其他唯一标识符的形式提供标记信息。在这种情况下,名称选项302指示名称是“我的工作负载”,其可以是由用户使用来标识其工作负载的任何术语并且可以由优化组件126使用来标记与工作负载相关联的资源组。GUI可以进一步包括描述部分304,诸如用户105可以在其中提供工作负载130及其预定目的的简要描述的文本字段。再次,本文本可以被提供来帮助用户在他们的工作负载组当中识别此特定工作负载,并且/或者可以由优化组件126利用来将工作负载数据120映射到预定义工作负载类别220,从而映射到要推荐的一组VM实例ID 226。
GUI 300可以进一步包括工作负载类型字段306,其可以包括帮助优化组件126选择适当的工作负载类别220的预定义答案的下拉选择。在这种情况下,工作负载类型字段306中的所选预定义答案是“Web服务器”,这将工作负载130缩小到web服务器。GUI 300可以附加地包括一个或多个工作负载问题308以及用于答案的字段,这帮助缩小用户105的工作负载130。在此实施例中,问题可以提示用户105他们可能知道的信息,而不要求用户105具有技术或计算资源知识。例如,工作负载问题308能够包括问一天中预期有多少访问者、网页加载可接受什么时间长度等。利用这些类型的问题,不熟练的用户105能够用对他们有意义的术语提供有价值的信息,而不是使他们用更复杂的术语对VM实例类型130分类。例如,这些类型的工作负载问题308可以替换包括诸如“what kind of network bandwidth willyour workload need(你的工作负载将需要什么样的网络带宽)”、“what kind of storagerequirements do you need to support your webpage(你需要什么样的存储要求来支持你的网页)”或“what kind of latency requirements do you have for your webpage?(对于你的网页你有什么样的延迟要求)”的术语的问题。然而,对这些类型的问题的答案可以将工作负载数据120映射到适当的工作负载类别220和/或VM实例类型130大小(例如,分配的计算资源的量)。
此外,GUI 300可以包括环境选项310,其中用户105能够指示工作负载130是生产还是预生产,以及工作负载130横跨的账户ID 312(例如,工作负载130可通过其使用和/或配置的现有用户账户242)的列表。一旦用户105已完成了由web控制台向导212提供的逐步骤过程,用户105就可以选择所定义的工作负载选项314并且生成工作负载数据120。然后可以经由诸如控制台的用户门户122将工作负载数据120提供给优化服务106。
应该理解,GUI 300仅仅是说明性的并且可以利用任何类型的用户界面或用户界面的组合来提示用户105描述或定义其工作负载130的信息。附加地,除了文本输入字段或下拉选择之外,还可以使用任何类型的输入机制来接收能够用于定义工作负载130的输入数据(例如,工作负载数据120)。
图4图示了利用来自跨用户账户的VM实例和工作负载的匿名化历史利用数据来生成工作负载类别和资源利用模型的服务提供商网络102的系统架构图400。根据本文描述的实施例,匿名化历史利用数据412是从代表已“选择加入”以允许服务提供商网络102收集数据的用户账户242托管的工作负载收集的。例如,选择加入的账户242(1)-(N)可能已全部明确地允许或选择加入向服务提供商网络102给予从其工作负载收集利用数据以帮助改进本文描述的优化服务106的权限。附加地,可以匿名化所收集的利用数据以生成不指示数据与哪个选择加入的账户242相关联的匿名化历史利用数据412。以这种方式,不仅经选择加入的账户242知道它们的利用数据被治理,而且使用各种技术来匿名化利用数据以生成匿名化历史利用数据412,这防止选择加入的账户242基于匿名化历史利用数据412被标识,从而保护选择加入的账户242的隐私。因此,不仅账户选择加入,而且它们的身份通过使用匿名化历史利用数据412来保护。
计算资源网络110可以包括通过各种网络互连的多个计算装置402。在一些实施例中,计算装置402可以被定位在跨越不同地理区域定位的数据中心(例如,数据中心中的服务器)中并且提供在不同的VM实例404(1)-(N)(其中“N”是如本申请中描述的那样大于2的任何整数)当中分配的计算资源。许多不同的用户可能已创建用户账户242(1)-(N)并且请求了服务提供商网络102在计算资源402上供应和/或部署各种VM实例404(1)-(N)以支持不同类型的工作负载406(1)-(N)。例如,每个用户账户242可以使每工作负载406在至少一个VM实例404上支持至少一个工作负载406。工作负载406可以包括如上所述的各式各样工作负载406,并且可以被供应在各式各样VM实例类型130上。因此,服务提供商网络102使大量的工作负载406被托管或支持在不同的VM实例类型130的各式各样VM实例404上,从而支持具有不同的资源消耗特性的各式各样工作负载406。
服务提供商网络102可以确定要利用来自VM实例404和工作负载406(1)-(N)的匿名化历史利用数据412来生成工作负载类别220和资源利用模型224,并且/或者将VM实例标识符226指配给优化所对应的VM实例类型130针对的工作负载类别220。在此类实施例中,服务提供商网络102可以在诸如一个或多个储存库或存储位置的数据暂存器208中收集匿名化历史利用数据412。为了确定或生成工作负载类别,服务提供商网络102可以利用聚类组件218来基于匿名化历史利用数据412对各式各样工作负载406进行聚类。更具体地,聚类组件218可以分析匿名化历史利用数据412以基于不同工作负载406的匿名化历史利用数据412之间的相似性将不同类型的工作负载406聚类成工作负载类别220。
聚类组件218可以使用各种聚类或分类技术来生成或确定工作负载类别220。由聚类组件218执行的聚类技术可以是无监督聚类技术、监督聚类技术、部分监督聚类技术和/或它们的任何组合。例如,聚类组件218可以按时间系列聚类,其中匿名化历史利用数据412的个别时间系列基于类似的时间系列被分组到同一聚类中。作为特定实施例,游戏托管服务器可以在一天或一天中的某些小时如当玩家不再工作时的晚上期间扩展更多。更广泛地,在特定类型的计算资源(例如,CPU、存储器、磁盘、网络带宽、GPU等)中具有尖峰和间歇的工作负载406可以被聚集到相同的工作负载类别220中。聚类组件218可以确定聚类的数量(例如,基于工作负载类型的数量),并且利用诸如k-均值聚类的聚类方法,以将工作负载406的类型聚类到工作负载类别220中,直到足够量的工作负载406已被指配给工作负载类别220使得工作负载类别大体上表示由服务提供商网络102支持的不同类型的工作负载406为止。然后可以利用聚类组件218来基于例如与工作负载406相关联的标记数据向工作负载类别220指配名称。例如,可以将表示常常具有经由包括“网站”的GUI 300指配给它们的名称的工作负载406的工作负载类别220称为“网站”聚类。在一些实施例中,可以基于所表示的工作负载406的匿名化历史利用数据412为工作负载类别220指配名称。例如,可以将表示具有重CPU消耗的工作负载406的工作负载类别220命名为“计算重”。以这种方式,聚类组件218可以创建、生成或以其他方式定义表示跨计算资源网络110的不同类型的工作负载406的工作负载类别220。
ML组件222可以被配置成为工作负载类别220中的每一个生成资源利用模型224。ML组件222可以执行各种技术,并且利用各种ML算法,以训练表示代表每个工作负载类别220中的工作负载406的资源利用特性的一个或多个资源利用模型224。例如,当已生成了工作负载类别220时,ML组件222可以分析每个工作负载类别220中的工作负载406的匿名化历史利用数据412并且确定用于该工作负载类别220的资源利用模型224,该模型通常表示所包括的工作负载406。
ML组件222可以利用各种机器学习技术或算法来生成资源利用模型224。作为特定实施例,ML组件222可以表示或规范化工作负载406中的每一个的匿名化历史利用数据412的计算维度并且创建表示匿名化历史利用数据412的特征数据。具体地,ML组件222可以为每个工作负载406生成表示跨计算维度(例如,CPU、GPU、存储器、磁盘和网络吞吐量)的匿名化历史利用数据412的特征向量。ML组件222然后可以利用匿名化历史利用数据412的特征数据作为到诸如神经网络、回归算法、分类算法和/或任何其他ML算法的ML算法中的输入,并且训练资源利用模型224。以这种方式,ML组件222可以使用通过跨计算资源网络110的VM实例404托管的工作负载406的匿名化历史利用数据412来为每个工作负载类别220生成资源利用模型224。资源利用模型224可以表示被包括在工作负载类别220中的工作负载406的资源利用数据138。以这种方式,当需要出于标识优化的VM实例类型130的目的对新工作负载136进行分类时,可以将新工作负载136的资源利用数据138映射到“最接近”或“最靠近”新工作负载136的资源利用数据138的指纹的资源利用模型224。在一些实施例中,ML组件222可以利用其他类型的数据来训练资源利用模型224,这些其他类型的数据诸如支持工作负载406-410的基础设施、针对工作负载406-410的健康状态检查和/或指示不同的VM实例404(1)-404(N)上的工作负载406-410的性能的其他类型的数据。在一些实施例中,支持工作负载的基础设施可以包括有关网络拓扑、网络安全组(例如,协议和端口范围)、网络业务模式、负载均衡器的存在和配置以及用于自动缩放组的缩放触发器的信息以更多了解工作负载406-410。可以利用与支持工作负载406-410的基础设施相关联的此基础设施信息中的一些或全部来训练资源利用模型224。
模拟组件234然后可以分析各种数据以确定将被指配给如被优化或计算上偏向以支持类别220中的工作负载406的工作负载类别220的VM实例标识符226。例如,模拟组件234可以在VM实例404上模拟各种工作负载以便收集指示所模拟的工作负载在各种VM实例404上执行得有多好的性能数据。在一些实施例中,模拟组件234可以通过模仿与指配给VM实例404上的每个工作负载类别220的资源利用模型224的利用类似的利用来模拟计算资源的消耗。模拟组件234然后可以收集表示性能的模拟数据(例如,与分配给支持所模拟的工作负载的VM实例404的计算资源进行比较的数据吞吐量),并且确定哪些VM实例404对于不同的资源利用模型224执行良好或被优化。模拟组件234然后可以基于VM实例类型130在对于那些类别220支持所模拟的工作负载406时执行得有多好来将VM实例类型130指配给工作负载类别220。模拟组件234可以基于被确定要针对工作负载类别220优化的VM实例类型130来将VM实例标识符226指配给工作负载类别。模拟组件234可以将结果数据414进一步提供回给ML组件222以用于进一步训练资源利用模型224。结果数据414可以包括模拟组件234在不同的VM实例类型130上模拟不同工作负载以确定模拟的工作负载的资源利用数据的模拟结果。
因此,工作负载136的资源利用数据138可以被映射到或匹配到与具有最类似的资源利用特性的资源利用模型224相关联的工作负载类别220。然后可以将工作负载136分类为属于与最类似的资源利用模型224相关联的工作负载类别220。一旦被指配给工作负载类别220,优化组件126就可以基于相关联的VM实例标识符226确定VM实例类型130中的哪些被优化以支持工作负载136。在一些实施例中,ML组件222可以使用仅匿名化历史利用数据412、仅来自模拟组件234的结果数据414、它们的组合和/或任何其他数据来训练资源利用模型224。
图5图示了包括服务提供商网络102的用户105能够通过其来审查有关被优化以支持其工作负载130的VM实例类型130的推荐的图形用户界面502的实施例架构500。在一些实施例中,GUI 502可以呈现作为推荐数据132的一部分从服务提供商网络102接收的数据。附加地,GUI 502可以被呈现在用户装置108上,并且可经由用户账户242和控制台122访问。在一些实施例中,GUI 502可以是帮助用户105为了启动新工作负载136选择优化或适当的VM实例类型130的web控制台向导212的一部分。
GUI 502可以包括用户105能够通过其来选择或选取VM实例类型130的选项。GUI502可以列举已由优化服务106确定为针对与通过其访问控制台122的用户账户242相关联的工作负载130优化的不同的VM实例类型130。GUI 502可以允许用户102选择VM实例类型130之一来以自动化方式启动其工作负载130。
如所示,GUI 502可以呈现针对所推荐的VM实例类型130的实例类型504、合适性506和说明508。在所图示的实施例中,第一VM实例510可以是存储优化的,具有5星中的4.5星的合适性506,并且具有指示VM实例类型510对于工作负载130以足够的计算递送附加存储的说明508。类似地,第二VM实例512可以是网络带宽优化的,具有5星中的4星的适合性506,并且具有指示VM实例类型512对于工作负载130以足够的存储器为附加业务递送附加网络带宽的说明508。最后,第三VM实例514可以是通用的,具有5星中的3星的合适性506,并且具有指示VM实例类型514以足够的资源为工作负载130递送成本节约的说明508。
使用此推荐数据132,用户105能够做出关于要利用什么VM实例类型130来支持其工作负载130的更明智决定,选中他们期望的VM实例类型130旁边的框,并且进一步将输入提供到选择实例类型控件516中。在选择实例类型时,可以通过网络118从用户装置108向服务提供商网络102发送选择数据518以指示用户105正在请求使其工作负载130由第一VM实例类型510启动或支持。
应该理解,GUI 502仅仅是说明性的,并且可以利用任何类型的用户界面或用户界面的组合来接收指示对推荐的VM实例类型130的选择的输入数据。附加地,可以使用任何类型的输入机制来接收能够用于选择除所描述和图示的VM实例类型外的VM实例类型130的输入数据(例如,选择数据518)。
图6A、图6B、图7、图8、图11-13、图15、图16、图18、图19和图24-26图示了图示至少部分地由如本公开中描述的服务提供商网络102执行的功能的各方面的实施例方法600、700、800、1100、1200、1300、1500、1600、1800、1900、2400、2500和2600的流程图。在本文中关于图6A、图6B、图7、图8、图11-13、图15、图16、图18、图19和图24-26描述的逻辑操作可以作为(1)在计算系统上运行的计算机实现的行为或程序模块的序列和/或(2)作为计算系统内互连的机器逻辑电路或电路模块被实现。
本文描述的各种组件的实施方案是依赖于计算系统的性能和其他要求的选择的问题。因此,本文描述的逻辑操作被不同地称为操作、结构装置、行为或模块。这些操作、结构装置、行为和模块能够用软件、用固件、用专用数字逻辑以及它们的任何组合加以实现。也应该领会,可能执行比在图6A、图6B、图7、图8、图11-13、图15、图16、图18、图19和图24-26中示出并在本文中描述的更多或更少的操作。也能够并行地或按与本文描述的次序不同的次序执行这些操作。这些操作中的一些或全部也能够由除具体地标识的组件以外的组件执行。尽管本公开中描述的技术参考特定组件,但是在其他实施例中,这些技术可以由更少的组件、更多的组件、不同的组件或组件的任何配置来实现。
图6A和图6B共同地图示了用于服务提供商网络102通过一个或多个用户界面从用户账户242接收工作负载136的定义、将工作负载136映射到预定义工作负载类别220、并且给用户账户242提供关于用于支持其工作负载136的VM实例类型130的推荐132的实施例方法的流程图600。如本文所描述的,虚拟计算资源可以包括VM实例114、虚拟容器、程序和/或任何其他虚拟表示中的一个或多个。
在一些实施例中,方法600的技术使用包括由服务提供商104管理的服务提供商网络102的计算资源网络110的系统来执行。计算资源网络110可以被配置为支持至少第一虚拟机(VM)实例类型130和第二虚拟计算资源类型130,所述第一VM实例类型被配置为利用计算资源的类型的第一组合来支持工作负载136,所述第二虚拟计算资源类型被配置为利用计算资源的类型的第二组合来支持工作负载136。
在一些实施例中,方法600的技术可以由优化服务106执行,所述优化服务包括一个或多个处理器202和一个或多个计算机可读介质206,所述计算机可读介质存储计算机可执行指令,当由一个或多个处理器执行时,所述计算机可执行指令使一个或多个处理器执行方法600的操作。
在602,优化服务106可以经由向服务提供商网络102注册的用户账户242接收要代表用户账户242使用计算资源网络110的计算资源来支持工作负载136的第一请求。例如,用户账户242可以由用户105经由他们的用户装置108利用来与用户门户122交互以请求在计算资源网络110中托管工作负载136。
在604,优化服务106可以经由用户账户242接收对被优化以支持工作负载136的虚拟计算资源类型130的推荐的第二请求。例如,用户105可以经由他们的用户账户242指示他们想要选择加入以便使用优化服务106来给他们提供被优化以支持其工作负载136的虚拟计算资源类型130的推荐。
在606,优化服务106可以给用户账户242提供对被配置为接收描述工作负载136的输入数据的一个或多个用户界面214的访问。例如,web控制台向导212可以呈现帮助用户105输入使用对用户105自然的语言或输入机制来定义工作负载136的数据的一个或多个GUI 300。
在608,优化服务106可以经由一个或多个用户界面214接收指示与支持工作负载136相关联的资源利用特性的输入数据。例如,用户105可以经由GUI 300输入指示工作负载136的资源利用特性的工作负载数据120。
在610,优化服务106可以基于资源利用特性将工作负载136映射到来自一组预定义工作负载类别220的工作负载类别220。在一些实施例中,工作负载类别220表示由计算资源的类型的第三组合支持的工作负载。换句话说,工作负载类别220可以与表示被利用来支持该工作负载类别220的代表性工作负载136的计算资源的类型的量和/或组合的资源利用模型224相关联。
在612,优化服务106可以基于与计算资源的类型的第一组合相对应的计算资源的类型的第三组合来确定第一虚拟计算资源类型130被优化以支持工作负载136。换句话说,优化服务106可以确定由工作负载136的工作负载数据120指示的计算资源的类型的量和/或组合可以对应于针对那些资源利用特性优化的虚拟计算资源130。
在614,优化服务106可以生成包括第一虚拟计算资源类型130被优化以支持由用户账户242请求的工作负载136的指示的推荐数据132。例如,优化服务106可以生成包括用于工作负载类别220的虚拟计算资源标识符226中的一个或多个的虚拟计算资源类型列表228的推荐数据132。
在616,优化服务106可以给用户账户242提供对推荐132的访问。例如,用户105可以登录他们的用户账户242并且访问用户门户122(例如,控制台)以查看包括优化的虚拟计算资源类型130的列表的GUI 502。
在一些实施例中,推荐数据122可以进一步包括指示第一虚拟计算资源类型130支持由用户账户232请求的工作负载136的合适性的量度的合适性数据230以及包括有关用于支持工作负载136的第一虚拟计算资源类型130的合适性的文本说明508的文本数据。
在一些实施例中,计算资源的类型可以包括中央处理单元(CPU)资源类型、存储器资源类型、存储装置资源类型或网络可用性资源类型中的至少两种。在此类实施例中,由第一虚拟计算资源类型利用的计算资源的类型的第一组合包括计算资源的类型中的第一类型的第一量和计算资源的类型中的第二类型的第二量。此外,由第二虚拟计算资源类型利用的计算资源的类型的第二组合包括计算资源的类型中的第一类型的第三量和计算资源的类型中的第二类型的第四量。
在一些实例中,输入数据包括第一输入数据,并且优化服务106包括另外的计算机可执行指令,当由一个或多个处理器执行时,所述另外的计算机可执行指令使一个或多个处理器:从用户账户242接收指示对用于支持工作负载136的第一虚拟计算资源类型130的选择的第二输入数据,并且使得在计算资源网络110中供应与第一虚拟计算资源类型130相对应的虚拟计算资源114以代表用户账户242支持工作负载136。例如,用户105可以利用他们的用户账户242来访问GUI 502并选择实例类型504以及利用选择实例类型控件516。
图7图示了用于服务提供商网络102接收工作负载136的资源利用特性138并且向用户账户242提供有关将用于启动工作负载136的虚拟计算资源类型130的推荐132的实施例方法的流程图700。
在702,优化服务106可以经由与服务提供商网络102相关联的用户账户242接收要使用由与服务提供商网络相关联的计算资源支持的至少一个虚拟机(VM)实例114来启动工作负载136的请求。在一些实施例中,计算资源支持至少被分配了计算资源的第一量的第一虚拟计算资源类型130和被分配了计算资源的第二量的第二虚拟计算资源类型130。
在704,优化服务106可以接收指示工作负载136在执行期间的资源利用特性的利用数据138。资源利用特性可以指示由工作负载126消耗的计算资源的量或由工作负载136消耗的计算资源的类型中的至少一个。
在706,优化服务106可以至少部分地基于资源利用特性138来确定工作负载136对应于一组预定义工作负载类别220中的一工作负载类别220。例如,优化组件126可以确定资源利用特性(例如,CPU、GPU、存储器、磁盘、网络吞吐量等)可以至少部分地对应于用于工作负载类别220的资源利用模型224或者与之匹配。
在708,优化服务106可以确定工作负载类别220与消耗至少部分地对应于计算资源的第一量的计算资源的第三量的工作负载136相关联。例如,优化服务106可以确定工作负载类别220与表示虚拟计算资源类型130的虚拟计算资源标识符226相关联,所述虚拟计算资源类型消耗对应于由工作负载136消耗的计算资源的第一量的计算资源的第三量。
在710,优化服务106可以向用户账户242提供包括第一虚拟计算资源类型130用于启动工作负载136的推荐的推荐数据132。例如,用户装置108可以接收推荐数据132,并且呈现指示第一虚拟计算资源类型130用于启动工作负载136的GUI 502。
在一些实例中,用户105可能已经在使用远程计算资源网络的计算资源来托管或支持其工作负载136。在此类实施例中,优化服务106可以从用户账户242接收工作负载136正在从由包括在远离服务提供商网络102的计算资源网络中的第二计算资源支持迁移的指示。此外,优化服务106可以给用户账户242提供被配置为接收与通过工作负载136对第二计算资源的消耗相关联的资源消耗数据的接口。例如,用户105可以为他们的被托管在远程计算资源上的工作负载136提供历史计算资源。在此类实施例中,接收利用数据138包括经由接口接收资源消耗数据。
在一些实施例中,方法700可以进一步包括从用户账户242接收指示对要用于启动工作负载136的第一虚拟计算资源类型130的选择的输入数据。例如,用户105可以向选择实例类型控件516提供输入来选择第一虚拟计算资源类型130。此外,优化服务106可以使得至少部分地使用与由计算资源支持的第一虚拟计算资源类型130相对应的虚拟计算资源114来启动工作负载136。例如,优化服务106可以向计算管理服务134发送指令以启动工作负载136。
图8图示了用于服务提供商网络102经由一个或多个用户界面接收输入的实施例方法800的流程图,所述输入指示与工作负载相关联的资源利用特性,基于资源利用特性确定虚拟计算资源类型,并且向用户账户提供针对用于支持工作负载的虚拟计算资源类型的推荐。
在802,服务提供商网络102可以经由用户账户接收要使用由与服务提供商网络相关联的计算资源支持的至少一个虚拟机(VM)实例来启动工作负载的请求。计算资源支持至少被分配了计算资源的第一量的第一虚拟计算资源类型和被分配了计算资源的第二量的第二虚拟计算资源类型。
在804,服务提供商网络102可以给用户账户提供对被配置为接收与工作负载相关联的输入数据的一个或多个用户界面的访问。在806,服务提供商网络102至少部分地经由一个或多个用户界面接收指示与工作负载相关联的资源利用特性的输入数据。
在808,服务提供商网络102可以至少部分地基于资源利用特性来确定第一虚拟计算资源类型被优化为启动或执行工作负载中的至少一个。此外,在810,服务提供商网络102可以向用户账户提供包括第一虚拟计算资源类型用于启动或执行工作负载中的至少一个的推荐的推荐数据。
图9图示了在新VM实例类型上模拟工作负载以确定该新VM实例类型的性能并且在将工作负载的编队迁移到新VM实例类型上之前在VM实例上测试工作负载的服务提供商网络102的系统架构图900。
为了提供附加功能性和各种更广泛的VM实例类型128,服务提供商104可以继续引入新VM实例类型902以供由用户105使用。为了确定是否针对各种工作负载136和/或工作负载类别220优化新VM实例类型902而不必实际上使用户105成为“试验品”并且测试新VM实例类型902,优化服务106可以利用模拟组件234来确定新VM实例类型902的计算偏向。
模拟组件234可以利用一个或多个计算装置112上的一个或多个模拟VM实例904以使用模拟工作负载906来模拟不同工作负载136。模拟组件234可以供应、部署和监视对应于新VM实例类型902的模拟VM实例904,并且使用模拟工作负载906来模拟各种工作负载。在一些实施例中,模拟工作负载906可以是被配置为消耗指定量的计算资源使得模拟组件234可以模仿实际工作负载136和工作负载类别220的模拟器程序。模拟组件234然后能够接收模拟数据908以便确定针对新VM实例类型902优化什么工作负载136(例如,与分配的计算资源进行比较的吞吐量)。因此,模拟组件234可以在新VM实例类型902上使用模拟程序来模拟不同工作负载136(例如,模拟工作负载906)的消耗,并且确定指示输入到新VM实例类型902中的计算资源量的数据的吞吐量的性能度量。
模拟组件234可以包括可配置为消耗计算装置112的不同量的计算资源的至少一个进程。例如,模拟组件234可以驱动相当于不同工作负载906看起来或消耗怎样的计算利用。模拟组件234可以通过按比例增加或减少所消耗的计算资源量来缩放不同的计算维度的消耗。例如,模拟工作负载906可以将一定量的数据读取或写入到磁盘,使用进程来消耗CPU和存储器,通过网络发送数据等以模拟目标消耗来测试各种工作负载136。
模拟组件234然后可以确定针对哪些工作负载136和/或工作负载类别220优化新VM实例类型902,并且然后将与新VM实例类型902相对应的VM实例标识符226指配给工作负载类别220。以这种方式,可以给具有可以在新VM实例类型902上优化的工作负载136的用户账户242提供指示将其工作负载136迁移到新VM实例类型902可能是有利的推荐数据132。
在一些实施例中,优化服务106可以在将工作负载136的编队迁移到新VM实例类型902和/或现有VM实例类型130中之前在VM实例114上测试工作负载136。例如,测试组件236可以利用测试VM实例910来支持对应于用户105的工作负载136的测试工作负载912。优化服务106可以分配计算装置112来支持测试VM实例910并且测试组件236可以使用这些测试VM实例910和测试工作负载912来确定与当前(VM)实例114相比工作负载136在被放置在新VM实例类型902和/或现有VM实例类型130上之前实际上执行良好,或者被进一步优化。例如,测试组件236可以“启动”或供应与优化组件126已确定要针对工作负载136优化的VM实例类型130和/或新VM实例类型902相对应的测试VM实例910。在向用户105推荐VM实例类型130/912之前,测试组件236可以首先在测试VM实例910上测试工作负载912并且接收指示测试工作负载912执行得如何好的健康状态数据914。基于健康状态数据914,测试组件236能够向优化组件126提供有关新VM实例类型130/902与用于工作负载136的当前VM实例类型130相比是否实际上被优化的洞察(例如,确定与分配的计算资源进行比较的吞吐量)。基于模拟组件234和/或测试组件236的结果,推荐引擎124可以生成推荐数据916并且将其发送到使可能在不同的VM实例类型130/902上更优化的工作负载136与他们的用户账户242相关联的用户105。通常,测试组件236可以在它被允许失败的环境例如工作负载136是冗余的(例如,批处理)的工作负载136环境中利用测试工作负载912。
图10图示了包括服务提供商网络102的用户105能够通过其来审查用于将其工作负载136迁移到被优化以支持其工作负载136的新VM实例类型130的推荐的图形用户界面GUI 1002的实施例架构1000。GUI 1002可以被呈现在用户装置108上,并且可经由用户账户242和控制台122访问。在一些实施例中,GUI 1002可以是帮助用户105选择优化或适当的VM实例类型130以用于重新调整现有工作负载136的大小的web控制台向导212的一部分。
GUI 1002能够包括最近由于较低的资源利用用户105应该迁移其工作负载136并且较小的VM实例类型130不会牺牲性能的文本说明1004。GUI 1002还可以包括当前实例类型的指示1006和所推荐的新实例类型的指示1008。此外,GUI 1002可以推荐用户105考虑在他们的VM实例114上安装监视代理以便得到更精确推荐,如在图14-16中更详细地描述的。附加地,GUI 1002能够让用户105知道他们的VM实例114正在运行,并且改变VM实例类型130将重新启动VM实例114。
使用GUI 1002中呈现的这种推荐数据916,用户105能够做出关于要利用什么VM实例类型130来支持其工作负载130的更明智决定,并且进一步将输入提供到应用控件1014中。在选择应用控件1014时,可以通过网络118从用户装置108向服务提供商网络102发送选择数据1016以指示用户105正在请求使其工作负载130被迁移到新VM实例类型130。
应该理解,GUI 1002仅仅是说明性的,并且可以利用任何类型的用户界面或用户界面的组合来接收指示对推荐的VM实例类型130的选择的输入数据。附加地,可以使用任何类型的输入机制来接收能够用于迁移除所描述和图示的VM实例类型外的新VM实例类型130的输入数据(例如,选择数据1016)。
图11图示了用于确定新虚拟计算资源类型与当前虚拟计算资源类型比被更优化以支持工作负载、将新虚拟计算资源类型推荐给与工作负载相关联的用户账户、并且将工作负载迁移到新虚拟计算资源类型的实施例方法1100的流程图。如本文所描述的,虚拟计算资源可以包括虚拟计算资源114、虚拟容器、程序和/或任何其他虚拟表示中的一个或多个。
在1102,服务提供商网络102可以在与由服务提供商管理的服务提供商网络相关联的计算资源上供应第一虚拟机(VM)实例,其中第一虚拟计算资源是被分配了计算资源的第一量以供利用的第一虚拟计算资源类型。
在1104,服务提供商网络102可以代表向服务提供商网络注册的用户账户将工作负载部署为由第一虚拟计算资源支持,其中该工作负载与指示通过工作负载对计算资源的利用的资源利用特性相关联。
在1106,服务提供商网络102可以标识已提供以用于代表向服务提供商网络注册的用户账户支持工作负载的第二虚拟计算资源类型,其中第二虚拟计算资源类型被分配了第二量的计算资源以供利用。
在1108,服务提供商网络102可以基于资源利用特性来确定第二虚拟计算资源类型与第一虚拟计算资源类型比被更优化以支持工作负载。
在1110,服务提供商网络102可以给用户账户提供包括要将工作负载从由第一虚拟计算资源类型支持迁移到由第二虚拟计算资源类型支持的推荐的推荐数据。
在1112,服务提供商网络102可以接收指示来自用户账户的要将工作负载从由第一虚拟计算资源类型支持迁移到由第二虚拟计算资源类型支持的请求的输入数据。
在1114,服务提供商网络102代表用户账户迁移工作负载以由第二虚拟计算资源支持,其中第二虚拟计算资源是第二虚拟计算资源类型。
图12图示了用于确定工作负载的资源利用改变了、标识被更优化以托管工作负载的新虚拟计算资源类型、并且给用户账户提供要将工作负载迁移到新虚拟计算资源类型的推荐的实施例方法1200的流程图。
在1202,服务提供商网络102可以代表用户账户至少部分地使用在服务提供商网络的第一计算资源上供应的第一虚拟机(VM)实例来托管工作负载,其中第一虚拟计算资源是被分配了第一计算资源以供利用的第一虚拟计算资源类型。
在1204,服务提供商网络102可以确定工作负载从利用第一计算资源的第一量改变为利用第一计算资源的第二量。
在1206,服务提供商网络102可以至少部分地基于第一计算资源的第二量来标识与第一虚拟计算资源类型比被更优化以托管工作负载的第二虚拟计算资源类型,其中第二虚拟计算资源类型被分配了第二计算资源以供利用。在一些实施例中,服务提供商网络102可以确定计算资源的第一量与计算资源的第二量之间的差大于阈值差,并且标识至少部分地基于差大于阈值差来执行第二虚拟计算资源类型。例如,服务提供商网络102可以确定优化足够大或“值得”来迁移工作负载。
在1208,服务提供商网络102可以向用户账户提供包括要将工作负载从由第一虚拟计算资源托管迁移到由为第二虚拟计算资源类型的第二虚拟计算资源托管的推荐的推荐数据。
在一些实施例中,1200的方法可以进一步包括:在第一时间从第一虚拟计算资源收集指示第一计算资源的第一量的第一利用值;确定从第一时间起已经过一定时间段,其中该时间段与用户账户修改工作负载的频率相关联;以及在第二时间从第一虚拟计算资源收集指示第一计算资源的第二量的第二利用值。换句话说,服务提供商网络102可以根据频率或时间段来收集利用值。
在一些实施例中,1200的方法可以确定第二虚拟计算资源与比第一虚拟计算资源的优化值大了阈值量的优化值相关联。
图13图示了用于确定新虚拟计算资源类型与当前虚拟计算资源类型比被更优化以支持工作负载并且将新虚拟计算资源类型推荐给与工作负载相关联的用户账户的实施例方法1300的流程图。
在1302,服务提供商网络102服务提供商网络102代表用户账户至少部分地使用在服务提供商网络的第一计算资源上供应的第一虚拟机(VM)实例来托管工作负载,其中第一虚拟计算资源是被分配了第一计算资源以供利用的第一虚拟计算资源类型。
在1304,服务提供商网络102可以标识已提供以用于代表与服务提供商网络相关联的用户账户托管工作负载的第二虚拟计算资源类型,其中第二虚拟计算资源类型被分配了第二计算资源以供利用。
在1306,服务提供商网络102可以接收指示通过工作负载对第一计算资源的利用的资源利用特性。在1308,服务提供商网络102可以基于资源利用特性来确定第二虚拟计算资源类型与第一虚拟计算资源类型比被更优化以托管工作负载。
在1310,服务提供商网络102可以向用户账户提供包括要将工作负载从由第一虚拟计算资源托管迁移到由为第二虚拟计算资源类型的第二虚拟计算资源托管的推荐的推荐数据。
图14图示了服务提供商网络102的优化服务106从在支持工作负载的VM实例上执行的代理接收配置数据并且推荐对工作负载或操作系统的配置参数做出修改的实施例环境的系统架构图1400。
在一些实施例中,用户105可以使用他们的用户账户242来访问仪表板1402并且指示他们想要安装监视代理以获得有关其工作负载136的更精确推荐,而不是推荐要在上面托管工作负载136的VM实例类型130。用户装置108可以向优化服务106传送指示对更详细推荐的请求的请求数据1404。在此类实施例中,配置组件1406可以在1408将代理1410部署到VM实例114上。
优化组件126可以包括配置组件1406,所述配置组件确定要对工作负载136的应用栈或VM实例114的操作系统的配置参数做出的修改,以优化工作负载136和/或VM实例114的性能。为了收集确定要对配置参数做出的修改所需要的数据,配置组件1406可以将代理1410部署或安装到VM实例114,所述VM实例被配置为收集指示操作系统1412在VM实例114上的参数的配置数据和/或工作负载134在VM实例114上的应用栈1414。如图示,代理1410可以执行一个或多个步骤来收集配置数据1416,并且将配置数据1418提供给与优化服务106相关联的数据暂存器208。数据暂存器208可以存储代理提供的配置数据1420(例如,配置数据1418)以及推理的配置数据1422。
代理1410可以收集配置数据1418,诸如通过在VM实例114内部运行的进程的存储器利用、用于在VM实例114上运行的进程的配置、软件和/或操作系统1412的什么版本、为应用栈1414配置多少存储器、有多少线程正在运行、应用栈1414的连接超时和/或其他类型的配置数据1418。附加地,可以获得操作系统1412的各种参数或配置数据,诸如操作系统1412的什么版本、通过OS 1412的CPU使用率、有多少并发文件句柄被允许、网络栈配置了什么(例如、缓冲区大小)和/或其他参数。附加类型的配置数据1418可以包括用于磁盘子系统的参数,诸如客户是否正在使用RAID、他们支持什么(例如,EBS)等。
在一些实施例中,配置组件1406可以在没有代理1410的帮助的情况下收集所推理的配置数据1422。例如,配置组件1406可以观察用于VM实例114确定入站业务类型和端口的安全组,标识用于VM实例114的编队确定缩放策略、客户CPU利用目标的自动缩放组,确定用于指示操作系统1412和版本的VM实例114的机器映像、指示关于VM实例114的有用信息的VM实例114标记数据和/或其他数据。
配置组件1406可以使用配置数据1418和/或推理的配置数据1422来确定要对用于操作系统1412和/或应用栈1414中的至少一个的参数做出的修改。配置组件1406可以利用基于规则的分析来为像内核、网络栈、文件系统、存储器管理、应用参数等一样的属性生成参数调谐建议。配置组件1406可以对于不同的VM实例114和/或工作负载134具有针对操作系统1412和应用栈1414优化的预定义配置参数。以这种方式,配置组件1406可以基于优化的配置参数与在代理提供的配置数据1420和/或所推理的配置数据1422中指示的参数之间的差异来确定对操作系统1412或应用栈1414中的至少一个的至少一配置参数的修改。
推荐引擎124可以生成指示对优化了应用栈1414或操作系统1412中的至少一个的配置参数的修改的推荐数据1424并且通过网络118将推荐数据1424提供给用户装置108。用户105可以确定他们是否想要应用修改,并且往回向优化服务106发送要实现对配置参数的修改的请求。在一些实例中,用户105可以选择加入以允许配置组件1406自动地修改配置参数以优化应用栈1414和/或操作系统1412。如果用户105已表明他们想要做出修改以优化应用栈1414和/或操作系统1412的性能以支持工作负载136,则配置组件1406然后可以对配置参数做出修改。
图15图示了用于将软件代理部署到正在托管工作负载的虚拟计算资源、从代理接收配置数据、并且向用户账户提供指示要对工作负载的应用栈的配置参数做出的修改的推荐的实施例方法1500的流程图。如本文所描述的,虚拟计算资源可以包括VM实例114、虚拟容器、程序和/或任何其他虚拟表示中的一个或多个。
在1502,服务提供商网络102可以使用在服务提供商网络的硬件资源上供应的虚拟机(VM)实例来托管工作负载。
在1504,服务提供商网络102可以经由与工作负载相关联的用户账户接收对要优化工作负载的应用栈的推荐的请求。
在1506,服务提供商网络102可以代表用户账户将软件代理部署到正在托管工作负载的虚拟计算资源。在1508,服务提供商网络102可以从软件代理接收指定工作负载的应用栈的配置参数的配置数据。在1510,服务提供商网络102可以确定为了优化工作负载的应用栈对应用栈的配置参数中的配置参数做出的修改。在1512,服务提供商网络102可以向用户账户提供指示为了优化应用栈对应用栈的配置参数做出的修改的推荐数据。
在一些实施例中,确定对配置参数的修改以优化工作负载的应用栈可以至少部分地基于接收指示被利用来托管工作负载的硬件资源的量的利用数据。例如,利用数据可以指示工作负载的工作负载类别。资源利用模型224可以指示针对工作负载类别或工作负载它本身中的至少一个优化的配置参数。服务提供商网络104可以确定应用栈的配置参数与资源利用模型的应用栈的优化的配置参数不同,并且基于差异确定修改。可能已利用模拟组件234来通过模拟跨不同实例类型具有不同配置参数的工作负载136来确定用于不同工作负载136和/或工作负载类型130的优化的配置参数。以这种方式,可以基于帮助优化工作负载136的应用栈和/或VM实例114的操作系统的性能(诸如吞吐量)的优化的配置参数来确定对配置参数的修改。
图16图示了用于接收指定应用栈或操作系统中的至少一个的配置参数的配置数据并且向用户账户提供指示要对配置参数做出的修改的推荐或者自动地修改配置参数的实施例方法1600的流程图。
在1602,服务提供商网络102可以使用在服务提供商网络的硬件资源上供应的虚拟机(VM)实例来托管工作负载。在1604,服务提供商网络102可以接收为工作负载的应用栈或虚拟计算资源的操作系统(OS)中的至少一个指定配置参数的配置数据。
在1606,服务提供商网络102可以确定对配置参数的修改,所述修改优化工作负载的应用栈或虚拟计算资源的操作系统中的至少一个。
在1608,服务提供商网络102可以向与工作负载相关联的用户账户提供指示对配置参数的修改的推荐数据,所述修改优化工作负载的应用栈或虚拟计算资源的操作系统中的至少一个。
图17图示了服务提供商网络102的优化服务106接收指示不同计算装置上的工作负载的资源消耗的利用数据并且将计算装置映射到被消耗以确定计算装置的性能度量的物理资源的实施例环境的系统架构图1700。
通常,不同的计算装置1702(1)-(N)可以各自支持托管工作负载1706的一个或多个VM实例1704(1)-(N)、托管工作负载1706的一个或多个VM实例1708(1)-(N)、以及托管工作负载1706的一个或多个VM实例1710(1)-(N)。通常,计算装置1702(1)-(N)可以是不同模型、代、制造商等。例如,利用数据1712可以指示通过在不同的计算装置1702上运行但是托管相同工作负载1706的不同的VM实例类型1704、1708、1710的资源消耗。
除了利用资源利用数据1712来为工作负载1706确定优化的VM实例类型130之外,优化服务106还可以考虑底层物理计算装置1702(1)-(N)的性能。性能可以基于不同的计算装置1702(1)-(N)的硬件差异例如计算装置1702(1)-(N)中的每一个中的芯片组的不同代、模型和/或供应商而变化,使得计算装置1702(1)-(N)的实际性能基于硬件差异而变化。例如,具有来自较新代的芯片组的计算装置1702(1)与具有来自较旧代芯片组的芯片组的计算装置1702(2)比可能执行得更好,或者具有更多的数据吞吐量。因此,即使当在不同的计算装置1702(1)和1702(2)上供应VM实例1704时给它提供例如相同数量的vCPU,由于计算装置1702(1)和1702(2)的物理资源方面的硬件差异(或改进),托管工作负载1706的VM实例1704的性能在计算装置1702(1)上与1702(2)相比可能更好。为了帮助说明由物理硬件差异产生的性能差异,优化服务106可以将利用数据1712映射回到为计算装置1702(1)-(N)得到性能度量所消耗的底层物理计算资源。
例如,可以将利用数据1712放置到用于不同芯片组的装置ID 1714可以与它们的利用和性能相关联或者被映射到它们的利用和性能的图表中。例如,装置ID 1714可以包括指示性能的基准的基线ID以及指示芯片组的不同模型、供应商和/或代的芯片组型号1、2和3。每个芯片组模型可以与芯片组模型的CPU 1718的数量以及正由不同芯片组模型上的VM实例1706、1708和1710利用的vCPU 1716的数量相关联。附加地,利用数据1720(在这种情况下,CPU使用率)与不同芯片组相关联并且进而用于确定性能1722。如图示,芯片组模型1的性能低于基准,但是芯片组模型2和3在性能上增加。以这种方式,即使正在利用相同数量的CPU和vCPU,但是通过芯片组模型的性能也由于底层硬件对数据的吞吐量来说性能或多或少而可能不同。为了确定性能1722,优化服务106可以对照基线和/或跨不同的芯片组模型比较相应的计算类型(例如,CPU、存储器、磁盘、GPU、网络吞吐量等)的数据的吞吐量,例如总利用1720。以这种方式,优化服务106可以确定一个芯片组模型与另一芯片组模型相比的性能如何。
尽管被图示为CPU使用率,但是可以针对不同的芯片组模型和/或装置ID 1714来为计算维度中的一个或多个(例如,CPU、存储器、磁盘、GPU和网络吞吐量)来确定性能1722。例如,优化服务106可以基于利用数据1712进一步确定每个芯片组模型(或其他硬件装置)对于不同的计算维度的性能如何,并且将那些附加计算维度的性能映射回到相应的芯片组模型。以这种方式,可以使用利用数据1712来确定用于底层物理硬件的计算的一个或多个维度的性能1722以便确定如何为VM实例和/或工作负载1706实现最佳拟合大小调整。
一旦性能1722被确定,优化服务106就可以生成装置映射1726,通常将底层硬件资源的装置ID 1714映射回到一个或多个计算维度的性能度量1724。因此,当优化服务106正在选择VM实例114和底层硬件资源来放置工作负载136时,优化服务106可以至少部分地基于性能度量1724选择VM实例114。
作为特定实施例,用户账户242可以正在由第一芯片组模型1714支持的第一VM实例类型130(1)上托管其工作负载1706。然而,与利用目标或偏好相比,该工作负载1706可能正在消耗太多的CPU(和/或其他计算资源)。优化服务106可以确定由第二芯片组模型1714支持的第二VM实例类型130(2)更适于托管工作负载136以实现利用目标,因为即使第二芯片组模型和第二VM实例类型130(2)具有较少的CPU 1718和/或vCPU1716,所以第一和第二芯片组模型1714之间的性能度量1724的比率可以指示第二芯片组模型1714将仍然实现较低的利用以及相同或更高的吞吐量,以支持工作负载1706。优化服务106可以至少部分地基于支持装置的底层计算资源的性能度量1724来选择VM实例类型130。
以这种方式,性能度量1724可以被指配给在上面供应VM实例116的底层计算装置112(或其他计算资源)以帮助基于要利用的计算装置确定优化的VM实例类型130。在工作负载136被从较差计算性能的装置112迁移到更大计算性能的装置112上的实施例中,优化服务106可以部分地基于两个装置112之间的性能的比率来选择新VM实例类型130。以这种方式,优化服务106可以选择可能不需要被分配与更大计算性能的计算装置112的计算能力一样多的新VM实例类型130,并且压低利用。
图18图示了用于使用计算装置之间的性能比率来确定计算装置具有性能度量使得如果工作负载被托管在计算装置上则所得的工作负载的资源利用将在期望利用率内的实施例方法1800的流程图。
在一些实施例中,方法1800可以由包括由服务提供商管理的服务提供商网络的计算资源网络的系统执行,其中计算资源网络包括第一服务器类型的第一物理服务器和第二服务器类型的第二物理服务器。
在1802,服务提供商网络102可以代表用户账户使用第一物理服务器来托管工作负载。在1804,服务提供商网络102可以接收指示通过工作负载对第一物理服务器的实际利用率的利用数据。
在1806,服务提供商网络102可以确定实际利用率不同于为用户账户指定的期望利用率。在1808,服务提供商网络102可以标识第一物理服务器类型的第一性能度量与第二物理服务器类型的第二性能度量之间的性能比率。在一些实施例中,第一性能度量指示用于托管工作负载的第一物理服务器的效率,而第二性能度量指示用于托管工作负载的第二物理服务器的效率。
在1810,服务提供商网络102可以至少部分地基于与第一物理服务器相关联的实际利用率和性能比率来确定第二物理服务器托管工作负载的预测利用率。例如,可以将实际利用率乘以第一物理服务器和第二物理服务器的性能度量的比率。
在1812,服务提供商网络102可以确定预测利用率与期望利用率在阈值内。在1814,服务提供商网络102可以代表用户账户迁移工作负载以使用第二物理服务器来托管。
在一些实例中,可以基于有关所选择的VM实例类型130的细节进一步确定预测利用率。例如,分配给VM实例类型130的vCPU的数量差对第一物理服务器和第二物理服务器来说可以是不同的,并且可以将那作为性能比率来考虑以确定预测利用率。
图19图示了用于确定硬件装置具有性能度量使得硬件装置被优化以托管工作负载的实施例方法1900的流程图。
在1902,服务提供商网络102可以接收指示通过在第一硬件装置上托管的工作负载对第一硬件装置的资源类型的第一利用率的利用数据。
在1904,服务提供商网络102可以确定第一利用率不同于第二利用率,其中为与工作负载相关联的用户账户指定第二利用率。
在1906,服务提供商网络102可以至少部分地基于与第一硬件装置和第二硬件装置相关联的性能比率来确定通过工作负载对第二硬件装置的资源类型的第三利用率,该第三利用率是对用于托管工作负载的第二硬件装置的资源类型的预期利用。
在1908,服务提供商网络102可以至少部分地基于第三利用率与第二利用率在阈值内来确定第二硬件装置被优化以托管工作负载。
图20图示了服务提供商网络102的优化服务106确定计算上兼容的VM实例114并且将计算上兼容的VM实例114部署在同一计算装置112上的实施例环境的系统架构图2000。
如图示,用户装置108(1)和108(2)可以提交相应的工作负载请求2002(1)和2002(2)以使工作负载被托管在计算资源网络110中。在一些实施例中,工作负载请求2002(1)和2002(2)可以与同一用户账户242或者与不同的用户账户242相关联。优化组件126然后可以使用资源利用模型224(1)和224(2)来将工作负载请求2002(1)-(2)映射到相应的工作负载类别220(1)和220(2)。
优化组件126然后可以确定所对应的VM实例114(1)和114(2)和/或工作负载类别220(1)和220(2)的计算偏向是计算上互补的,使得使同一计算装置112托管两个VM实例114(1)和114(2)是有利的。例如,并且如图示,资源利用模型224(1)和224(2)中的每一个的计算维度利用2004可以是兼容的,使得由两个工作负载类别220(1)和220(2)中的工作负载利用的计算维度很好地组合以使对由计算装置112提供的资源的使用最大化。如所示,五个计算维度2006、2008、2010、2012、2014可以相互补充,使得资源利用模型224(1)的一个计算维度2006(1)可能是相对高的,但是资源利用模型224(2)的同一计算维度2006(2)可能是相对低的。
作为特定实施例,工作负载类别220(1)可以利用高CPU资源2006(1)但利用低存储器资源2014(1),然而工作负载类别220(2)可以利用低CPU资源2006(2)但利用高存储器资源2014(2),从而导致它们为共享由计算装置112提供的资源的互补组合。如果两个VM实例114被放置在各自具有高CPU使用率但低存储器使用率的计算装置112上,则计算装置112将最大化由VM实例114使用的CPU,然而存储器的大部分闲置且未使用。
因此,优化组件126可以标识并存储具有指示它们为互补组合的计算维度利用2004的工作量类别220的指示。附加地或可替代地,优化组件126可以存储计算上互补的VM实例类型130的指示,并且/或者存储在不同实施例中计算上互补的工作负载136的指示。
以这种方式,当VM实例114(1)将被放置在计算装置112上时,优化组件126可以标识已经具有位于其上的计算上互补的VM实例114(2)的计算装置112并且将VM实例114(1)放置在该计算装置112上以使总资源消耗最大化。尽管计算维度利用2204示出了计算维度2006-2014中的一些或全部是互补的,但是在一些实例中,工作负载类别220和/或VM实例类型130仅需要在计算维度之一中是互补的以保证放置在同一计算装置112上。在所图示的实施例中,优化服务106可以使VM实例114(1)和114(2)被部署2016(1)-(2)在同一计算装置112上以帮助使至少一个计算维度的资源消耗最大化。
通常,计算上兼容的工作负载136和/或VM实例类型130可以基于计算维度利用2004对于计算维度2206-2014中的至少一个(例如,一个计算维度、两个计算维度、五个计算维度等)相匹有多好。在一些实施例中,计算上兼容的工作负载136和/或VM实例类型130可以包括工作负载136和/或VM实例类型130的组合,所述工作负载和/或VM实例类型相结合地(i)实现对底层计算装置112的最大利用,(ii)实现对底层计算装置112的期望或目标利用,和/或(iii)实现对底层计算装置112的期望超额订阅以确保对计算装置112的底层资源的高效利用。
图21是示出了包括服务提供商网络102的能够被配置为实现本文描述的功能性的各方面的数据中心的说明性操作环境的系统和网络图。服务提供商网络102能够在永久或按需基础上提供计算资源,例如VM实例和存储。在其他类型的功能性当中,可以利用由服务提供商网络102提供的计算资源120来实现上述各种服务。如上同样讨论的,由服务提供商网络102提供的计算资源能够包括各种类型的计算资源,诸如像VM实例、数据存储资源、联网资源、数据通信资源、网络服务等一样的数据处理资源。
由服务提供商网络102提供的每种类型的计算资源可以是通用的或者可以在许多特定配置中可用。例如,数据处理资源能够在许多不同配置中作为物理计算机或VM实例可用。VM实例能够被配置为执行应用,包括web服务器、应用服务器、媒体服务器、数据库服务器、游戏应用、上述网络服务中的一些或全部和/或其他类型的程序。数据存储资源能够包括文件存储装置、块存储装置等。服务提供商网络102也能够被配置为提供本文未具体地提及的其他类型的计算资源。
由服务提供商网络102提供的计算资源可以在一个实施方式中由一个或多个数据中心2104A-2104N(其可能在本文中被单数地称为“数据中心2104”或复数地称为“数据中心2104”)启用。数据中心2104是被利用来收容并操作计算机系统和相关组件的设施。数据中心2104通常包括冗余和备用电源、通信、冷却和安全系统。数据中心2104也能够位于地理上根本不同的位置或区域2106中。将在下面关于图22描述能够被利用来实现本文公开的技术的数据中心2104的一个说明性实施方式。
利用服务提供商网络102的用户装置108的用户105可以通过任何有线和/或无线网络118访问由服务提供商网络102提供的计算资源,所述网络可以是广域通信网络(“WAN”)(诸如因特网)、内联网或因特网服务提供商(“ISP”)网络或此类网络的组合。例如但不限于,可以利用由服务提供商网络102的用户105操作的用户装置108来通过网络118访问服务提供商网络102。应该领会,能够利用局域网(“LAN”)、因特网、或本领域中已知的将数据中心2104连接到远程客户端和其他用户的任何其他联网拓扑。也应该领会,也能够利用此类网络的组合。
在一些实施例中,用户装置108(1)-(2)可以向服务提供商网络102提交它们的工作负载请求2002(1)-(2)。优化服务106可以确定工作负载136是计算上互补的,并且指示计算管理服务134将工作负载136放置或部署2016(1)-(2)在同一数据中心2104A中的计算装置112上。
图22是图示了用于实现本文公开的技术的各方面的数据中心2104的一种配置的计算系统图2200。图22所示的实施例数据中心2104包括用于提供计算资源2204A-2204E的若干服务器计算机2202A-2202F(其在本文中可以被单数地称为“服务器计算机2202”或复数地称为“服务器计算机2202”)。在一些实施例中,资源2204和/或服务器计算机2202可以包括本文描述的计算装置112,被包括在本文描述的计算装置112中,或者对应于本文描述的计算装置112。
服务器计算机2202可以是被适当地配置以用于提供本文描述的计算资源(在图22中被图示为计算资源2204A-2204E)的标准塔式、机架安装式或刀片式服务器计算机。如上面提及的,由服务提供商网络102提供的计算资源可以是数据处理资源,诸如VM实例或硬件计算系统、数据库聚类、计算聚类、存储聚类、数据存储资源、数据库资源、联网资源和其他的。服务器2202中的一些也能够被配置为执行能够实例化和/或管理计算资源的资源管理器2206。在VM实例的情况下,例如,资源管理器2206可以是被配置为使得能够在单个服务器计算机2202上执行多个VM实例的管理程序或其他类型的程序。数据中心2104中的服务器计算机2202也能够被配置为提供网络服务和其他类型的服务。
在图22所示的实施例数据中心2104中,也利用适当的LAN 2208来互连服务器计算机2202A-2202F。应该领会,本文描述的配置和网络拓扑已被大大地简化,并且能够利用更多的计算系统、软件组件、网络和联网装置来互连本文公开的各种计算系统并且提供上述功能性。也能够利用适当的负载均衡装置或其他类型的网络基础设施组件来均衡数据中心2104A-2104N中的每一个数据中心之间、每个数据中心2104中的服务器计算机2202A-2202F中的每一个服务器计算机之间以及可能服务器计算机2202中的每一个服务器计算机中的计算资源之间的负载。应该领会,参考图22描述的数据中心2104的配置仅仅是说明性的并且能够利用其他实施方案。
图22所示的数据中心2104也包括能够执行上述软件组件中的一些或全部的服务器计算机2202F。例如但不限于,服务器计算机2202F(和其他服务器计算机2202)通常能够被包括到图1的计算装置112中并且被配置为执行组件,包括优化服务106、计算管理服务134、计算资源网络110的组件和/或上述其他软件组件。服务器计算机2202F也能够被配置为执行其他组件和/或存储用于提供本文描述的功能性中的一些或全部的数据。在这方面,应该领会,在各种实施方式中在图22中图示为在服务器计算机2202F上执行的服务能够在数据中心2204中的许多其他物理或虚拟服务器上执行。
图23示出了能够执行用于实现上述功能性的程序组件的计算机2300的实施例计算机架构。图23所示的计算机架构图示了常规的服务器计算机、工作站、台式计算机、膝上型电脑、平板、网络器具、个人数字助理(“PDA”)、电子阅读器、智能电话或其他计算装置,并且能够被利用来执行本文呈现的软件组件的任一个。在一些实施例中,服务器计算机2300可以对应于图1中描述的计算装置112,或者与其相同或类似。
计算机2300包括作为多个组件或装置能够通过系统总线或其他电通信路径连接到的印刷电路板的基板2302或“母板”。在一种说明性配置中,一个或多个中央处理单元(“CPU”)2304与芯片组2306相结合地操作。CPU 2304可以是执行计算机2300的操作所必需的算术和逻辑运算的标准可编程处理器。
CPU 2304通过从一种离散物理状态转变到下一个离散物理状态经由对在这些状态之间区分和改变的开关元件的操纵来执行操作。开关元件通常包括维持两种二进制状态之一的电子电路,诸如触发器;以及基于一个或多个其他开关元件的状态的逻辑组合提供输出状态的电子电路,诸如逻辑门。能够组合这些基本开关元件以创建更复杂的逻辑电路,包括寄存器、加减法器、算术逻辑单元、浮点单元等。
芯片组2306提供CPU 2304与基板2302上的组件和装置的剩余部分之间的接口。芯片组2306能够提供到用作计算机2300中的主存储器的RAM 2308的接口。芯片组2306能够进一步提供到诸如用于存储帮助启动计算机2300并且在各种组件与装置之间转移信息的基本例程的只读存储器(“ROM”)2310或非易失性RAM(“NVRAM”)的计算机可读存储介质的接口。依照本文描述的配置,ROM 2310或NVRAM也能够存储计算机2300的操作所必需的其他软件组件。
计算机2300能够使用通过诸如网络2208的网络到远程计算装置和计算机系统的逻辑连接来在联网环境中操作。芯片组2306能够包括用于通过诸如千兆以太网适配器的网络接口控制器(NIC)2312来提供网络连接性的功能性。NIC 2312能够通过网络2208(或118)将计算机2300连接到其他计算装置。应该领会,在计算机2300中能够存在多个NIC 2312,从而将计算机连接到其他类型的网络和远程计算机系统。
计算机2300能够包括为计算机提供非易失性存储的存储装置2314(例如,磁盘)。存储器2314能够由一个或多个物理存储单元构成。存储装置2314能够通过更改磁盘驱动单元内的特定位置的磁特性、光学存储单元中的特定位置的反射或折射特性、或固态存储单元中的特定电容器、晶体管或其他分立组件的电特性来存储信息。在不脱离本公开的范围和精神的情况下,物理介质的其他变换是可能的,同时前面的实施例被仅提供来促进本描述。计算机2300能够通过检测物理存储单元内的一个或多个特定位置的物理状态或特性来进一步从存储装置2314读取信息。
除了上述存储装置2314之外,计算机2300还可能能够访问其他计算机可读存储介质以存储并检索信息,诸如程序模块、数据结构或其他数据。本领域的技术人员应该领会,计算机可读存储介质是提供数据的非暂时性存储并且能够由计算机2300访问的任何可用介质。在一些实施例中,由服务提供商网络102和或包括在其中的任何组件执行的操作可以由与计算机2300类似的一个或多个装置支持。换句话说,由服务提供商网络102和或包括在其中的任何组件执行的操作中的一些或全部可以由在基于网络的布置中操作的一个或多个计算机装置2300执行。
作为实施例而非限制,计算机可读存储介质能够包括在任何方法或技术中实现的易失性和非易失性、可移动和不可移动介质。计算机可读存储介质包括但不限于RAM、ROM、可擦除可编程ROM(“EPROM”)、电可擦除可编程ROM(“EEPROM”)、闪速存储器或其他固态存储器技术、紧致盘ROM(“CD-ROM”)、数字通用盘(“DVD”)、高清晰度DVD(“HD-DVD”)、蓝光或其他光学存储装置、磁盒、磁带、磁盘存储装置或其他磁存储装置,或能够用于以非临时方式存储期望信息的任何其他介质。
存储装置2314能够存储被利用来控制计算机2300的操作的操作系统。根据一个实施方式,操作系统包括LINUX操作系统。根据另一实施方式,操作系统包括来自华盛顿雷德蒙德的微软公司的WINDOWS SERVER操作系统。根据另外的实施方式,操作系统能够包括UNIX操作系统或其变体之一。应该领会,也能够利用其他操作系统。存储装置2314能够存储由计算机2300使用的其他系统或应用程序和数据。
在一个实施方式中,存储装置2314、RAM 2308、ROM 2310和/或其他计算机可读存储介质可以被编码有计算机可执行指令,当被加载到计算机2300中时,所述计算机可执行指令将计算机从通用计算系统变换成能够实现本文描述的实施方式的专用计算机。如上所述,这些计算机可执行指令通过指定CPU 2304如何在状态之间转变来变换计算机2300。根据一个实施方式,计算机2300能够访问存储计算机可执行指令的计算机可读存储介质,所述计算机可执行指令当由计算机2300执行时,执行上述各种技术。计算机2300也能够包括计算机可读存储介质,在其上存储有用于执行本文描述的其他计算机实现的操作中的任一个的指令。
通常,计算机2300可以是本文描述的计算装置112(和其他计算装置、服务器等)的实施例。可以如本文所描述的那样基于VM实例类型130向一个或多个不同的VM实例114分配CPU 2304、RAM 2308、ROM 2310、存储装置2314、NIC 2312的带宽和/或计算机230的其他资源。
计算机2300也能够包括用于接收并处理来自诸如键盘、鼠标、触摸板、触摸屏、电子触针或其他类型的输入装置的许多输入装置的输入的一个或多个输入/输出控制器2316。类似地,输入/输出控制器2316能够将输出提供给显示器,诸如计算机监视器、平板显示器、数字投影仪、打印机或其他类型的输出装置。应领会,计算机2300可能不包括图23所示的所有组件,能够包括图23中未显式地示出的其他组件,或者可能利用与图23所示的完全不同的架构。
图24图示了用于基于工作负载是计算上兼容的在由同一物理服务器支持的虚拟计算资源上部署工作负载的实施例方法2400的流程图。如本文所描述的,虚拟计算资源可以包括VM实例114、虚拟容器、程序和/或任何其他虚拟表示中的一个或多个。
在2402,服务提供商网络102可以接收要代表第一用户账户使用服务提供商网络中的物理服务器来支持第一工作负载的第一请求,其中物理服务器支持使用第一资源类型和第二资源类型的工作负载。
在2404,服务提供商网络102可以接收指示被利用来支持第一工作负载的第一资源类型的第一资源量和第二资源类型的第二资源量的第一利用数据。
在2406,服务提供商网络102可以将第一工作负载部署到在物理服务器上供应的第一虚拟机(VM)实例,其中第一虚拟计算资源被优化以利用物理服务器的第一资源类型的第一资源量和第二资源类型的资源量来支持第一工作负载。
在2408,服务提供商网络102可以接收要代表服务提供商网络的第二用户账户来支持第二工作负载的第二请求。在2410,服务提供商网络102可以接收指示被利用来支持第二工作负载的第一资源类型的第三资源量和第二资源类型的第四资源量的第二利用数据。
在2412,服务提供商网络102可以基于被利用来支持第一工作负载的第一资源量大于被利用来支持第二工作负载的第二资源量并且被利用来支持第一工作负载的第二资源量小于被利用来支持第二工作负载的第四资源量来确定第一工作负载和第二工作负载是互补的工作负载;
在2412,服务提供商网络102可以至少部分地基于第一工作负载和第二工作负载是互补的工作负载,将第二工作负载部署到在物理服务器上供应的第二虚拟计算资源,其中第二虚拟计算资源被优化以利用第三资源量和第四资源量来支持第二工作负载。
在各种实施例中,计算上兼容的工作负载136和/或VM实例类型130可以基于计算维度利用2004对于计算维度2206-2014中的至少一个(例如,一个计算维度、两个计算维度、五个计算维度等)相匹有多好。在一些实施例中,计算上兼容的工作负载136和/或VM实例类型130可以包括工作负载136和/或VM实例类型130的组合,所述工作负载和/或VM实例类型相结合地(i)实现对底层计算装置112的最大利用,(ii)实现对底层计算装置112的期望或目标利用,和/或(iii)实现对底层计算装置112的期望超额订阅以确保对计算装置112的底层资源的高效利用。
图25图示了用于确定工作负载是计算上兼容的并且使用同一硬件资源上的虚拟计算资源来托管工作负载的实施例方法2500的流程图。如本文所描述的,虚拟计算资源可以包括VM实例114、虚拟容器、程序和/或任何其他虚拟表示中的一个或多个。
在2502,服务提供商网络102可以至少部分地使用在服务提供商网络的硬件资源上供应的第一虚拟机(VM)实例来托管第一工作负载。在2504,服务提供商网络102可以接收指示被第一工作负载利用的硬件资源的第一量的第一利用数据。
在2506,服务提供商网络102可以接收指示被第二工作负载利用的硬件资源的第二量的第二利用数据。在2508,服务提供商网络102可以至少部分地基于第一利用数据和第二利用数据来确定第一工作负载和第二工作负载是计算上互补的以被托管在同一硬件资源上。
在2510,服务提供商网络102可以在硬件资源上供应第二虚拟计算资源。在2512,服务提供商网络102可以至少部分地使用第二虚拟计算资源来托管第二工作负载。
图26图示了用于基于工作负载属于计算上兼容的工作负载类别来确定要将工作负载放置在位于同一硬件装置上的虚拟计算资源上的实施例方法2600的流程图。如本文所描述的,虚拟计算资源可以包括VM实例114、虚拟容器、程序和/或任何其他虚拟表示中的一个或多个。
在2602,服务提供商网络102可以至少部分地使用在服务提供商网络的硬件装置上供应的第一虚拟机(VM)实例来托管第一工作负载。在2604,服务提供商网络102可以接收指示由第一工作负载利用的硬件装置的第一资源量的第一利用数据。
在2606,服务提供商网络102可以至少部分地基于第一利用数据确定第一工作负载对应于来自一组预定义工作负载类别的第一工作负载类别。
如贯穿本申请所描述的,确定工作负载对应于工作负载类别可以包括将计算资源类型中的至少一种和可能计算资源类型中的若几种的资源利用与用于工作负载类别220的资源利用模型224进行比较。可以选择跨一个或多个计算维度最类似的资源利用模型224(例如,相同、相似某个x量的因子等)作为工作负载136与之匹配的工作负载类别130。
在2608,服务提供商网络102可以接收指示被第二工作负载利用的第二资源量的第二利用数据。在2610,服务提供商网络102可以至少部分地基于第二利用数据确定第二工作负载对应于来自该组预定义工作负载类别的第二工作负载类别。
在2612,服务提供商网络102可以确定第一工作负载类别和第二工作负载类别是互补的工作负载类别。在2614,服务提供商网络102可以在硬件装置上供应第二虚拟计算资源。在2616,服务提供商网络102可以至少部分地使用第二虚拟计算资源来托管第二工作负载。
虽然相对于特定实施例描述了前面的发明,但是应当理解,本发明的范围不限于这些特定实施例。由于为适应特定的操作要求和环境而改变的其他修改和改变对本领域技术人员将是显而易见的,因此本发明不被认为限于为公开目的而选择的实例,并且涵盖了不构成偏离本发明的真实精神和范围的所有改变和修改。
尽管本申请描述了具有特定结构特征和/或方法动作的实施方式,但是应当理解,权利要求书不一定限于所描述的特定特征或动作。相反,特定特征和行为仅仅说明落在本申请的权利要求的范围内的一些实施方式。
能够鉴于以下条款描述本公开的实施方式。
1:一种系统,所述系统包括:一个或多个处理器;以及一个或多个计算机可读介质,所述一个或多个计算机可读介质存储计算机可执行指令,当由所述一个或多个处理器执行时,所述计算机可执行指令使所述一个或多个处理器:在与由服务提供商管理的服务提供商网络相关联的计算资源上供应第一虚拟计算资源,其中所述第一虚拟计算资源是被分配了所述计算资源的第一量以供利用的第一虚拟计算资源类型;代表向所述服务提供商网络注册的用户账户将工作负载部署为由所述第一虚拟计算资源支持,其中所述工作负载与指示通过所述工作负载对所述计算资源的利用的资源利用特性相关联;标识已提供以用于代表向所述服务提供商网络注册的用户账户支持工作负载的第二虚拟计算资源类型,其中所述第二虚拟计算资源类型被分配了所述计算资源的第二量以供利用;基于所述资源利用特性,确定所述第二虚拟计算资源类型与所述第一虚拟计算资源类型比被更优化以支持所述工作负载;给所述用户账户提供包括要将所述工作负载从由所述第一虚拟计算资源类型支持迁移到由所述第二虚拟计算资源类型支持的推荐的推荐数据;接收指示来自所述用户账户的要将所述工作负载从由所述第一虚拟计算资源类型支持迁移到由所述第二虚拟计算资源类型支持的请求的输入数据;以及代表所述用户账户迁移要由所述第二虚拟计算资源类型的第二虚拟计算资源支持的所述工作负载。
2:根据条款1所述的系统,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:在所述计算资源上供应模拟虚拟计算资源,其中所述模拟虚拟计算资源是被分配了所述计算资源的第二量以供利用的第二虚拟计算资源类型;使模拟程序在所述模拟虚拟计算资源上执行,使得所述模拟程序根据与所述工作负载相关联的所述资源利用特性来利用所述模拟虚拟计算资源的计算资源;以及从所述模拟程序接收指示在所述模拟虚拟计算资源上执行的所述模拟程序的性能的输出数据,其中确定所述第二虚拟计算资源类型与所述第一虚拟计算资源类型比被更优化以支持所述工作负载至少部分地基于所述输出数据。
3:根据条款1或2中一项所述的系统,其中所述推荐数据还包括:指示所述第二虚拟计算资源类型支持所述工作负载的合适性的量度的合适性数据;以及包括有关用于支持所述工作负载的所述第二虚拟计算资源类型的合适性的文本说明的文本数据。
4:根据条款1、2或3中一项所述的系统,其中:所述第二虚拟计算资源类型被优化以支持利用特定计算资源类型的工作负载;所述特定计算资源类型包括中央处理器(CPU)资源类型、存储器资源类型、存储装置资源类型或网络可用性资源类型中的至少一种;并且所述资源利用特性指示所述工作负载利用为所述特定计算资源类型的计算资源。
5:一种计算机实现的方法,所述方法包括:代表用户账户至少部分地使用在服务提供商网络的第一计算资源上供应的第一虚拟计算资源来托管工作负载,其中所述第一虚拟计算资源是被分配了所述第一计算资源以供利用的第一虚拟计算资源类型;确定所述工作负载从利用所述第一计算资源的第一量改变为利用所述第一计算资源的第二量;至少部分地基于所述第一计算资源的第二量,标识与所述第一虚拟计算资源类型比被更优化以托管所述工作负载的第二虚拟计算资源类型,其中所述第二虚拟计算资源类型被分配了第二计算资源以供利用;以及向所述用户账户提供包括要将所述工作负载从由所述第一虚拟计算资源托管迁移到由为所述第二虚拟计算资源类型的第二虚拟计算资源托管的推荐的推荐数据。
6:根据条款5所述的计算机实现的方法,还包括:从所述用户账户接收对所述工作负载做出了修改的指示;以及至少部分地响应于接收到对所述工作负载做出了所述修改的所述指示,收集指示所述第一计算资源的第二量的资源利用度量。
7:根据条款5或6中一项所述的计算机实现的方法,还包括:确定所述计算资源的第一量与所述计算资源的第二量之间的差大于阈值差,其中至少部分地基于所述差大于所述阈值差来执行标识所述第二虚拟计算资源类型。
8:根据条款5、6或7中一项所述的计算机实现的方法,还包括:接收指示来自所述用户账户的要将所述工作负载从由所述第一虚拟计算资源托管迁移到由所述第二虚拟计算资源托管的请求的输入数据;以及代表所述用户账户迁移所述工作负载以由所述第二虚拟计算资源托管。
9:根据条款5、6、7或8中一项所述的计算机实现的方法,还包括:在与所述服务提供商网络相关联的第三计算资源上供应测试虚拟计算资源,所述测试虚拟计算资源是所述第二虚拟计算资源类型;将测试工作负载部署为由所述测试虚拟计算资源托管,其中所述测试工作负载利用所述第三计算资源的第二量;接收指示所述测试工作负载当被托管在所述测试虚拟计算资源上时的性能的健康状态度量;以及代表所述用户账户至少部分地基于所述健康状态度量来迁移所述工作负载以由所述第二虚拟计算资源托管。
10:根据条款5、6、7、8或9中一项所述的计算机实现的方法,还包括:在第一时间从所述第一虚拟计算资源收集指示所述第一虚拟计算资源的第一量的第一利用值;确定从所述第一时间起已经过一定时间段,其中所述时间段与所述用户账户修改所述工作负载的频率相关联;以及在第二时间从所述第一虚拟计算资源收集指示所述第一计算资源的第二量的第二利用值。
11:根据条款5、6、7、8、9或10中一项所述的计算机实现的方法,还包括:从所述用户账户接收要提供有关所述工作负载的迁移的所述推荐的请求;以及至少部分地响应于接收到所述请求,收集指示所述第一计算资源的第二量的资源利用度量。
12:根据第5、6、7、8、9、10或11中一项所述的计算机实现的方法,还包括向所述用户账户提供以下项中的至少一种:指示用于托管所述工作负载的所述第二虚拟计算资源类型的合适性的量度的合适性数据;或包括有关用于托管所述工作负载的所述第二虚拟计算资源类型的合适性的文本说明的文本数据。
13:根据条款5、6、7、8、9、10、11或12中一项所述的计算机实现的方法,其中:所述第一虚拟计算资源被分配了包括在所述第一计算资源中的中央处理单元(CPU)资源的第一量;所述第二虚拟计算资源被分配了包括在所述第二计算资源中的CPU资源的第二量,所述CPU资源的第二量大于所述CPU资源的第一量;以及确定所述工作负载从利用所述第一计算资源的第一量改变为利用所述第一计算资源的第二量包括确定所述工作负载正在利用附加CPU资源。
14:一种系统,所述系统包括:一个或多个处理器;以及一个或多个计算机可读介质,所述一个或多个计算机可读介质存储计算机可执行指令,当由所述一个或多个处理器执行时,所述计算机可执行指令使所述一个或多个处理器:代表用户账户至少部分地使用在服务提供商网络的第一计算资源上供应的第一虚拟计算资源来托管工作负载,其中所述第一虚拟计算资源是被分配了所述第一计算资源以供利用的第一虚拟计算资源类型;标识已提供以用于代表与所述服务提供商网络相关联的用户账户托管工作负载的第二虚拟计算资源类型,其中所述第二虚拟计算资源类型被分配了第二计算资源以供利用;接收指示通过所述工作负载对所述第一计算资源的利用的资源利用特性;基于所述资源利用特性,确定所述第二虚拟计算资源类型与所述第一虚拟计算资源类型比被更优化以托管所述工作负载;以及给所述用户账户提供包括要将所述工作负载从由所述第一虚拟计算资源托管迁移到由为所述第二虚拟计算资源类型的第二虚拟计算资源托管的推荐的推荐数据。
15:根据条款14所述的系统,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:在第三计算资源上供应模拟虚拟计算资源,其中所述模拟虚拟计算资源是所述第二虚拟计算资源类型;使模拟程序在所述模拟虚拟计算资源上执行,使得所述模拟程序根据与所述工作负载相关联的所述资源利用特性来利用所述模拟虚拟计算资源的第三计算资源;以及从所述模拟程序接收指示在所述模拟虚拟计算资源上执行的所述模拟程序的性能的输出数据,其中确定所述第二虚拟计算资源类型与所述第一虚拟计算资源类型比被更优化以托管所述工作负载至少部分地基于所述输出数据。
16:根据条款14或15中一项所述的系统,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:接收指示来自所述用户账户的要将所述工作负载从由所述第一虚拟计算资源托管迁移到由所述第二虚拟计算资源托管的请求的输入数据;以及代表所述用户账户迁移所述工作负载以由所述第二虚拟计算资源支持。
17:根据条款14、15或16中一项所述的系统,其中所述推荐数据还包括以下项中的至少一种:指示用于托管所述工作负载的所述第二虚拟计算资源类型的合适性的量度的合适性数据;或包括有关用于托管所述工作负载的所述第二虚拟计算资源类型的合适性的文本说明的文本数据。
18:根据条款14、15、16或17中一项所述的系统,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:在与所述服务提供商网络相关联的第三计算资源上供应测试虚拟计算资源,所述测试虚拟计算资源是所述第二虚拟计算资源类型;将测试工作负载部署为由所述测试虚拟计算资源托管,其中所述测试工作负载利用所述第三计算资源的第二量;接收指示所述测试工作负载当被托管在所述测试虚拟计算资源上时的性能的健康状态度量;以及代表所述用户账户至少部分地基于所述健康状态度量来迁移所述工作负载以由所述第二虚拟计算资源托管。
19:根据条款14、15、16、17或18中一项所述的系统,其中:所述第二虚拟计算资源类型被优化以支持利用特定计算资源类型的工作负载;所述特定计算资源类型包括中央处理器(CPU)资源类型、存储器资源类型、存储装置资源类型或网络可用性资源类型中的至少一种;并且所述资源利用特性指示所述工作负载利用为所述特定计算资源类型的计算资源。
20:根据条款14、15、16、17、18或19中一项所述的系统,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:确定与托管所述工作负载的所述第一虚拟计算资源类型相关联的第一优化值;确定与托管所述工作负载的所述第二虚拟计算资源类型相关联的第二优化值;确定所述第二优化值比所述第一优化值大了阈值量以上;以及至少部分地基于所述第二优化值比所述第一优化值大了阈值量以上来确定要给所述用户账户提供所述推荐数据。
21:一种系统,所述系统包括:由服务提供商管理的服务提供商网络的计算资源网络,所述计算资源网络包括:第一服务器类型的第一物理服务器;和第二服务器类型的第二物理服务器;一个或多个处理器;以及一个或多个计算机可读介质,所述一个或多个计算机可读介质存储计算机可执行指令,当由所述一个或多个处理器执行时,所述计算机可执行指令使所述一个或多个处理器:代表用户账户使用所述第一物理服务器来托管工作负载;接收指示通过所述工作负载对所述第一物理服务器的实际利用率的利用数据;确定所述实际使用率与为所述用户账户指定的期望利用率不同;标识所述第一服务器类型的第一性能度量与所述第二服务器类型的第二性能度量之间的性能比率,其中:所述第一性能度量指示用于托管所述工作负载的所述第一物理服务器的第一效率;并且所述第二性能度量指示用于托管所述工作负载的所述第二物理服务器的第二效率;至少部分地基于与所述第一物理服务器相关联的所述实际利用率和所述性能比率来确定所述第二物理服务器托管所述工作负载的预测利用率;确定所述预测利用率与所述期望利用率在阈值量内;以及代表所述用户账户迁移所述工作负载以使用所述第二物理服务器来托管。
22:根据条款21所述的系统,其中:所述第一物理服务器包括第一数量的虚拟中央处理单元(vCPU);所述第二物理服务器包括与所述第一数量的vCPU不同的第二数量的vCPU;并且确定所述预测利用率进一步至少部分地基于所述第一数量的vCPU和所述第二数量的vCPU。
23:根据条款21或22中一项所述的系统,其中,所述实际利用率包括指示对由第一物理服务器向所述工作负载提供的第一计算资源的利用的第一实际利用率,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:根据所述利用数据确定指示通过所述工作负载对由所述第一物理服务器提供的第二计算资源的第一量的利用的第二实际利用率;以及确定所述第二物理服务器包括大于或等于由所述工作负载利用的所述第一量的所述第二计算资源的第二量。
24:根据条款21、22或23中一项所述的系统,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:在与所述第一服务器类型相对应的第一测试服务器上模拟测试工作负载;至少部分地基于通过所述测试工作负载对所述第一测试服务器的第一利用率来确定所述第一性能度量;在与所述第二服务器类型相对应的第二测试服务器上模拟所述测试工作负载;以及至少部分地基于通过所述测试工作负载对所述第二测试服务器的第二利用率来确定所述第二性能度量。
25:一种计算机实现的方法,所述方法包括:在服务提供商网络处,接收指示通过被托管在第一硬件装置上的工作负载对所述第一硬件装置的资源类型的第一利用率的利用数据;由所述服务提供商网络确定所述第一利用率与第二利用率不同,其中所述第二利用率是为与所述工作负载相关联的用户账户指定的;至少部分地基于与所述第一硬件装置和第二硬件装置相关联的性能比率,确定通过所述工作负载对所述第二硬件装置的资源类型的第三利用率,所述第三利用率是对用于托管所述工作负载的所述第二硬件装置的资源类型的预期利用;以及至少部分地基于所述第三利用率与所述第二利用率在阈值量内来确定所述第二硬件装置被优化以托管所述工作负载。
26:根据条款25所述的计算机实现的方法,还包括至少部分地基于所述第一硬件装置的第一性能度量和所述第二硬件装置的第二性能度量来确定所述性能比率,其中:所述第一性能度量指示用于使用所述资源类型来托管所述工作负载的所述第一硬件装置的第一效率;并且所述第二性能度量指示用于使用所述资源类型来托管所述工作负载的所述第二硬件装置的第二效率。
27:根据条款25或26中一项所述的计算机实现的方法,还包括:在具有与所述第一硬件装置相同的类型的第一测试装置上模拟测试工作负载;至少部分地基于通过所述测试工作负载对所述第一测试装置的第一测试利用率来确定所述第一性能度量;在具有与所述第二硬件装置相同的类型的第二测试装置上模拟所述测试工作负载;以及至少部分地基于通过所述测试工作负载对所述第二测试装置的第二测试利用率来确定所述第二性能度量。
28:根据条款25、26或27中一项所述的计算机实现的方法,其中所述资源类型包括以下项中的至少一种:中央处理单元(CPU)资源类型;存储器资源类型;存储装置资源类型;或网络可用性资源类型。
29:根据条款25、26、27或28中一项所述的计算机实现的方法,其中:所述第一硬件装置包括第一数量的虚拟中央处理单元(vCPU);所述第二硬件装置包括与所述第一数量的vCPU不同的第二数量的vCPU;并且确定通过所述工作负载对所述第二硬件装置的资源类型的第三利用率进一步至少部分地基于所述第一数量的vCPU和所述第二数量的vCPU。
30:根据条款25、26、27、28或29中一项所述的计算机实现的方法,其中所述资源类型包括由所述工作负载利用的第一资源类型,还包括:根据所述利用数据确定指示通过所述工作负载对所述第一硬件装置的第二资源类型的第一量的利用的第四利用率;以及确定所述第二硬件装置包括大于或等于所述第一量的所述第二资源类型的第二量。
31:根据条款25、26、27、28、29或30中一项所述的计算机实现的方法,还包括:向所述用户账户提供指示所述第二硬件装置被优化以托管所述工作负载的推荐数据;以及将所述工作负载托管在所述第二硬件装置上,其中所述第二硬件装置被包括在所述服务提供商网络中。
32:根据条款25、26、27、28、29、30或31中一项所述的计算机实现的方法,其中:从所述用户账户接收所述工作负载正被从由包括在远离所述服务提供商网络的计算资源网络中的所述第一硬件装置支持迁移的指示;以及给所述用户账户提供被配置为接收所述利用数据的接口,其中接收所述利用数据包括经由所述接口接收所述利用数据。
33:根据条款25、26、27、28、29、30、31或32中一项所述的计算机实现的方法,还包括:从所述用户账户接收指示为所述用户账户指定的所述第二利用率的优化目标,其中所述优化目标指示所述第二利用率是期望利用率。
34:根据条款25、26、27、28、29、30、31、32或33中一项所述的计算机实现的方法,还包括:将软件代理部署到所述第一硬件装置,所述软件代理被配置为收集所述利用数据;以及代表所述用户账户将所述工作负载从被托管在所述第一硬件装置上迁移到被托管在所述第二硬件装置上,其中所述服务提供商网络包括所述第一硬件装置和所述第二硬件装置。
35:一种系统,所述系统包括:一个或多个处理器;以及一个或多个计算机可读介质,所述一个或多个计算机可读介质存储计算机可执行指令,当由所述一个或多个处理器执行时,所述计算机可执行指令使所述一个或多个处理器:在服务提供商网络处,接收指示通过被托管在第一硬件装置上的工作负载对所述第一硬件装置的资源类型的第一利用率的利用数据;由所述服务提供商网络确定所述第一利用率与第二利用率不同,其中所述第二利用率是为与所述工作负载相关联的用户账户指定的;至少部分地基于与所述第一硬件装置和第二硬件装置相关联的性能比率,确定通过所述工作负载对所述第二硬件装置的资源类型的第三利用率,所述第三利用率是对用于托管所述工作负载的所述第二硬件装置的资源类型的预期利用;至少部分地基于所述第三利用率与所述第二利用率在阈值量内来确定所述第二硬件装置被优化以托管所述工作负载;以及代表所述用户账户将所述工作负载托管在所述服务提供商网络中的所述第二硬件装置上。
36:根据条款35所述的系统,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:至少部分地基于所述第一硬件装置的第一性能度量和所述第二硬件装置的第二性能度量来确定所述性能比率,其中:所述第一性能度量指示用于使用所述资源类型来托管所述工作负载的所述第一硬件装置的第一效率;并且所述第二性能度量指示用于使用所述资源类型来托管所述工作负载的所述第二硬件装置的第二效率。
37:根据条款36所述的系统,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:在具有与所述第一硬件装置相同的类型的第一测试装置上模拟测试工作负载;至少部分地基于通过所述测试工作负载对所述第一测试装置的第一测试利用率来确定所述第一性能度量;在具有与所述第二硬件装置相同的类型的第二测试装置上模拟所述测试工作负载;以及至少部分地基于通过所述测试工作负载对所述第二测试装置的第二测试利用率来确定所述第二性能度量。
38:根据条款35、36或37中一项所述的系统,其中:所述第一硬件装置包括第一数量的虚拟中央处理单元(vCPU);所述第二硬件装置包括与所述第一数量的vCPU不同的第二数量的vCPU,确定通过所述工作负载对所述第二硬件装置的资源类型的第三利用率进一步至少部分地基于所述第一数量的vCPU和所述第二数量的vCPU。
39:根据条款35、36、37或38中一项所述的系统,其中所述资源类型包括由所述工作负载利用的第一资源类型,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:根据所述利用数据确定指示通过所述工作负载对所述第一硬件装置的第二资源类型的第一量的利用的第四利用率;以及确定所述第二硬件装置包括大于或等于所述第一量的所述第二资源类型的第二量。
40:根据条款35、36、37、38或39中一项所述的系统,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:从所述用户账户接收所述工作负载正被从由包括在远离所述服务提供商网络的计算资源网络中的所述第一硬件装置支持迁移的指示;以及给所述用户账户提供被配置为接收所述利用数据的接口,其中接收所述利用数据包括经由所述接口接收所述利用数据。
41:一种系统,所述系统包括:一个或多个处理器;以及一个或多个计算机可读介质,所述一个或多个计算机可读介质存储计算机可执行指令,当由所述一个或多个处理器执行时,所述计算机可执行指令使所述一个或多个处理器:使用在服务提供商网络的硬件资源上供应的虚拟计算资源来托管工作负载;经由与所述工作负载相关联的用户账户接收对要优化所述工作负载的应用栈的推荐的请求;代表所述用户账户将软件代理部署到正在托管所述工作负载的所述虚拟计算资源;从所述软件代理接收指定所述工作负载的应用栈的配置参数的配置数据;接收指示被利用来托管所述工作负载的所述硬件资源的量的利用数据;至少部分地基于所述利用数据,确定为了优化所述工作负载的应用栈对所述应用栈的配置参数中的配置参数做出的修改;以及向所述用户账户提供指示为了优化所述应用栈对所述应用栈的配置参数做出的所述修改的推荐数据。
42:根据条款41所述的系统,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:基于所述利用数据,将所述工作负载映射到来自一组预定义工作负载类别的工作负载类别,其中所述工作负载类别与指示被包括在所述工作负载类别中的附加工作负载的硬件资源利用的资源利用模型相关联;以及基于所述资源利用模型确定对所述配置参数的所述修改。
43:根据条款41或42中一项所述的系统,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:从软件代理接收指定所述虚拟计算资源的操作系统(OS)的OS配置参数的OS配置数据;确定为了优化所述虚拟计算资源的OS对所述OS配置参数的OS配置参数做出的附加修改;以及向所述用户账户提供指示为了优化所述OS对所述OS配置参数做出的所述附加修改的附加推荐数据。
44:根据条款41、42或43中一项所述的系统,其中所述请求包括第一请求,所述第一请求包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:从所述用户账户接收要实现对所述应用栈的配置参数的所述修改的第二请求;以及基于所述修改来修改所述应用栈的配置参数。
45:一种计算机实现的方法,所述方法包括:使用在服务提供商网络的硬件资源上供应的虚拟计算资源实例来托管工作负载;确定为所述工作负载的应用栈或所述虚拟计算资源的操作系统(OS)中的至少一个指定配置参数的配置数据;接收指示被利用来托管所述工作负载的所述硬件资源的量的利用数据;至少部分地基于所述利用数据,确定对所述配置参数的修改,所述修改优化所述工作负载的应用栈或所述虚拟计算资源的操作系统中的至少一个;以及向与所述工作负载相关联的用户账户提供指示对所述配置参数的所述修改的推荐数据,所述修改优化所述工作负载的应用栈或所述虚拟计算资源的操作系统中的至少一个。
46:根据条款45所述的计算机实现的方法,还包括:代表所述用户账户将软件代理部署到正在托管所述工作负载的所述虚拟计算资源,所述软件代理被配置为收集所述配置数据,其中接收所述配置数据包括从所述软件代理接收所述配置数据。
47:根据条款45或46一项所述的计算机实现的方法,还包括给所述用户账户提供所述服务提供商网络包括用于优化工作负载的性能的优化服务的指示,所述优化服务利用在支持所述工作负载的虚拟计算资源上执行的软件代理。
48:根据条款45、46或47中一项所述的计算机实现的方法,还包括:经由所述用户账户接收对所述优化服务优化所述应用栈或所述操作系统中的至少一个的请求;以及代表所述用户账户将所述软件代理部署到正在托管所述工作负载的虚拟计算资源,所述软件代理被配置为收集所述配置数据,其中接收所述配置数据包括从所述软件代理接收所述配置数据。
49:根据条款45、46、47或48中一项所述的计算机实现的方法,还包括:从所述用户账户接收要实现对所述应用栈或所述操作系统中的至少一个的配置参数的所述修改的请求;以及至少部分地基于所述修改来修改所述应用栈或所述操作系统中的至少一个的配置参数。
50:根据条款45、46、47、48或49中一项所述的计算机实现的方法,其中所述虚拟计算资源包括代表所述用户账户托管第一工作负载的第一虚拟计算资源,还包括:使用在所述服务提供商网络的硬件资源上供应的第二虚拟计算资源来托管第二工作负载,所述第二虚拟计算资源被指定来测试对所述第一工作负载的修改;至少部分地基于所述修改,修改所述第二工作负载的第二应用栈或所述第二虚拟计算资源的第二操作系统中的至少一个的第二配置参数;接收指示所述第二工作负载继所述修改之后的性能的健康状态度量;以及至少部分地基于所述健康状态度量,确定对所述第二配置参数的所述修改改进了托管所述第二工作负载的性能。
51:根据条款45、46、47、48、49或50中一项所述的计算机实现的方法,还包括:至少部分地基于所述利用数据,将所述工作负载映射到来自一组预定义工作负载类别的工作负载类别,其中所述工作负载类别与指示被包括在所述工作负载类别中的附加工作负载的硬件资源利用的资源利用模型相关联;以及至少部分地基于所述资源利用模型确定对所述配置参数的所述修改。
52:根据条款45、46、47、48、49、50或51中一项所述的计算机实现的方法,其中所述硬件资源包括第一硬件资源,还包括:从所述用户账户接收所述工作负载正在被从由包括在远离所述服务提供商网络的计算资源网络中的第二计算资源支持迁移的指示;以及给所述用户账户提供被配置为接收所述配置数据的接口,其中接收所述配置数据包括经由所述接口接收所述配置数据。
53:根据条款45、46、47、48、49、50、51或52中一项所述的计算机实现的方法,其中:所述虚拟计算资源被配置为利用所述服务提供商网络的硬件资源的存储器的预定义量;并且所述配置参数指示被利用来支持所述工作负载的存储器的预定义量的一部分。
54:一种系统,所述系统包括:一个或多个处理器;以及一个或多个计算机可读介质,所述一个或多个计算机可读介质存储计算机可执行指令,当由所述一个或多个处理器执行时,所述计算机可执行指令使所述一个或多个处理器:使用在服务提供商网络的硬件资源上供应的虚拟计算资源来托管工作负载,所述工作负载与所述服务提供商网络的用户账户相关联;确定为所述工作负载的应用栈或所述虚拟计算资源的操作系统(OS)中的至少一个指定配置参数的配置数据;接收指示被利用来托管所述工作负载的所述硬件资源的量的利用数据;至少部分地基于所述利用数据,确定对所述配置参数的修改,所述修改优化所述工作负载的应用栈或所述虚拟计算资源的操作系统中的至少一个;以及至少部分地基于所述修改来修改所述应用栈或所述操作系统中的至少一个的配置参数。
55:根据条款54所述的系统,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:向与所述工作负载相关联的所述用户账户提供指示对所述配置参数的所述修改的推荐数据,所述修改优化所述工作负载的应用栈或所述虚拟计算资源的操作系统中的至少一个;以及从所述用户账户接收要实现对所述应用栈或所述操作系统中的至少一个的配置参数的所述修改的请求。
56:根据条款54或55中一项所述的系统,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:代表所述用户账户将软件代理部署到正在托管所述工作负载的所述虚拟计算资源,所述软件代理被配置为收集所述配置数据,其中接收所述配置数据包括从所述软件代理接收所述配置数据。
57:根据条款56所述的系统,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:给所述用户账户提供所述服务提供商网络包括用于优化工作负载的性能的优化服务的指示,所述优化服务利用在支持所述工作负载的虚拟计算资源上执行的软件代理;以及经由所述用户账户接收对所述优化服务优化所述应用栈或所述操作系统中的至少一个的请求。
58:根据条款54、55、56或57中任一项所述的系统,其中:所述虚拟计算资源被配置为利用所述服务提供商网络的硬件资源的存储器的预定义量;并且所述配置参数指示被利用来支持所述工作负载的存储器的预定义量的一部分。
59:根据条款54、55、56、57或58中任一项所述的系统,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:至少部分地基于所述利用数据,将所述工作负载映射到来自一组预定义工作负载类别的工作负载类别,其中所述工作负载类别与指示被包括在所述工作负载类别中的附加工作负载的硬件资源利用的资源利用模型相关联;以及至少部分地基于所述资源利用模型确定对所述配置参数的所述修改。
60:根据条款54、55、56、57、58或59中任一项所述的系统,其中所述硬件资源包括第一硬件资源,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:从所述用户账户接收所述工作负载正被从由包括在远离所述服务提供商网络的计算资源网络中的第二计算资源支持迁移的指示;以及给所述用户账户提供被配置为接收所述配置数据的接口,其中接收所述配置数据包括经由所述接口接收所述配置数据。
61:一种系统,所述系统包括:一个或多个处理器;以及一个或多个计算机可读介质,所述一个或多个计算机可读介质存储计算机可执行指令,当由所述一个或多个处理器执行时,所述计算机可执行指令使所述一个或多个处理器:接收要代表第一用户账户使用服务提供商网络中的物理服务器来支持第一工作负载的第一请求,其中所述物理服务器支持使用第一资源类型和第二资源类型的工作负载;接收指示被利用来支持所述第一工作负载的所述第一资源类型的第一资源量和所述第二资源类型的第二资源量的第一利用数据;将所述第一工作负载部署到在所述物理服务器上供应的第一虚拟计算资源,其中所述第一虚拟计算资源被优化以利用所述物理服务器的所述第一资源类型的第一资源量和所述第二资源类型的第二资源量来支持所述第一工作负载;接收要代表所述服务提供商网络的第二用户账户支持第二工作负载的第二请求;接收指示被利用来支持所述第二工作负载的所述第一资源类型的第三资源量和所述第二资源类型的第四资源量的第二利用数据;基于以下项确定所述第一工作负载和所述第二工作负载是互补的工作负载:被利用来支持所述第一工作负载的所述第一资源量大于被利用来支持所述第二工作负载的所述第二资源量;并且被利用来支持所述第一工作负载的所述第二资源量小于被利用来支持所述第二工作负载的所述第四资源量;以及至少部分地基于所述第一工作负载和所述第二工作负载为互补的工作负载:将所述第二工作负载部署到在所述物理服务器上供应的第二虚拟计算资源,其中所述第二虚拟计算资源被优化以利用所述第三资源量和所述第四资源量来支持所述第二工作负载。
62:根据条款61所述的系统,其中:所述第一资源类型包括来自包括以下项的一组资源类型的类型:中央处理单元(CPU)资源类型;图形处理单元(GPU)资源类型;存储器资源类型;存储装置资源类型;或网络可用性资源类型;并且所述第二资源类型包括与所述一组资源类型不同的类型。
63:根据条款61或62中一项所述的系统,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:基于所述第一利用数据,将所述第一工作负载映射到来自一组预定义工作负载类别的第一工作负载类别,其中所述第一工作负载类别与对应于所述第一虚拟计算资源的第一虚拟计算资源类型相关联;基于所述第二利用数据,将所述第二工作负载映射到来自所述一组预定义工作负载类别的第二工作负载类别,其中所述第一工作负载类别与对应于所述第二虚拟计算资源的第二虚拟计算资源类型相关联;并且其中确定所述第一工作负载和所述第二工作负载是互补的工作负载包括确定所述第一工作负载类别和所述第二工作负载类别是预定义互补的工作负载类别。
64:根据条款61、62或63中一项所述的系统,其中:所述第二利用数据是从在先前支持所述第二工作负载的另一物理服务器上供应的第三虚拟计算资源上执行的代理接收的,所述代理被配置为收集所述第二利用数据;并且将所述第二工作负载部署到在所述物理服务器上供应的所述第二虚拟计算资源包括将所述第二虚拟计算资源从所述另一物理服务器迁移到在所述物理服务器上供应的所述第二虚拟计算资源。
65:一种计算机实现的方法,所述方法包括:至少部分地使用在服务提供商网络的硬件资源上供应的第一虚拟计算资源来托管第一工作负载;接收指示由所述第一工作负载利用的硬件资源的第一量的第一利用数据;接收指示由第二工作负载利用的硬件资源的第二量的第二利用数据;至少部分地基于所述第一利用数据和所述第二利用数据,确定所述第一工作负载和所述第二工作负载是计算上互补的以被托管在同一硬件资源上;在所述硬件资源上供应第二虚拟计算资源;以及至少部分地使用所述第二虚拟计算资源来托管所述第二工作负载。
66:根据条款65所述的计算机实现的方法,还包括:从所述第一利用数据中标识所述第一工作负载利用所述硬件资源的第一资源类型的第一量和第二资源类型的第三量;以及从所述第二利用数据中标识所述第二工作负载利用所述硬件资源的所述第一资源类型的第二量和所述第二资源类型的第四量,其中确定所述第一工作负载和所述第二工作负载是计算上互补的包括:确定由所述第一工作负载利用的所述第一资源类型的第一量大于由所述第二工作负载利用的所述第一资源类型的第二量;以及确定由所述第一工作负载利用的所述第二资源类型的第三量小于由所述第二工作负载利用的所述第二资源类型的第四量。
67:根据条款65或66中一项所述的计算机实现的方法,其中:所述第一资源类型包括来自包括以下项的一组资源类型的类型:中央处理单元(CPU)资源类型;图形处理单元(GPU)资源类型;存储器资源类型;存储装置资源类型;或网络可用性资源类型;并且所述第二资源类型包括与所述一组资源类型不同的类型。
68:根据条款65、66或67中一项所述的计算机实现的方法,还包括:至少部分地基于所述第一利用数据,将所述第一工作负载映射到来自一组预定义工作负载类别的第一工作负载类别;以及至少部分地基于所述第二利用数据,将所述第二工作负载映射到来自所述一组预定义工作负载类别的第二工作负载类别,其中确定所述第一工作负载和所述第二工作负载是计算上互补的包括确定所述第一工作负载类别和所述第二工作负载类别是预定义互补的工作负载类别。
69:根据条款65、66、67或68中一项所述的计算机实现的方法,还包括:接收要代表与所述服务提供商网络相关联的第一用户账户托管所述第一工作负载的第一请求,其中所述第一工作负载是第一工作负载类型;以及接收要代表与所述服务提供商网络相关联的第二用户账户托管所述第二工作负载的第二请求,其中所述第二工作负载是第二工作负载类型。
70:根据条款65、66、67、68或69中一项所述的计算机实现的方法,还包括:接收要代表与所述服务提供商网络相关联的用户账户托管所述第一工作负载的第一请求,其中所述第一工作负载是第一工作负载类型;以及接收要代表与所述服务提供商网络相关联的所述用户账户托管所述第二工作负载的第二请求,其中所述第二工作负载是第二工作负载类型。
71:根据条款65、66、67、68、69或70中一项所述的计算机实现的方法,还包括:至少部分地使用在另一硬件资源上供应的第三虚拟计算资源来托管所述第二工作负载;以及由在所述第三虚拟计算资源上操作的代理收集所述第二利用数据。
72:根据条款65、66、67、68、69、70或71中一项所述的计算机实现的方法,还包括:经由与所述服务提供商网络相关联的用户账户接收要代表所述用户账户托管所述第二工作负载的请求;以及经由所述用户账户接收指示所述第二资源利用数据的输入数据,所述第二资源利用数据指示由所述第二工作负载利用的所述硬件资源的第二量。
73:根据条款65、66、67、68、69、70、71或72中一项所述的计算机实现的方法,其中所述硬件资源包括由所述第一工作负载和所述第二工作负载利用的多种资源类型,还包括:接收指示关于所述多种资源类型中的将被优先考虑以供由所述第二虚拟计算资源使用来托管所述第二工作负载的资源类型的用户偏好的资源可用性偏向;从所述第一利用数据中标识所述第一工作负载利用不到所述硬件资源的资源类型的阈值量;以及至少部分地基于所述资源可用性偏向和所述第一工作负载利用不到所述资源类型的阈值量来选择所述硬件资源以使用所述第二虚拟计算资源来托管所述第二工作负载。
74:一种系统,所述系统包括:一个或多个处理器;以及一个或多个计算机可读介质,所述一个或多个计算机可读介质存储计算机可执行指令,当由所述一个或多个处理器执行时,所述计算机可执行指令使所述一个或多个处理器:至少部分地使用在服务提供商网络的硬件装置上供应的第一虚拟计算资源来托管第一虚拟计算资源;接收指示由所述第一工作负载利用的所述硬件装置的第一资源量的第一利用数据;至少部分地基于所述第一利用数据,确定所述第一工作负载对应于来自一组预定义工作负载类别的第一工作负载类别;接收指示由第二工作负载利用的第二资源量的第二利用数据;至少部分地基于所述第二利用数据,确定所述第二工作负载对应于来自所述一组预定义工作负载类别的第二工作负载类别;确定所述第一工作负载类别和所述第二工作负载类别是互补的工作负载类别;在所述硬件装置上供应第二虚拟计算资源;以及至少部分地使用所述第二虚拟计算资源来托管所述第二工作负载。
75:根据条款74所述的系统,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:从所述第一利用数据中标识所述第一工作负载利用所述硬件装置的第一资源类型的第一资源量和第二资源类型的第三资源量;以及从所述第二利用数据中标识所述第二工作负载利用所述硬件装置的所述第一资源类型的第二资源量和所述第二资源类型的第四资源量。
76:根据条款75所述的系统,其中:所述第一资源类型包括来自包括以下项的一组资源类型的类型:中央处理单元(CPU)资源类型;图形处理单元(GPU)资源类型;存储器资源类型;存储装置资源类型;或网络可用性资源类型;并且所述第二资源类型包括与所述一组资源类型不同的类型。
77:根据条款74、75或76中一项所述的系统,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:接收要代表与所述服务提供商网络相关联的第一用户账户托管所述第一工作负载的第一请求,其中所述第一工作负载是第一工作负载类型;以及接收要代表与所述服务提供商网络相关联的第二用户账户托管所述第二工作负载的第二请求,其中所述第二工作负载是第二工作负载类型。
78:根据条款74、75、76或77中一项所述的系统,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:接收要代表与所述服务提供商网络相关联的用户账户托管所述第一工作负载的第一请求,其中所述第一工作负载是第一工作负载类型;以及接收要代表与所述服务提供商网络相关联的所述用户账户托管所述第二工作负载的第二请求,其中所述第二工作负载是第二工作负载类型。
79:根据条款74、75、76、77或78中一项所述的系统,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:至少部分地使用在另一硬件装置上供应的第三虚拟计算资源来托管所述第二工作负载;以及由在所述第三虚拟计算资源上操作的代理收集所述第二利用数据。
80:根据条款74、75、76、77、78或79中一项所述的系统,其中所述硬件装置包括由所述第一工作负载和所述第二工作负载利用的多种资源类型,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:接收指示关于所述多种资源类型中的将被优先考虑以供由所述第二虚拟计算资源使用来托管所述第二工作负载的资源类型的用户偏好的资源可用性偏向;从所述第一利用数据中标识所述第一工作负载利用不到所述硬件装置的资源类型的阈值量;以及至少部分地基于所述资源可用性偏向和所述第一工作负载利用不到所述资源类型的阈值量来选择所述硬件装置以使用所述第二虚拟计算资源来托管所述第二工作负载。
81:一种系统,所述系统包括:由服务提供商管理的服务提供商网络的计算资源网络,所述计算资源网络包括被配置为支持至少以下项的计算资源:被配置为利用所述计算资源的类型的第一组合来支持工作负载的第一虚拟计算资源类型;和被配置为利用所述计算资源的类型的第二组合来支持工作负载的第二虚拟计算资源类型;以及与所述服务提供商网络相关联的优化服务,所述优化服务包括:一个或多个处理器;以及一个或多个计算机可读介质,所述一个或多个计算机可读介质存储计算机可执行指令,当由所述一个或多个处理器执行时,所述计算机可执行指令使所述一个或多个处理器:经由与所述服务提供商网络相关联的用户账户接收要代表所述用户账户使用所述计算资源来支持工作负载的第一请求;经由所述用户账户接收对被优化以支持所述工作负载的虚拟计算资源类型的推荐的第二请求;给所述用户账户提供对被配置为接收描述所述工作负载的输入数据的一个或多个用户界面的访问;经由所述一个或多个用户界面接收指示与支持所述工作负载相关联的资源利用特性的输入数据;基于所述资源利用特性,将所述工作负载映射到来自一组预定义工作负载类别的工作负载类别,其中所述工作负载类别表示由所述计算资源的类型的第三组合支持的工作负载;基于所述计算资源的类型的第三组合与所述计算资源的类型的第一组合相对应来确定所述第一虚拟计算资源类型被优化以支持所述工作负载;生成包括所述第一虚拟计算资源类型被优化以支持由所述用户账户请求的所述工作负载的指示的推荐数据;以及给所述用户账户提供对所述推荐数据的访问。
82:根据条款81所述的系统,其中所述推荐数据还包括:指示所述第一虚拟计算资源类型支持由所述用户账户请求的所述工作负载的合适性的量度的合适性数据;以及包括有关用于支持所述工作负载的所述第一虚拟计算资源类型的合适性的文本说明的文本数据。
83:根据条款81或82中一项所述的系统,其中:所述计算资源的类型包括中央处理单元(CPU)资源类型、存储器资源类型、存储装置资源类型或网络可用性资源类型中的至少两种;由所述第一虚拟计算资源类型利用的所述计算资源的类型的第一组合包括:所述计算资源的类型中的第一类型的第一量;和所述计算资源的类型中的第二类型的第二量;并且由所述第二虚拟计算资源类型利用的所述计算资源的类型的第二组合包括:所述计算资源的类型中的第一类型的第三量;和所述计算资源的类型中的第二类型的第四量。
84:根据条款81、82或83中一项所述的系统,其中所述输入数据包括第一输入数据,所述优化服务包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:从所述用户账户接收指示对用于支持所述工作负载的所述第一虚拟计算资源类型的选择的第二输入数据;以及使得在所述计算资源网络中供应与所述第一虚拟计算资源类型相对应的虚拟计算资源以代表所述用户账户支持所述工作负载。
85:一种计算机实现的方法,所述方法包括:经由与服务提供商网络相关联的用户账户接收要使用由与所述服务提供商网络相关联的计算资源支持的至少一个虚拟计算资源来启动工作负载的请求,其中所述计算资源支持至少:被分配了所述计算资源的第一量的第一虚拟计算资源类型;和被分配了所述计算资源的第二量的第二虚拟计算资源类型;确定指示所述工作负载在执行期间的资源利用特性的利用数据,所述资源利用特性指示由所述工作负载消耗的所述计算资源的量和由所述工作负载消耗的所述计算资源的类型;至少部分地基于所述资源利用特性,确定所述工作负载对应于一组预定义工作负载类别中的工作负载类别;确定所述工作负载类别与消耗与所述计算资源的第一量相对应的所述计算资源的第三量的工作负载相关联;以及向所述用户账户提供包括所述第一虚拟计算资源类型用于启动或执行所述工作负载中的至少一个的推荐的推荐数据。
86:根据条款85所述的计算机实现的方法,还包括:向所述用户账户提供对被配置为接收描述所述工作负载的输入数据的一个或多个用户界面的访问;以及经由所述一个或多个用户界面并且经由所述用户账户接收包括所述利用数据的输入数据。
87:根据条款85或86中一项所述的计算机实现的方法,其中所述计算资源包括第一计算资源,还包括:从所述用户账户接收所述工作负载正在被从由包括在远离所述服务提供商网络的计算资源网络中的第二计算资源支持迁移的指示;以及给所述用户账户提供被配置为接收与通过所述工作负载对所述第二计算资源的消耗相关联的资源消耗数据的接口,其中接收所述利用数据包括经由所述接口接收所述资源消耗数据。
88:根据条款85、86或87中一项所述的计算机实现的方法,还包括以下步骤中的至少一个:向所述用户账户提供指示要用于启动所述工作负载的所述第一虚拟计算资源类型的合适性的量度的合适性数据;或者向所述用户账户提供包括有关要用于启动所述工作负载的所述第一虚拟计算资源类型的合适性的文本说明的文本数据。
89:根据条款85、86、87或88中一项所述的计算机实现的方法,还包括:从所述用户账户接收指示对要用于启动或执行所述工作负载中的至少一个的所述第一虚拟计算资源类型的选择的输入数据;以及使所述工作负载至少部分地使用与由所述计算资源支持的所述第一虚拟计算资源类型相对应的虚拟计算资源来启动或执行中的至少一个。
90:根据条款85、86、87、88或89中一项所述的计算机实现的方法,还包括:接收指示代表其他用户账户由所述计算资源支持的一组工作负载类型的历史资源利用特性的历史利用数据;定义与一组工作负载类别相对应的标记聚类;至少部分基于所述历史资源利用特性,将所述工作负载类型聚类到所述标记聚类中;以及利用所述一组工作负载类别来定义所述标记聚类以生成所述一组预定义工作负载类别。
91:根据条款85、86、87、88、89或90中一项所述的计算机实现的方法,其中所述计算资源包括第一类型的计算资源和第二类型的计算资源,还包括:从所述用户账户接收指示与通过所述工作负载对所述第一类型的计算资源的消耗相关联的优化目标的输入数据;以及确定为所述第一虚拟计算资源类型分配的所述计算资源的第一量满足所述优化目标。
92:根据条款85、86、87、88、89、90或91中一项所述的计算机实现的方法,还包括:至少部分地基于由所述工作负载消耗的所述计算资源的量,确定要利用来启动或执行所述工作负载中的至少一个的所述第一虚拟计算资源类型的虚拟计算资源的数量;以及给所述用户账户提供指示要利用来启动或执行所述工作负载中的至少一个的所述第一虚拟计算资源类型的虚拟计算资源的数量的附加推荐数据。
93:根据条款85、86、87、88、89、90、91或92中一项所述的计算机实现的方法,其中所述计算资源的第一量和所述计算资源的第二量对应于以下项中的至少一个:中央处理器(CPU)资源;存储器资源;存储装置资源;或网络可用性资源。
94:一种系统,所述系统包括:一个或多个处理器;以及一个或多个计算机可读介质,所述一个或多个计算机可读介质存储计算机可执行指令,当由所述一个或多个处理器执行时,所述计算机可执行指令使所述一个或多个处理器:经由服务提供商网络的用户账户接收要使用由与所述服务提供商网络相关联的计算资源支持的至少一个虚拟计算资源来启动工作负载的请求,其中所述计算资源支持至少:被分配了所述计算资源的第一量的第一虚拟计算资源类型;和被分配了所述计算资源的第二量的第二虚拟计算资源类型;给所述用户账户提供对被配置为接收与所述工作负载相关联的输入数据的一个或多个用户界面的访问;至少部分地经由所述一个或多个用户界面接收指示与所述工作负载相关联的资源利用特性的输入数据;至少部分地基于所述资源利用特性确定所述第一虚拟计算资源类型被优化为启动或执行所述工作负载中的至少一个;以及向所述用户账户提供包括所述第一虚拟计算资源类型用于启动或执行所述工作负载中的至少一个的推荐的推荐数据。
95:根据条款94所述的系统,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器进行以下步骤中的至少一个:向所述用户账户提供指示要用于启动或执行所述工作负载中的至少一个的所述第一虚拟计算资源类型的合适性的量度的合适性数据;或者向所述用户账户提供包括有关要用于启动或执行所述工作负载中的至少一个的所述第一虚拟计算资源类型的合适性的文本说明的文本数据。
96:根据条款94或95中一项所述的系统,其中:所述一个或多个用户界面包括与一组预定义答案相关联的输入字段;并且接收所述输入数据包括接收对所述一组预定义答案中的预定义答案的选择以填充所述输入字段,所述预定义答案定义所述资源利用的至少一部分。
97:根据条款94、95或96中一项所述的系统,其中所述计算资源包括第一类型的计算资源和第二类型的计算资源,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,使所述一个或多个处理器:经由所述用户账户接收指示与通过所述工作负载对所述第一类型的计算资源的消耗相关联的优化目标的输入数据;以及确定为所述第一虚拟计算资源类型分配的所述计算资源的第一量满足所述优化目标。
98:根据条款94、95、96或97中一项所述的系统,其中所述资源利用特性指示由所述工作负载消耗的所述计算资源的量,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,使所述一个或多个处理器:至少部分地基于由所述工作负载消耗的所述计算资源的量,确定要利用来启动或执行所述工作负载中的至少一个的所述第一虚拟计算资源类型的虚拟计算资源的数量;以及给所述用户账户提供指示要利用来启动或执行所述工作负载中的至少一个的所述第一虚拟计算资源类型的虚拟计算资源的数量的附加推荐数据。
99:根据条款94、95、96、97或98中一项所述的系统,其中确定所述第一虚拟计算资源类型被优化以启动所述工作负载包括:至少部分地基于所述资源利用特性,确定所述工作负载对应于一组预定义工作负载类别中的工作负载类别;以及确定所述工作负载类别与消耗至少部分地对应于所述计算资源的第一量的所述计算资源的第三量的工作负载相关联;以及
100:根据条款94、95、96、97、98或99中一项所述的系统,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:接收指示代表其他用户账户由所述计算资源支持的一组工作负载类型的历史资源利用特性的历史利用数据;定义与一组工作负载类别相对应的标记聚类;至少部分基于所述历史资源利用特性,将所述工作负载类型聚类到所述标记聚类中;以及利用所述一组工作负载类别来定义所述标记聚类以生成所述一组预定义工作负载类别。
Claims (15)
1.一种计算机实现的方法,所述方法包括:
代表用户账户至少部分地使用在服务提供商网络的第一计算资源上供应的第一虚拟计算资源来托管工作负载,其中所述第一虚拟计算资源是被分配了所述第一计算资源以供利用的第一虚拟计算资源类型;
确定所述工作负载从利用所述第一计算资源的第一量改变为利用所述第一计算资源的第二量;
至少部分地基于所述第一计算资源的所述第二量,标识与所述第一虚拟计算资源类型比被更优化以托管所述工作负载的第二虚拟计算资源类型,其中所述第二虚拟计算资源类型被分配了第二计算资源以供利用;以及
向所述用户账户提供包括要将所述工作负载从由所述第一虚拟计算资源托管迁移到由为所述第二虚拟计算资源类型的第二虚拟计算资源托管的推荐的推荐数据。
2.根据权利要求1所述的计算机实现的方法,还包括:
从所述用户账户接收对所述工作负载做出了修改的指示;以及
至少部分地响应于接收到对所述工作负载做出了所述修改的所述指示,收集指示所述第一计算资源的第二量的资源利用度量。
3.根据权利要求1或2中一项所述的计算机实现的方法,还包括:
确定所述计算资源的所述第一量与所述计算资源的所述第二量之间的差大于阈值差,
其中至少部分地基于所述差大于所述阈值差来执行标识所述第二虚拟计算资源类型。
4.根据权利要求1、2或3中任一项所述的计算机实现的方法,还包括:
接收指示来自所述用户账户的要将所述工作负载从由所述第一虚拟计算资源托管迁移到由所述第二虚拟计算资源托管的请求的输入数据;以及
代表所述用户账户迁移所述工作负载以由所述第二虚拟计算资源托管。
5.根据权利要求1、2、3或4中任一项所述的计算机实现的方法,还包括:
在与所述服务提供商网络相关联的第三计算资源上供应测试虚拟计算资源,所述测试虚拟计算资源是所述第二虚拟计算资源类型;
将测试工作负载部署为由所述测试虚拟计算资源托管,其中所述测试工作负载利用所述第三计算资源的所述第二量;
接收指示所述测试工作负载当被托管在所述测试虚拟计算资源上时的性能的健康状态度量;以及
代表所述用户账户至少部分地基于所述健康状态度量来迁移所述工作负载以由所述第二虚拟计算资源托管。
6.根据权利要求1、2、3、4或5中任一项所述的计算机实现的方法,还包括:
在第一时间从所述第一虚拟计算资源收集指示所述第一计算资源的所述第一量的第一利用值;
确定从所述第一时间起已经过一定时间段,其中所述时间段与所述用户账户修改所述工作负载的频率相关联;以及
在第二时间从所述第一虚拟计算资源收集指示所述第一计算资源的所述第二量的第二利用值。
7.根据权利要求1、2、3、4、5或6中任一项所述的计算机实现的方法,还包括:
从所述用户账户接收要提供有关所述工作负载的迁移的所述推荐的请求;以及
至少部分地响应于接收到所述请求,收集指示所述第一计算资源的第二量的资源利用度量。
8.根据权利要求1、2、3、4、5、6或7中任一项所述的计算机实现的方法,还包括向所述用户账户提供以下项中的至少一种:
指示用于托管所述工作负载的所述第二虚拟计算资源类型的合适性的量度的合适性数据;或
包括有关用于托管所述工作负载的所述第二虚拟计算资源类型的合适性的文本说明的文本数据。
9.根据权利要求1、2、3、4、5、6、7或8中任一项所述的计算机实现的方法,其中:
所述第一虚拟计算资源被分配了包括在所述第一计算资源中的中央处理器(CPU)资源的第一量;
所述第二虚拟计算资源被分配了包括在所述第二计算资源中的CPU资源的第二量,所述CPU资源的第二量大于所述CPU资源的第一量;以及
确定所述工作负载从利用所述第一计算资源的所述第一量改变为利用所述第一计算资源的所述第二量包括确定所述工作负载正在利用附加CPU资源。
10.一种系统,所述系统包括:
一个或多个处理器;以及
一个或多个计算机可读介质,所述一个或多个计算机可读介质存储计算机可执行指令,当由所述一个或多个处理器执行时,所述计算机可执行指令使所述一个或多个处理器:
代表用户账户至少部分地使用在服务提供商网络的第一计算资源上供应的第一虚拟计算资源来托管工作负载,其中所述第一虚拟计算资源是被分配了所述第一计算资源以供利用的第一虚拟计算资源类型;
标识已提供以用于代表与所述服务提供商网络相关联的用户账户托管工作负载的第二虚拟计算资源类型,其中所述第二虚拟计算资源类型被分配了第二计算资源以供利用;
接收指示通过所述工作负载对所述第一计算资源的利用的资源利用特性;
基于所述资源利用特性,确定所述第二虚拟计算资源类型与所述第一虚拟计算资源类型比被更优化以托管所述工作负载;以及
给所述用户账户提供包括要将所述工作负载从由所述第一虚拟计算资源托管迁移到由为所述第二虚拟计算资源类型的第二虚拟计算资源托管的推荐的推荐数据。
11.根据权利要求10所述的系统,所述系统包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:
在第三计算资源上供应模拟虚拟计算资源,其中所述模拟虚拟计算资源是所述第二虚拟计算资源类型;
使模拟程序在所述模拟虚拟计算资源上执行,使得所述模拟程序根据与所述工作负载相关联的所述资源利用特性来利用所述模拟虚拟计算资源的第三计算资源;以及
从所述模拟程序接收指示在所述模拟虚拟计算资源上执行的所述模拟程序的性能的输出数据,
其中确定所述第二虚拟计算资源类型与所述第一虚拟计算资源类型比被更优化以托管所述工作负载至少部分地基于所述输出数据。
12.根据权利要求10或11中一项所述的系统,所述系统包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:
接收指示来自所述用户账户的要将所述工作负载从由所述第一虚拟计算资源托管迁移到由所述第二虚拟计算资源托管的请求的输入数据;以及
代表所述用户账户迁移所述工作负载以由所述第二虚拟计算资源支持。
13.根据权利要求10、11或12中任一项所述的系统,其中所述推荐数据还包括以下项中的至少一种:
指示用于托管所述工作负载的所述第二虚拟计算资源类型的合适性的量度的合适性数据;或
包括有关用于托管所述工作负载的所述第二虚拟计算资源类型的合适性的文本说明的文本数据。
14.根据权利要求10、11、12或13中任一项所述的系统,包括另外的计算机可执行指令,当由所述一个或多个处理器执行时,所述另外的计算机可执行指令使所述一个或多个处理器:
在与所述服务提供商网络相关联的第三计算资源上供应测试虚拟计算资源,所述测试虚拟计算资源是所述第二虚拟计算资源类型;
将测试工作负载部署为由所述测试虚拟计算资源托管,其中所述测试工作负载利用所述第三计算资源的第二量;
接收指示所述测试工作负载当被托管在所述测试虚拟计算资源上时的性能的健康状态度量;以及
代表所述用户账户至少部分地基于所述健康状态度量来迁移所述工作负载以由所述第二虚拟计算资源托管。
15.根据权利要求10、11、12、13或14中任一项所述的系统,其中:
所述第二虚拟计算资源类型被优化以支持利用特定计算资源类型的工作负载;
所述特定计算资源类型包括中央处理单元(CPU)资源类型、存储器资源类型、存储装置资源类型、或网络可用性资源类型中的至少一种;以及
所述资源利用特性指示所述工作负载利用为所述特定计算资源类型的计算资源。
Applications Claiming Priority (11)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/367,862 | 2019-03-28 | ||
US16/368,072 | 2019-03-28 | ||
US16/367,862 US11385920B2 (en) | 2019-03-28 | 2019-03-28 | Compute platform optimization over the life of a workload in a distributed computing environment |
US16/367,801 | 2019-03-28 | ||
US16/367,914 | 2019-03-28 | ||
US16/367,768 US11360795B2 (en) | 2019-03-28 | 2019-03-28 | Determining configuration parameters to provide recommendations for optimizing workloads |
US16/367,914 US11128696B2 (en) | 2019-03-28 | 2019-03-28 | Compute platform optimization across heterogeneous hardware in a distributed computing environment |
US16/368,072 US11068312B2 (en) | 2019-03-28 | 2019-03-28 | Optimizing hardware platform utilization for heterogeneous workloads in a distributed computing environment |
US16/367,801 US11372663B2 (en) | 2019-03-28 | 2019-03-28 | Compute platform recommendations for new workloads in a distributed computing environment |
US16/367,768 | 2019-03-28 | ||
PCT/US2020/025258 WO2020198600A1 (en) | 2019-03-28 | 2020-03-27 | Compute platform optimization over the life of a workload in a distributed computing environment |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114207589A true CN114207589A (zh) | 2022-03-18 |
Family
ID=70296141
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080036150.1A Pending CN114207589A (zh) | 2019-03-28 | 2020-03-27 | 分布式计算环境中的工作负载的寿命期间的计算平台优化 |
Country Status (3)
Country | Link |
---|---|
EP (1) | EP3948537B1 (zh) |
CN (1) | CN114207589A (zh) |
WO (2) | WO2020198610A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP4030291A1 (en) * | 2021-01-19 | 2022-07-20 | Tata Consultancy Services Limited | Method and system for generating resource allocation recommendations |
US20230259383A1 (en) * | 2022-02-16 | 2023-08-17 | Google Llc | User-Interface-Based Fleetwide Agent Installation With Intelligent Nudges |
WO2023225990A1 (en) * | 2022-05-27 | 2023-11-30 | Intel Corporation | Optimizing dirty page copying for a workload received during live migration that makes use of hardware accelerator virtualization |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8935500B1 (en) * | 2009-09-24 | 2015-01-13 | Vmware, Inc. | Distributed storage resource scheduler and load balancer |
SG11201508971UA (en) * | 2013-05-08 | 2015-11-27 | Amazon Tech Inc | User-influenced placement of virtual machine instances |
US10255188B2 (en) * | 2014-03-17 | 2019-04-09 | Vmware, Inc. | Migrating workloads across host computing systems based on cache content usage characteristics |
US10057122B1 (en) * | 2015-10-22 | 2018-08-21 | VCE IP Holding Company LLC | Methods, systems, and computer readable mediums for system configuration optimization |
CA3004888C (en) * | 2015-11-11 | 2020-09-08 | Amazon Technologies, Inc. | Scaling for virtualized graphics processing |
-
2020
- 2020-03-27 CN CN202080036150.1A patent/CN114207589A/zh active Pending
- 2020-03-27 WO PCT/US2020/025287 patent/WO2020198610A1/en active Application Filing
- 2020-03-27 WO PCT/US2020/025258 patent/WO2020198600A1/en unknown
- 2020-03-27 EP EP20720286.2A patent/EP3948537B1/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2020198600A1 (en) | 2020-10-01 |
EP3948537B1 (en) | 2024-05-29 |
EP3948537A1 (en) | 2022-02-09 |
WO2020198610A1 (en) | 2020-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220291941A1 (en) | Compute Platform Recommendations for New Workloads in a Distributed Computing Environment | |
US11128696B2 (en) | Compute platform optimization across heterogeneous hardware in a distributed computing environment | |
US11360795B2 (en) | Determining configuration parameters to provide recommendations for optimizing workloads | |
US20220413891A1 (en) | Compute Platform Optimization Over the Life of a Workload in a Distributed Computing Environment | |
US11068312B2 (en) | Optimizing hardware platform utilization for heterogeneous workloads in a distributed computing environment | |
US11138049B1 (en) | Generating narratives for optimized compute platforms | |
US11307885B1 (en) | Identifying optimized computing resources for running workloads | |
US10474488B2 (en) | Configuration of a cluster of hosts in virtualized computing environments | |
US10970123B1 (en) | Determining suitability of computing resources for workloads | |
US10007560B2 (en) | Capacity and load analysis using storage attributes | |
US11397658B1 (en) | Testing recommended compute platforms for a workload | |
US9389900B2 (en) | Method and system for supporting a change in state within a cluster of host computers that run virtual machines | |
US11924117B2 (en) | Automated local scaling of compute instances | |
US20060235664A1 (en) | Model-based capacity planning | |
EP3948537B1 (en) | Compute platform optimization over the life of a workload in a distributed computing environment | |
US11755385B2 (en) | Cross-cluster load balancer | |
US11194688B1 (en) | Application architecture optimization and visualization | |
WO2016040699A1 (en) | Computing instance launch time | |
US20150309826A1 (en) | Method and system for generating remediation options within a cluster of host computers that run virtual machines | |
US11409453B2 (en) | Storage capacity forecasting for storage systems in an active tier of a storage environment | |
US11886926B1 (en) | Migrating workloads between computing platforms according to resource utilization | |
Maenhaut et al. | Efficient resource management in the cloud: From simulation to experimental validation using a low‐cost Raspberry Pi testbed | |
US20220374702A1 (en) | Methods and systems for predicting behavior of distributed applications | |
US11941454B1 (en) | Dynamically modifying block-storage volumes using workload classifications | |
US20220179558A1 (en) | Systems and methods for selecting devices for backup and restore operations for virtual machines |
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 |