CN113544647A - 云计算***中使用虚拟机系列建模的容量管理 - Google Patents

云计算***中使用虚拟机系列建模的容量管理 Download PDF

Info

Publication number
CN113544647A
CN113544647A CN202080019430.1A CN202080019430A CN113544647A CN 113544647 A CN113544647 A CN 113544647A CN 202080019430 A CN202080019430 A CN 202080019430A CN 113544647 A CN113544647 A CN 113544647A
Authority
CN
China
Prior art keywords
capacity
predicted
system unit
available
demand
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
Application number
CN202080019430.1A
Other languages
English (en)
Inventor
S·阿加瓦尔
M·R·乔希
V·R·卡纳塔基
N·克沙里
G·纳塔拉简
Y·普洛希特
S·拉马努简
K·苏布兰马尼安
A·T·特里西
周珊丹
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN113544647A publication Critical patent/CN113544647A/zh
Pending legal-status Critical Current

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/5072Grid computing
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3024Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3495Performance evaluation by tracing or monitoring for systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5019Workload prediction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Supply And Distribution Of Alternating Current (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种用于在没有过度供应的情况下最小化云计算***中的分配失败的方法,可以包括确定在即将到来的时间段期间针对所述云计算***的***单元中的虚拟机序列的预测的供应。预测的供应可以基于针对***单元中的虚拟机序列的共享可用当前容量和共享可用未来添加的容量。该方法还包括预测在即将到来的时间段期间针对***单元中的虚拟机系列的可用容量。预测的可用容量可以至少部分地基于在即将到来的时间段期间针对***单元中的虚拟机系列的预测的需求以及预测的供应。该方法还可以包括响应于确定在即将到来的时间段期间预测的需求超过预测的供应来采取至少一个缓解动作。

Description

云计算***中使用虚拟机系列建模的容量管理
背景技术
云计算是通过互联网递送计算服务(例如服务器、存储装置、数据库、联网、软件、分析)。广义上讲,云计算***包括两个部分,即前端和后端,它们通过互联网相互通信。前端包括用户通过客户端设备遇到的界面。后端包括递送云计算服务的资源,包括处理器、存储器、存储装置和联网硬件。
云计算***的后端通常包括多个数据中心,其可以位于不同的地理区域中。每个数据中心通常包括大量(例如数千)服务器,其可以被组织到不同的集群中。每个服务器都可以用于运行一个或多个虚拟机。在这种情况下,术语“服务器”指的是物理计算机***,而术语“虚拟机”(VM)指的是服务器上计算机***的仿真。换言之,VM是在服务器上运行的程序,它作用为类似于虚拟计算机。与物理计算机一样,VM运行操作***和一个或多个应用。
云计算***可能能够提供与不同的VM系列对应的VM。如本文中所使用的,术语“VM系列”指的是一个或多个VM大小的集合。术语“VM大小”指的是计算资源的一定分配。例如,在一些情况下,VM大小可以包括以下项的组合:(i)中央处理单元的一些部分、(ii)一定数量的存储器和(iii)一定数量的存储装置。
在云计算***中,对计算资源的需求有时可能超过可用的供应。这可能会导致分配失败,其中用户请求计算资源,但是***无法提供它们。缓解分配失败的一种方式是为云计算***购买附加的计算资源。然而,这可能导致过度供应,其中有太多的计算资源可用,从而产生大量的过剩容量。过度供应也是不合需要的,因为它增加了提供云计算服务的成本。因此,云计算***的管理员面临的艰难任务是尝试在没有过度供应的情况下确保有足够的计算资源来满足用户需求。
发明内容
公开了一种用于在没有过度供应的情况下最小化云计算***中的分配失败的方法。该方法包括确定在即将到来的时间段期间,针对云计算***的***单元中的VM系列的预测的供应。如本文中所使用的,术语“***单元”指的是云计算***的部分,为了确定用于分配与特定VM系列对应的VM的容量,该部分被视为单元。预测的供应可以至少部分地基于针对***单元中的VM系列的共享可用当前容量和针对***单元中的VM系列的共享可用未来添加的容量。该方法还包括预测在即将到来的时间段期间针对***单元中的VM系列的可用容量。预测的可用容量可以至少部分地基于在即将到来的时间段期间针对***单元中的VM系列的预测的需求和在即将到来的时间段期间针对***单元中的VM系列的预测的供应。该方法还包括响应于确定在即将到来的时间段期间预测的需求超过预测的供应,来采取至少一个缓解动作。
确定针对***单元中的VM系列的共享可用当前容量可以至少部分地基于针对***单元的当前可用容量和针对***单元中的VM系列的需求增长比率。确定针对***单元中的VM系列的共享可用未来添加的容量可以至少部分地基于针对***单元的未来添加的容量和针对***单元中的VM系列的需求增长比率。
在一些实施例中,响应于确定在即将到来的时间段期间预测的需求超过预测的供应,可以自动采取至少一个缓解动作。
方法还附加地包括确定关于在即将到来的时间段期间针对***单元中的VM系列的可用容量的多个预测。关于可用容量的多个预测可以基于多个不同的需求预测。
在一些实施例中,方法还附加地包括监测预测的可用容量,并且当预测的可用容量从指示第一类型的预测变为指示第二类型的预测时,提供警报。方法还可以包括执行根本原因分析,以确定预测的可用容量为什么从指示第一类型的预测变为指示第二类型的预测,并且提供根本原因分析报告,该根本原因分析报告描述在根本原因分析期间所确定的内容。
方法还附加地包括监测预测的需求、当前可用容量和未来添加的容量,并且当预测的需求、当前可用容量和未来添加的容量的值在预定时间段内变化了超过预定量时,提供警报。
在一些实施例中,方法还可以包括响应于检测到异常而执行根本原因分析,并且提供根本原因分析报告,该根本原因分析报告描述根本原因分析期间所确定的内容。
提供本发明内容是为了以简化的形式介绍概念的选集,这些概念还将在下面的具体实施方式中进行描述。本发明内容既不旨在标识所要求的主题的关键特征或基本特征,也不旨在用于帮助确定所要求的主题的范围。
附加的特征和优点将在下面的描述中进行说明。本公开的特征和优点可以通过所附权利要求中特别指出的***和方法来实现和获得。本公开的特征将从下面的描述和所附权利要求中变得更完全显而易见,或可以通过实践下文所述的所公开的主题来学习。
附图说明
为了描述可以获得本公开的上述和其他特征的方式,更具体地描述将通过参照其在附图中所示的具体实施例来提供。为了更好地理解,相同的元件在各种附图中都用相同的参考数字指定。理解,图描绘了一些示例实施例,实施例将通过使用附图以附加的特异性和细节进行描述和解释,在附图中:
图1图示了根据本公开的包括容量建模服务的云计算***的一些方面。
图2图示了示例,其示出了容量建模服务如何可以使用共享的可用当前容量和共享的可用未来添加的容量来确定预测的可用容量。
图3A和图3B图示了示例,其示出了如何可以为特定***单元中的特定VM系列计算需求增长比率。
图4图示了容量建模服务,其被配置为针对相同的***单元中的相同的VM系列生成多个预测。
图5图示了示例,其示出了在特定时间段期间特定***单元中的特定VM系列的预测的需求和预测的供应的比较。
图6图示了将预测的需求和预测的供应进行比较的另一示例,其中未来添加的容量不为零。
图7示出了时间系列,其表示在特定时间段期间特定***单元中的特定VM系列的预测的可用容量。
图8图示了容量管理引擎,其被配置为监测预测的可用容量并且提供相关警报。
图9图示了在不过度供应的情况下最小化云计算***中的分配失败的方法。
图10图示了可以被包括在计算机***中的某些组件,其可以用于实施本文中所描述的各种设备、组件和***。
具体实施方式
本公开通常涉及确保云计算***中有足够的计算资源来满足用户需求,而在同时防止会导致大量未使用的容量的过度供应。为了在这些相互竞争的目标之间实现适当的平衡,本公开描述了一种智能容量模型,来预测在即将到来的时间段期间特定***单元的虚拟机(VM)系列的可用容量。一般来说,预测的可用容量表示在即将到来的时间段期间针对***单元中的VM系列的预测的需求和在即将到来的时间段期间针对***单元中的VM系列的预测的供应之间的差。如果预测到预测的需求在即将到来的时间段期间的任何点处都超过预测的供应,则可以执行一个或多个缓解动作,诸如购买附加的计算资源。
预测的供应可以基于当前可用容量和未来添加的容量两者。在这种情况下,术语“当前可用容量”指的是当前可用于分配特定***单元内的特定VM系列的VM的计算资源。术语“未来添加的容量”指的是预计在确定预测的可用容量的时间段期间在某点处变得可用并且可以用于分配特定***单元内的特定VM系列的VM的附加计算资源。
有利地,预测的供应还可以考虑以下事实,即云计算***内的服务器关于VM系列是可替代的。换言之,相同的服务器可以用于托管不同的VM系列。当确定针对特定VM系列的预测的可用容量时,鉴于当前可用容量和未来添加的容量中的一些容量可能会用于分配与其他系列对应的VM这一事实,可以确定***单元内有多少当前可用容量和未来添加的容量会被认为可用于分配与该VM系列对应的VM。
图1图示了在其中可以实施本公开的方面的云计算***100的一些方面。云计算***100经由互联网向多个区域102提供计算资源。每个区域102都包括多个可用性区105。该可用性区105是区域102内的不同的物理位置。每个可用性区105都包括一个或多个数据中心104。每个数据中心104都包括多个服务器106,其可以被逻辑地组织成多个集群108。每个服务器106都可以被配置为托管多个VM 110。区域102内的可用性区105的物理分隔保护了应用和数据不受数据中心104故障的影响。
当用户请求分配VM 110时,用户可能能够请求VM 110应当所位于的特定区域102。这是有利的,因为VM 110的位置对用户可能是重要的。例如,用户可能希望VM 110被定位在用户本身(和/或他们的客户)所在的位置附近,以便在使用VM 110或以其他方式与VM 110交互时最小化延时。
如上所述,云计算***100可能能够提供与不同的VM系列对应的VM 110。当用户请求分配VM 110时,除了请求VM 110应当所位于的特定***单元(例如区域102)外,用户还可以指定特定VM系列来分配VM 110。
除了数据中心104内的服务器106外,还有若干控制器和其他组件,负责处理云计算***100的运行的各个方面(例如分配VM 110、执行软件更新、跟踪用于记账目的的使用)。在所描绘的云计算***100中,这些组件中的一个组件被表示为容量管理引擎112。
容量管理引擎112包括容量建模服务114,其被配置为预测针对云计算***100的各个***单元中的可用VM系列的可用容量116。如上所指示的,术语“***单元”指的是云计算***100的部分,该部分被视为为了确定用于分配特定VM系列的VM 110的容量的单元。例如,在一些实施例中,***单元可以是区域102和/或可用性区105。换言之,关于云计算***100的特定区域102和/或关于特定可用性区105,可以对***容量进行建模和预测。
一般来说,在即将到来的时间段期间针对特定***单元(例如区域102、可用性区105)中的特定VM系列的预测的可用容量116为(a)在即将到来的时间段期间针对特定***单元中的特定VM系列的预测的需求118与(b)在即将到来的时间段期间针对特定***单元中的特定VM系列的预测的供应120之间的差。预测的供应120可以基于当前可用容量122和未来添加的容量124两者。如上所指示的,预测的供应120可以考虑以下事实,即云计算***100内的服务器106可以用于托管与不同的VM系列对应的VM 110。这将在下面进行更详细的讨论。
容量建模服务器114可以与缓解引擎126集成。当预测针对特定***单元中的特定VM系列的预测的需求118超过针对该***单元中的该VM系列的预测的供应120时,可以向缓解引擎126提供该信息,作为响应,缓解引擎126可以采取一个或多个缓解动作。根据本公开,可以采取许多不同类型的缓解动作。例如,可以购买附加的计算资源。缓解动作的另一示例是施行报价限制。换言之,在***单元中,一个或多个VM系列可以暂时中止,至少关于新的订阅,直到该***中的VM系列有足够的容量。一些其他示例包括试图恢复不健康的服务器106,将较低优先级的工作载荷迁移到其他***单元,并且将较低优先级的工作载荷逐出云计算***100。
响应于检测到针对特定***单元中的特定VM系列的预测的需求118超过针对该***单元中的该VM系列的预测的供应120,缓解引擎126可以采取一个或多个缓解动作。在一些实施例中,可以自动采取这种缓解动作。换言之,一旦缓解引擎126检测到预测的需求118超过预测的供应120,缓解引擎126便可以在没有附加人员参与的情况下采取一个或多个缓解动作。备选地,至少一些缓解动作可以由负责确保云计算***100的***单元有足够的容量来满足客户需求的个人来手动地采取(例如至少以最低限度的人力参与)。
如上所指示的,云计算***100内的服务器106关于VM系列是可替代的,以便相同的服务器106可以用于托管与不同的VM系列对应的VM 110。这提出了一个建模挑战,即如何在竞相消耗可用计算资源池的各种VM系列之间分割可用计算资源。
为了应对这一挑战,本公开建议对将被称为“共享可用当前容量”和“共享可用未来添加的容量”的内容进行估计。针对特定***单元中的特定VM系列的共享可用当前容量指示,鉴于***单元内的当前可用容量122中的一些容量可能会用于分配与其他VM系列对应的VM 110这一事实,***单元内有多少当前可用容量122会被认为可用于分配与该VM系列对应的VM 110。类似地,针对特定***单元中的特定VM系列的共享可用未来添加的容量指示,鉴于***单元内的未来添加的容量124中的一些容量可能会用于分配与其他VM系列对应的VM 110这一事实,***单元内有多少未来添加的容量124会被认为可用于分配与该VM系列对应的VM 110。
图2图示了示出预测的可用容量216如何可以由容量建模服务214确定的示例,该容量建模服务214对共享可用当前容量2288和共享可用未来添加的容量230进行估计。图2中所示的容量建模服务214是图1所示的***100中的容量建模服务214的一种可能的实现。
为了确定针对特定***单元中的特定VM系列的共享可用当前容量228,可以将针对该***单元中的该VM系列的当前可用容量222乘以针对该***单元中的该VM系列的需求增长比率232。类似地,为了确定针对特定***单元中的特定VM系列的共享可用未来添加的容量230,可以将针对该***单元中的该VM系列的未来添加的容量224乘以针对该***单元中的该VM系列的需求增长比率232。一般来说,针对特定***单元中的特定VM系列的需求增长比率232指示,相对于预计对所有可用VM系列的需求在该***单元中增长得多快,预计对该VM序列的需求在该***单元中增长得有多快。下面将讨论可以如何计算需求增长比率232的一些示例。
通过将共享可用当前容量228和共享可用未来添加的容量230相加,可以确定预测的供应220。然后,通过取预测的需求218与预测的供应220之间的差,可以确定预测的可用容量216。
有几种不同的方式可以表示针对特定VM系列的当前可用容量222和未来添加的容量224。在一些示例中,这些度量可以按照可以分配的虚拟中央处理单元(CPU)的数目来表示。例如,针对特定***单元中的特定VM系列的当前可用容量222可以指示,如果该***单元中的所有当前可用容量222都专门用于分配与该VM系列对应的VM 110,则有多少与该VM系列对应的虚拟CPU可以被分配。类似地,针对特定***单元中的特定VM系列的未来添加的容量224可以指示,如果该***单元中的所有未来添加的容量224都专门用于分配与该VM系列对应的VM 110,则有多少与该VM系列对应的虚拟CPU可以被分配。
在针对特定***单元中的特定VM系列的当前可用容量222是按照可以分配的虚拟CPU的数目表示的实施例中,共享可用当前容量228也可以按照可以分配的虚拟CPU的数目来表示。这是因为共享可用当前容量228可以表示乘以需求增长比率232的当前可用容量222(如上所讨论的)。类似地,在针对特定***单元中的特定VM系列的未来添加的容量224是按照可以分配的虚拟CPU的数目表示的实施例中,共享可用未来添加的容量230也可以按照可以分配的虚拟CPU的数目来表示,因为共享可用未来添加的容量230可以表示乘以需求增长比率232的未来添加的容量224(也如上所讨论的)。
现在讨论一个示例,其示出了可以如何计算共享可用当前容量228和共享可用未来添加的容量230。在该示例中,假设当前可用容量222、共享可用当前容量228、未来添加的容量224和共享可用未来添加的容量230是按照可以分配的虚拟CPU的数目来表示的。还假设在同一***单元中只有两个可用的VM系列VM1和VM2可以共存。换言之,假设特定***单元内的服务器106可以同时托管与VM系列VM1对应的一些VM 110和与VM系列VM2对应的其他VM 110。VM1表示物理CPU、存储器和存储装置的某种组合,而VM2表示物理CPU、存储器和存储装置的另一种不同的组合。当然,在云计算***100内可能有两个以上的VM系列可用,但是为了简单起见,只有两个VM系列将结合本示例进行讨论。
在该示例中,还假设与VM系列VM1对应的VM 110的当前可用容量222由Q1current表示,而与VM系列VM2对应的VM 110的当前可用容量222由Q2current表示。换言之,如果所有的当前可用容量222都用于分配与VM系列VM1对应的VM 110,则可以分配Q1current个与VM系列VM1对应的虚拟CPU。备选地,如果所有的当前可用容量222都用于分配与VM系列VM2对应的VM 110,则可以分配Q2current个与VM系列VM2对应的虚拟CPU。也就是说,然后可以分配Q1current个与VM系列VM1对应的虚拟CPU,或者可以分配Q2current个与VM系列VM2对应的虚拟CPU,但不是两者。
还假设与VM系列VM1对应的VM 110的需求增长比率232由X1表示,而与VM系列VM2对应的VM 110的需求增长比率232由X2表示。根据这些假设,针对与VM系列VM1对应的VM110的共享可用当前容量228可以表示为
Figure BDA0003250611270000091
类似地,针对与VM系列VM2对应的VM 110的共享可用当前容量228可以表示为
Figure BDA0003250611270000092
继续示例,假设与VM系列VM1对应的VM 110的未来添加的容量224由Q1future表示,而与VM系列VM2对应的VM 110的未来添加的容量224由Q2future表示。换言之,如果所有的未来添加的容量224都用于分配与VM系列VM1对应的VM 110,则可以分配Q1future个与VM系列VM1对应的虚拟CPU。备选地,如果所有的未来添加的容量224都用于分配与VM系列VM2对应的VM 110,则可以分配Q2future个与VM系列VM2对应的虚拟CPU。根据这些假设,与VM系列VM1对应的VM 110的共享可用未来添加的容量230可以表示为
Figure BDA0003250611270000101
类似地,与VM系列VM2对应的VM 110的共享可用未来添加的容量230可以表示为
Figure BDA0003250611270000102
在刚才描述的示例中,假设当前可用容量222、共享可用当前容量228、未来添加的容量224和共享可用未来添加的容量230是按照可以分配的虚拟CPU的数目来表示的。在备选实施例中,这些度量反而可以按照可以分配的VM 110的数目来表示。
例如,在一些实施例中,针对特定***单元中的特定VM系列的当前可用容量222可以指示,如果***单元内的所有当前可用容量222都专门用于分配与该VM系列对应的VM110,则有多少与该VM系列对应的VM 110可以被分配。这与按照可以分配的虚拟CPU的数目表示当前可用容量222不同,因为在一些情况下,单个VM可以包括多个虚拟CPU(取决于VM系列)。类似地,特定***单元中的特定VM系列的未来添加的容量224可以指示,如果该***单元中的所有未来添加的容量224都专门用于分配与该VM系列对应的VM 110,则有多少与该VM系列对应的VM 110可以被分配。
在针对特定VM系列的当前可用容量222是按照可以分配的VM 110的数目来表示的实施例中,共享可用当前容量228也可以按照可以分配的VM 110的数目来表示,因为共享可用当前容量228可以简单地表示乘以需求增长比率232的当前可用容量222(如上所讨论的)。类似地,在特定VM系列的未来添加的容量224是按照可以分配的虚拟CPU的数目表示的实施例中,共享可用未来添加的容量230也可以按照可以分配的VM 110的数目来表示,因为共享可用未来添加的容量230可以简单地表示乘以需求增长比率232的未来添加的容量224(也如上所讨论的)。
图3A和图3B图示了示出如何可以针对特定***单元中的特定VM系列计算需求增长比率232的示例。与前面的示例一样,为了简单起见,假设***单元中只有两个VM系列可用,即VM1和VM2。图3A图示了在即将到来的时间段期间VM系列VM1的预测的需求218。图3B图示了在即将到来的时间段期间VM系列VM2的预测的需求218。
在所描绘的示例中,预测的需求218是按照与分配的VM 110对应的虚拟CPU表示的。然而,在备选实施例中,预测的需求218可以按照不同的容量度量来表示,诸如已经被分配的VM 110的数目。
最初参照图3A,在时间t0(在该示例中其表示当前时间点)处,对与VM系列VM1对应的VM 110的需求为10,000vCPU。换言之,对应于与VM系列VM1对应的VM 110的10,000vCPU已经被分配。在时间t1(其表示某个未来时间点)处,对与VM系列VM1对应的VM 110的需求被预测为30,000vCPU。换言之,预测出了在时间t1处,对应于与VM系列VM1对应的VM 110的30,000vCPU已经被分配。因此,对与VM系列VM1对应的VM 110的需求在即将到来的时间t0与时间t1之间的时间段内被预测为增加了20,000vCPU。
现在参照图3B,在时间t0处,对与VM系列VM2对应的VM 110的需求也为10,000vCPU。然而,在时间t1处,对与VM系列VM2对应的VM 110的需求仅被预测为20,000vCPU。因此,对与VM系列VM2对应的VM 110的需求在时间t0与时间t1之间被预测为只增加了10,000vCPU。
如上所指示的,针对特定***单元中的特定VM系列的需求增长比率232指示,相对于预计对所有可用VM系列的需求在该***单元中增长得多快,预计对该VM序列的需求在该***单元中增长得有多快。针对特定***单元中的VM系列i的需求增长比率232可以在数学上被表示为
Figure BDA0003250611270000111
在该表达式中,Growthi表示对VM系列i的需求的预测的增长。表达式
Figure BDA0003250611270000112
表示对***单元中的所有可用VM系列的需求的预测的增长的总和,其中有N个可用VM系列,并且j是指数。因此,关于图3A至图3B中所示的具体示例,针对VM系列VM1的需求增长比率232可以被表示为
Figure BDA0003250611270000121
针对VM系列VM2的需求增长比率232可以被表示为
Figure BDA0003250611270000122
因此,***单元内的当前可用容量222和未来添加的容量224的
Figure BDA0003250611270000123
会被视为可用于分配与VM系列VM1对应的VM110,并且***单元内的当前可用容量222和未来添加的容量224的
Figure BDA0003250611270000124
会被视为可用于分配与VM系列VM2对应的VM 110。
当然,为了清晰起见,图3A至图3B中所示的示例被高度简化。在所描绘的示例中,针对VM系列VM1和VM系列VM2的预测的需求218被示出为在时间t0与时间t1之间线性增加。然而,在实际实践中,针对特定VM系列的预测的需求218可以是大体上非线性的。
本领域技术人员将认识到,各种预报模型都可以用于提供本文中所描述的预测的需求218,并且本公开的范围不应受限于任何特定的预报模型。
现在参照图4,在一些实施例中,可以为相同***单元中的相同VM系列生成多个预测。具体地,图4示出了作为输入提供给容量建模服务414的多个需求预测(具体地,第一需求预测418a、第二需求预测418b和第N需求预测418n)以及关于当前可用容量422和未来添加的容量424的信息。容量建模服务414可以使用多个需求预测418a至418n、当前可用容量422和未来添加的容量424对针对该***单元中的VM系列的可用容量进行多次预测。图4示出了容量建模服务414,其产生与第一需求预测418a对应的第一可用容量预测416a、与第二需求预测418b对应的第二可用容量预测416b和与第N需求预测418n对应的第N可用容量预测416n。
不同的需求预测418a至418n可以对应于关于***单元中的VM系列的预测的需求的不同程度的不确定性。在一些实施例中,不同的需求预测418a至418n可以对应于不同的百分位水平。例如,第一需求预测418a可以表示百分位水平x(意味着有x%的概率实际需求会比预测的少),第二需求预测418b可以表示百分位水平y,并且第N需求预测418n可以表示百分位水平z。
在一些实施例中,不同的需求预测418a至418n可以对应于不同的“如果怎样”场景。例如,在某些情况下,与云计算***100相关联的某些特征或设置可以以特定的方式变化,以影响针对不同VM系列的需求。不同的需求预测418a至418n可以对应于表示这些特征和/或设置的不同集合的不同场景,并且不同的可用容量预测416a至416n可以对应于由不同的需求预测418a至418n表示的不同场景。
在产生多个可用容量预测416a至416n的实施例中,可用容量预测416a至416n中的一个或多个可用容量预测可以表明有足够的容量来满足用户需求(换言之,在考虑的时间段内,预测的供应120超过预测的需求118),而可用容量预测416a至416n中的一个或多个可用容量预测可以表明没有足够的容量来满足用户需求(换言之,在考虑的时间段的至少部分内,预测的需求118超过预测的供应120)。在这种情况下,缓解引擎126可以决定是否采取任何缓解动作。这种决定可以至少部分地基于容量管理引擎112内的一个或多个设置。
例如,假设生成两个需求预测:表示第50百分位水平的第一需求预测和表示第90百分位水平的第二需求预测。可以产生两个可用容量预测:与第50百分位水平需求预测(P50预测)对应的第一可用容量预测和与第90百分位水平需求预测(P90预测)对应的第二可用容量预测。还假设P50预测表明有足够的容量来满足用户需求,但是P90预测表明没有足够的容量来满足用户需求。在这种情况下,至少部分地基于指示是否应当遵循P50预测或P90预测的容量管理引擎112内一个或多个设置,缓解引擎126可以决定是否采取任何缓解动作。如果(多个)设置表明应当遵循P50预测,则缓解引擎126可以不采取任何缓解动作。然而,如果(多个)设置表明应当遵循P90预测,则缓解引擎126可以采取一个或多个缓解动作。
图5是图示了一个示例的图表,该示例示出了在特定时间段期间针对特定***单元中的特定VM系列的预测的需求518和预测的供应520的比较。图表的x轴表示时间,并且图表的y轴表示指示容量的一些度量。例如,容量度量可以是可以为特定VM系列分配的虚拟CPU的数目、可以为特定VM系列分配的VM 110的数目等。
在该示例中,假设未来添加的容量224为零。换言之,在该示例中,在用于确定预测的可用容量116的时间段期间的任何点处,预计没有附加的计算资源变得可用。因此,预测的供应520在该时间段期间不会变化,并且其等于共享可用当前容量228。图表中所示的其他线540表示当前可用容量222和未来添加的容量224的总和。因为未来添加的容量224为零,所以该示例中该线540对应于当前可用容量222。换言之,该线540(仅为了说明的目的而被示出)表示原始(非共享)容量,并且它可以用于计算共享可用当前容量228。
在时间t0与时间t1之间,预测的供应520超过预测的需求518。因此,预测在时间t0与时间t1之间将有足够的容量来处理用户需求。然而,在时间t1之后,预测的需求518超过预测的供应520,因此预测在时间t1之后将不会有足够的容量来处理用户需求。因此,在时间t1(预测的需求518开始超过预测的供应520的点)之前采取一个或多个缓解动作可能是有益的,这样就不会发生分配失败。
如果预测的可用容量116被表示为预测的供应520与预测的需求518之间的差,则在时间t0与时间t1之间,预测的可用容量116会被表示为正值。然而,在时间t1之后,预测的可用容量116会被表示为负值。
图6是图示了另一示例的图表,该示例示出了在特定时间段期间针对特定***单元中的特定VM系列的预测的需求618与预测的供应620的比较。在该示例中,在确定预测的可用容量116的时间段内的两个单独的时刻(时间t1和时间t3),将附加计算资源添加到***单元。因此,未来添加的容量224不为零。这反映在图表中所示的其他线640中,该线表示当前可用容量222和未来添加的容量224的总和。换言之,该线640可以被视为表示***单元中的总容量。当在时间t1与时间t3之间将附加的计算资源添加到***单元时,该线640的值会增加。
计算资源的添加会导致由线640表示的总容量和预测的供应620的增加。预测的供应620的增加并不与线640所表示的总容量的增加一样大,因为如上所述,附加计算资源中的一些资源可能用于分配与其他VM系列对应的VM 110。
在时间t0与时间t2之间,预测的供应620超过预测的需求618,因此预测在该时间期间将有足够的容量来处理用户需求。然而,在时间t2之后,预测的需求618增加高于预测的供应620,因此预测在时间t1与时间t3之间将不会有足够的容量来处理用户需求。然而,由于在时间t3处添加附加的计算资源,在时间t3与时间t4之间,预测的供应620再次超过预测的需求618。然而,在时间t4之后,预测的需求618再次超过预测的供应620。
如从图6中所示的图表中可以推断出的,在一些实施例中,预测的需求618和预测的供应620可以分别被表示为时间序列。因此,预测的可用容量116也可以被表示为时间序列。
另外,未来添加的容量224和共享可用未来添加的容量230也可以分别被表示为时间序列。这些时间序列可以包括在将附加的计算资源添加到***单元时的时间点(例如在图6中所示的示例中的时间t1和t3)处的非零值以及在其他时间点的零值。
图7是示出了时间系列的图表,其表示在特定时间段期间针对特定***单元中的特定VM系列的预测的可用容量716。在所描绘的示例中,时间序列中的每个值都表示特定时间间隔(例如天、小时、周)期间的预测的可用容量716。
在所描绘的示例中,与特定时间间隔对应的正值表明在该时间间隔期间预测的供应120超过预测的需求118,这意味着在该时间间隔期间***单元被预测为不会耗尽针对该VM系列的容量。相反,与特定时间间隔对应的负值表明在该时间间隔期间预测的供应118超过预测的需求120,这意味着在该时间间隔期间***单元被预测为会耗尽针对该VM系列的容量。
该图表示出了预测的可用容量716保持为正(这意味着***单元被预测为不会耗尽针对特定VM系列的容量),直到时间间隔t1。在时间间隔t1处,预测的可用容量716变为负的(这意味着***被预测为会耗尽针对特定VM系列的容量)。预测的可用容量716保持为负,直到时间间隔t2,当预测的可用容量716再次变为正的时。这可能是由于添加到***单元的附加的计算资源和/或预测的需求118的增加。预测的可用容量716保持为负,直到时间间隔t3,当预测的可用容量716再次变为负的时。在时间间隔t3之后,预测的可用容量716保持为负。
在一些实施例中,可以向缓解引擎126提供时间序列(诸如图7中所示的时间序列)。作为响应,缓解引擎126可以在时间t1(预测的可用容量716变为负的点)之前采取一个或多个缓解动作。
现在参考图8,本公开的另一方面涉及监测预测的可用容量816并且提供与预测的可用容量816的变化相关的警报。在图8中所示的容量管理引擎812中,容量建模服务814确定针对特定***单元中的特定VM系列的预测的可用容量816。确定预测的可用容量816可以基于针对该特定***单元中的该VM系列的预测的需求818和预测的供应820(如从当前可用容量822和未来添加的容量824所确定的),如以上所描述的。当确定预测的供应820时,也可以考虑这一事实,即相同的服务器106可以用于托管不同的VM系列,也如以上所描述的。
在所描绘的容量管理引擎812中,可以监测由容量建模服务814输出的预测的可用容量816。如上所指示的,在即将到来的时间段期间针对特定***单元中的特定VM系列的预测的可用容量816可以包括一组值(例如值的时间序列)。可以从该组值中推断出两个可能的预测:正预测(这意味着在即将到来的时间段期间***单元被预测为不会耗尽针对该VM系列的容量)或负预测(这意味着在即将到来的时间段期间的某点处***单元被预测为会耗尽针对该VM系列的容量)。
在一些实施例中,无论何时针对特定***单元中的特定VM系列的预测的可用容量816从指示正预测变为指示负预测,都可以提供警报842。备选地,在其他实施例中,当在预定时间段期间已经指示正预测后,针对特定***单元中的特定VM系列的预测的可用容量816从指示正预测变为指示负预测时,可以提供警报842。例如,假设预定时间段为连续N天。如果针对特定***单元中的特定VM系列的预测的可用容量816指示连续N天的正预测,则在该示例中,当预测的可用容量816变为指示负预测时,可以发送警报842。然而,如果针对特定***单元中的特定VM系列的预测的可用容量816在变为指示负预测之前指示只有连续M天(其中M<N)的正预测,则在本示例中,在这种情况下,可能不一定发送警报842。
当提供警报842时,可以将警报842发送给负责确保云计算***100的***单元有足够的容量来满足客户需求的一个或多个个人。如果警报842已经从指示正预测变为指示负预测,则接收警报842的(多个)个人可以采取一个或多个缓解动作(可能与缓解引擎826有关),以防止分配失败发生。
在一些实施例中,无论何时针对特定***单元中的特定VM系列的预测的可用容量816从指示负预测变为指示正预测,也都可以提供警报842。在这种情况下,提供警报842可能是有益的,这样负责的个人(例如负责确保云计算***100的***单元有足够的容量来满足客户需求的个人)可以采取步骤来确保变化是准确的(例如变化不是由于数据质量问题)。
更一般地说,无论何时针对特定***单元中的特定VM系列的预测的可用容量816从指示第一类型的预测(例如正预测或负预测)变为指示第二类型的预测(例如负预测或正预测),都可以提供警报842。
除了提供警报842,还可以执行根本原因分析以确定变化发生的(多个)原因。还可以准备根本原因分析(RCA)报告844,以描述在根本原因分析期间所确定的内容。RCA报告844可以描述由根本原因分析所确定的预测的可用容量816变化的原因。在一些实施例中,预测的可用容量816变化的原因可以按照到容量管理引擎812的输入(例如预测的需求818、当前可用容量822和/或未来添加的容量824)的变化来描述。例如,如果根本原因分析发现,预测的可用容量816的变化是由预测的需求818的突然增加引起的,则这一发现可能包括在RCA报告844中。
在一些实施例中,除了监测预测的可用容量816之外,还可以监测作为到容量管理引擎812的输入(即所描绘的示例中的预测的需求818、当前可用容量822和未来添加的容量824)而被提供的信号的异常,这可以由输入信号的突然波动指示。当检测到异常(例如输入信号的值在预定时间段期间变化了超过预定量)时,可以提供警报842。可以将警报842发送给负责云计算***100与受影响的输入信号相关的方面的一个或多个个人。例如,如果预测的需求818的值在预定时间段内变化了超过预定量,则可以向负责确定预测的需求818的一个或多个个人提供警报842。
除了在检测到异常(例如输入信号的突然波动)时提供警报842之外,还可以执行根本原因分析以确定异常发生的(多个)原因。还可以准备RCA报告844,以描述在根本原因分析期间所确定的内容。
在某些情况下,输入信号的突然波动可能是由云计算***100本身的问题引起的。然而,在其他情况下,输入信号的突然波动可能是由其他因素引起的,诸如数据质量问题。例如,假设表示当前可用容量822的输入信号突然下降。这可能是由云计算***100本身的实际问题引起的,诸如大量服务器106的故障。备选地,表示当前可用容量822的输入信号的突然波动可能是由数据质量问题引起的,诸如测量和/或报告当前可用容量822的方式的错误。
在一些实施例中,关于输入信号中的突然波动而执行的根本原因分析可以确定突然波动是由云计算***100本身的实际问题引起的,还是由其他因素(诸如数据质量问题)引起的。例如,继续前面讨论的示例,如果根本原因分析确定表示当前可用容量822的输入信号的突然波动是由大量服务器106的故障引起的,则可以准备RCA报告844,该报告将大量服务器106的故障标识为这种突然波动发生的原因。然后可以将RCA报告844发送给负责按照正确的工作顺序维护服务器106的人和/或负责购买附加服务器106的人。备选地,如果根本原因分析确定表示当前可用容量822的输入信号的突然波动是由数据质量问题引起的,则可以准备RCA报告844,该报告将数据质量问题标识为这种突然波动发生的原因。在这种情况下,可以将RCA报告844发送给负责测量和/或报告当前可用容量822的人。
图8中所示的容量管理引擎812包括信号监测和根本原因分析(RCA)引擎846。信号监测和RCA引擎846可以被配置为提供上述信号监测和根本原因分析功能。
图9图示了在没有过度供应的情况下最小化云计算***100中的分配失败的方法900。为了清晰起见,方法900将参考前述***、组件和数据进行描述。
步骤902涉及确定针对特定***单元中的特定VM系列的共享可用当前容量228。如上所指示的,针对特定***单元中的特定VM系列的共享可用当前容量228指示,鉴于***单元内的当前可用容量222中的一些容量可能会用于分配与其他VM系列对应的VM 110这一事实,***单元内有多少当前可用容量222会被认为可用于分配与该VM系列对应的VM 110。针对特定***单元中的特定VM系列的共享可用当前容量228可以至少部分地基于针对该***单元中的该VM系列的当前可用容量222和针对该***单元中的该VM系列的需求增长比率232。例如,当前可用容量222可以乘以需求增长比率232,以确定共享可用当前容量228。
步骤904涉及确定在即将到来的时间段期间针对***单元中的VM系列的共享可用未来添加的容量230。如上所指示的,针对特定***单元中的特定VM系列的共享可用未来添加的容量230指示,鉴于***单元的未来添加的容量224中的一些可能会用于分配与其他VM系列对应的VM 110这一事实,***单元有多少未来添加的容量224会被认为可用于分配与该VM系列对应的VM 110。针对特定***单元中的特定VM系列的共享可用未来添加的容量230可以至少部分地基于针对该***单元中的该VM系列的未来添加的容量224和针对该***单元中的该VM系列的需求增长比率232。例如,未来添加的容量224可以乘以需求增长比率232,以确定共享可用未来添加的容量230。
步骤906涉及至少部分地基于共享可用当前容量228和共享可用未来添加的容量230,来确定针对***单元中的VM系列的预测的供应220。例如,可以将共享可用当前容量228和共享可用未来添加的容量230相加以确定预测的供应220。
步骤908涉及至少部分地基于预测的供应220和预测的需求218,来预测在即将到来的时间段期间针对***单元中的VM系列的可用容量216。例如,预测的可用容量216可以表示预测的供应220和预测的需求218之间的差。
步骤910涉及响应于确定在即将到来的时间段期间预测的需求218超过预测的供应220,来采取至少一个缓解动作。如上所讨论的,根据本公开,可以采取许多不同类型的缓解动作,诸如购买附加的计算资源、施行报价限制、试图恢复不健康的服务器106、将较低优先级的工作载荷迁移到其他***单元以及将较低优先级的工作载荷逐出云计算***100。
图10图示了可以被包括在计算机***1000内的某些组件。一个或多个计算机***1000可以用于实施本文中所描述的各种设备、组件和***。
计算机***1000包括处理器1001。处理器1001可以是通用单片或多片微处理器(例如高级RISC(精简指令集计算机)机器(ARM))、专用微处理器(例如数字信号处理器(DSP))、微控制器、可编程门阵列等。处理器1001可以被称为中央处理单元(CPU)。虽然在图10的计算机***1000中只示出了单个处理器1001,但是在备选配置中,可以使用处理器的组合(例如ARM和DSP)。
计算机***1000还包括与处理器1001进行电子通信的存储器1003。存储器1003可以是能够存储电子信息的任何电子组件。例如,存储器1003可以体现为随机存取存储器(RAM)、只读存储器(ROM)、磁盘存储介质、光学存储介质、RAM中的闪存设备、包括处理器的机载存储器、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、寄存器等,包括它们的组合。
指令1005和数据1007可以存储在存储器1003中。指令1005可以由处理器1001可执行以实施本文中所公开的一些或全部步骤、操作、动作或其他功能。执行指令1005可以涉及使用存储在存储器1003中的数据1007。本文中所描述的模块和组件的各个示例中的任何示例都可以部分或全部实施为存储在存储器1003中并且由处理器1001执行的指令1005。本文中所描述的数据的各个示例中的任何示例都可以是存储在存储器1003中并且在处理器1001执行指令1005期间使用的数据1007。
计算机***1000还可以包括用于与其他电子设备进行通信的一个或多个通信接口1009。(多个)通信接口1009可以基于有线通信技术、无线通信技术或两者。通信接口1009的一些示例包括通用串行总线(USB)、以太网适配器、根据电气和电子工程师协会(IEEE)1002.11无线通信协议运行的无线适配器、
Figure BDA0003250611270000211
无线通信适配器和红外(IR)通信端口。
计算机***1000还可以包括一个或多个输入设备1011和一个或多个输出设备1013。输入设备1011的一些示例包括键盘、鼠标、麦克风、远程控制设备、按钮、操纵杆、轨迹球、触控板和光笔。输出设备1013的一些示例包括扬声器和打印机。通常包括在计算机***1000中的一种特定类型的输出设备是显示设备1015。与本文中所公开的实施例一起使用的显示设备1015可以利用任何合适的图像投影技术,诸如液晶显示器(LCD)、发光二极管(LED)、气体等离子体、电致发光等。还可以提供显示控制器1017,用于将存储在存储器1003中的数据1007转换为在显示设备1015上显示的文本、图形和/或活动图像(视情况而定)。
计算机***1000的各个组件可以通过一条或多条总线耦合在一起,这些总线可以包括电源总线、控制信号总线、状态信号总线、数据总线等。为了清晰起见,各种总线在图10中被图示为总线***1019。
本文中所描述的技术可以在硬件、软件、固件或其组合中实现,除非具体描述为以特定方式实现。被描述为模块、组件等的任何特征都可以在集成逻辑设备中或单独作为离散但是彼此协作的逻辑设备实现。如果在软件中实现,则技术可以至少部分地由非暂态计算机可读介质实现,该介质上存储有计算机可执行指令,这些指令在由至少一个处理器执行时执行本文中所公开的一些或全部步骤、操作、动作或其他功能。指令可以被组织成例程、程序、对象、组件、数据结构等,它们可以执行特定任务和/或实施特定数据类型,并且可以根据需要在各种实施例中组合或分布。
在不偏离权利要求的范围的情况下,本文中所描述的方法的步骤、操作和/或动作可以彼此互换。换言之,除非所描述的方法的正常运行需要步骤、操作和/或动作的特定顺序,否则在不偏离权利要求的范围的情况下,可以修改特定步骤、操作和/或动作的顺序和/或使用。
术语“确定”(以及其语法变体)包含各种动作,因此,“确定”可以包括计算、运算、处理、推导、研究、查找(例如在表格、数据库或另一数据结构中查找)、探知等。同样,“确定”可以包括接收(例如接收信息)、访问(例如访问存储器中的数据)等。同样,“确定”可以包括解决、选择、选取、建立等。
术语“包括(comprising)”、“包括(including)”和“具有”旨在是包括的,并且意味着可能有除所列元件之外的附加元件。备选地,应理解,对本公开的“一个实施例”或“实施例”的引用并不旨在被解释为排除也包含所提及的特征的附加实施例的存在。例如,在兼容的情况下,关于本文中的实施例描述的任何元件或特征都可以与本文中所描述的任何其他实施例的任何元件或特征组合。
在不偏离其精神或特征的情况下,本公开可以体现为其他具体形式。所描述的实施例被认为是说明性的,而非限制性的。因此,本公开的范围由所附权利要求指示,而不是由前面的描述指示。在权利要求的等同物的意义和范围内的变化都包含在其范围内。

Claims (15)

1.一种用于在没有过度供应的情况下最小化云计算***中的分配失败的方法,包括:
确定在即将到来的时间段期间针对所述云计算***的***单元中的虚拟机系列的预测的供应,其中所述预测的供应至少部分地基于针对所述***单元中的所述虚拟机系列的共享可用当前容量和针对所述***单元中的所述虚拟机系列的共享可用未来添加的容量;
预测在所述即将到来的时间段期间针对所述***单元中的所述虚拟机系列的可用容量,其中预测的所述可用容量至少部分地基于在所述即将到来的时间段期间针对所述***单元中的所述虚拟机序列的预测的需求和在所述即将到来的时间段期间针对所述***单元中的所述虚拟机序列的所述预测的供应;以及
响应于确定在所述即将到来的时间段期间所述预测的需求超过所述预测的供应,来采取至少一个缓解动作。
2.根据权利要求1所述的方法,还包括:
至少部分地基于针对所述***单元的当前可用容量和针对所述***单元中的所述虚拟机系列的需求增长比率,来确定针对所述***单元中的所述虚拟机系列的所述共享可用当前容量;以及
至少部分地基于针对所述***单元的未来添加的容量和针对所述***单元中的所述虚拟机系列的所述需求增长比率,来确定针对所述***单元中的所述虚拟机系列的所述共享可用未来添加的容量。
3.根据权利要求1所述的方法,其中所述至少一个缓解动作响应于确定在所述即将到来的时间段期间所述预测的需求超过所述预测的供应而被自动采取。
4.根据权利要求1所述的方法,还包括确定关于在所述即将到来的时间段期间针对所述***单元中的所述虚拟机序列的所述可用容量的多个预测,其中关于所述可用容量的所述多个预测基于多个不同的需求预测。
5.根据权利要求1所述的方法,还包括:
监测预测的所述可用容量;以及
当预测的所述可用容量从指示第一类型的预测变为指示第二类型的预测时,提供警报。
6.根据权利要求5所述的方法,还包括:
执行根本原因分析以确定预测的所述可用容量为什么从指示所述第一类型的预测变为指示所述第二类型的预测;以及
提供根本原因分析报告,所述根本原因分析报告描述在所述根本原因分析期间所确定的内容。
7.根据权利要求1所述的方法,还包括:
监测所述预测的需求、所述当前可用容量和所述未来添加的容量;以及
当在预定时间段内所述预测的需求、所述当前可用容量或所述未来添加的容量的值变化高于预定量时,提供警报。
8.根据权利要求1所述的方法,还包括:
响应于检测到异常,执行根本原因分析;以及
提供根本原因分析报告,所述根本原因分析报告描述在所述根本原因分析期间所确定的内容。
9.一种计算机可读介质,包括指令,所述指令由一个或多个处理器可执行以使计算***:
确定在即将到来的时间段期间针对云计算***的***单元中的虚拟机系列的预测的供应,其中所述预测的供应至少部分地基于针对所述***单元中的所述虚拟机系列的共享可用当前容量和针对所述***单元中的所述虚拟机系列的共享可用未来添加的容量;
预测在所述即将到来的时间段期间针对所述***单元中的所述虚拟机系列的可用容量,其中预测的所述可用容量至少部分地基于在所述即将到来的时间段期间针对所述***单元中的所述虚拟机序列的预测的需求和在所述即将到来的时间段期间针对所述***单元中的所述虚拟机序列的所述预测的供应;以及
响应于确定在所述即将到来的时间段期间所述预测的需求超过所述预测的供应,来采取至少一个缓解动作。
10.根据权利要求9所述的计算机可读介质,还包括附加指令,所述附加指令由所述一个或多个处理器可执行以使所述计算***:
至少部分地基于针对所述***单元的当前可用容量和针对所述***单元中的所述虚拟机系列的需求增长比率,来确定针对所述***单元中的所述虚拟机系列的所述共享可用当前容量;以及
至少部分地基于针对所述***单元的未来添加的容量和针对所述***单元中的所述虚拟机系列的所述需求增长比率,来确定针对所述***单元中的所述虚拟机系列的所述共享可用未来添加的容量。
11.根据权利要求9所述的计算机可读介质,其中所述至少一个缓解动作响应于确定在所述即将到来的时间段期间所述预测的需求超过所述预测的供应而被自动采取。
12.根据权利要求9所述的计算机可读介质,还包括附加指令,所述附加指令由所述一个或多个处理器可执行以确定关于在所述即将到来的时间段期间针对所述***单元中的所述虚拟机序列的所述可用容量的多个预测,其中关于所述可用容量的所述多个预测基于多个不同的需求预测。
13.根据权利要求9所述的计算机可读介质,还包括附加指令,所述附加指令由所述一个或多个处理器可执行以使所述计算***:
监测预测的所述可用容量;以及
当预测的所述可用容量从指示第一类型的预测变为指示第二类型的预测时,提供警报。
14.根据权利要求13所述的计算机可读介质,还包括附加指令,所述附加指令由所述一个或多个处理器可执行以使所述计算***:
执行根本原因分析以确定预测的所述可用容量为什么从指示所述第一类型的预测变为指示所述第二类型的预测;以及
提供根本原因分析报告,所述根本原因分析报告描述在所述根本原因分析期间所确定的内容。
15.根据权利要求9所述的计算机可读介质,还包括附加指令,所述附加指令由所述一个或多个处理器可执行以使所述计算***:
监测所述预测的需求、所述当前可用容量和所述未来添加的容量;以及
当在预定时间段内所述预测的需求、所述当前可用容量或所述未来添加的容量的值变化高于预定量时,提供警报。
CN202080019430.1A 2019-03-08 2020-02-25 云计算***中使用虚拟机系列建模的容量管理 Pending CN113544647A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/297,350 US11550634B2 (en) 2019-03-08 2019-03-08 Capacity management in a cloud computing system using virtual machine series modeling
US16/297,350 2019-03-08
PCT/US2020/019728 WO2020185396A1 (en) 2019-03-08 2020-02-25 Capacity management in a cloud computing system using virtual machine series modeling

Publications (1)

Publication Number Publication Date
CN113544647A true CN113544647A (zh) 2021-10-22

Family

ID=69846615

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080019430.1A Pending CN113544647A (zh) 2019-03-08 2020-02-25 云计算***中使用虚拟机系列建模的容量管理

Country Status (4)

Country Link
US (1) US11550634B2 (zh)
EP (1) EP3935503B1 (zh)
CN (1) CN113544647A (zh)
WO (1) WO2020185396A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11082333B1 (en) 2019-09-05 2021-08-03 Turbonomic, Inc. Systems and methods for managing resources in a serverless workload
US11900171B2 (en) * 2021-02-02 2024-02-13 Microsoft Technology Licensing, Llc Cloud computing capacity management system using automated fine-grained admission control
US11856052B2 (en) * 2021-02-18 2023-12-26 Jpmorgan Chase Bank, N.A. System and method for implementing a smart cloud deployment module
US20230214308A1 (en) * 2021-12-30 2023-07-06 Microsoft Technology Licensing, Llc Resource capacity management in computing systems
US20230362234A1 (en) * 2022-05-04 2023-11-09 Microsoft Technology Licensing, Llc Method and system of managing resources in a cloud computing environment
US12028223B2 (en) * 2022-06-06 2024-07-02 Microsoft Technology Licensing, Llc Capacity aware cloud environment node recovery system

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103955398A (zh) * 2014-04-28 2014-07-30 浙江大学 一种基于处理器性能监控的虚拟机共生调度方法
CN103999049A (zh) * 2011-11-29 2014-08-20 国际商业机器公司 云供应加速器
US10042676B1 (en) * 2016-06-28 2018-08-07 Amazon Technologies, Inc. Capacity pool health index

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6597907B1 (en) * 2000-05-05 2003-07-22 Ericsson Inc. Detection of a deadlocked resource condition in a pool of shared resources
US8312460B1 (en) 2007-05-22 2012-11-13 Hewlett-Packard Development Company, L.P. Allocating computer resources to workloads using utilization based probability distributions
US8903983B2 (en) * 2008-02-29 2014-12-02 Dell Software Inc. Method, system and apparatus for managing, modeling, predicting, allocating and utilizing resources and bottlenecks in a computer network
US9495395B2 (en) * 2013-04-11 2016-11-15 Oracle International Corporation Predictive diagnosis of SLA violations in cloud services by seasonal trending and forecasting with thread intensity analytics
US9183116B1 (en) * 2014-04-23 2015-11-10 Microsoft Technology Licensing, Llc Call chain interval resource impact aggregation differencing
US10649796B2 (en) 2014-06-27 2020-05-12 Amazon Technologies, Inc. Rolling resource credits for scheduling of virtual computer resources
US9875169B2 (en) * 2015-03-26 2018-01-23 Ca, Inc. Modeling real capacity consumption changes using process-level data
US20170322834A1 (en) * 2016-05-03 2017-11-09 International Business Machines Corporation Compute instance workload monitoring and placement
US10164897B1 (en) * 2016-06-28 2018-12-25 Amazon Technologies, Inc. System and method for host isolation in a web-based computing system
US10789146B2 (en) * 2016-08-25 2020-09-29 Hewlett Packard Enterprise Development Lp Forecasting resource utilization
US10776091B1 (en) * 2018-02-26 2020-09-15 Amazon Technologies, Inc. Logging endpoint in an on-demand code execution system
US10896069B2 (en) * 2018-03-16 2021-01-19 Citrix Systems, Inc. Dynamically provisioning virtual machines from remote, multi-tier pool
US10789102B2 (en) * 2019-01-09 2020-09-29 Microsoft Technology Licensing, Llc Resource provisioning in computing systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103999049A (zh) * 2011-11-29 2014-08-20 国际商业机器公司 云供应加速器
CN103955398A (zh) * 2014-04-28 2014-07-30 浙江大学 一种基于处理器性能监控的虚拟机共生调度方法
US10042676B1 (en) * 2016-06-28 2018-08-07 Amazon Technologies, Inc. Capacity pool health index

Also Published As

Publication number Publication date
US11550634B2 (en) 2023-01-10
EP3935503B1 (en) 2023-08-23
WO2020185396A1 (en) 2020-09-17
US20200285525A1 (en) 2020-09-10
EP3935503A1 (en) 2022-01-12

Similar Documents

Publication Publication Date Title
US10896055B2 (en) Capacity risk management for virtual machines
EP3935503B1 (en) Capacity management in a cloud computing system using virtual machine series modeling
US11567795B2 (en) Minimizing impact of migrating virtual services
US9451013B1 (en) Providing instance availability information
US10904159B2 (en) Resource allocation optimizing system and method
US9003037B2 (en) Dynamic allocation of physical computing resources amongst virtual machines
US9466036B1 (en) Automated reconfiguration of shared network resources
US8024737B2 (en) Method and a system that enables the calculation of resource requirements for a composite application
JPWO2014091580A1 (ja) クラウドシステム管理装置、クラウドシステム、再配置方法、及びプログラム
US20170235606A1 (en) System and methods for implementing control of use of shared resource in a multi-tenant system
US11972301B2 (en) Allocating computing resources for deferrable virtual machines
US9306814B1 (en) Providing instance availability information
US11562299B2 (en) Workload tenure prediction for capacity planning
CN111897706A (zh) 服务器性能预测方法、装置、计算机***和介质
WO2020206699A1 (en) Predicting virtual machine allocation failures on server node clusters
JP2018112837A (ja) 仮想マシン管理装置、仮想マシン管理方法およびコンピュータプログラム
CN117331668A (zh) 一种作业调度方法、装置、设备及存储介质
US20140351436A1 (en) Endpoint management based on endpoint type
US11397457B2 (en) Dynamic power capping of computing systems and subsystems contained therein
US20090320020A1 (en) Method and System for Optimising A Virtualisation Environment
US10601905B2 (en) Priority switching based on resource usage patterns
US20240086203A1 (en) Sizing service for cloud migration to physical machine
US20230325892A1 (en) System and method for managing license of software
US20230112031A1 (en) System and method for workload management in a distributed system
US20240256362A1 (en) Allocating computing resources for deferrable 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