CN111373372B - 在分布式计算环境中对应用分配优先级以进行对角缩放 - Google Patents
在分布式计算环境中对应用分配优先级以进行对角缩放 Download PDFInfo
- Publication number
- CN111373372B CN111373372B CN201880075049.XA CN201880075049A CN111373372B CN 111373372 B CN111373372 B CN 111373372B CN 201880075049 A CN201880075049 A CN 201880075049A CN 111373372 B CN111373372 B CN 111373372B
- Authority
- CN
- China
- Prior art keywords
- applications
- application
- importance
- value
- importance value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 230000001419 dependent effect Effects 0.000 claims abstract description 17
- 238000000034 method Methods 0.000 claims description 83
- 230000006870 function Effects 0.000 claims description 39
- 238000003860 storage Methods 0.000 claims description 38
- 230000015654 memory Effects 0.000 claims description 19
- 238000010606 normalization Methods 0.000 claims 3
- 238000010586 diagram Methods 0.000 description 37
- 230000007246 mechanism Effects 0.000 description 29
- 238000012545 processing Methods 0.000 description 27
- 238000013468 resource allocation Methods 0.000 description 24
- 230000009467 reduction Effects 0.000 description 22
- 238000004422 calculation algorithm Methods 0.000 description 20
- 230000009471 action Effects 0.000 description 11
- 230000008569 process Effects 0.000 description 10
- 230000002829 reductive effect Effects 0.000 description 8
- 230000003044 adaptive effect Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 230000005012 migration Effects 0.000 description 6
- 238000013508 migration Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000003416 augmentation Effects 0.000 description 5
- 230000003247 decreasing effect Effects 0.000 description 5
- 230000003287 optical effect Effects 0.000 description 5
- 229920006395 saturated elastomer Polymers 0.000 description 5
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000003491 array Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 230000006855 networking Effects 0.000 description 4
- 230000008520 organization Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 230000003321 amplification Effects 0.000 description 2
- 238000010420 art technique Methods 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000007405 data analysis Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002085 persistent effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- 230000002459 sustained effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009172 bursting Effects 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000013439 planning Methods 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002195 synergetic effect Effects 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
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/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/482—Application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5021—Priority
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
用于在分布式计算环境中对应用分配优先级以进行对角缩放操作的实施例。定义多个应用中的应用的重要性值,该重要性值表示应用或由应用执行的功能的重要性,并且配置多个应用之间的从属关系。定义从属应用对多个应用中的在先应用的从属关系的重要性值,以及基于多个应用中的每个应用和其间的相应从属关系的重要性值来计算多个应用中的每个应用的优先级,以用于在分布式计算环境中对分配给每个应用的资源执行对角缩放操作。
Description
技术领域
本发明一般涉及计算系统,更具体地,涉及用于优化分布式计算组件内和/或之间的资源使用的各种实施例。
背景技术
在今天的社会,计算机系统是常见的。计算机系统可以在工作场所、家里或学校中找到。随着计算机系统变得越来越依赖、方便和便携,因特网及其相关的从属关系已经呈指数增长。现在,比以前更多的是,个人和企业依赖于分布式计算系统(通常称为“云”)来处理工作负载并存储信息和数据。随着与工作负载处理、资源分配和数据访问有关的技术进步的大幅进展,对于提供这些功能的后端支持系统内的增长和开发存在不断增长的需求。
发明内容
计算机集群(cluster),简称为集群,是一种借由连接在一起的多个协作计算机(也称为计算资源,诸如软件和/或硬件资源)来完成计算工作的计算机系统。这些在同一管理域中的计算资源具有统一的管理策略,并且作为整体向用户提供服务。集群系统中的单个计算机通常被称为节点或计算节点。
计算集群通常实现各种技术来优化用于执行如用户所提供的工作负载的资源,在该资源中执行该工作负载。通常采用的一种常见技术是对资源和/或应用的使用进行缩放。对角缩放(diagonal scaling)是应用垂直缩放和水平缩放的组合以适于每个应用的资源需求的最近的方法。垂直缩放是指对特定运行应用实例的资源的添加和缩减。水平缩放是指应用实例的创建和移除。换句话说,垂直缩放可以用于给应用或者更确切地说是给应用的许多运行实例中的一个运行实例分配或者解除分配计算集群的某些资源(例如,存储器、中央处理单元(CPU)、存储容量等),而水平缩放可以用于添加或者移除同一应用的应用实例中的一个或者多个应用实例。对角缩放组合了这两种技术,以确保计算集群资源被高效地占用和利用,从而自动地容纳应用的资源需求的动态变化。
现有技术倾向于集中在水平缩放,即添加和移除应用实例。本文描述的实施例的特征在于用于垂直缩放(添加和移除应用实例的资源)和水平缩放(添加和移除应用实例)两者的机制。此外,本发明提供了一种统一的算法机制,其自动应用垂直缩放和水平缩放,在垂直缩放和水平缩放(即,对角缩放)之间创建协同效应(synergy),以优化应用和平台的效率。
许多现有技术以虚拟机或容器为目标,并且需要使用它们的特定属性和能力(例如,用于测量用途和定义资源需求)来实现应用或资源缩放,并且一些现有技术需要用户预定义资源(例如,CPU)的利用水平的目标以便于缩放操作。这些目标的任意性质以及这些目标涉及基础设施资源而不是应用的更高水平服务质量方面的事实可能使得这种缩放机制的行为与对应用的服务质量的实际需求较不匹配。本文所呈现的机制不使用这种预定义目标,而是通过考虑应用的优先级和服务质量方面使得所提供的资源与应用的实际负载匹配。此外,本发明的机制提供了用于实现对角缩放的一般方法,而不依赖于应用运行的形式。
传统上,现有技术在确定缩放操作时考虑与其它应用分离的每个资源自身和每个应用自身。使用本文描述的机制的功能,在确定缩放操作时考虑所有相关资源的测量以及应用的总体构成和优先级。
最后,一些现有技术需要并依赖于用于实现缩放操作的其他技术(例如,用于收集使用度量的技术)的可用性,并且其他现有技术出于缩放目的而利用聚合度量工作,而不区分特定度量。本发明不需要或不依赖于其它技术。此外,在本发明中,单独地应用所有相关度量的测量,然后基于度量和应用的总体视图来确定缩放操作。
鉴于已知的现有方法以及为了对本领域改进,本公开中考虑的新算法和方法通过将垂直缩放和水平缩放集成在统一的自动机制中来提供用于自动对角缩放的全面且高效的功能,以优化应用和资源平台的效率。
因此,如将进一步描述的,本文公开了各种实施例,以在分布式计算环境中对应用分配优先级以用于执行对角缩放操作。在一个实施例中,仅作为示例,定义多个应用中的应用的重要性值,重要性值表示应用或由应用执行的功能的重要性,并且配置多个应用之间的从属关系。定义从属应用对多个应用中的在先应用的从属关系的重要性值,并且基于多个应用中的每个应用和其间的相应从属关系的重要性值来计算多个应用中的每个应用的优先级,以用于在分布式计算环境中对分配给每个应用的资源执行对角缩放操作。
除了前述示例性实施例之外,提供了各种其他系统和计算机程序产品实施例,并且提供了相关的优点。已经提供上述发明内容以便以简化形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。
附图说明
为了容易地理解本发明的优点,将通过参考在附图中示出的具体实施例来呈现对以上简要描述的本发明的更具体的描述。应当理解,这些附图仅描绘了本发明的典型实施例,因此不应被认为是对其范围的限制,将通过使用附图来描述和解释本发明的附加特征和细节,其中:
图1是描绘根据本发明的实施例的示例性计算节点的框图;
图2是描绘根据本发明的实施例的示例性云计算环境的附加框图;
图3是描绘根据本发明的实施例的抽象模型层的附加框图;
图4示出了根据本发明的各方面的描绘在分布式计算环境中对应用分配优先级以进行对角缩放操作的方法的流程图;
图5示出了根据本发明的各方面的描绘对角缩放模型的组合框图/流程图;
图6示出了根据本发明的各方面的描绘用于分布式计算环境中的工作负载的自动对角缩放的方法的附加流程图;
图7A示出了根据本发明的各方面的描绘用于多个资源类型中的每个资源类型的示例性计算机制的框图;
图7B示出了根据本发明的各方面的描绘用于多个资源类型中的每个资源类型的示例性计算机制的附加框图;
图7C示出了根据本发明的各方面的描绘用于多个资源类型中的每个资源类型的示例性计算机制的又一框图;
图8示出了根据本发明的各方面的描绘基于历史数据自动和自适应地增加和缩减资源的方法的组合框图/流程图;
图9示出了根据本发明的各方面的描绘示例性对角扩增操作的框图;
图10示出了根据本发明的各方面的描绘用于处理应用实例的资源分配的计算的增加操作的方法的流程图;
图11示出了根据本发明的各方面的描绘示例性对角缩减操作的框图;
图12示出了根据本发明的各方面的描绘对角缩放算法的流程图;
图13示出了根据本发明的各方面的描绘用于计算应用优先级的示例性应用拓扑的框图;以及
图14示出了根据本发明的各方面的描绘用于分布式计算环境中的工作负载的自动对角缩放的方法的组合框图/流程图。
具体实施方式
如前所述,计算集群通常实现各种技术来优化用于执行如用户所提供的工作负载的资源,在该资源中执行该工作负载。通常采用的一种常见技术是对资源和/或应用的使用进行缩放。对角缩放是应用垂直缩放和水平缩放的组合以适于每个应用的资源需求的最近的方法。垂直缩放是指对特定运行应用实例的资源的添加和缩减。水平缩放是指应用实例的创建和移除。换句话说,垂直缩放可以用于给应用或者更确切地说是给应用的许多运行实例中的一个运行实例分配或者解除分配计算集群的某些资源(例如,存储器、中央处理单元(CPU)、存储容量等),而水平缩放可以用于添加或者移除同一应用的应用实例中的一个或者多个应用实例。对角缩放组合了这两种技术,以确保计算集群资源被高效地占用和利用,从而自动地容纳应用的资源需求的动态变化,然而,不存在自动、高效或最优地集成这种类型的缩放的当前解决方案。
因此,本发明采用了通过自动对角缩放来更高效地优化和利用分布式计算环境中的资源的功能。也就是说,所公开的实施例采用了具有以下示例性规范的用于自动对角缩放的高效机制。首先,自动地跟踪应用实例的实际资源消耗并将其与应用实例的已分配资源进行比较。第二,根据与这些资源的分配相比的消耗,自动地调谐(增加/减少)所分配的资源及其资源限制。更具体地,当应用的工作负载增长时,本文描述的机制使得附加资源可用于该应用。类似地,当工作负载缩减时,资源减少。第三,根据应用实例和/或主机状态和策略,自动地使用垂直缩放和水平缩放。第四并且最后,本文的功能是可定制的、高效的、并且易于配置的。例如,可由用户设置的项目可以包括:不同资源消耗的最大界限(例如,基于历史统计和成本约束);不同资源的可用性的最小界限;用于确定需要缩放操作的触发;以及用于集成垂直缩放和水平缩放的策略。
根据这些规范,所提出的机制提供了以下益处。首先,根据作为输入提供给应用的实际工作负载、应用的优先级和可用资源来优化应用的吞吐量。第二,分配给应用的资源的成本被最小化,并且集群资源利用率被提高。因此,由于集群资源的更高效的利用,集群能够容纳附加的工作负载,同时降低运行这种工作负载的成本。第三,利用集群的客户仅为实际需要或用于执行他们各自的工作负载的资源付费,从而避免了对未使用的资源的过度付费。此外,云灵活性及其货币收费机制被改进。第四,通过移除估计资源分配和可缩放性的需求并根据工作负载手动调谐资源分配和可缩放性,改进了应用效率,并且另外改进了其配置。第五并且最后,本文的机制使用可以被添加或实施到各种工作负载管理系统的通用自动对角缩放功能。
应当注意,为了简洁,本公开频繁使用“资源”的语言。在本发明的实际实现中,本文所称的资源可以包括CPU、图形处理单元(GPU)、存储器、存储设备、网络设备、加速器设备、乃至整个计算节点。实际上,本领域技术人员将理解,本领域公知的任何硬件和/或软件资源都可以与本文所述的“资源”或“资源类型”互换地解释。另外,本公开描述了应用的“应用实例”。如本领域普通技术人员将认识到的,应用实例意味着指代其特定执行或运行应用的单独出现,尽管应用或其应用实例的性质可以根据本文公开的功能的特定实现而广泛地变化。
另外,首先应当理解,尽管本公开包括关于云计算的详细描述,但其中记载的技术方案的实现却不限于云计算环境,而是能够结合现在已知或以后开发的任何其它类型的计算环境而实现。
云计算是一种服务交付模式,用于对共享的可配置计算资源池进行方便、按需的网络访问。可配置计算资源是能够以最小的管理成本或与服务提供者进行最少的交互就能快速部署和释放的资源,例如可以是网络、网络带宽、服务器、处理、内存、存储、应用、虚拟机和服务。这种云模式可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
特征包括:
按需自助式服务:云的消费者在无需与服务提供者进行人为交互的情况下能够单方面自动地按需部署诸如服务器时间和网络存储等的计算能力。
广泛的网络接入:计算能力可以通过标准机制在网络上获取,这种标准机制促进了通过不同种类的瘦客户机平台或厚客户机平台(例如移动电话、膝上型电脑、个人数字助理PDA)对云的使用。
资源池:提供者的计算资源被归入资源池并通过多租户(multi-tenant)模式服务于多重消费者,其中按需将不同的实体资源和虚拟资源动态地分配和再分配。一般情况下,消费者不能控制或甚至并不知晓所提供的资源的确切位置,但可以在较高抽象程度上指定位置(例如国家、州或数据中心),因此具有位置无关性。
迅速弹性:能够迅速、有弹性地(有时是自动地)部署计算能力,以实现快速扩展,并且能迅速释放来快速缩小。在消费者看来,用于部署的可用计算能力往往显得是无限的,并能在任意时候都能获取任意数量的计算能力。
可测量的服务:云系统通过利用适于服务类型(例如存储、处理、带宽和活跃用户帐号)的某种抽象程度的计量能力,自动地控制和优化资源效用。可以监测、控制和报告资源使用情况,为服务提供者和消费者双方提供透明度。
服务模型如下:
软件即服务(SaaS):向消费者提供的能力是使用提供者在云基础架构上运行的应用。可以通过诸如网络浏览器的瘦客户机接口(例如基于网络的电子邮件)从各种客户机设备访问应用。除了有限的特定于用户的应用配置设置外,消费者既不管理也不控制包括网络、服务器、操作系统、存储、乃至单个应用能力等的底层云基础架构。
平台即服务(PaaS):向消费者提供的能力是在云基础架构上部署消费者创建或获得的应用,这些应用利用提供者支持的程序设计语言和工具创建。消费者既不管理也不控制包括网络、服务器、操作系统或存储的底层云基础架构,但对其部署的应用具有控制权,对应用托管环境配置可能也具有控制权。
基础架构即服务(IaaS):向消费者提供的能力是消费者能够在其中部署并运行包括操作系统和应用的任意软件的处理、存储、网络和其他基础计算资源。消费者既不管理也不控制底层的云基础架构,但是对操作系统、存储和其部署的应用具有控制权,对选择的网络组件(例如主机防火墙)可能具有有限的控制权。
部署模型如下:
私有云:云基础架构单独为某个组织运行。云基础架构可以由该组织或第三方管理并且可以存在于该组织内部或外部。
共同体云:云基础架构被若干组织共享并支持有共同利害关系(例如任务使命、安全需求、政策和合规考虑)的特定共同体。共同体云可以由共同体内的多个组织或第三方管理并且可以存在于该共同体内部或外部。
公共云:云基础架构向公众或大型产业群提供并由出售云服务的组织拥有。
混合云:云基础架构由两个或更多部署模型的云(私有云、共同体云或公共云)组成,这些云依然是独特的实体,但是通过使数据和应用能够迁移的标准化技术或私有技术(例如用于云之间的负载平衡的云突发流量分担技术)绑定在一起。
云计算环境是面向服务的,特点集中在无状态性、低耦合性、模块性和语意的互操作性。云计算的核心是包含互连节点网络的基础架构。
现在参考图1,其中显示了云计算节点的一个示例。图1显示的云计算节点10仅仅是适合的云计算节点的一个示例,不应对本发明的实施例的功能和使用范围带来任何限制。总之,云计算节点10能够被用来实现和/或执行以上所述的任何功能。
云计算节点10具有计算机系统/服务器12,其可与众多其它通用或专用计算系统环境或配置一起操作。众所周知,适于与计算机系统/服务器12一起操作的计算系统、环境和/或配置的示例包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统、大型计算机系统和包括上述任意系统的分布式云计算技术环境,等等。
计算机系统/服务器12可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括执行特定的任务或者实现特定的抽象数据类型的例程、程序、目标程序、组件、逻辑、数据结构等。计算机系统/服务器12可以在通过通信网络链接的远程处理设备执行任务的分布式云计算环境中实现。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
如图1所示,云计算节点10中的计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是能够被计算机系统/服务器12访问的任意可获得的介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM)30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如CD-ROM、DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。系统存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在系统存储器28中,这样的程序模块42包括但不限于操作系统、一个或者多个应用、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
计算机系统/服务器12也可以与一个或多个外部设备14(例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,其它硬件和/或软件模块可以与计算机系统/服务器12一起操作,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在本发明的语境中,并且如本领域技术人员将理解的,图1中描绘的各种组件可以被用于使用本文教导的对角缩放功能来处理分布式工作负载。例如,与所示实施例的机制相关联的一些处理和数据存储能力可以经由本地处理组件本地发生,而相同的组件经由网络连接到远程定位的分布式计算数据处理和存储组件以实现本发明的各种目的。此外,如本领域普通技术人员将理解的,本图示旨在仅传达可以是共同实现各个发明方面的分布式计算组件的整个连接网络的子集。
现在参考图2,其中显示了示例性的云计算环境50。如图所示,云计算环境50包括云计算消费者使用的本地计算设备可以与其相通信的一个或者多个云计算节点10,本地计算设备例如可以是个人数字助理(PDA)或移动电话54A、台式电脑54B、笔记本电脑54C和/或汽车计算机系统54N。云计算节点10之间可以相互通信。可以在包括但不限于如上所述的私有云、共同体云、公共云或混合云或者它们的组合的一个或者多个网络中将云计算节点10进行物理或虚拟分组(图中未显示)。这样,云的消费者无需在本地计算设备上维护资源就能请求云计算环境50提供的基础架构即服务(IaaS)、平台即服务(PaaS)和/或软件即服务(SaaS)。应当理解,图2显示的各类计算设备54A-N仅仅是示意性的,云计算节点10以及云计算环境50可以与任意类型网络上和/或网络可寻址连接的任意类型的计算设备(例如使用网络浏览器)通信。
现在参考图3,其中显示了云计算环境50(图2)提供的一组功能抽象层。首先应当理解,图3所示的组件、层以及功能都仅仅是示意性的,本发明的实施例不限于此。如图3所示,提供下列层和对应功能:
设备层55包括嵌入有和/或独立的电子器件、传感器、致动器和其他对象以在云计算环境50中执行各种任务的物理和/或虚拟设备。设备层55中的每个设备将联网能力结合到其他功能抽象层,使得从设备获得的信息可以被提供给其他抽象层,和/或来自其他抽象层的信息可以被提供给设备。在一个实施例中,包括设备层55在内的各种设备可以并入统称为“物联网”(IoT)的实体网络。如本领域普通技术人员将理解的,这种实体网络允许数据的相互通信、收集和传播以实现各种目的。
如图所示的设备层55包括传感器52,致动器53,具有集成处理、传感器和联网电子器件的“学习”恒温器56,相机57,可控家用插座/插口58以及可控电开关59,如图所示。其它可能的设备可以包括但不限于各种附加传感器设备、联网设备、电子设备(诸如远程控制设备)、附加致动器设备、所谓的“智能”电器(诸如冰箱或洗衣机/干衣机)以及各种各样的其它可能的互连对象。
硬件和软件层60包括硬件和软件组件。硬件组件的示例包括:主机61;基于RISC(精简指令集计算机)体系结构的服务器62;服务器63;刀片服务器64;存储设备65;网络和网络组件66。软件组件的示例包括:网络应用服务器软件67以及数据库软件68。
虚拟层70提供一个抽象层,该层可以提供下列虚拟实体的示例:虚拟服务器71、虚拟存储72、虚拟网络73(包括虚拟私有网络)、虚拟应用和操作系统74,以及虚拟客户端75。
在一个示例中,管理层80可以提供下述功能:资源供应功能81:提供用于在云计算环境中执行任务的计算资源和其它资源的动态获取;计量和定价功能82:在云计算环境内对资源的使用进行成本跟踪,并为此提供帐单和发票。在一个示例中,该资源可以包括应用软件许可。安全功能:为云的消费者和任务提供身份认证,为数据和其它资源提供保护。用户门户功能83:为消费者和系统管理员提供对云计算环境的访问。服务水平管理功能84:提供云计算资源的分配和管理,以满足必需的服务水平。服务水平协议(SLA)计划和履行功能85:为根据SLA预测的对云计算资源未来需求提供预先安排和供应。
工作负载层90提供云计算环境可能实现的功能的示例。在该层中,可提供的工作负载或功能的示例包括:地图绘制与导航91;软件开发及生命周期管理92;虚拟教室的教学提供93;数据分析处理94;交易处理95;以及在本发明的所示实施例的语境中的各种资源和应用缩放功能96。此外,资源和应用缩放功能96可以包括诸如分析某些数据以给某些工作负载分配或解除分配资源和/或创建或移除某些工作负载的应用实例的操作,如将进一步描述的。本领域的普通技术人员将理解,资源和应用缩放功能96还可以结合各种抽象层的其他部分(诸如硬件和软件60、虚拟70、管理80和其他工作负载90(例如,诸如数据分析处理94)中的那些抽象层)工作,以实现本发明的所示实施例的各种目的。
继续,图4示出了根据本发明的一个实施例的用于分布式计算环境中的工作负载的自动对角缩放的示例性方法400。在各种实施例中,方法400(以及下文讨论的附加方法)可以根据本发明在图1-图3中描绘的任何环境中执行。当然,如本领域技术人员在阅读本说明书时将理解的,方法400中可以包括比图4中具体描述的操作更多或更少的操作。
方法400(以及下文讨论的附加方法)的每个步骤可以由操作环境的任何合适的组件来执行。例如,在各种实施例中,方法400可以部分地或完全地由处理器或其中具有一个或多个处理器的一些其他设备执行。可以在任何设备中利用处理器(例如,以硬件和/或软件实现的并且优选地具有至少一个硬件组件的(多个)处理电路、(多个)芯片和/或(多个)模块)来执行方法400的一个或多个步骤。说明性处理器包括但不限于CPU、专用集成电路(ASIC)、现场可编程门阵列(FPGA)等、其组合或本领域已知的任何其它合适的计算设备。
方法400通过定义多个应用中的应用的重要性值而开始(步骤402),其中重要性值表示应用或由应用执行的功能的重要性(步骤404)。配置多个应用之间的从属关系,并且定义从属应用对多个应用中的在先应用的从属关系的重要性值(步骤406)。基于多个应用中的每个应用和其间的相应从属关系的重要性值来计算多个应用中的每个应用的优先级,以用于在分布式计算环境中对分配给每个应用的资源执行对角缩放操作(步骤408)。方法400结束(步骤410)。
对角缩放的一般方法是垂直地缩放应用实例(分配或解除分配资源),并且当应用实例或主机饱和时,或者当应用实例空闲时,水平地缩放(创建或移除应用实例)。在水平缩放之后,继续垂直缩放应用实例。在图5中描述了该实现方式,其示出了描绘对角缩放模型500的组合框图/流程图。
方法500以对应用实例应用垂直缩放操作(步骤504)开始(步骤502)。也就是说,资源被分配给应用实例或从应用实例解除分配,以满足应用实例所必需的资源需求。当应用实例饱和(完全利用)或空闲时,或者当主机饱和时,方法500可以对应用实例应用水平缩放操作(步骤506)。即,在步骤504中执行分配或解除分配资源的垂直缩放并且确定应用实例仍然是完全饱和或空闲时,应用实例然后通过添加或移除其应用实例而被水平缩放。在水平缩放操作(步骤506)之后,如果需要,该方法返回到应用(并且此后继续应用)垂直缩放操作(步骤504)。
图6示出了根据本发明的各方面的描绘用于分布式计算环境中的工作负载的自动对角缩放的方法600的附加流程图。方法600通过自动地跟踪一个或多个应用实例中的每个应用实例的资源消耗并将每个应用实例的消耗与应用实例的资源分配进行比较而开始(步骤602)。然后,方法600通过根据步骤602中的比较结果来计算对应用实例的资源分配的修改操作(增加或减少)(步骤604)而继续。接下来,根据应用和/或应用实例的优先级以及可用资源来细化所计算的修改操作(步骤606)。然后,所计算的修改操作分别被动态地应用于应用实例(步骤608),其中修改操作是各种类型的,如步骤610和612所示。
可以应用的一种类型的操作包括增加或减少分配给特定应用实例的资源分配量和资源限制(步骤610)。这样,当应用的负载增加时,使附加资源可用于特定应用实例。类似地,当特定应用实例的负载缩减时,从特定应用实例解除分配应用实例不需要的或未使用的多余资源。返回到步骤608,可以应用的另一类型的修改操作包括添加、移除、抢占或迁移应用实例(步骤612)。例如,如果应用实例是无状态的,则无状态应用实例可以被容易地移除或抢占。相反,如果应用实例是有状态的,则该应用实例可能更适合于被迁移到计算集群中的备选资源。下面将进一步讨论有状态的应用及其从属关系的处理。
标识资源分配改变的需求
图7A示出了根据本发明的各方面的描绘用于多个资源类型中的每个资源类型的示例性计算机制700的框图。完整的长条表示用于特定应用实例的特定资源的当前分配702(加/减所有累积增量)。计算机制700所描绘的两个水位(watermark)定义相对于当前分配的两层消耗。高水位706定义高层704消耗的下限。如果没有为特定资源定义高水位706,则不为该资源激活放大机制(分配资源的垂直缩放)。
类似地,低水位708定义低层710消耗的上限。如果没有为特定资源定义低水位708,则不为该资源激活缩小机制(解除分配资源的垂直缩放)。在高层704处的持续消耗将触发用于特定应用实例的特定资源的分配的增加,并且再次类似地,在低层710处的持续消耗将触发用于特定应用实例的特定资源的分配的减少。
为了定义持续消耗,规定了用于限定分配改变的时间段。该时间段是具有足够数量的样本在层(高层704或低层710)内保持持续消耗以有资格进行分配改变的时间窗口。该时间段可以是随时间推移的滑动窗口,并且可以具有默认值。进一步定义的是如下的边远样本的百分比。基于这些定义,持续消耗被定义为在所定义的时间窗口的持续时间内在高层704或低层710之外具有不超过边远百分比的样本。例如,假设时间窗口为1小时并且边远百分比为10%,如果至少90%的样本在上一小时处于一个层区域中,则将为相关资源计算适当的增加/减少动作。
资源分配处理中的增加
图7B示出了根据本发明的各方面的描绘用于多个资源类型中的每个资源类型的示例性计算机制730的附加框图。具体地,计算机制730示出了在高层704处标识的持续消耗的情况。
仍然,完整的长条表示用于特定应用实例的特定资源的当前分配702。高层704被示为包括在已检查时间窗口中所有样本减去不超过边远百分比,因此生成用于特定资源和特定应用实例的增加操作。增加操作(将特定资源附加地分配给特定应用实例)可以按下面指定的固定的增量、或按递增的增量、或按自适应的增量来执行。
增加步长732被定义为当前分配702的绝对值或百分比。进一步定义了增加功能类型,其可以用以下可能值进行配置:1)一个步长(默认),其中分配将增加一个步长(例如,增加步长732);2)递增增加(例如,递增增加734),如果增加操作彼此相继,则应用递增增加;或3)自动和自适应的增加,其基于历史数据,如下所述。
没有增加操作的时间段重置递增增加734功能。递增增加734的各种功能可以被配置,例如,可以执行先前增加操作+1步长中的增加值(例如,其中值遵循1个步长、2个步长、3个步长、4个步长、5个步长等的模式)。在另一示例中,可以执行先前增加操作+a线性递增步长中的增加值(例如,其中值遵循1个步长、3个步长、6个步长、10个步长、15个步长、21个步长等的模式)。
在又一示例中,可以执行先前操作×2步长中的增加值(例如,其中值遵循1个步长、2个步长、4个步长、8个步长、16个步长、32个步长等的模式)。进一步定义增加限制736以使用户能够控制最大消耗和相关联的成本。在一些实施例中,可以存在映射到不同时间段(例如,一天中的不同时间段)的多个增加限制,如果资源的成本取决于分配和/或使用资源的时间而变化,则这可能是有用的。为资源和应用实例计算的增加操作将不超过该资源和应用实例的增加限制736的定义的值(或多个值)。每对资源和应用还与一个指示相关联,该指示可以被称为用于增加的关键资源的指示。如果该用于增加的关键资源的指示被设置为真,并且已经达到了资源和应用实例的增加限制736,同时仍然达到高层704消耗,则将采取适当的动作,其中该动作是针对整个应用实例而定义的,并且可以包括应用实例的水平缩放(例如,应用实例的添加)。
资源分配处理中的缩减
图7C示出了根据本发明的各方面的描绘用于多个资源类型中的每个资源类型的示例性计算机制760的附加框图。具体地,计算机制760示出了在低层710处标识的持续消耗的情况。
仍然,完整的长条表示用于特定应用实例的特定资源的当前分配702。低层710被示为包括在已检查时间窗口中所有样本减去不超过边远百分比,因此生成用于特定资源和特定应用实例的缩减操作。可以按固定的减量、或按最大的减量、或按递增的减量、或按自适应的减量来执行缩减操作(从特定应用实例解除特定资源的分配),如接下来所规定的。
缩减步长762被定义为当前分配702的绝对值或百分比。进一步定义的是缩减功能类型,其可以用以下可能值进行配置:1)一个步长(默认),其中分配将缩减一个步长(例如,缩减步长762);2)最大缩减,其中将应用分配的缩减使分配降至限定缩减限制766的上限;3)递增缩减(例如,递增缩减764),如果缩减操作彼此相继,则应用递增缩减;或4)自动和自适应的缩减,其基于历史数据,如下所述。
没有缩减操作的时间段重置递增缩减764功能。可以配置递增缩减764的各种功能,例如,可以执行先前缩减操作+1步长中的缩减值(例如,其中值遵循1个步长、2个步长、3个步长、4个步长、5个步长等的模式)。在另一示例中,可以执行先前缩减操作+a线性递增步长中的缩减值(例如,其中值遵循1个步长、3个步长、6个步长、10个步长、15个步长、21个步长等的模式)。
在又一示例中,可以执行先前操作×2步长中的缩减值(例如,其中值遵循1个步长、2个步长、4个步长、8个步长、16个步长、32个步长等的模式)。进一步定义缩减限制766以使得用户能够控制应用实例的特定资源的最小分配。在一些实施例中,可以存在映射到不同时间段(例如,一天中的不同时间段)的多个缩减限制,如果资源成本取决于一天中分配和/或使用资源的时间而变化,则这可能是有用的。为资源和应用实例计算的缩减操作将不会把分配缩减到低于该资源和应用实例的缩减限制766的定义的值(或多个值)。每对资源和应用还与一个指示相关联,该指示可以被称为用于缩减的关键资源的指示。如果该用于缩减的关键资源的指示被设置为真,并且已经达到了对资源和应用实例的缩减限制766,同时仍然达到低层710消耗,则将采取适当的动作,其中该动作是针对整个应用实例定义的,并且可以包括应用实例的水平缩放(例如,应用实例的移除)。
基于历史数据的自动和自适应的增加和缩减
图8示出了根据本发明的各方面的描绘用于基于历史数据自动和自适应地增加和缩减资源的方法800的组合框图/流程图。在步骤802开始,增加或缩减功能类型可以被配置为自动的和自适应的,并且基于由计算集群保持的历史数据806。为了实现该功能,本文的机制维护关于每个应用的每个资源跨时间的消耗水平的历史消耗数据806(步骤804)。当针对应用实例触发增加或缩减操作时(步骤808),基于特定资源、应用和时间的历史消耗数据806来计算预测消耗水平(尽管在历史消耗数据806中可能维护和考虑附加属性)(步骤810)。然后相应地计算增加或缩减操作,以容纳应用的资源的预测消耗水平(步骤812)。方法800结束(步骤814)。
应用级别机制
增加方法
图9示出了根据本发明的方面的描绘示例性对角扩增操作的框图900。操作以基本数量的应用实例(902)开始,其中基本数量也可以是一个应用实例。应用实例902中的每个应用实例可选地用垂直缩放来定义,并且每个应用实例被独立地计算以进行缩放操作。附加选项是定义某一数量的应用实例,在该数量之下将仅执行水平缩放,并且在该数量之上将执行垂直缩放随后执行水平缩放。如果应用实例的这个定义的数量等于应用实例902的基本数量,则首先应用垂直缩放,随后应用水平缩放。这种场景例如对于有状态的应用(具有状态数据)可能是有用的。此外,如果应用实例的这个定义的数量是无限的,则实际上禁用垂直缩放,并且将仅执行水平缩放操作。这种场景例如对于无状态的应用(没有状态数据)是有用的。然而,在所有情况下,所描述的实施例的功能应用缩放需求的自动跟踪和计算。
操作自动地跟踪应用实例(902)中的每个应用实例的资源消耗,并且将每个应用实例的资源消耗与其资源分配进行比较。在应用实例的负载增长的情况下,可以计算增加操作以用于分配给特定应用实例的资源的分配。以下是用于处理应用实例的资源分配的计算的增加操作的若干情况示例:
情况1-资源可用:如果可以在主机上容纳垂直增加(同时考虑资源可用性和应用优先级)并且还没有达到应用实例增加限制736,则将垂直增加操作应用于应用实例(框904),并且随后将垂直增加操作连续应用于还没有超过增加限制736的阈值的应用实例(框906)(注意,应用实例被表示为在垂直增加操作期间变得更大的圆形或椭圆形,从而表示分配给每个相应应用实例的资源量)。
情况2-已经达到增加限制736的应用实例:如果已经达到了资源的应用实例的增加限制736,并且该资源被配置为用于增加的关键资源(框908),则可以利用该应用的已创建的定义数量的应用实例912来进一步水平缩放该应用实例(框910)。附加应用实例可以继承饱和实例的特定资源的当前分配,或者接收资源的新的基本分配。
情况3-达到了主机增加限制:如果主机上的资源完全耗尽(同时另外考虑应用优先级),则可以如下执行一个或多个预定义选项。
第一选项包括通过在其它主机上创建应用的附加实例(诸如在所创建的应用实例912中所示)来执行如上所述的水平缩放。该选项适合于无状态的应用,因为不需要状态数据来创建和/或使其可用于其它或备选主机上的附加应用实例912。
第二选项可以作为第一选项的补充或备选而执行,其包括尝试从其它应用实例获得资源的分配。在该场景下,计算最低优先级和最少负载的应用实例,并且向这些应用实例发送请求以撤回资源的分配。如果在应用实例撤回给需要资源的应用实例的资源分配而未能提供足够的资源分配时,具有资源需要的应用实例可以被迁移到资源可用于分配的另一主机。此外,如果该迁移是不可能的,则随后可以通过在其他主机上创建应用的附加应用实例来如上所述地执行水平缩放。该选项适合于有状态的应用(具有状态数据)。对于有状态的应用,迁移可能比水平缩放更优选,因为这种应用可能不支持关于它们的状态的分布/同步。应用数据也可以与应用实例一起迁移。
图10根据本发明的各方面示出了描绘用于处理如先前在情况场景中描述的用于应用实例的资源分配的计算的增加操作的方法1000的流程图。方法1000通过接收用于应用实例的资源分配的计算的增加操作开始(步骤1002),由于应用实例的工作负载所必需的一个或多个特定资源需求,必须执行该增加操作(步骤1004)。
在步骤1006,确定是否可以在主机上容纳垂直增加(附加资源的分配)以及是否已经达到应用实例的增加限制736。如果在主机上可以容纳垂直增加并且还没有达到应用实例的增加限制736,则方法1000继续通过向应用实例分配(多个)附加资源来向应用实例应用垂直增加操作(步骤1014),并且方法1000结束(步骤1026)。
返回到步骤1006,如果主机上不能容纳垂直增加和/或已经达到应用实例的增加限制736,则进一步确定是否确实达到应用实例的增加限制736,并且如果是,则确定资源是否被配置为用于增加的关键资源(步骤1008)。如果已经达到了对应用实例的增加限制736,并且资源被配置为用于增加的关键资源,则方法1000继续通过添加或创建定义数量的附加应用实例来水平地缩放应用实例(步骤1016),并且方法1000结束(步骤1026)。
返回到步骤1008,如果还没有达到应用实例的增加限制736,或者资源没有被配置为用于增加的关键资源,则在考虑应用的优先级的同时,进一步确定主机上的资源是否耗尽(步骤1010)。如果在步骤1010,在考虑应用的优先级的同时主机上的资源没有耗尽,则方法1000结束(步骤1026)。
返回到步骤1010,如果在考虑应用的优先级的同时主机上的资源耗尽,则进一步确定应用是否是无状态的(步骤1012)。如果在步骤1012,应用被确定是无状态的,则方法1000通过创建和添加定义数量的附加应用实例来继续水平地缩放应用实例以处理其工作负载(步骤1016),并且方法1000结束(步骤1026)。
返回到步骤1012,如果应用被确定是有状态的,则方法1000继续计算主机上最低优先级和最少负载的应用实例,并且对于这些(一个或多个)实例发送请求,以撤回给需要资源的应用实例的所需资源分配(步骤1018)。在完成这个步骤时,确定是否通过将资源重新分配给需要资源的应用实例来满足应用实例资源需求(步骤1020)。如果在步骤1020,应用实例的资源需求被满足,则方法1000结束(步骤1026)。
返回到步骤1020,如果通过将资源重新分配给需要资源的应用实例而不满足资源需求,和/或没有资源能够被(多个)其它(备选)应用实例重新分配给需要资源的应用实例,则尝试将需要资源的应用实例迁移到资源可用于分配的另一主机(步骤1022)。最后,在步骤1024,确定该迁移是否可能,如果是,则迁移成功。如果迁移不可能和/或不成功,则方法1000返回到用创建的定义数量的应用实例(其可以在与基本应用实例相同的主机上或其他主机上)水平地缩放应用实例,并且方法1000结束(步骤1026)。否则,在步骤1024,如果迁移是可能的并且确实成功,则该方法结束(步骤1026)。
为了对先前描述的场景建模并且进一步将其封装到用户配置的策略中,定义了针对达到垂直增加限制或资源耗尽的动作。当至少一个用于增加的关键资源已经达到其对应用实例的增加限制736或者已经在执行应用实例的主机上耗尽,并且针对特定应用实例继续检测到高层704消耗时,执行该动作。可以由用户用以下选项配置该动作:1)通知用户;2)尝试从其它应用实例获取所需资源的资源分配;3)(向(多个)其他或备选主机)迁移应用实例;或者4)执行水平增加。如果用户指定选项4(以执行水平增加操作),则用户可以另外配置要创建的附加应用实例的数量以及对于附加应用实例应用什么资源分配(什么量的什么资源)。该指定的资源分配可以包括当前应用实例的当前分配,或者新创建的应用实例可以被配置为接收每个指定资源的新的基本分配。
缩减方法
缩减方法的目的是从应用实例释放过多的资源,使得这些资源可以被重新使用(例如,用于需要(多个)资源的其它应用实例)。这种缩减的一般方法可以被定义为首先应用垂直缩减操作,随后应用水平缩减操作,其中根据先前描述的资源消耗技术的自动跟踪,对每个资源应用垂直缩减操作。
为了执行水平缩减操作,空闲应用实例借由以下两个可能的定义来定义:
1.系统定义的空闲实例,其中用于缩减的所有关键资源已经达到它们的缩减限制766,并且已经检测到其消耗水平在水平缩减操作的时间段内处于它们各自的低层710。
2.用户定义的空闲实例,其中定义运行用户提供的过程/可执行程序的接口,以确定特定应用实例是否空闲。这种类型的用户逻辑通常对于检查应用实例的负载是有效的。
上述这两种技术可以彼此结合工作。例如,当基于系统定义来标识空闲应用实例时,用户提供的过程可以被另外激活以验证应用实例的状态。因此,当标识出空闲应用实例时,根据先前讨论的技术,可以终止该空闲实例,并且可以释放其分配的资源以便重新用于其它应用实例。此外,用户可以另外配置要为应用保留的实例的最小数量,并且如果配置了这种应用实例的最小数量,则仅当应用实例的当前数量高于所配置的应用实例的最小数量时,空闲应用实例才将被终止。
图11示出了根据本发明的各方面的描绘示例性对角缩减操作的框图1100。操作以当前数量和构成的应用实例(当前数量的应用实例1102)开始。也就是说,操作通过确定应用实例1102的当前数量和分配给每个相应实例的资源量(在图1100中再次由表示每个应用实例的椭圆的大小表示)而开始。监控并跟踪每个当前应用实例1102的资源消耗,并且最终与应用实例的资源分配进行比较(再次注意,为每个相应应用实例单独监控并跟踪每个资源)。在特定应用实例的负载被缩减的情况下,然后可以计算垂直缩减操作,以用于缩减被分配和指派给应用实例的资源量(框1104)。此外,空闲应用实例可以使用先前讨论的方法来标识(空闲实例1106),而其余应用实例可以被标识为活跃的(活跃实例1108)。基于空闲应用实例1106的这种确定,可以终止一些或所有标识的空闲应用实例1106。也就是说,执行水平缩减操作以缩减或终止空闲应用实例1106(框1110)。
为了使用户能够配置上述技术以将应用实例确定为空闲,定义水平缩减动作指示。如果对于应用实例将该指示设置为真,并且如果对于特定应用实例,用于缩减的所有关键资源达到它们的缩减限制766,并且检测到它们对于特定应用实例的消耗水平在有资格进行水平缩减的时间段内维持在低层710,则将采取水平缩减动作。
可以由用户用以下选项配置水平缩减动作:1)通知用户;或者2)终止应用实例(适度地或强制地)。用户进一步定义的是水平缩减的时间段,其包括为了将应用实例确定为空闲而应当满足空闲条件的最小持续时间。
集群级别机制
对角缩放算法
图12示出了根据本发明的各方面的描绘高级对角缩放算法的流程图1200。当考虑图1200时,对角缩放算法的实现目标是根据作为输入提供给应用的实际工作负载、应用的优先级和可用资源来最大化计算集群的应用的吞吐量;并且最小化这些资源的成本。为了实现这些目标,对角缩放算法基于每个应用实例的特定资源的实际消耗来计算资源分配的所需修改,并且随后根据应用优先级和可用资源来计算实际操作。
对角缩放算法开始于计算资源需求的第一阶段(阶段1202)。该阶段包括两个步骤,其中第一步骤(步骤1204)集中在单独应用实例的单独资源的级别。在步骤1204中,算法使用如前所述的方法针对应用实例的每个单独资源确定是否需要改变资源分配。阶段1202中的第二步骤(步骤1206)集中在应用实例级别。在步骤1206中,算法使用如前所述的方法计算每个应用实例的操作需求。这些计算的操作需求包括垂直操作和水平操作,其中,再次,垂直缩放操作增加和减少每个应用实例的单独资源的分配,并且水平缩放操作拆分或折叠应用的实例。拆分应用实例表示创建附加的应用实例,而折叠应用实例表示移除该应用实例。
对角缩放算法然后进行到处理前一步骤中计算的需求的第二阶段(阶段1208)。阶段1208包括两个步骤。阶段1208中的第一步骤(步骤1210)集中在应用的级别。也就是说,在步骤1210中,算法使用如前所述的方法处理在步骤1206中计算的垂直减少和水平折叠操作。阶段1208中的第二步骤(步骤1212)集中在集群级别。因此,在步骤1212中,算法计算或获得应用的优先级,并且基于应用的优先级(例如,使用优先级队列)对垂直增加和水平拆分操作进行排序。下面将进一步讨论优先级和排序。进一步在步骤1212中,算法然后基于排序来处理垂直增加和水平拆分操作,与先前检查的图9-图11的描述一致。
计算用于缩放操作的应用的优先级
图13示出了根据本发明的各方面的描绘用于计算应用优先级的示例性应用拓扑的框图1300。考虑图1300中所示的应用拓扑,其中示出了四个应用,即应用(1)1302、应用(2)1304、应用(3)1306和应用(4)1308。对于应用1302-1308中的每一个,相应的“S[应用]”在本文被定义为相应的应用1302-1308或其执行的功能的重要性(或重要度)。也就是说,应用(1)1302的重要性S[应用1]可以具有比应用(2)1304的重要性S[应用2]更高的重要性(应用本身和/或由应用(1)1302执行的功能),等等。用于该应用重要性的标度可以包括5个示例性级别,然而这些级别可以根据实现方式的需要而修改。在图1300中,应用1302-1308中的每一个与其相应的S[应用]值相关联。
考虑图1300中的应用(1)1302。对于应用(1)1302,图1300示出了应用从属关系的示例,使得在该示例中,应用(2)1304、应用(3)1306、和应用(4)1308各自保持对应用(1)1302的从属关系,另外,应用(1)1302保持对其他应用(未示出)的从属关系。在不失一般性的情况下,假设在该示例中示出了对应用(1)1302的所有从属关系,并且对于每个从属关系,S[从属关系](或S[dpn])被定义为从属应用对在先应用的从属关系的重要性(或重要度)。
在图1300中进一步示出,应用(2)1304、应用(3)1306、应用(4)1308和应用(1)1302之间的从属关系中的每个从属关系与相应的“S[dpn]”值相关联。为了说明两种重要性类型之间的差异,考虑以下两个示例:(1)两个重要的应用,其中一个应用具有另一应用的用途(或从属关系),而该用途是用于低重要度功能;以及(2)两个低重要性应用,其中一个应用使用另一应用,使得该用途促进从属应用的主要功能,因此对于该从属关系具有高重要性值。
用户为每个应用及其从属关系提供重要性值。对角缩放算法标准化这些重要性值,计算应用的优先级,并且当从属关系拓扑改变时或者当添加应用或从集群中移除应用时重新计算优先级。下面是算法计算应用X的优先级的公式:
优先级[应用X]=
A)
W×S[应用X]+
B)
在该公式中,第一元素(A)对应用的重要性进行建模,第二元素(B)对关于应用的从属关系的重要性进行建模。W是应用重要性相对于关于应用的从属关系的重要性的相对权重。W的值的示例范围可以是0到1,并且W可以具有默认值。也可以将重要性值S[应用或从属关系]标准化为0到1的值范围。
为了更清楚并且如上面的公式(元素A和B)所示,可以通过以下步骤来计算应用的优先级:1)将第一元素计算为应用的重要性与第一权重的乘积;2)通过对关于应用的从属关系的重要性与从属应用的重要性的乘积求和、将总和除以除数、并且将结果乘以第二权重来计算第二元素;以及3)将第一元素和第二元素相加。
第二元素中的除数可以以若干方式来定义。下面是用于计算除数的示例实施例:
除数=应用的总数-1
除数=MAX[∑1]
[应用I∈所有应用][应用J∈从属于应用I的应用]
除数=MAX[∑S[应用J]]
[应用I∈所有应用][应用J∈从属于应用I的应用]
除数=MAX[∑S[从属关系J→I]]×S[应用J]
[应用I∈所有应用][应用J∈从属于应用I的应用]
也就是说,除数可以被计算为1)应用的总数减一,如在第一示例中;2)所有应用当中关于给定应用的从属关系的最大数量;3)在所有应用当中,依赖于应用的应用的重要性值的最大和;和/或4)在所有应用当中,依赖于应用的应用的重要性值与从属关系的重要性值的乘积的最大和。
应当注意,如果重要性值和W都在0到1的范围内,那么用于计算应用的优先级的规定公式针对给定应用生成在0到1的范围内的值。
给定算法具有以下区别特征:(1)该算法考虑了每个从属关系的重要性,而现有方法通常不将任何重要性值与从属关系本身相关联;(2)该算法将应用的重要性与其相应的从属关系的重要性进行组合,而现有方法通常不将待排序的元素与固有或用户感知的重要性相关联;以及(3)该算法能够进行应用优先级的非迭代计算,使得只有当应用拓扑及其从属关系发生改变或者重要性值发生改变时才需要重新计算。现有方法通常使用迭代计算,因为输入不同并且拓扑的类型和规模不同。因此,所提供的算法解决了能够执行高效非迭代计算的拓扑和规模。
示例系统实施例
图14示出了根据本发明的各方面的描述用于分布式计算环境中的工作负载的自动对角缩放的系统实施例的组合框图/流程图1400。
系统的输入是应用规范(框1402)和应用监控信息(框1404)。缩放计算组件(框1406)使用如上所述的应用规范和优先级,结合框1404的监控信息,来计算可以同时执行的缩放操作。然后,缩放计算组件1406将所计算的缩放操作作为任务添加到操作执行队列。
定义两个队列:一个队列用于并行操作(框1408)(即,资源的释放操作),第二个队列用于优先级分配操作(框1410)(即,资源的分配操作)。缩放操作组件(框1412)从操作执行队列1408和1410获得任务,并且执行这些任务。缩放操作组件1412还可以执行以下各项的任何组合:(1)使用系统调度器或资源管理器来计算并应用适当的资源分配和释放操作(框1414);(2)设置或修改在特定主机上运行的应用实例的资源消耗限制(框1416);(3)将应用实例的配置调整到可用于应用实例的更新的资源(例如,增加/减少应用实例内的线程的数量)(框1418);和/或(4)创建和移除应用实例(框1420)。应当注意,缩放操作组件可以是分布式组件,或者使用分布式机制,并且可以同时应用独立的操作。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的相应方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的示例(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到相应计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在相应计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的相应方面。
这里参照根据本发明的实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的相应方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的相应方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
Claims (18)
1.一种用于在分布式计算环境中由至少一个处理器对应用分配优先级以进行对角缩放操作的方法,包括:
定义多个应用中的应用的重要性值,所述重要性值表示应用或由应用执行的功能的重要性;
配置多个应用之间的从属关系;
定义从属应用对多个应用中的在先应用的从属关系的重要性值;以及
基于多个应用中的每个应用和其间的相应从属关系的重要性值来计算多个应用中的每个应用的优先级,以用于在分布式计算环境中对分配给每个应用的资源执行对角缩放操作;
其中,所述对角缩放操作包括垂直缩放操作和水平缩放操作,所述垂直缩放操作给多个应用中的相应应用分配和缩减资源,并且所述水平缩放操作创建或终止多个应用中的相应应用的应用实例。
2.根据权利要求1所述的方法,还包括当以下中的至少一个发生时重新计算所述多个应用中的每个应用的优先级:
改变、添加或移除多个应用中的一个或多个应用之间的从属关系;
向多个应用添加附加应用;以及
从多个应用中移除应用。
3.根据权利要求1所述的方法,还包括通过执行以下中的至少一个来计算所述多个应用中的相应应用的优先级:
将第一元素计算为多个应用中的相应应用的重要性值与第一权重值的乘积;
通过对关于多个应用中的相应应用的相应从属关系的重要性与相应从属应用的重要性值的乘积求和来计算第二元素;
用除数除总和;以及
将结果乘以第二权重值,并且将第一元素和第二元素相加。
4.根据权利要求3所述的方法,还包括执行以下中的至少一个:
将第一权重和第二权重的值的和配置为等于一;
将第一权重和第二权重中的每一个的值配置为在零和一之间;
将应用的重要性值和从属关系的重要性值配置为包括零和一之间的值;以及
配置重要性值以进行标准化。
5.根据权利要求4所述的方法,还包括将所述除数计算为以下中的至少一个:
多个应用的总数减一;
关于所有多个应用当中的每个应用的从属关系的最大数量;
在所有多个应用当中,依赖于每个应用的多个应用中的每个应用的每个重要性值的第一最大和;以及
在所有多个应用当中,依赖于每个应用的多个应用的每个重要性值与关于每个应用的多个从属关系的每个重要性值的乘积的第二最大和。
6.根据权利要求4所述的方法,还包括计算所述多个应用中的每个应用的优先级的优先级值,每个优先级值包括零到一的范围;以及
基于用户输入来设置所述多个应用中的每个应用及其相关的每个相应从属关系的每个重要性值。
7.一种用于在分布式计算环境中对应用分配优先级以进行对角缩放操作的系统,所述系统包括:
至少一个处理器,其耦合到存储计算机可读程序指令的存储器,所述计算机可读程序指令在被执行时使所述至少一个处理器:
定义多个应用中的应用的重要性值,所述重要性值表示应用或由应用执行的功能的重要性;
配置多个应用之间的从属关系;
定义从属应用对多个应用中的在先应用的从属关系的重要性值;以及
基于多个应用中的每个应用和其间的相应从属关系的重要性值来计算多个应用中的每个应用的优先级,以用于在分布式计算环境中对分配给每个应用的资源执行对角缩放操作;
其中,所述对角缩放操作包括垂直缩放操作和水平缩放操作,所述垂直缩放操作给多个应用中的相应应用分配和缩减资源,并且所述水平缩放操作创建或终止多个应用中的相应应用的应用实例。
8.根据权利要求7所述的系统,其中,当发生以下中的至少一个时,所述至少一个处理器重新计算所述多个应用中的每个应用的优先级:
改变、添加或移除多个应用中的一个或多个应用之间的从属关系;
向多个应用添加附加应用;以及
从多个应用中移除应用。
9.根据权利要求7所述的系统,其中,所述至少一个处理器通过执行以下中的至少一个来计算所述多个应用中的相应应用的优先级:
将第一元素计算为多个应用中的相应应用的重要性值与第一权重值的乘积;
通过对关于多个应用中的相应应用的相应从属关系的重要性与相应从属应用的重要性值的乘积求和来计算第二元素;
用除数除总和;以及
将结果乘以第二权重值,并且将第一元素和第二元素相加。
10.根据权利要求9所述的系统,其中,所述至少一个处理器执行以下中的至少一个:
将第一权重和第二权重的值的和配置为等于一;
将第一权重和第二权重中的每一个的值配置为在零和一之间;
将应用的重要性值和从属关系的重要性值配置为包括零和一之间的值;以及
配置重要性值以进行标准化。
11.根据权利要求10所述的系统,其中,所述至少一个处理器将所述除数计算为以下中的至少一个:
多个应用的总数减一;
关于所有多个应用当中的每个应用的从属关系的最大数量;
在所有多个应用当中,依赖于每个应用的多个应用中的每个应用的每个重要性值的第一最大和;以及
在所有多个应用当中,依赖于每个应用的多个应用的每个重要性值与关于每个应用的多个从属关系的每个重要性值的乘积的第二最大和。
12.根据权利要求10所述的系统,其中,所述至少一个处理器计算所述多个应用中的每个应用的优先级的优先级值,每个优先级值包括零到一的范围;以及
基于用户输入来设置所述多个应用中的每个应用及其相关的每个相应从属关系的每个重要性值。
13.一种用于在分布式计算环境中由至少一个处理器对应用分配优先级以进行对角缩放操作的计算机可读存储介质,所述计算机可读存储介质存储有计算机可读程序代码部分,所述计算机可读程序代码部分包括:
定义多个应用中的应用的重要性值的可执行部分,所述重要性值表示应用或由应用执行的功能的重要性;
配置多个应用之间的从属关系的可执行部分;
定义从属应用对多个应用中的在先应用的从属关系的重要性值的可执行部分;以及
基于多个应用中的每个应用和其间的相应从属关系的重要性值来计算多个应用中的每个应用的优先级以用于在分布式计算环境中对分配给每个应用的资源执行对角缩放操作的可执行部分;
其中,所述对角缩放操作包括垂直缩放操作和水平缩放操作,所述垂直缩放操作给多个应用中的相应应用分配和缩减资源,并且所述水平缩放操作创建或终止多个应用中的相应应用的应用实例。
14.根据权利要求13所述的计算机可读存储介质,还包括当发生以下中的至少一个时重新计算所述多个应用中的每个应用的优先级的可执行部分,:
改变、添加或移除多个应用中的一个或多个应用之间的从属关系;
向多个应用添加附加应用;以及
从多个应用中移除应用。
15.根据权利要求13所述的计算机可读存储介质,还包括通过执行以下中的至少一个来计算所述多个应用中的相应应用的优先级的可执行部分:
将第一元素计算为多个应用中的相应应用的重要性值与第一权重值的乘积;
通过对关于多个应用中的相应应用的相应从属关系的重要性与相应从属应用的重要性值的乘积求和来计算第二元素;
用除数除总和;以及
将结果乘以第二权重值,并且将第一元素和第二元素相加。
16.根据权利要求15所述的计算机可读存储介质,还包括执行以下中的至少一个的可执行部分:
将第一权重和第二权重的值的和配置为等于一;
将第一权重和第二权重中的每一个的值配置为在零和一之间;
将应用的重要性值和从属关系的重要性值配置为包括零和一之间的值;以及
配置重要性值以进行标准化。
17.根据权利要求16所述的计算机可读存储介质,还包括将所述除数计算为以下中的至少一个的可执行部分:
多个应用的总数减一;
关于所有多个应用当中的每个应用的从属关系的最大数量;
在所有多个应用当中,依赖于每个应用的多个应用中的每个应用的每个重要性值的第一最大和;以及
在所有多个应用当中,依赖于每个应用的多个应用的每个重要性值与关于每个应用的多个从属关系的每个重要性值的乘积的第二最大和。
18.根据权利要求16所述的计算机可读存储介质,还包括计算所述多个应用中的每个应用的优先级的优先级值的可执行部分,每个优先级值包括零到一的范围;以及
基于用户输入来设置所述多个应用中的每个应用及其相关的每个相应从属关系的每个重要性值的可执行部分。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/819,291 US10733015B2 (en) | 2017-11-21 | 2017-11-21 | Prioritizing applications for diagonal scaling in a distributed computing environment |
US15/819,291 | 2017-11-21 | ||
PCT/IB2018/058673 WO2019102287A1 (en) | 2017-11-21 | 2018-11-05 | Prioritizing applications for diagonal scaling in a distributed computing environment |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111373372A CN111373372A (zh) | 2020-07-03 |
CN111373372B true CN111373372B (zh) | 2024-02-13 |
Family
ID=66532996
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880075049.XA Active CN111373372B (zh) | 2017-11-21 | 2018-11-05 | 在分布式计算环境中对应用分配优先级以进行对角缩放 |
Country Status (6)
Country | Link |
---|---|
US (1) | US10733015B2 (zh) |
JP (1) | JP7119082B2 (zh) |
CN (1) | CN111373372B (zh) |
DE (1) | DE112018005268T5 (zh) |
GB (1) | GB2581754A (zh) |
WO (1) | WO2019102287A1 (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10884801B2 (en) | 2019-02-26 | 2021-01-05 | Sap Se | Server resource orchestration based on application priority |
US10884800B2 (en) | 2019-02-26 | 2021-01-05 | Sap Se | Server resource balancing using a suspend-resume strategy |
US11307898B2 (en) | 2019-02-26 | 2022-04-19 | Sap Se | Server resource balancing using a dynamic-sharing strategy |
US11126466B2 (en) * | 2019-02-26 | 2021-09-21 | Sap Se | Server resource balancing using a fixed-sharing strategy |
US11042402B2 (en) | 2019-02-26 | 2021-06-22 | Sap Se | Intelligent server task balancing based on server capacity |
CN110673635B (zh) * | 2019-09-30 | 2021-10-26 | 华南理工大学 | 一种基于无线能量传输网络的无人机三维轨迹的设计方法 |
US11966787B2 (en) * | 2021-03-31 | 2024-04-23 | Mcafee Llc | Dynamic process criticality scoring |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491351A (zh) * | 2016-06-13 | 2017-12-19 | 阿里巴巴集团控股有限公司 | 一种基于优先级的资源分配方法、装置和设备 |
Family Cites Families (91)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5978771A (en) | 1996-08-08 | 1999-11-02 | Vandivier, Iii; John Carl | Method for tracking natural resources in a resource allocation system |
US6910210B1 (en) * | 1998-11-24 | 2005-06-21 | Microsoft Corp. | System and method for terminating applications |
US7017162B2 (en) | 2001-07-10 | 2006-03-21 | Microsoft Corporation | Application program interface for network software platform |
JP4509804B2 (ja) | 2003-01-14 | 2010-07-21 | テレフオンアクチーボラゲット エル エム エリクソン(パブル) | リソース割り当て管理 |
JP4071668B2 (ja) | 2003-04-16 | 2008-04-02 | 富士通株式会社 | システムの使用資源を調整する装置および方法 |
JP3889726B2 (ja) | 2003-06-27 | 2007-03-07 | 株式会社東芝 | スケジューリング方法および情報処理システム |
US7590736B2 (en) | 2003-06-30 | 2009-09-15 | Microsoft Corporation | Flexible network load balancing |
US7779065B2 (en) * | 2003-09-18 | 2010-08-17 | Sanyogita Gupta | Dynamic cost network routing |
GB0329420D0 (en) | 2003-12-19 | 2004-01-21 | Ibm | Tuning an interactive voice response system |
JP2006011860A (ja) | 2004-06-25 | 2006-01-12 | Fujitsu Ltd | システム構成管理プログラム及びシステム構成管理装置 |
US7523092B2 (en) | 2004-12-14 | 2009-04-21 | International Business Machines Corporation | Optimization of aspects of information technology structures |
US8997102B2 (en) * | 2005-06-03 | 2015-03-31 | Hewlett-Packard Development Company, L.P. | Prioritization of processes for deactivating processes to reduce memory pressure condition |
US8429630B2 (en) | 2005-09-15 | 2013-04-23 | Ca, Inc. | Globally distributed utility computing cloud |
US8286174B1 (en) | 2006-04-17 | 2012-10-09 | Vmware, Inc. | Executing a multicomponent software application on a virtualized computer platform |
US8584131B2 (en) | 2007-03-30 | 2013-11-12 | International Business Machines Corporation | Method and system for modeling and analyzing computing resource requirements of software applications in a shared and distributed computing environment |
US20080313639A1 (en) | 2007-06-13 | 2008-12-18 | Krishna Kumar | Policy based scheduling of software applications |
US9354960B2 (en) | 2010-12-27 | 2016-05-31 | Red Hat, Inc. | Assigning virtual machines to business application service groups based on ranking of the virtual machines |
WO2009061432A1 (en) | 2007-11-06 | 2009-05-14 | Credit Suisse Securities (Usa) Llc | Predicting and managing resource allocation according to service level agreements |
US9069599B2 (en) | 2008-06-19 | 2015-06-30 | Servicemesh, Inc. | System and method for a cloud computing abstraction layer with security zone facilities |
US8271974B2 (en) | 2008-10-08 | 2012-09-18 | Kaavo Inc. | Cloud computing lifecycle management for N-tier applications |
KR101040680B1 (ko) | 2008-11-27 | 2011-06-10 | 주식회사 포스코건설 | 에너지 절약설계 적용의 우선순위를 결정하기 위한 프로그램이 기록된 기록매체, 및 이러한 프로그램이 설치된에너지 절약설계 적용의 우선순위 결정시스템 |
US8595740B2 (en) | 2009-03-31 | 2013-11-26 | Microsoft Corporation | Priority-based management of system load level |
US10191778B1 (en) | 2015-11-16 | 2019-01-29 | Turbonomic, Inc. | Systems, apparatus and methods for management of software containers |
US9858123B1 (en) | 2014-11-10 | 2018-01-02 | Turbonomic, Inc. | Moving resource consumers in computer systems |
US10346775B1 (en) | 2015-11-16 | 2019-07-09 | Turbonomic, Inc. | Systems, apparatus and methods for cost and performance-based movement of applications and workloads in a multiple-provider system |
US9329951B2 (en) | 2009-07-31 | 2016-05-03 | Paypal, Inc. | System and method to uniformly manage operational life cycles and service levels |
JP5378946B2 (ja) | 2009-10-26 | 2013-12-25 | 株式会社日立製作所 | サーバ管理装置およびサーバ管理方法 |
US20110119312A1 (en) | 2009-11-15 | 2011-05-19 | Arjun Chopra | System and method for automated scalability of n-tier computer applications |
US8719415B1 (en) | 2010-06-28 | 2014-05-06 | Amazon Technologies, Inc. | Use of temporarily available computing nodes for dynamic scaling of a cluster |
US10192246B2 (en) | 2010-11-24 | 2019-01-29 | Red Hat, Inc. | Generating multi-cloud incremental billing capture and administration |
US20120173709A1 (en) | 2011-01-05 | 2012-07-05 | Li Li | Seamless scaling of enterprise applications |
US8548790B2 (en) | 2011-01-07 | 2013-10-01 | International Business Machines Corporation | Rapidly determining fragmentation in computing environments |
US8396730B2 (en) | 2011-02-14 | 2013-03-12 | Raytheon Company | System and method for resource allocation and management |
US8832687B2 (en) | 2011-04-20 | 2014-09-09 | Red Hat Israel, Ltd. | Managing quotas in a distributed virtualization environment |
US8595267B2 (en) | 2011-06-27 | 2013-11-26 | Amazon Technologies, Inc. | System and method for implementing a scalable data storage service |
US8908507B2 (en) | 2011-07-21 | 2014-12-09 | Movik Networks | RAN analytics, control and tuning via multi-protocol, multi-domain, and multi-RAT analysis |
US9225772B2 (en) | 2011-09-26 | 2015-12-29 | Knoa Software, Inc. | Method, system and program product for allocation and/or prioritization of electronic resources |
US9329904B2 (en) | 2011-10-04 | 2016-05-03 | Tier 3, Inc. | Predictive two-dimensional autoscaling |
US8756609B2 (en) | 2011-12-30 | 2014-06-17 | International Business Machines Corporation | Dynamically scaling multi-tier applications vertically and horizontally in a cloud environment |
US20130185729A1 (en) | 2012-01-13 | 2013-07-18 | Rutgers, The State University Of New Jersey | Accelerating resource allocation in virtualized environments using workload classes and/or workload signatures |
US9055067B1 (en) | 2012-03-26 | 2015-06-09 | Amazon Technologies, Inc. | Flexible-location reservations and pricing for network-accessible resource capacity |
US9223623B2 (en) | 2012-03-28 | 2015-12-29 | Bmc Software, Inc. | Dynamic service resource control |
CA2872051A1 (en) * | 2012-05-01 | 2013-11-07 | Agora Mobile Inc. | System and method for providing an application development and distribution social platform |
US9069606B2 (en) | 2012-05-08 | 2015-06-30 | Adobe Systems Incorporated | Autonomous application-level auto-scaling in a cloud |
US10069707B2 (en) | 2012-05-29 | 2018-09-04 | Openet Telecom Ltd. | System and method for seamless horizontal scaling using logical scalable units |
US8805921B2 (en) | 2012-08-20 | 2014-08-12 | International Business Machines Corporation | System and method supporting application solution composition on cloud |
US20140122695A1 (en) | 2012-10-31 | 2014-05-01 | Rawllin International Inc. | Dynamic resource allocation for network content delivery |
US9442954B2 (en) | 2012-11-12 | 2016-09-13 | Datawise Systems | Method and apparatus for achieving optimal resource allocation dynamically in a distributed computing environment |
US9503310B1 (en) | 2012-11-27 | 2016-11-22 | Leidos, Inc. | Methods and systems of dynamic management of resources in a virtualized environment |
US20140164477A1 (en) | 2012-12-06 | 2014-06-12 | Gary M. Springer | System and method for providing horizontal scaling of stateful applications |
US20140195673A1 (en) | 2013-01-10 | 2014-07-10 | Hewlett-Packard Development Company, L.P. | DYNAMICALLY BALANCING EXECUTION RESOURCES TO MEET A BUDGET AND A QoS of PROJECTS |
US9804890B1 (en) | 2013-02-15 | 2017-10-31 | Amazon Technologies, Inc. | Termination policies for scaling compute resources |
US20140325070A1 (en) | 2013-04-24 | 2014-10-30 | Zynga Inc. | Usage consumption for an invitee of a cloud system |
CN104142860A (zh) | 2013-05-10 | 2014-11-12 | 中国电信股份有限公司 | 应用服务系统的资源调整方法与装置 |
US10552745B2 (en) | 2013-10-18 | 2020-02-04 | Netflix, Inc. | Predictive auto scaling engine |
CN103559072B (zh) | 2013-10-22 | 2016-08-17 | 无锡中科方德软件有限公司 | 虚拟机双向自动伸缩服务实现方法及其系统 |
US20150169339A1 (en) | 2013-12-13 | 2015-06-18 | International Business Machines Corporation | Determining Horizontal Scaling Pattern for a Workload |
US9246840B2 (en) | 2013-12-13 | 2016-01-26 | International Business Machines Corporation | Dynamically move heterogeneous cloud resources based on workload analysis |
US10469564B2 (en) | 2014-01-21 | 2019-11-05 | International Business Machines Corporation | Management of unreturned system pool resources |
US9871741B2 (en) | 2014-03-10 | 2018-01-16 | Microsoft Technology Licensing, Llc | Resource management based on device-specific or user-specific resource usage profiles |
TWI552002B (zh) | 2014-04-22 | 2016-10-01 | 財團法人工業技術研究院 | 公共雲資源動態配置方法及系統 |
WO2015197564A1 (en) | 2014-06-23 | 2015-12-30 | Getclouder Ltd. | Cloud hosting systems featuring scaling and load balancing with containers |
US9575794B2 (en) | 2014-09-30 | 2017-02-21 | Nicira, Inc. | Methods and systems for controller-based datacenter network sharing |
US9547534B2 (en) | 2014-10-10 | 2017-01-17 | International Business Machines Corporation | Autoscaling applications in shared cloud resources |
US9871745B2 (en) * | 2014-11-12 | 2018-01-16 | International Business Machines Corporation | Automatic scaling of at least one user application to external clouds |
US20170011299A1 (en) | 2014-11-13 | 2017-01-12 | Purdue Research Foundation | Proactive spatiotemporal resource allocation and predictive visual analytics system |
US10355934B2 (en) | 2014-12-03 | 2019-07-16 | Amazon Technologies, Inc. | Vertical scaling of computing instances |
US9413626B2 (en) | 2014-12-05 | 2016-08-09 | Amazon Technologies, Inc. | Automatic management of resource sizing |
JP6424632B2 (ja) | 2015-01-08 | 2018-11-21 | 富士通株式会社 | 負荷算出方法、負荷算出プログラム及び負荷算出装置 |
CN104580524A (zh) | 2015-01-30 | 2015-04-29 | 华为技术有限公司 | 一种云平台上的资源伸缩方法和一种云平台 |
US9848041B2 (en) | 2015-05-01 | 2017-12-19 | Amazon Technologies, Inc. | Automatic scaling of resource instance groups within compute clusters |
CN107533484B (zh) | 2015-05-07 | 2021-03-02 | 华为技术有限公司 | 用于动态管理虚拟网络功能描述符的系统和方法 |
US9612865B2 (en) * | 2015-06-15 | 2017-04-04 | International Business Machines Corporation | Managed services coordinator |
US9880880B2 (en) | 2015-06-26 | 2018-01-30 | Amazon Technologies, Inc. | Automatic scaling of computing resources using aggregated metrics |
US10778765B2 (en) | 2015-07-15 | 2020-09-15 | Cisco Technology, Inc. | Bid/ask protocol in scale-out NVMe storage |
US10244102B2 (en) * | 2015-08-20 | 2019-03-26 | Samsung Electronics Co., Ltd. | Method and apparatus for managing application data usage |
US9852035B2 (en) * | 2015-08-25 | 2017-12-26 | International Business Machines Corporation | High availability dynamic restart priority calculator |
CN106168910B (zh) | 2015-11-16 | 2019-11-08 | 华扬联众数字技术股份有限公司 | 程序调度和执行的方法、系统以及调度器和执行器 |
WO2017143548A1 (zh) | 2016-02-25 | 2017-08-31 | 华为技术有限公司 | 用于应用自动化部署的方法和云管理节点 |
EP3226134B1 (en) | 2016-04-01 | 2021-02-24 | Alcatel Lucent | A method and system for scaling resources, and a computer program product |
CN107301093B (zh) * | 2016-04-15 | 2021-02-09 | 华为技术有限公司 | 一种管理资源的方法和装置 |
US10585693B2 (en) | 2016-09-30 | 2020-03-10 | Uchicago Argonne, Llc | Systems and methods for metric driven deployments to cloud service providers |
US10762077B2 (en) * | 2016-10-28 | 2020-09-01 | Servicenow, Inc. | System and method for generating aggregate data |
US10304153B2 (en) | 2016-11-07 | 2019-05-28 | Vmware, Inc. | Virtual machine graphic resource usage |
US10778384B2 (en) | 2016-12-20 | 2020-09-15 | Verizon Patent And Licensing Inc. | System and method for improved capacity using channel multiplexing |
US10719872B2 (en) | 2017-01-10 | 2020-07-21 | International Business Machines Corporation | Bid advising in resource allocation data analytics frameworks |
US10356176B2 (en) | 2017-02-17 | 2019-07-16 | Dell Products L.P. | Placement of application services in converged infrastructure information handling systems |
US10560345B2 (en) | 2017-02-21 | 2020-02-11 | Dell Products L.P. | Consistent placement between private and public cloud deployments of application services |
US10873541B2 (en) | 2017-04-17 | 2020-12-22 | Microsoft Technology Licensing, Llc | Systems and methods for proactively and reactively allocating resources in cloud-based networks |
US11005733B2 (en) | 2017-06-08 | 2021-05-11 | Vmware, Inc | Methods, systems, and apparatus to scale in and/or scale out resources managed by a cloud automation system |
US11405300B2 (en) | 2017-06-20 | 2022-08-02 | Vmware, Inc. | Methods and systems to adjust resources and monitoring configuration of objects in a distributed computing system |
-
2017
- 2017-11-21 US US15/819,291 patent/US10733015B2/en active Active
-
2018
- 2018-11-05 JP JP2020524238A patent/JP7119082B2/ja active Active
- 2018-11-05 GB GB2008803.5A patent/GB2581754A/en not_active Withdrawn
- 2018-11-05 CN CN201880075049.XA patent/CN111373372B/zh active Active
- 2018-11-05 WO PCT/IB2018/058673 patent/WO2019102287A1/en active Application Filing
- 2018-11-05 DE DE112018005268.0T patent/DE112018005268T5/de not_active Ceased
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107491351A (zh) * | 2016-06-13 | 2017-12-19 | 阿里巴巴集团控股有限公司 | 一种基于优先级的资源分配方法、装置和设备 |
Also Published As
Publication number | Publication date |
---|---|
JP7119082B2 (ja) | 2022-08-16 |
CN111373372A (zh) | 2020-07-03 |
US20190155644A1 (en) | 2019-05-23 |
GB2581754A (en) | 2020-08-26 |
US10733015B2 (en) | 2020-08-04 |
WO2019102287A1 (en) | 2019-05-31 |
JP2021504780A (ja) | 2021-02-15 |
GB202008803D0 (en) | 2020-07-22 |
DE112018005268T5 (de) | 2020-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111373372B (zh) | 在分布式计算环境中对应用分配优先级以进行对角缩放 | |
US10394477B2 (en) | Method and system for memory allocation in a disaggregated memory architecture | |
US9389798B2 (en) | Dynamic reconfiguration of storage system | |
US10721179B2 (en) | Adaptive resource allocation operations based on historical data in a distributed computing environment | |
US9612878B2 (en) | Resource allocation in job scheduling environment | |
US10339152B2 (en) | Managing software asset environment using cognitive distributed cloud infrastructure | |
US20200082316A1 (en) | Cognitive handling of workload requests | |
US10102033B2 (en) | Method and system for performance ticket reduction | |
CN111373374B (zh) | 分布式计算环境中的工作负载的自动对角缩放 | |
US10635501B2 (en) | Adaptive scaling of workloads in a distributed computing environment | |
JP2023545970A (ja) | エンタープライズ・レベルのビッグ・データ・ワークロード向けのクエリ・エンジンの自動スケーリング | |
US10990519B2 (en) | Multi-tenant cloud elastic garbage collector | |
CN116414518A (zh) | Kubernetes上的大数据的数据局部性 | |
CN116097236A (zh) | 用于混合云环境中工作负载的自动管理的可扩展算子 | |
US10893000B2 (en) | Diagonal scaling of resource allocations and application instances in a distributed computing environment | |
US20170285965A1 (en) | Tuning memory across database clusters for distributed query stability | |
US10956228B2 (en) | Task management using a virtual node | |
US10887250B2 (en) | Reducing resource allocations and application instances in diagonal scaling in a distributed computing environment | |
US20210373925A1 (en) | Schedule virtual machines | |
WO2024099246A1 (en) | Container cross-cluster capacity scaling | |
KR20160063430A (ko) | 가상머신 리소스 사전예약을 통한 가용 리소스 자원 관리 및 할당 방법 | |
US20230185604A1 (en) | Cold-start service placement over on-demand resources |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |