CN117170855A - 一种业务集群的伸缩方法及相关设备 - Google Patents
一种业务集群的伸缩方法及相关设备 Download PDFInfo
- Publication number
- CN117170855A CN117170855A CN202210589198.6A CN202210589198A CN117170855A CN 117170855 A CN117170855 A CN 117170855A CN 202210589198 A CN202210589198 A CN 202210589198A CN 117170855 A CN117170855 A CN 117170855A
- Authority
- CN
- China
- Prior art keywords
- resource group
- instances
- expansion
- examples
- management system
- 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
- 238000000034 method Methods 0.000 title claims abstract description 58
- 238000004891 communication Methods 0.000 claims description 22
- 230000015654 memory Effects 0.000 claims description 18
- 230000001960 triggered effect Effects 0.000 claims description 8
- 238000004590 computer program Methods 0.000 claims description 6
- 238000012544 monitoring process Methods 0.000 abstract description 14
- 238000007726 management method Methods 0.000 description 54
- 230000008859 change Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 10
- 230000008602 contraction Effects 0.000 description 8
- 238000005457 optimization Methods 0.000 description 7
- 230000008569 process Effects 0.000 description 7
- 238000004088 simulation Methods 0.000 description 7
- 230000003247 decreasing effect Effects 0.000 description 6
- 230000006870 function Effects 0.000 description 6
- 239000002699 waste material Substances 0.000 description 6
- 238000012545 processing Methods 0.000 description 5
- 238000012549 training Methods 0.000 description 5
- 238000001595 flow curve Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 230000002411 adverse Effects 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 235000012054 meals Nutrition 0.000 description 1
- 238000003062 neural network model Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000006403 short-term memory Effects 0.000 description 1
- 238000010200 validation analysis Methods 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- 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
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种业务集群的伸缩方法,业务集群包括至少一个资源组,每个资源组包括运行应用的至少一个实例,该方法包括:伸缩管理系统获取应用在当前周期的业务流量,根据应用在当前周期的业务流量,获取应用的资源组在下一周期的预测伸缩策略,当应用的资源组在下一周期的预测伸缩策略相对于应用在当前周期的伸缩策略有更新时,伸缩管理系统在下一周期执行预测伸缩策略。由于基于实时的业务流量预测下一周期的资源需求,从而周期性地输出预测伸缩策略。在下一周期的预测伸缩策略相对于当前周期的伸缩策略有更新时,在下一周期主动执行预测伸缩策略,无需被动等待监控指标达到告警阈值,提高了资源利用率。
Description
技术领域
本申请涉及云计算技术领域,尤其涉及一种业务集群的伸缩方法、伸缩管理系统以及计算机集群、计算机可读存储介质、计算机程序产品。
背景技术
应用程序(application program),也可以简称为应用(application,app),是指为针对用户的某种特殊应用目的所撰写的程序,例如文本处理器、表格、会计应用、媒体播放器、航空飞行模拟器、命令行游戏、图像编辑器等。
随着业务流量的增多,应用的压力越来越大,为此可以采用集群化部署方式,并调整应用的部署量以应对高并发。然而,业务流量并非一成不变的,当业务流量减少时,应用部署过多反而造成资源的浪费,此时需要减少部署量来降低资源的消耗。
目前,业界主要采用配置告警策略的方式弹性伸缩集群。具体地,业务集群包括至少一个资源组,每个资源组包括运行应用的至少一个实例。针对资源组中的实例设置有监控指标,以用于监控实例的性能。该监控指标例如可以为中央处理器(central processingunit,CPU)利用率。当资源组中实例的平均CPU利用率达到设定的告警阈值时触发业务集群的伸缩。其中,业务集群的伸缩包括增加资源组中实例的数量(即增加应用的部署量,简称为扩容),或者是缩减资源组中实例的数量(即减少应用的部署量,简称为缩容)。
然而,上述方案是在监控指标(如平均CPU利用率)达到告警阈值时进行业务集群的伸缩,如此存在一定时延,在极端情况下,可能存在增加资源组中实例的数量不及时导致对业务造成不良影响的风险。为此,告警策略中的伸缩策略通常比较保守。例如,伸缩策略可以设置为平均CPU利用率在连续三个周期均低于25%,则减少2个实例,伸缩策略还可以设置为平均CPU利用率在一个周期高于55%,则增加5个实例。
如此,在缩减资源组中实例的数量时,若业务流量快速下降,部分资源不能及时回收导致资源浪费,在增加资源组中实例的数量时,由于按照较大步长增加实例,也导致资源浪费。
发明内容
本申请提供了一种业务集群的伸缩方法,该方法通过获取实时的业务流量,基于实时的业务流量预测下一周期的资源需求,从而周期性地输出预测伸缩策略,在下一周期的预测伸缩策略相对于当前周期的伸缩策略有更新时,在下一周期主动执行该预测伸缩策略,无需被动等待监控指标达到告警阈值,如此在保障业务良好运行时,避免了资源浪费,提高了资源利用率。
第一方面,本申请提供了一种业务集群的伸缩方法。该方法可以由伸缩管理系统执行。该伸缩管理系统可以是软件系统,软件系统可以部署在云平台的计算机集群中,计算机集群运行上述软件系统,从而执行本申请实施例的业务集群的伸缩方法。在一些实施例中,该伸缩管理系统也可以是硬件系统。该硬件系统可以包括云平台中的一台或多台计算机。该硬件系统运行时,执行本申请实施例的业务集群的伸缩方法。
具体地,业务集群包括至少一个资源组,每个资源组包括运行应用的至少一个实例。伸缩管理系统可以获取应用在当前周期的业务流量,根据所述应用在当前周期的业务流量,获取所述应用的资源组在下一周期的预测伸缩策略,当所述应用的资源组在下一周期的预测伸缩策略相对于所述应用在当前周期的伸缩策略有更新时,所述伸缩管理系统在下一周期执行所述预测伸缩策略。
在该方法中,伸缩管理系统通过获取应用在当前周期的业务流量,基于实时的业务流量预测下一周期的资源需求,从而周期性地输出预测伸缩策略。在下一周期的预测伸缩策略相对于当前周期的伸缩策略有更新时,在下一周期主动执行预测伸缩策略,无需被动等待监控指标达到告警阈值,更不需要在连续多个周期达到第一告警阈值后以较小幅度缩减资源组中实例的数量,或者在一个周期达到第二告警阈值后以最大幅度增加资源组中实例的数量,如此避免了资源浪费,提高了资源利用率。
在一些可能的实现方式中,所述至少一个实例包括容器实例或虚拟机实例。相应地,所述伸缩管理系统可以根据所述预测伸缩策略,在下一周期调整所述资源组中实例的数量,从而实现弹性伸缩业务集群,以满足业务的不同需求。
在一些可能的实现方式中,所述伸缩管理系统在下一周期执行所述预测伸缩策略时,可以直接在下一周期将所述资源组中实例的数量调整至目标值,或者,在下一周期按照伸缩步长调整所述资源组中实例的数量。在一些实施例中,预测伸缩策略可以包括下一周期的伸缩条件,伸缩管理系统也可以在该伸缩条件被触发时,调整所述资源组中实例的数量。
该方法中,伸缩管理系统可以提供多种伸缩规则对业务集群进行弹性伸缩,能够覆盖多种场景,具有较高可用性。
在一些可能的实现方式中,所述目标值包括最小实例数量和/或最大实例数量。相应地,所述资源组中当前实例数量小于所述最小实例数量时,所述伸缩管理系统在下一周期增加所述资源组中实例的数量至所述最小实例数量。所述资源组中当前实例数量大于所述最大实例数量时,所述伸缩管理系统在下一周期减少所述资源组中实例的数量至所述最大实例数量。
如此可以实现在流量突发时,快速增加资源组中实例的数量,以满足业务需求,避免影响业务,在流量骤降时,快速减少资源组中实例的数量,以回收资源,提高资源利用率。
在一些可能的实现方式中,所述最小实例数量和所述最大实例数量根据所述业务流量以及所述资源组中实例的平均性能值确定。具体地,伸缩管理系统可以根据业务流量、实例数量、性能值之间的关系确定出达到优化目标的实例数量,也即参考数量,然后根据该参考数量确定最小实例数量和最大实例数量。
如此,即使下一周期的实际流量与预测结果存在一定偏差,也可以在最小实例数量和最大实例数量范围内进行弹性伸缩,从而满足业务的需求。
在一些可能的实现方式中,所述资源组中当前实例数量不小于最小实例数量,且不大于最大实例数量时,表示当前实例数量与能够满足优化目标的实例数量接近,伸缩管理系统可以在下一周期按照伸缩步长调整所述资源组中实例的数量,从而实现以微调的方式进行业务集群的弹性伸缩,满足业务的需求。
在一些可能的实现方式中,伸缩管理系统还可以结合被动伸缩实现业务集群的弹性伸缩。具体地,所述伸缩管理系统可以针对不同性能值分别设置不同伸缩步长。所述资源组中实例的平均性能值到达第一性能值时,所述伸缩管理系统在下一周期按照第一伸缩步长调整所述资源组中实例的数量。所述资源组中实例的平均性能值到达第二性能值时,所述伸缩管理系统在下一周期按照第二伸缩步长调整所述资源组中实例的数量。该第二性能值大于第一性能值,第二伸缩步长大于所述第一伸缩步长。
如此可以实现对业务集群的精准伸缩,使得业务集群包括的资源组中实例的平均性能值达到优化目标。
在一些可能的实现方式中,伸缩管理系统获取的应用的资源组在下一周期的预测伸缩策略可以包括下一周期的告警阈值。换言之,不同周期的告警阈值可以是不同的,例如可以随着业务流量变化而变化。相应地,伸缩管理系统可以在所述资源组中实例的平均性能值达到下一周期的告警阈值时,调整所述资源组中实例的数量。
如此,当有流量突发时,可以提前调整资源组中实例的数量,从而保障业务的正常运行,且不浪费资源。
第二方面,本申请提供了一种伸缩管理系统。所述伸缩管理系统用于对业务集群进行伸缩,所述业务集群包括至少一个资源组,每个资源组包括运行应用的至少一个实例,所述系统包括:
通信模块,用于获取所述应用在当前周期的业务流量;
预测模块,用于根据所述应用在当前周期的业务流量,获取所述应用的资源组在下一周期的预测伸缩策略;
伸缩模块,用于当所述应用的资源组在下一周期的预测伸缩策略相对于所述应用在当前周期的伸缩策略有更新时,在下一周期执行所述预测伸缩策略。
在一些可能的实现方式中,所述至少一个实例包括容器实例或虚拟机实例,所述伸缩模块具体用于:
根据所述预测伸缩策略,在下一周期调整所述资源组中实例的数量。
在一些可能的实现方式中,所述伸缩模块具体用于:
在下一周期将所述资源组中实例的数量调整至目标值;或者,
在下一周期按照伸缩步长调整所述资源组中实例的数量;或者
在伸缩条件被触发时,调整所述资源组中实例的数量。
在一些可能的实现方式中,所述目标值包括最小实例数量和/或最大实例数量,所述伸缩模块具体用于:
所述资源组中当前实例数量小于所述最小实例数量时,在下一周期增加所述资源组中实例的数量至所述最小实例数量;或者,
所述资源组中当前实例数量大于所述最大实例数量时,在下一周期减少所述资源组中实例的数量至所述最大实例数量。
在一些可能的实现方式中,所述最小实例数量和所述最大实例数量根据所述业务流量以及所述资源组中实例的平均性能值确定。
在一些可能的实现方式中,所述伸缩模块具体用于:
所述资源组中当前实例数量不小于最小实例数量,且不大于最大实例数量时,在下一周期按照伸缩步长调整所述资源组中实例的数量。
在一些可能的实现方式中,所述伸缩模块具体用于:
所述资源组中至少一个实例的平均性能值到达第一性能值时,在下一周期按照第一伸缩步长调整所述资源组中实例的数量;
所述资源组中至少一个实例的平均性能值到达第二性能值时,在下一周期按照第二伸缩步长调整所述资源组中实例的数量,所述第二性能值大于第一性能值,所述第二伸缩步长大于所述第一伸缩步长。
在一些可能的实现方式中,所述伸缩模块具体用于:
所述资源组中实例的平均性能值达到下一周期的告警阈值时,调整所述资源组中实例的数量。
第三方面,本申请提供一种计算机集群。所述计算机集群包括至少一台计算机,所述至少一台计算机包括至少一个处理器和至少一个存储器。所述至少一个处理器、所述至少一个存储器进行相互的通信。所述至少一个处理器用于执行所述至少一个存储器中存储的指令,以使得计算机集群执行如第一方面或第一方面的任一种实现方式中的方法。
第四方面,本申请提供一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,所述指令指示计算机集群执行上述第一方面或第一方面的任一种实现方式所述的方法。
第五方面,本申请提供了一种包含指令的计算机程序产品,当其在计算机集群上运行时,使得计算机集群执行上述第一方面或第一方面的任一种实现方式所述的方法。
本申请在上述各方面提供的实现方式的基础上,还可以进行进一步组合以提供更多实现方式。
附图说明
为了更清楚地说明本申请实施例的技术方法,下面将对实施例中所需使用的附图作以简单地介绍。
图1A为本申请实施例提供的一种资源调度系统的架构示意图;
图1B为本申请实施例提供的一种资源调度系统的架构示意图;
图2为本申请实施例提供的一种资源调度方法的流程图;
图3为本申请实施例提供的一种资源调度方法的流程图;
图4为本申请实施例提供的一种仿真结果的示意图;
图5为本申请实施例提供的一种计算机集群的硬件结构图。
具体实施方式
本申请实施例中的术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。
首先对本申请实施例中所涉及到的一些技术术语进行介绍。
应用,是指为针对用户的某种特殊应用目的所撰写的程序,例如文本处理器、表格、会计应用、媒体播放器、航空飞行模拟器、命令行游戏、图像编辑器。该程序可以部署在云平台中。
云平台,是指将计算、存储或网络等能力以云服务的方式提供给用户的平台。具体地,云平台可以按需提供计算、存储或网络等能力,以实现集群化方式部署应用。云平台可以构建业务集群,业务集群包括至少一个资源组。每个资源组包括运行应用的至少一个实例(instance)。其中,实例是指运行应用产生的动态代码,该动态代码可以称作进程或线程,进程或线程可以实现相应的应用目的,例如可以实现视频播放、图像编辑等等。云平台可以调整资源组中实例的数量,从而实现弹性调整应用的部署量。如此可以实现在业务流量较高时,增加应用的部署量,以应对应用的高并发,以及在业务流量较低时,减少应用的部署量,以降低资源的消耗,提高资源利用率。
目前,业界主要采用配置告警策略的方式对业务集群进行弹性伸缩。具体地,针对资源组中的实例设置有监控指标,该监控指标例如可以为CPU利用率、内存利用率、输入输出(input output,IO)利用率等性能值。考虑到资源组包括一个或多个实例,还可以确定资源组中实例的平均性能值。当监控指标(如平均CPU利用率等平均性能值)达到设定的告警阈值时触发业务集群的伸缩,以调整应用的部署量。
考虑到监控指标达到告警阈值时进行业务集群的伸缩存在一定时延,在极端情况下,可能存在伸缩不及时导致对业务造成不良影响的风险。告警策略中的伸缩策略通常比较保守。例如,伸缩策略可以设置为平均CPU利用率在连续三个周期均低于25%,则减少2个实例,平均CPU利用率在一个周期高于55%,则增加5个实例。
基于上述伸缩策略,业务流量快速下降的情况下,仍然要等待三个周期才能缩减实例的数量,并且缩减幅度较小,部分资源不能及时回收,导致资源浪费。在业务流量上升的情况下,无论业务流量的增长率(例如为流量曲线的斜率)是否达到峰值,均按照最大幅度增加实例的数量,也可以导致资源浪费。
有鉴于此,本申请实施例提供了一种业务集群的伸缩方法。该方法可以由伸缩管理系统执行。该伸缩管理系统可以是软件系统,软件系统可以部署在云平台的计算机集群中,计算机集群运行上述软件系统,从而执行本申请实施例的业务集群的伸缩方法。在一些实施例中,该伸缩管理系统也可以是硬件系统。该硬件系统可以包括云平台中的一台或多台计算机。该硬件系统运行时,执行本申请实施例的业务集群的伸缩方法。
具体地,业务集群包括至少一个资源组,每个资源组包括运行应用的至少一个实例,伸缩管理系统获取应用在当前周期的业务流量,根据应用在当前周期的业务流量,根据应用在当前周期的业务流量,获取应用的资源组在下一周期的预测伸缩策略,当应用的资源组在下一周期的预测伸缩策略相对于应用在当前周期的伸缩策略有更新时,伸缩管理系统在下一周期执行预测伸缩策略。
在该方法中,伸缩管理系统通过获取应用在当前周期的业务流量,基于实时的业务流量预测下一周期的资源需求,从而周期性地输出预测伸缩策略。在下一周期的预测伸缩策略相对于当前周期的伸缩策略有更新时,在下一周期主动执行预测伸缩策略,无需被动等待监控指标达到告警阈值,更不需要在连续多个周期达到第一告警阈值后以较小幅度缩减资源组中实例的数量,或者在一个周期达到第二告警阈值后以最大幅度增加资源组中实例的数量,如此避免了资源浪费,提高了资源利用率。
为了使得本申请的技术方案更加清楚、易于理解,下面先结合附图对本申请实施例的伸缩管理系统进行介绍。
参见图1A所示的伸缩管理系统的架构示意图,该伸缩管理系统10包括策略预测装置102和策略执行装置104。上述策略预测装置102、策略执行装置104可以通过软件实现,或者可以通过硬件实现。其中,策略预测装置102接入业务集群20,业务集群20包括至少一个资源组,每个资源组包括运行应用的至少一个实例。策略执行装置104接入资源平台30。与伸缩管理系统10类似,上述资源平台30可以是软件平台或硬件平台。其中,资源平台30还可以根据资源类型分为容器资源平台(简称为容器平台)或虚拟机(virtual machine)资源平台(简称为虚拟机平台)。其中,容器平台用于增加或缩减资源组中容器实例的数量,虚拟机平台用于增加或缩减资源组中虚拟机实例的数量。
具体地,策略预测装置102用于从业务集群20获取应用在当前周期的业务流量,根据所述应用在当前周期的业务流量,获取所述应用在下一周期的预测伸缩策略。考虑到业务流量可以出现突发增长或突发下降的情况,上述周期通常可以设置为较小值,例如周期可以设置为10分钟(minute,min),以便于及时感知应用的业务流量变化,进而及时根据业务流量变化对伸缩策略进行调整。
策略执行装置104用于所述应用的资源组在下一周期的预测伸缩策略相对于所述应用在当前周期的伸缩策略有更新时,在下一周期执行所述预测伸缩策略。例如,策略执行装置104可以在下一周期执行预测伸缩策略,从而使得资源平台30增加或减少应用的资源组中实例的数量。
以上对策略预测装置102和策略执行装置104的交互过程进行了详细说明,下面对策略预测装置102包括通信模块1022和预测模块1024的结构分别进行说明。
如图1A所示,策略预测装置102包括通信模块1022和预测模块1024。其中,通信模块1022用于获取应用在当前周期的业务流量,预测模块1024用于根据所述应用在当前周期的业务流量,获取所述应用的资源组在下一周期的预测伸缩策略。策略执行装置104包括通信模块1042和伸缩模块1044。其中,通信模块1042用于获取应用的资源组在下一周期的预测伸缩策略,伸缩模块1044用于应用在下一周期的预测伸缩策略相对于所述应用在当前周期的伸缩策略有更新时,在下一周期执行所述预测伸缩策略。
图1A以策略预测装置102和策略执行装置104为独立装置进行示例说明,在一些可能的实现方式中,策略预测装置102和策略执行装置104可以集成为一个装置。具体地,参见图1B所示的伸缩管理系统的另一种架构示意图,该伸缩管理系统10包括通信模块1062、预测模块1064和伸缩模块1066。其中,预测模块1064和伸缩模块1066的具体实现可以参见预测模块1024和伸缩模块1044相关内容描述,通信模块1062具有上述通信模块1022和通信模块1042的功能。
需要说明的是,图1A和图1B仅仅是对伸缩管理系统10的一些示意性的划分方式,并且,伸缩管理系统10的上述装置或模块是从功能角度进行划分得到,在本申请实施例其他可能的实现方式中,伸缩管理系统10也可以从其他角度划分为不同装置或模块。此外,上述装置为软件装置,上述模块为软件模块时,上述装置或模块可以集中地部署在一台计算机中,也可以分布式地部署在计算机集群的不同计算机中。上述装置为硬件装置,上述模块为硬件模块时,上述多个装置或多个模块可以对应一台计算机,或者对应计算机集群中的不同计算机。
图1A和图1B对本申请实施例的伸缩管理系统10进行了介绍,下面结合附图,以图1A所示的伸缩管理系统10执行本申请实施例的业务集群的伸缩方法进行介绍。
参见图2所示的业务集群的伸缩方法的流程图,伸缩管理系统系统10包括策略预测装置102和策略执行装置104,该方法包括:
S202:策略预测装置102从业务集群20获取应用在当前周期的业务流量。
业务流量是指用户使用应用触发业务请求产生的流量。基于此,业务流量可以通过单位时间内的业务请求数量表征。该单位时间例如可以为秒或分钟。以广播电视媒体、短视频、在线教育等场景为例,业务集群20可以为音视频转码集群,考虑到用户可以使用多种不同类型的终端,例如是个人计算机(personal computer,PC)、智能手机、智能手表,来播放视频,音视频转码集群可以在接收业务请求后,在云端将音视频进行转码,并推送转码后的音视频至相应的终端进行播放。其中,音视频转码集群在单位时间内接收到的业务请求的数量记作业务流量。
业务流量可以是动态变化的。例如,一些应用在特定时间段(如三餐时间段)具有较高的业务流量,在其他时间段具有较低的业务流量。在一些情况下,应用还可以产生突发业务流量,例如应用被推广至其他平台时,可以产生突发的业务流量。
为了及时感知业务流量的变化趋势,策略预测装置102可以设置较小的周期。例如周期可以设置为10min。基于此,策略预测装置102可以每间隔10min从业务集群20获取业务流量。策略预测装置102当前周期获取的业务流量即为应用在当前周期的业务流量。
应用在当前周期的业务流量属于时序数据,该时序数据可以通过数组或者流量曲线进行表征。在一些实施例中,业务流量采用数组表征时,数组中的数值为当前周期内不同时间点的业务流量采样值。在另一些实施例中,业务流量采用流量曲线表征时,该流量曲线可以是通过对当前周期内不同时间点以及各时间点的业务流量采样值进行曲线拟合得到。
S204:策略预测装置102根据应用在当前周期的业务流量,获取所述应用的资源组在下一周期的预测伸缩策略。
具体地,策略预测装置102可以根据应用在当前周期的业务流量,预测应用在下一周期的业务流量,进而基于应用在下一周期的业务流量,预测应用的资源组在下一周期的预测伸缩策略。
其中,应用在当前周期的业务流量可以反映流量变化趋势,基于该流量变化趋势可以预测应用在下一周期的业务流量。例如,应用在当前周期的业务流量以一较稳定的增长率增长时,则应用在下一周期的业务流量有较高概率以该增长率进行增长。在一些可能的实现方式中,策略预测装置102可以将应用在当前周期的业务流量输入流量预测模型,以预测应用在下一周期的业务流量。
流量预测模型可以通过历史流量数据训练得到。历史流量数据可以为历史N天的业务流量。其中,N为正数,例如N可以为15。历史N天的业务流量可以以小时为单位分成多个时间序列,两个相邻的时间序列可以构造为一个样本数据,如此可以获得样本集。样本集还可以进一步分为训练集、验证集和测试集。
在训练流量预测模型时,策略预测装置102可以采用基于时间序列的神经网络模型,如长短期记忆(long short term memory,LSTM)网络构造初始流量预测模型,该初始流量预测模型可以通过高斯分布初始或者随机分布初始化等方式进行参数初始化,然后将训练集中的样本数据输入该初始流量预测模型进行参数迭代,当训练后的模型满足训练停止条件时,例如训练后的模型的损失值趋于收敛,或者损失值小于预设值时,可以停止训练。
进一步地,策略预测装置102可以将验证集的样本数据输入训练后的模型,根据模型在验证集上的表现(performance)调整超参数,从而对模型进行进一步优化。优化后的模型可以包括多个,这多个模型可以在测试集上进行测试,从而得到多个模型的性能。其中,模型的性能可以通过准确度、推理时间等指标中的一种或多种进行衡量。策略预测装置102可以根据各模型的性能,选择性能较好的模型作为流量预测模型,从而用于周期性地预测应用在下一周期的业务流量。
策略预测装置102可以设定优化目标,然后寻找能够达到上述优化目标的实例数量。考虑到预测的业务流量可以与真实的业务流量存在一定差异,策略预测装置102可以将该实例数量作为参考,确定出最大实例数量、最小实例数量,并在最小实例数量到最大实例数量范围内调整资源组中实例的数量。为了便于描述,达到上述优化目标的实例数量也称作参考数量。
在一些实施例中,优化目标可以为资源组中实例的平均CPU利用率为60%,即目标平均CPU利用率为60%,策略预测装置102可以结合应用在下一周期的业务流量确定参考数量。
具体地,业务流量和实例数量、平均CPU利用率满足如下关系式:
α*实例数量*平均CPU利用率=业务流量 (1)
其中,α为系数。根据单个实例满载时并发处理的业务请求数量可以确定上述系数。假定单个实例满载时并发处理的业务请求数量为150,则可以假定业务流量为150,实例数量为1,平均CPU利用率为100%,将上述取值代入公式(1)可以确定系数α,在该实例中,α可以为150。
策略预测装置102可以将目标平均CPU利用率和应用在下一周期的业务流量(预测结果)输入上述公式(1),从而确定参考数量。其中,应用在下一周期的业务流量通过曲线表征时,可以对该曲线进行积分,或者对曲线中的采样点求平均值,然后输入上述公式(1),确定参考数量。
考虑到突发流量的可能性,策略预测装置102可以根据参考数量,确定最大实例数量和最小实例数量。例如,策略预测装置102可以设置伸缩比例,根据该伸缩比例和参考数量确定最大实例数量和最小实例数量。假设伸缩比例为50%,参考数量为100,则最小比例数量可以为50,最大比例数量可以为150。
策略预测装置102确定的预测伸缩策略可以包括当前实例数量小于最小实例数量时,在下一周期增加资源组中实例的数量至该最小实例数量。该预测伸缩策略也可以包括当前实例数量大于最大实例数量时,在下一周期减少资源组中实例的数量至最大实例数量。换言之,当前实例数量小于最小实例数量或大于最大实例数量时,可以触发主动伸缩,实现快速增加资源组中实例的数量或快速缩减资源组中实例的数量,而无需等待监控指标达到告警阈值。
此外,设置上述最小实例数量还可以防止实例数量过小导致突发流量或者其他情况发生时应用的业务受到影响,难以对外提供服务。设置最大实例数量可以避免过度增加实例的数量导致资源浪费。
进一步地,策略预测装置102确定的预测伸缩策略可以包括:当前实例数量大于或等于上述最小实例数量,且小于或等于最大实例数量时,在下一周期按照伸缩步长调整资源组中实例的数量。
其中,当前实例数量大于或等于上述最小实例数量,且小于或等于最大实例数量时,策略预测装置102确定的预测伸缩策略还可以结合被动伸缩。具体地,策略预测装置102确定的预测伸缩策略可以为:资源组中实例的平均性能值(如平均CPU利用率)达到某一性能值时,按照伸缩步长调整资源组中实例的数量。
进一步地,为了实现较为精准的伸缩,预测伸缩策略还可以进行进一步细分,具体是针对达到不同性能值的情况,分别设置不同的伸缩步长。具体地,资源组中实例的平均性能值达到第一性能值时,按照第一伸缩步长调整资源组中实例的数量,资源组中实例的平均性能值达到第二性能值时,按照第二伸缩步长调整资源组中实例的数量,该第二性能值大于第一性能值,第二伸缩步长大于第一伸缩步长。
例如,平均CPU利用大于0.6可以分为平均CPU利用率大于0.6且小于等于0.7,以及平均CPU利用率大于0.7,针对上述两种场景,预测伸缩策略中可以定义不同的伸缩步长。平均CPU利用率大于0.6且小于等于0.7时,伸缩步长可以为6(表示一次增加6个实例);平均CPU利用率大于0.7时,伸缩步长可以为11。又例如,平均CPU利用率可以分为平均CPU利用率大于或等于0.3且小于0.4、平均CPU利用率大于或等于0.15且小于0.3、平均CPU利用率大于或等于0且小于0.15,上述场景对应的伸缩步长可以依次设置为-3(表示一次减少3个实例)、-5、-9。
为了便于理解,下面还提供了预测伸缩策略的一个示例。
需要说明的是,上述以预测伸缩策略包括多种伸缩规则进行示例说明,在一些可能的实现方式中,预测伸缩策略也可以包括多种伸缩规则(如扩容规则或缩容规则)中的一种。例如,应用在当前周期的业务流量呈现上升趋势时,应用在下一周期的业务流量有较高概率呈现上升趋势,相应地,预测伸缩策略可以包括扩容规则。又例如,应用在当前周期的业务流量呈现下降趋势时,应用在下一周期的业务流量有较高概率呈现下降趋势,相应地,预测伸缩策略可以包括缩容规则。如此,可以避免业务流量出现抖动时被误识别为业务流量有相反的变化趋势,进而影响预测伸缩策略的准确性。
以上为策略预测装置102获得预测伸缩策略的一种实现方式,在一些可能的实现方式中,策略预测装置102也可以确定应用在下一周期的业务流量的变化率,以及应用在当前周期的业务流量的变化率。该变化率可以是增长率或下降率,在下一周期的增长率相较于当前周期的增长率的增幅大于第一预设幅度时,可以增加伸缩步长。例如,伸缩步长可以由5增加为10。在下一周期的下降率相较于当前周期的下降率的降幅大于第二预设幅度时,可以减小伸缩步长,例如由-2变更为-5。
在另一些可能的实现方式中,策略预测装置102可以针对不同周期设置不同的告警阈值。策略预测装置102可以根据应用在当前周期的业务流量,获取下一周期的告警阈值。当伸缩条件被触发,例如应用的资源组中实例的平均性能值如平均CPU利用率达到下一周期的告警阈值时,调整资源组中实例的数量。
下面结合一示例进行说明。该示例中,当前周期的告警阈值可以为0.6,基于当前周期的业务流量,预测下一周期的业务流量有突发增长趋势时,可以获得下一周期的告警阈值,例如为0.5。相应地,预测伸缩策略可以为在下一周期,资源组中实例的数量达到0.5时,调整资源组中实例的数量。
S206:策略执行装置104从策略预测装置102获取应用的资源组在下一周期的预测伸缩策略。
具体地,策略执行装置104可以根据策略预测装置102获取应用的资源组的预测伸缩策略的周期,周期性地从策略预测装置102获取应用的资源组的预测伸缩策略。在每一个周期,策略执行装置104可以从策略预测装置102获取下一周期的预测伸缩策略。
S208:策略执行装置104确定应用的资源组在下一周期的预测伸缩策略相对于应用在当前周期的伸缩策略是否有更新。若是,则执行S210,若否,则执行S212。
具体地,策略执行装置104还可以将应用的资源组在下一周期的预测伸缩策略与应用的资源组在当前周期的伸缩策略进行比较,例如策略执行装置104可以比较触发条件、伸缩步长,从而确定下一周期的预测伸缩策略相对于当前周期的伸缩策略是否有更新。
当应用的资源组在下一周期的预测伸缩策略相对于应用的资源组在当前周期的伸缩策略有更新时,策略执行装置104执行S210,当应用的资源组在下一周期的预测伸缩相对于应用的资源组在当前周期的伸缩策略未更新时,策略执行装置104执行S212。
S210:策略执行装置104在下一周期执行预测伸缩策略。
根据资源组中的实例类型不同,策略执行装置104可以采用不同方式执行预测伸缩策略。其中,应用使用的资源可以包括容器资源或虚拟机资源。下面分别对应用使用不同资源的情况下,策略执行装置104执行更新后的扩缩容策略的具体实现方式进行详细说明。
在一些可能的实现方式中,资源组中运行应用的至少一个实例可以为容器实例。容器实例是指以容器封装的实例。与容器实例对应的资源平台为容器平台,容器平台可以对容器实例进行管理,例如容器平台可以增加或缩减容器实例的数量,以满足业务的需求。
其中,容器平台可以是原生容器平台,该原生容器平台包括kubernetes,简称为k8s。在一些实施例,容器平台也可以是非原生容器平台,如开发者基于原生容器平台改造的平台,例如容器平台可以为云容器引擎(Cloud Container Engine,CCE)。相应地,策略执行装置104可以更新CCE平台中CCE工作负载的弹性水平伸缩(Horizontal PodAutoscaling,HPA)策略。具体地,策略执行装置104可以修改配置文件,例如将CCE工作负载的配置文件中与弹性水平伸缩策略相关的参数进行修改,然后转发修改后的配置文件(包括HPA策略)至CCE。CCE可以根据配置文件中的HPA策略自动增加或减少资源组中实例的数量,实现业务集群的弹性伸缩。
在另一些可能的实现方式中,资源组中运行应用的至少一个实例可以为虚拟机实例。虚拟机实例是指以虚拟机封装的实例。与虚拟机实例对应的资源平台为虚拟机平台,虚拟机平台可以对虚拟机实例进行管理,例如虚拟机平台可以增加或缩减虚拟机实例的数量,以满足业务的需求。
区别于容器平台,虚拟机平台通常与虚拟机管理组件交互,从而对虚拟机实例进行管理。具体地,策略执行装置104可以在虚拟机管理组件中更新虚拟机实例的变更数量,例如,预测伸缩策略指示伸缩步长为11时,虚拟机实例的变更数量可以为11,表示增加11个虚拟机实例,又例如,预测伸缩策略指示伸缩步长为-3时,虚拟机实例的变更数量可以为-3,表示减少3个虚拟机实例。相应地,虚拟机平台根据所述虚拟机实例的变更数量调整资源组中所述虚拟机实例的数量。其中,虚拟机平台可以根据变更数量,采用虚拟机新建接口创建新的虚拟机实例,或者是采用虚拟机删除接口回收虚拟机资源删除已有的虚拟机实例。
S212:策略执行装置104在下一周期继续执行当前周期的伸缩策略。
具体地,策略执行装置104可以保持伸缩策略不变,按照当前周期的伸缩策略进行业务集群的伸缩。
需要说明的是上述S212为本申请实施例的可选步骤,执行本申请实施例的业务集群的伸缩方法也可以不执行上述S212。
基于上述内容描述,本申请实施例提供了一种业务集群的伸缩方法。该方法中,策略预测装置102对接业务集群20获得实时的业务流量,基于实时的业务流量预测下一周期的资源需求,从而周期性地输出预测伸缩策略。在下一周期的预测伸缩策略相对于当前周期的伸缩策略有更新时,策略执行装置104主动执行预测伸缩策略,无需被动等待监控指标达到告警阈值,更不需要在连续多个周期达到第一告警阈值后以较小幅度缩减资源组中实例的数量,或者在一个周期达到第二告警阈值后以最大幅度增加资源组中实例的数量,如此避免了资源浪费,提高了资源利用率。
接下来,将以在线教育应用中的音视频转码场景为例,对本申请实施例的业务集群的伸缩方法进行介绍。
在该场景中,在线教育应用提供有音视频转码业务,以用于将教学音视频转码为不同格式,从而可以实现在不同类型的终端上播放。考虑到不同时间段,音视频转码业务的业务流量可以是不同的,例如在晚上7点至9点业务流量可以达到峰值,在凌晨2点到6点,业务流量达到谷值,为此,可以将该应用部署到云平台,以便于根据业务流量调整部署量。考虑到部署效率以及可移植性,应用可以采用容器化部署方式部署到云平台。
参见图3所示的业务集群的伸缩方法的流程示意图,策略执行装置104周期性地从策略预测装置102获取该在线教育应用在下一周期的预测伸缩策略。该预测伸缩策略包括伸缩规则(如扩容规则或缩容规则),伸缩规则中的伸缩步长可以由策略预测装置102通过输入多个候选步长进行仿真得到。具体地,参见图4所示的仿真结果示意图,在一天的每个小时,分别输入候选步长,可以得到实例数量随时间变化的曲线,基于该实例数量以及预测的业务流量,可以仿真出平均CPU利用率随时间变化的曲线,为了避免影响转码业务,可以在仿真服务中设置如下约束:平均CPU利用率不超过70。每一组候选步长视为一个候选策略,策略预测装置102可以在在多个满足上述约束的候选策略中选择成本最低的策略,作为预测结果。策略执行装置104在获取到预测结果,即应用在下一周期的预测伸缩策略时,判断该预测伸缩策略相对于当前周期的伸缩策略是否有更新,若是,则根据该预测伸缩策略修改转码CCE工作负载的HPA策略,并向CCE发送修改后的HPA策略,以使CCE按照修改后的HPA策略对业务集群进行伸缩。
在一些可能的实现方式中,如图4所示,策略预测装置102还可以向仿真服务提供真实的实例数量随时间变化的曲线,以及真实的平均CPU利用率随时间变化的曲线,以便于和仿真结果进行对比,从而优化仿真服务的仿真效果,从而提供更为合适的伸缩步长。
基于本申请实施例提供的业务集群的伸缩方法,本申请实施例还提供了一种如前述的伸缩管理系统10。下面将结合附图对本申请实施例提供的伸缩管理系统10进行介绍。
参见图1A所示的伸缩管理系统10的结构示意图,该系统10包括策略预测装置102和策略执行装置104。其中,策略预测装置102包括通信模块1022和预测模块1024。通信模块1022用于获取所述应用在当前周期的业务流量;预测模块1024用于根据所述应用在当前周期的业务流量,获取所述应用的资源组在下一周期的预测伸缩策略。策略执行装置104包括通信模块1042和伸缩模块1044。其中,通信模块1042用于获取所述应用的资源组在下一周期的预测伸缩策略,伸缩模块1044用于当所述应用的资源组在下一周期的预测伸缩策略相对于所述应用在当前周期的伸缩策略有更新时,在下一周期执行所述预测伸缩策略。
图1A为伸缩管理系统10的一种示意性划分方式,在本申请实施例其他可能的实现方式中,伸缩管理系统10也可以是其他结构。参见图1B所示的伸缩管理系统10的结构示意图,该系统10包括:
通信模块1062,用于获取所述应用在当前周期的业务流量;
预测模块1064,用于所述伸缩管理系统根据所述应用在当前周期的业务流量,获取所述应用的资源组在下一周期的预测伸缩策略;
伸缩模块1066,用于当所述应用的资源组在下一周期的预测伸缩策略相对于所述应用在当前周期的伸缩策略有更新时,在下一周期执行所述预测伸缩策略。
在一些可能的实现方式中,所述至少一个实例包括容器实例或虚拟机实例,图1A中的伸缩模块1044(或图1B中的伸缩模块1066)具体用于:
根据所述预测伸缩策略,在下一周期调整所述资源组中实例的数量。
在一些可能的实现方式中,图1A中的伸缩模块1044(或图1B中的伸缩模块1066)具体用于:
在下一周期将所述资源组中实例的数量调整至目标值;或者,
在下一周期按照伸缩步长调整所述资源组中实例的数量;或者
在伸缩条件被触发时,调整所述资源组中实例的数量。
在一些可能的实现方式中,所述目标值包括最小实例数量和/或最大实例数量,图1A中的伸缩模块1044(或图1B中的伸缩模块1066)具体用于:
所述资源组中当前实例数量小于所述最小实例数量时,在下一周期增加所述资源组中实例的数量至所述最小实例数量;或者,
所述资源组中当前实例数量大于所述最大实例数量时,在下一周期减少所述资源组中实例的数量至所述最大实例数量。
在一些可能的实现方式中,所述最小实例数量和所述最大实例数量根据所述业务流量以及所述资源组中实例的平均性能值确定。
在一些可能的实现方式中,图1A中的伸缩模块1044(或图1B中的伸缩模块1066)具体用于:
所述资源组中当前实例数量不小于最小实例数量,且不大于最大实例数量时,在下一周期按照伸缩步长调整所述资源组中实例的数量。
在一些可能的实现方式中,图1A中的伸缩模块1044(或图1B中的伸缩模块1066)具体用于:
所述资源组中至少一个实例的平均性能值到达第一性能值时,在下一周期按照第一伸缩步长调整所述资源组中实例的数量;
所述资源组中至少一个实例的平均性能值到达第二性能值时,在下一周期按照第二伸缩步长调整所述资源组中实例的数量,所述第二性能值大于第一性能值,所述第二伸缩步长大于所述第一伸缩步长。
在一些可能的实现方式中,图1A中的伸缩模块1044(或图1B中的伸缩模块1066)具体用于:
所述资源组中实例的平均性能值达到下一周期的告警阈值时,调整所述资源组中实例的数量。
根据本申请实施例的伸缩管理系统10可对应于执行本申请实施例中描述的方法,并且伸缩管理系统10的各个模块/单元的上述和其它操作和/或功能分别为了实现图2所示实施例中的各个方法中的相应流程,为了简洁,在此不再赘述。
本申请实施例还提供一种计算机集群。该计算机集群具体用于实现如图1A或图1B所示的伸缩管理系统10的功能。
图5提供了一种计算机集群的结构示意图,如图5所示,计算机集群50包括多台计算机500,计算机500包括总线501、处理器502、通信接口503和存储器504。处理器502、存储器504和通信接口503之间通过总线501通信。
总线501可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
处理器502可以为中央处理器(central processing unit,CPU)、图形处理器(graphics processing unit,GPU)、微处理器(micro processor,MP)或者数字信号处理器(digital signal processor,DSP)等处理器中的任意一种或多种。
通信接口503用于与外部通信。例如,通信接口503用于获取应用在当前周期的业务流量等等。
存储器504可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM)。存储器504还可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM),快闪存储器,硬盘驱动器(hard diskdrive,HDD)或固态驱动器(solid state drive,SSD)。
存储器504中存储有计算机可读指令,处理器502执行该计算机可读指令,以使得计算机集群50执行前述业务集群的伸缩方法(或实现前述伸缩管理系统10的功能)。
具体地,在实现图1A或图1B所示的伸缩管理系统10的实施例的情况下,且图1中所描述的伸缩管理系统10的模块如预测模块1024或预测模块1064、伸缩模块1044或伸缩模块1066的功能为通过软件实现的情况下,执行图1A或图1B中各模块的功能所需的软件或程序代码可以存储在计算机集群50中的至少一个存储器504中。至少一个处理器502执行存储器504中存储的程序代码,以使得计算机集群50执行前述业务集群的伸缩方法。
本申请实施例还提供了一种计算机可读存储介质。所述计算机可读存储介质可以是计算机集群50能够存储的任何可用介质或者是包含一个或多个可用介质的数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘)等。该计算机可读存储介质包括指令,所述指令指示计算机集群50执行上述业务集群的伸缩方法。
本申请实施例还提供了一种计算机程序产品。所述计算机程序产品包括一个或多个计算机指令。在计算机集群50上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机或数据中心进行传输。所述计算机程序产品可以为一个软件安装包,在需要使用前述业务集群的伸缩方法的任一方法的情况下,可以下载该计算机程序产品并在计算机集群50上执行该计算机程序产品。
上述各个附图对应的流程或结构的描述各有侧重,某个流程或结构中没有详述的部分,可以参见其他流程或结构的相关描述。
Claims (19)
1.一种业务集群的伸缩方法,其特征在于,所述业务集群包括至少一个资源组,每个资源组包括运行应用的至少一个实例,所述方法包括:
伸缩管理系统获取所述应用在当前周期的业务流量;
所述伸缩管理系统根据所述应用在当前周期的业务流量,获取所述应用的资源组在下一周期的预测伸缩策略;
当所述应用的资源组在下一周期的预测伸缩策略相对于所述应用在当前周期的伸缩策略有更新时,所述伸缩管理系统在下一周期执行所述预测伸缩策略。
2.根据权利要求1所述的方法,其特征在于,所述至少一个实例包括容器实例或虚拟机实例,所述伸缩管理系统在下一周期执行所述预测伸缩策略,包括:
所述伸缩管理系统根据所述预测伸缩策略,在下一周期调整所述资源组中实例的数量。
3.根据权利要求1或2所述的方法,其特征在于,所述伸缩管理系统在下一周期执行所述预测伸缩策略,包括:
所述伸缩管理系统在下一周期将所述资源组中实例的数量调整至目标值;或者,
所述伸缩管理系统在下一周期按照伸缩步长调整所述资源组中实例的数量;或者
所述伸缩管理系统在伸缩条件被触发时,调整所述资源组中实例的数量。
4.根据权利要求3所述的方法,其特征在于,所述目标值包括最小实例数量和/或最大实例数量,所述伸缩管理系统在下一周期将所述资源组中实例的数量调整至目标值,包括:
所述资源组中当前实例数量小于所述最小实例数量时,所述伸缩管理系统在下一周期增加所述资源组中实例的数量至所述最小实例数量;或者,
所述资源组中当前实例数量大于所述最大实例数量时,所述伸缩管理系统在下一周期减少所述资源组中实例的数量至所述最大实例数量。
5.根据权利要求4所述的方法,其特征在于,所述最小实例数量和所述最大实例数量根据所述业务流量以及所述资源组中实例的平均性能值确定。
6.根据权利要求3所述的方法,其特征在于,所述伸缩管理系统在下一周期按照伸缩步长调整所述资源组中实例的数量,包括:
所述资源组中当前实例数量不小于最小实例数量,且不大于最大实例数量时,所述伸缩管理系统在下一周期按照伸缩步长调整所述资源组中实例的数量。
7.根据权利要求6所述的方法,其特征在于,所述伸缩管理系统在下一周期按照伸缩步长调整所述资源组中实例的数量,包括:
所述资源组中实例的平均性能值到达第一性能值时,所述伸缩管理系统在下一周期按照第一伸缩步长调整所述资源组中实例的数量;
所述资源组中实例的平均性能值到达第二性能值时,所述伸缩管理系统在下一周期按照第二伸缩步长调整所述资源组中实例的数量,所述第二性能值大于第一性能值,所述第二伸缩步长大于所述第一伸缩步长。
8.根据权利要求3所述的方法,其特征在于,所述伸缩管理系统在伸缩条件被触发时,调整所述资源组中实例的数量,包括:
所述伸缩管理系统在所述资源组中实例的平均性能值达到下一周期的告警阈值时,调整所述资源组中实例的数量。
9.一种伸缩管理系统,其特征在于,所述伸缩管理系统用于对业务集群进行伸缩,所述业务集群包括至少一个资源组,每个资源组包括运行应用的至少一个实例,所述系统包括:
通信模块,用于获取所述应用在当前周期的业务流量;
预测模块,用于根据所述应用在当前周期的业务流量,获取所述应用的资源组在下一周期的预测伸缩策略;
伸缩模块,用于当所述应用的资源组在下一周期的预测伸缩策略相对于所述应用在当前周期的伸缩策略有更新时,在下一周期执行所述预测伸缩策略。
10.根据权利要求9所述的系统,其特征在于,所述至少一个实例包括容器实例或虚拟机实例,所述伸缩模块具体用于:
根据所述预测伸缩策略,在下一周期调整所述资源组中实例的数量。
11.根据权利要求9或10所述的系统,其特征在于,所述伸缩模块具体用于:
在下一周期将所述资源组中实例的数量调整至目标值;或者,
在下一周期按照伸缩步长调整所述资源组中实例的数量;或者
在伸缩条件被触发时,调整所述资源组中实例的数量。
12.根据权利要求11所述的系统,其特征在于,所述目标值包括最小实例数量和/或最大实例数量,所述伸缩模块具体用于:
所述资源组中当前实例数量小于所述最小实例数量时,在下一周期增加所述资源组中实例的数量至所述最小实例数量;或者,
所述资源组中当前实例数量大于所述最大实例数量时,在下一周期减少所述资源组中实例的数量至所述最大实例数量。
13.根据权利要求12所述的系统,其特征在于,所述最小实例数量和所述最大实例数量根据所述业务流量以及所述资源组中实例的平均性能值确定。
14.根据权利要求11所述的系统,其特征在于,所述伸缩模块具体用于:
所述资源组中当前实例数量不小于最小实例数量,且不大于最大实例数量时,在下一周期按照伸缩步长调整所述资源组中实例的数量。
15.根据权利要求14所述的系统,其特征在于,所述伸缩模块具体用于:
所述资源组中至少一个实例的平均性能值到达第一性能值时,在下一周期按照第一伸缩步长调整所述资源组中实例的数量;
所述资源组中至少一个实例的平均性能值到达第二性能值时,在下一周期按照第二伸缩步长调整所述资源组中实例的数量,所述第二性能值大于第一性能值,所述第二伸缩步长大于所述第一伸缩步长。
16.根据权利要求11所述的系统,其特征在于,所述伸缩模块具体用于:
所述资源组中实例的平均性能值达到下一周期的告警阈值时,调整所述资源组中实例的数量。
17.一种计算机集群,其特征在于,所述计算机集群包括至少一台计算机,所述至少一台计算机包括至少一个处理器和至少一个存储器,所述至少一个存储器中存储有计算机可读指令;所述至少一个处理器执行所述计算机可读指令,以执行如权利要求1至8中任一项所述的方法。
18.一种计算机可读存储介质,其特征在于,包括计算机可读指令;所述计算机可读指令用于实现权利要求1至8任一项所述的方法。
19.一种计算机程序产品,其特征在于,包括计算机可读指令;所述计算机可读指令用于实现权利要求1至8任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210589198.6A CN117170855A (zh) | 2022-05-27 | 2022-05-27 | 一种业务集群的伸缩方法及相关设备 |
PCT/CN2022/130526 WO2023226312A1 (zh) | 2022-05-27 | 2022-11-08 | 一种业务集群的伸缩方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210589198.6A CN117170855A (zh) | 2022-05-27 | 2022-05-27 | 一种业务集群的伸缩方法及相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117170855A true CN117170855A (zh) | 2023-12-05 |
Family
ID=88918300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210589198.6A Pending CN117170855A (zh) | 2022-05-27 | 2022-05-27 | 一种业务集群的伸缩方法及相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117170855A (zh) |
WO (1) | WO2023226312A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104580524A (zh) * | 2015-01-30 | 2015-04-29 | 华为技术有限公司 | 一种云平台上的资源伸缩方法和一种云平台 |
US11226845B2 (en) * | 2020-02-13 | 2022-01-18 | International Business Machines Corporation | Enhanced healing and scalability of cloud environment app instances through continuous instance regeneration |
CN112000459B (zh) * | 2020-03-31 | 2023-06-27 | 华为云计算技术有限公司 | 一种用于服务的扩缩容的方法及相关设备 |
CN113886010A (zh) * | 2021-09-27 | 2022-01-04 | 阿里巴巴(中国)有限公司 | 容器资源的控制方法、设备及计算机存储介质 |
-
2022
- 2022-05-27 CN CN202210589198.6A patent/CN117170855A/zh active Pending
- 2022-11-08 WO PCT/CN2022/130526 patent/WO2023226312A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023226312A1 (zh) | 2023-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11321210B2 (en) | System and method for cloud-device collaborative real-time user experience and performance abnormality detection | |
CN112860403B (zh) | 集群负载资源调度方法、装置、设备、介质及产品 | |
CN113391765A (zh) | 基于分布式存储系统的数据存储方法、装置、设备及介质 | |
CN110990138A (zh) | 资源调度方法、装置、服务器及存储介质 | |
CN113254192B (zh) | 资源分配方法、资源分配装置、电子设备及存储介质 | |
CN112422977A (zh) | 音视频转码任务的分配方法和分配装置 | |
CN111190719B (zh) | 优化集群资源分配的方法、装置、介质及电子设备 | |
CN115080248B (zh) | 调度装置的调度优化方法、调度装置和存储介质 | |
CN113760516A (zh) | 一种多云环境下的弹性伸缩方法、装置、设备及介质 | |
CN112416568A (zh) | 音视频转码任务的时长预估方法和时长预估装置 | |
CN108243032A (zh) | 一种服务等级信息的获取方法、装置及设备 | |
CN116822571A (zh) | 预测方法、模型的训练方法及装置、设备、存储介质 | |
CN114691372A (zh) | 一种多媒体端边云系统的群体智能控制方法 | |
CN116257360B (zh) | 一种基于历史使用数据规划容器组资源的方法和系统 | |
US10430312B2 (en) | Method and device for determining program performance interference model | |
CN117170855A (zh) | 一种业务集群的伸缩方法及相关设备 | |
Zhang et al. | PRMRAP: A proactive virtual resource management framework in cloud | |
CN113127179A (zh) | 资源调度方法、装置、电子设备及计算机可读介质 | |
CN103927220A (zh) | 一种客户端中输入法的自适应调整方法及装置 | |
CN118170503A (zh) | 一种异构处理器及相关调度方法 | |
CN112156453B (zh) | 实例自适应调整方法、装置、计算机可读存储介质及设备 | |
CN113163018B (zh) | 时延、资源和能耗感知的虚拟网络在线迁移方法和装置 | |
CN114116220A (zh) | 一种gpu共享控制方法、gpu共享控制装置及存储介质 | |
CN114791847A (zh) | 用于部署视觉资源的方法、设备和程序产品 | |
CN117349001A (zh) | 一种节点伸缩方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication |