CN112000459A - 一种用于服务的扩缩容的方法及相关设备 - Google Patents
一种用于服务的扩缩容的方法及相关设备 Download PDFInfo
- Publication number
- CN112000459A CN112000459A CN202010245634.9A CN202010245634A CN112000459A CN 112000459 A CN112000459 A CN 112000459A CN 202010245634 A CN202010245634 A CN 202010245634A CN 112000459 A CN112000459 A CN 112000459A
- Authority
- CN
- China
- Prior art keywords
- service
- state
- workload
- state prediction
- scaling
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000000737 periodic effect Effects 0.000 claims abstract description 11
- 230000004044 response Effects 0.000 claims description 71
- 230000000875 corresponding effect Effects 0.000 claims description 66
- 230000009471 action Effects 0.000 claims description 52
- 238000012549 training Methods 0.000 claims description 32
- 238000012545 processing Methods 0.000 claims description 10
- 238000004590 computer program Methods 0.000 claims description 7
- 238000003062 neural network model Methods 0.000 claims description 6
- 238000004422 calculation algorithm Methods 0.000 description 37
- 230000006870 function Effects 0.000 description 14
- 230000002787 reinforcement Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 10
- 230000008569 process Effects 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 5
- 230000003247 decreasing effect Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 210000002569 neuron Anatomy 0.000 description 4
- 238000005311 autocorrelation function Methods 0.000 description 3
- 230000008602 contraction Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000007423 decrease Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 230000010076 replication Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 239000012530 fluid Substances 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000000611 regression analysis Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000013179 statistical model Methods 0.000 description 1
- 238000012731 temporal analysis Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000000700 time series analysis Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Medical Informatics (AREA)
- Evolutionary Computation (AREA)
- Data Mining & Analysis (AREA)
- Computing Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请提供一种用于服务扩缩容的方法及相关设备。其中,该方法包括:获取当前周期服务的指标信息和工作负载,并利用工作负载预测模型根据所述工作负载得到下个周期工作负载预测值;根据工作负载预测值以及指标信息,利用状态预测模型预测下个周期服务的状态;根据预测得到的状态,确定服务对应的实例扩缩策略并对服务对应的实例进行扩缩。上述方法能够及时的确定实例扩缩策略,提高所确定的实例扩缩策略的准确性。
Description
技术领域
本发明涉及云计算技术领域,尤其涉及一种用于服务的扩缩容的方法及相关设备。
背景技术
云计算作为近年来新兴的产业,获得了科研界和产业界的广泛关注。云计算中一个重要目标是云服务提供商能够在保证服务等级协议(service level agreement,SLA)的前提下尽可能的节省资源消耗,只分配给用户实际需要的资源。而用户的需求并不是一成不变的,需要灵活动态的给用户分配资源,因此,自动缩放策略成为云计算中的核心研究内容之一。
目前已经提出多种用于云平台中的自动缩放策略,例如基于阈值的缩放策略,基于控制论、排队论相关的缩放策略,基于时间序列分析方法和强化学习方法相关的缩放策略等。但是这些策略在应用中存在着响应速度较慢,确定的缩放策略不够准确等问题。例如在基于Q-learning算法(一种强化学习算法)制定自动缩放策略时,由于Q-learning算法收敛速度较慢将会导致资源调度不及时,不能保证满足SLA,影响用户体验。
因此,如何及时并准确的制定实例扩缩策略,保证SLA,节省系统资源开销是目前亟待解决的问题。
发明内容
本发明实施例公开了一种用于服务的扩缩容的方法及相关设备,能够及时的确定实例扩缩策略,保证确定的实例扩缩策略的准确性,保证满足SLA的要求。
第一方面,本申请提供一种用于服务的扩缩容的方法,所述方法包括:计算设备获取当前周期服务的指标信息和工作负载数据,所述指标信息用于指示当前服务的状态;该计算设备输入所述工作负载数据至工作负载预测模型,得到工作负载预测结果,其中,所述工作负载预测模型用于对所述服务接收的工作负载值进行预测,所述工作负载预测结果包括所述服务在下一个周期接收到的平均用户请求速率;该计算设备输入所述指标信息和所述工作负载预测结果至状态预测模型,得到状态预测结果,其中,所述状态预测模型用于对服务的状态进行预测,所述预测结果包括所述服务在下一个周期的状态;该计算设备根据所述状态预测结果,确定所述服务对应的实例扩缩策略,并根据所述实例扩缩策略对所述服务对应的实例进行扩缩。
在本申请提供的方案中,计算设备利用工作负载预测模型得到工作负载预测结果,进一步根据指标信息和工作负载预测值,利用状态预测模型预测得到服务在下一个周期的状态,这样可以在负载发生突变的情况下,较为准确的得到服务在下一个周期的状态,从而可以保证及时且准确的确定实例扩缩策略,保证满足SLA的要求。
结合第一方面,在第一方面的一种可能的实现方式中,计算设备确定初始状态预测模型,所述初始状态预测模型采用一种神经网络模型;该计算设备获取多个训练样本,所述训练样本包括所述服务对应的历史指标信息和历史工作负载数据;该计算设备利用所述训练样本对所述初始状态预测模型进行训练以得到所述状态预测模型。
在本申请提供的方案中,计算设备提取获取多个包含服务对应的历史指标信息和历史工作负载数据的训练样本,然后利用该训练样本对初始状态预测模型进行训练,以使得训练完成的状态预测模型具备预测服务下一个周期的状态的能力,这样可以对输入的当前周期的指标信息和工作负载进行状态预测,从而可以准确的输出下一个周期服务的状态。
结合第一方面,在第一方面的一种可能的实现方式中,所述指标信息包括CPU利用率和响应时间,所述CPU利用率和所述响应时间用于确定所述服务所对应的状态。
在本申请提供的方案中,由于CPU利用率可以最为真实有效的反映服务资源利用情况,响应时间可以最直观的反映用户的体验,所以计算设备通过采集服务在运行时对应的CPU利用率和响应时间,从而可以较为准确的描述服务对应的状态。
结合第一方面,在第一方面的一种可能的实现方式中,计算设备根据m个CPU利用率区间和n个响应时间区间确定所述服务对应的m*n个状态,所述状态预测结果为所述m*n个状态中的其中一个,其中,所述m个CPU利用率区间为该计算设备根据预设阈值对所述CPU利用率进行区间划分得到,所述CPU利用率的范围为0-1,所述m为大于1的正整数;所述n个响应时间区间为该计算设备根据预设时长对所述响应时间进行区间划分得到,所述n为大于1的正整数。
在本申请提供的方案中,CPU利用率和响应时间都是连续的指标,若直接利用CPU利用率和响应时间确定服务的状态,将会导致服务的状态空间爆炸,即服务的状态存在无穷个,无法准确的确定出服务的状态,而且将会浪费大量的计算资源和存储资源,而若将CPU利用率和响应时间进行区间划分,使其变得离散化,则可以保证只存在有限个状态,从而可以准确的确定出服务相应的状态。
结合第一方面,在第一方面的一种可能的实现方式中,计算设备根据所述状态预测结果,以ε-greedy策略确定所述服务对应的实例扩缩策略,所述ε-greedy策略用于选取所述状态预测结果对应的Q值最大的动作,所述Q值用于指示在给定相应状态和相应动作下的最大未来奖励期望。
在本申请提供的方案中,计算设备在预测出服务在下一个周期的状态之后,可以快速准确的选出服务在该状态下对应的Q值最大的动作,从而确定出实例扩缩策略。
第二方面,提供了一种实例扩缩系统,包括:采集单元,用于获取当前周期服务的指标信息和工作负载数据,所述指标信息用于指示当前服务的状态;工作负载预测单元,用于将所述工作负载数据输入工作负载预测模型,得到工作负载预测结果,其中,所述工作负载预测模型用于对所述服务接收的工作负载值进行预测,所述工作负载预测结果包括所述服务在下一个周期接收到的平均用户请求速率;状态预测单元,用于将所述指标信息和所述工作负载预测结果输入至状态预测模型,得到状态预测结果,其中,所述状态预测模型用于对服务的状态进行预测,所述预测结果包括所述服务在下一个周期的状态;实例调度单元,用于根据所述状态预测结果,确定所述服务对应的实例扩缩策略,并根据所述实例扩缩策略对所述服务对应的实例进行扩缩。
结合第二方面,在第二方面的一种可能的实现方式中,所述采集单元,还用于获取训练样本,所述训练样本包括所述服务对应的历史指标信息和历史工作负载数据;所述状态预测单元,还用于确定初始状态预测模型,所述初始状态预测模型采用一种神经网络模型;利用所述训练样本对所述初始状态预测模型进行训练以得到所述状态预测模型。
结合第二方面,在第二方面的一种可能的实现方式中,所述指标信息包括CPU利用率和响应时间,所述CPU利用率和所述响应时间用于确定所述服务对应的状态。
结合第二方面,在第二方面的一种可能的实现方式中,所述状态预测单元,还用于根据预设阈值对所述CPU利用率进行区间划分得到m个区间,所述CPU利用率的范围为0-1,所述m为大于1的正整数;根据预设时长对所述响应时间进行区间划分,得到n个区间,所述n为大于1的正整数;根据所述m个CPU利用率区间和所述n个响应时间区间确定所述服务对应的m*n个状态,所述状态预测结果为所述m*n个状态中的其中一个。
结合第二方面,在第二方面的一种可能的实现方式中,所述实例调度单元,具体用于:根据所述状态预测结果,以ε-greedy策略确定所述服务对应的实例扩缩策略,所述ε-greedy策略用于选取所述状态预测结果对应的Q值最大的动作,所述Q值用于指示在给定相应状态和相应动作下的最大未来奖励期望。
第三方面,提供了一种计算设备,所述计算设备包括处理器和存储器,所述存储器用于存储程序代码,所述处理器用于执行所述存储器中的程序代码以实现上述第一方面以及结合上述第一方面中的任意一种实现方式的方法。
第四方面,提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当该计算机程序被处理器执行时,所述处理器执行上述第一方面以及结合上述第一方面中的任意一种实现方式所提供的用于服务扩缩容的方法。
第五方面,提供了一种计算机程序产品,该计算机程序产品包括指令,当该计算机程序产品被计算机执行时,使得计算机可以执行上述第一方面以及结合上述第一方面中的任意一种实现方式所提供的用于服务扩缩容的方法的流程。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种应用Q-Learning算法进行实例扩缩的流程示意图;
图2是本申请实施例提供的一种应用SARSA算法进行实例扩缩的流程示意图;
图3是本申请实施例提供的一种系统架构的示意图;
图4是本申请实施例提供的一种实例扩缩系统的结构示意图;
图5是本申请实施例提供的一种用于服务扩缩容的方法的流程示意图;
图6是本申请实施例提供的一种状态预测模型的结构示意图;
图7是本申请实施例提供的一种算法运行的流程示意图;
图8是本申请实施例提供的一种计算设备的结构示意图。
具体实施方式
下面结合附图对本申请实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
首先,结合附图对本申请中所涉及的部分用语和相关技术进行解释说明,以便于本领域技术人员理解。
云计算(cloud computing)是与信息技术、软件、互联网相关的一种服务,云计算将多个计算资源集合起来,形成计算资源共享池,该计算资源共享池也叫做“云”,通过软件实现自动化管理,用户可以按照需求随时获取“云”上的资源,理论上,“云”上的资源可以无限扩展。
SLA是由服务提供商与客户共同签订的协议,包含服务类型、服务质量和服务性能等条目,能够最大限度的满足用户需求,保证用户满意度。
微服务(microservices)是一个新兴的软件架构,其目的是把一个大型的单个应用程序和服务拆分为数十个的支持微服务。系统中的各个微服务可以被独立部署,各个微服务之间是松耦合的,每个微服务仅关注于完成一件任务,每个任务代表着一个小的业务能力。微服务的策略可以让工作变得更为简便,它可扩展单个组件而不是整个的应用程序堆栈,从而满足SLA。
服务网格(service mesh)是服务间通信的基础设施层,专注于服务之间的通信,使得每个服务实例之间的通信更加流畅、可靠和迅速。它还提供了服务发现、均衡负载、加密、身份鉴定、授权、支持熔断器模式等功能。
虚拟机(virtual machine,VM)是指通过软件模型的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。实体计算机中能够完成的工作在VM中都能够实现,在创建VM时,需要将实体计算机的部分硬盘和内存容量作为VM的硬盘和容量,每个VM都有独立的硬盘和操作系统等,可以像使用实体机一样对虚拟机进行操作。
容器(container)是计算机操作系统中的一种虚拟化技术,该技术使得进程运行于相对独立和隔离的环境(包含独立的文件系统、命名空间、资源视图等),从而能够简化软件的部署流程,增强软件的可移植性和安全性,提高系统资源的利用率,容器技术广泛应用于云计算领域的服务化场景。
实例(instance)是指一个应用的某个微服务在实例化之后得到的结果。一般一个实例中包含一个或多个容器,用于执行容器所具备的功能。
弹性伸缩(auto-scaling)是云计算中的一种概念,指云平台上应用被部署的系统能动态的根据应用的工作负载确定合适的资源量,然后自动的申请和释放资源。
水平伸缩(horizontal scaling)是云计算中的一种概念,指以实例为单位进行伸缩,可以直接增加或减少实例的数量。
强化学习(reinforcement learning)又称再励学习、评价学习或增强学习,是机器学习的范式和方法论之一,用于描述和解决智能体在与环境的交互过程中通过学习策略以达成回报最大化或实现特定目标的问题。强化学习包含多种典型算法,例如Q学习(Q-learning)算法、状态动作回报状态动作(state action reward state action,SARSA)算法等,其常见模型是标准的马尔可夫决策过程,按给定条件,强化学习可分为基于模型的强化学习和无模式强化学习,以及主动强化学习和被动强化学习。
神经网络(neural network)是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型。这种网络依靠系统的复杂程度,通过调整内部大量节点之间相互连接的关系,从而达到处理信息的目的。
差分整合移动平均自回归模型(autoregressive integrated moving averagemodel,ARIMA)又称整合滑动平均自回归模型,是时间序列预测分析方法之一。ARIMA模型包含p、d、q三个主要参数,p为自回归项数,d为使非平稳序列成为平稳序列所做的差分次数(阶数),q为滑动平均项数。
在实例扩缩的场景中,存在多种缩放策略,例如响应式策略和预测式策略,预测式策略由于可以提前进行实例扩缩的决策,能够有效减少响应时间,更好的满足SLA,因此应用更加广泛。此外,强化学习在应用过程中不需要任何的先验知识,具有自适应性和鲁棒性,因此可以基于强化学习方法指定预测式缩放策略,以保证在工作负载动态变化时应用的资源利用率处于一个较为稳定的状态。
如图1所示,是一种应用Q-Learning算法进行实例扩缩的流程示意图。首先对Q表进行初始化,Q表的行表示服务的状态,Q表的列表示在该状态对应的动作,动作具体可以是增加或减少运行该服务的实例的数量,例如增加2个实例、减少2个实例等,Q表中的值表示在某个状态下执行某个动作得到的值,在初始化时,可以将Q表中的所有值设置为0,当然也可以设置为其它的数值(例如1或2等)。然后根据监控获取的当前周期服务的指标确定当前周期服务对应的状态S,周期的时长为可以根据需要进行设置,例如可以设置为5秒,服务的指标由部署在实例中的监控应用采集得到,实例具体可以是虚拟机、容器等,服务的指标具体可以是CPU的利用率和响应时间,响应时间表示请求到达该服务开始,直到该服务返回结果的这一段时间。接着使用贪心策略(ε-greedy)根据Q表选择状态S下的动作A,ε-greedy的含义是以ε的概率从Q表中选择当前状态S对应的Q值最大的动作,以1-ε的概率从Q表中随机选取动作,ε的值位于0-1之间,可以按照需要设置ε的值,例如将ε设置为0.9。然后执行动作A,计算得到回报值R以及服务下个周期的状态S1。在完成计算之后,利用动态规划方程(例如Bellman方程)更新Q表,具体可以利用下述公式1进行计算并更新。所述公式1为:
Q(S,A)←(1-α)*Q(S,A)+α[R+γ*maxQa(S1,A1)] 公式1
其中,α为学习率,用于表征对之前训练效果的保留程度,α越大,保留之前的训练效果就越少。R表示回报值(从环境获得的奖励),γ为折现系数。公式1的本质就是利用下个周期的服务的状态S1所对应的最大Q值来更新当前服务的状态S在执行动作A时对应的Q值,应理解,A1是下个周期执行的动作,执行该动作将使得Q值最大,maxQa(S1,A1)表示执行动作a使得Q值最大,即a就是动作A1。
通过运行Q-Learning算法可以实现实例扩缩,但是Q-Learning算法本身需要多次迭代执行以更新Q表,收敛速度较慢,不能及时确定实例扩缩策略,导致资源调度不及时,不能满足SLA的要求。
如图2所示,是一种应用SARSA算法进行实例扩缩的流程示意图。与Q-Learning算法相似,首先对Q表进行初始化,然后在算法的第一个周期根据监控获取的当前周期服务的指标确定当前周期服务对应的状态S,接着使用ε-greedy策略选择当前状态S下对应的动作A并执行,计算得到回报值R以及服务下个周期的状态S1。然后根据状态S1,使用ε-greedy策略从Q表中选取下个周期的需要执行的动作A1,最后利用动态规划方程更新Q表,并将动作A1确定为下个周期需要执行的动作,具体可以利用下述公式2进行更新。所述公式2为:
其中,α、R和γ的含义与公式1一致。公式2的本质就是利用下个周期在服务状态S1下执行动作A1得到的Q值来更新当前服务的状态S在执行动作A时对应的Q值,应理解,下个周期所要执行的动作由当前周期确定。
通过运行SARSA算法也可以实现实例扩缩,但是SARSA算法仅仅只考虑了服务的状态受执行的动作的影响,并没有考虑服务的状态受到实例本身以及工作负载的影响,导致当前周期所确定的动作并不适用于下个周期,进而导致所确定的实例扩缩策略不够准确,不能满足SLA的要求。
另外,不管是上述应用Q-Learning算法或SARSA算法进行实例扩缩,其动作空间都是固定的,即每个状态对应的动作都是5个(-2,-1,0,+1,+2),+2表示增加2个实例、+1表示增加1个实例、0表示实例数量不变,-2表示减少2个实例,-1表示减少1个实例。但是当服务的遇到剧烈增加的负载时,只增加2个实例可能无法有效的降低响应时间,需要执行多次增加2个实例的动作才能够有效降低响应时间以满足要求,这样将会使得资源调度不及时,不能满足SLA的要求。
基于上述,本申请提供了用于服务的扩缩容的方法及相关设备,可以通过负载预测和状态预测,可以及时高效的确定扩缩策略且保证所确定的扩缩策略的准确性,满足SLA的要求。
本申请实施例的技术方案可以应用于各种需要实例扩缩的场景,包括但不限于基于容器部署的应用(例如Bookinfo应用、Hipster-Shop应用等)、基于虚拟机部署的应用、基于物理机部署的应用等。
在一个具体的实施例中,实例扩缩系统可以部署在任意一个涉及实例扩缩的计算设备中。例如,如图3所示,可以部署在云环境上的一个或多个计算设备中(例如中心服务器),或者边缘环境中的一个或多个计算设备中(例如服务器)。其中,云环境是指云服务器提供商拥有的,用于提供计算、存储、通信资源的中心计算设备集群,具备较大的存储资源和计算资源;边缘环境是指在地理位置上距离终端设备较近的,用于提供计算、存储、通信资源的边缘计算设备集群。
实例扩缩系统用于采集服务的各项指标和工作负载,预测得到下个周期的工作负载以及服务的状态,从而及时准确的确定实例扩缩策略并进行扩缩。实例扩缩系统内部的单元可以由多种划分方式,本申请对此不作限制。图4为一种示例性的划分方式,如图4所示,下面将分别简述每个功能单元的功能。
所示实例扩缩系统400包括多个功能单元,其中,采集单元410,用于从容器云集群或虚拟机集群中采集服务运行时的各种指标和工作负载值,例如服务响应时间、CPU利用率、内存使用率等,容器云集群提供用于构建、发布和运行容器化服务的平台,并允许开发者或管理员对容器进行管理和维护。工作负载预测单元420,用于对采集单元410采集到的工作负载值进行动态拟合,并预测出下个周期的工作负载值;状态预测单元430,用于根据采集单元410采集到的指标和工作负载预测单元420预测得到的工作负载值对服务的状态进行预测,得到下个周期服务的状态;实例调度单元440,用于根据状态预测单元430预测得到的状态确定实例扩缩策略,并执行该策略以完成实例扩缩。
本申请中,实例扩缩系统400可以为软件系统,其内部包括的各部分以及功能单元部署在硬件设备上的形式比较灵活。
下面对本申请实施例提供的用于服务扩缩容的方法及相关设备进行描述。参见图5,图5为本申请实施例提供的一种用于服务扩缩容的方法的流程示意图。如图5所示,该方法包括但不限于以下步骤:
S501:计算设备获取当前周期服务运行时的指标信息和工作负载数据。
具体地,该计算设备部署有上述图4所示的实例扩缩系统400。计算设备可以从容器云集群中采集指标信息,容器云集群中运行有多种应用,每个应用包括一个或多个服务,分别运行在不同的容器中,一个物理机上可以部署多个容器。计算设备中的采集单元410可以实时或周期性采集指标信息和工作负载数据,采集周期可以根据需要进行设置,例如可以设置为5秒。采集到的指标信息包括当前周期的CPU利用率、内存利用率、响应时间、实例(容器)数量等,采集到的工作负载为流量数据集。
值得说明的是,CPU利用率可以真实有效的反应服务的资源利用情况,响应时间可以直观反应用户的体验,是判断服务是否满足SLA的重要依据,因此,本申请利用CPU利用率和响应时间确定服务的状态。应理解,CPU利用率和响应时间都是连续的指标,若直接使用CPU利用率和响应时间来构造服务的状态,将会构造得到无穷个状态,这样将导致耗费大量的资源管理和后续预测服务的状态,导致系统崩溃。所以,需要对CPU利用率和响应时间进行离散化处理,以使得所构造的状态空间所包含的服务的状态为确定且有限的。
在一种可能的实现方式中,根据预设阈值对CPU利用率进行区间划分,得到m个区间,其中,所述CPU利用率的取值范围为0-1,所述m为大于1的正整数;根据预设时长对响应时间进行区间划分,得到n个区间,其中,所述n为大于1的正整数;所述m个CPU利用率区间和所述n个响应时间区间确定服务对应的m*n个状态。
可选的,在对CPU利用率进行区间划分时,可以按照等间隔划分,例如可以将CPU利用率划分为[0,0.2]、[0.2,0.4]、[0.4,0.6]、[0.6,0.8]以及[0.8,1],即m的值为5,每个区间大小都为0.2,当然区间大小也可以设置为其它值,本申请对此不作限定。在对响应时间进行区间划分时,由于响应时间可以达到无穷大(在应用卡死或系统崩溃的情况下),所以不能简单进行等间隔划分,而是需要利用一定的划分策略进行划分,例如可以将响应时间划分为[0,100ms]、[100ms,250ms]、[250ms,500ms]、[500ms,1000ms]、[1000ms,∞],100ms表示100毫秒,∞表示无穷大,这样将响应时间划分为了5个,即n的值为5,当然也可以按照其它方式进行划分,本申请对此不作限定。
可以看出,通过上述划分方法,将连续的CPU利用率和响应时间划分为了不同的区间,这样就可以得到有限个状态,避免状态空间爆炸。示例性的,当采集单元410采集到当前的CPU利用率为0.772,响应时间为291ms时,则可以确定当前周期服务的状态为区间[0.6,0.8]和区间[250ms,500ms]所确定的状态。
S502:计算设备输入所述工作负载数据至工作负载预测模型,得到工作负载预测结果。
具体地,工作负载预测模型在用于对当前工作负载数据进行预测之前,需要对历史的工作负载数据进行拟合,以使得工作负载预测模型具备预测下个周期的工作负载值的能力。应理解,在实际应用中,工作负载(用户请求速率)是复杂多变且受多种因素影响的,因此工作负载预测模型应该选择用于非平稳时间序列预测的模型,例如ARIMA模型。
ARIMA模型是统计模型中用来进行时间序列预测的模型,利用一个固定大小的队列类型的时间序列来动态拟合,队列的长度可以根据需要进行设置,例如可以设置为50,本申请对此不作限定。本申请中,利用采集单元410采集到的历史工作负载数据(每个周期的平均用户请求速率)来拟合模型。应理解,采集单元410采集到的历史工作负载数据(时间序列)可能不是稳定的,这时不能直接进行模型拟合,需要对其做进一步处理,使得其变为稳定的序列以满足模型拟合的要求,若一个序列是平稳的,则该序列的均值、方差和协方差不会发生明显的变化。
具体地,在得到历史工作负载数据之后,首先检验其是否为平稳的,可以利用扩展迪基-福勒(augmented dickey-fuller,ADF)检验法测试其是否存在单位根(unit root),若存在单位根,则表示该序列是不平稳的,需要进行差分处理,以使得序列变为平稳,从而满足模型拟合的要求;若存在单位根,则表示该序列是平稳的,可以直接进行模型拟合。一般来说,检测得到的ADF的值越小,越说明序列不存在单位根,序列越平稳。在对序列进行差分处理时,序列由不平稳变得平稳所经过的最少差分次数定义为ARIMA模型的参数d。在得到d之后,利用偏自相关函数(partial autocorrelation function,PACF)确定模型中的自回归阶数p,PACF用于描述在给定中间观测值的条件下时间序列观测值与过去的观测值之间的线性相关性,p表示模型中所采用的时序数据本身的滞后数;利用自相关函数(autocorrelation function,ACF)确定移动平均阶数q,ACF用于描述时间序列观测值与过去的观测值之间的线性相关性,q表示模型中采用的预测误差的滞后数。
确定了p和q之后,将差分后稳定的数据代入到自回归滑动平均(autoregressivemoving average model,ARMA)模型中进行拟合,得到下述公式3。所述公式3为:
Yt=β0+β1Yt-1+…+βpYt-p+εt+α1εt-1+…+αqεt-q 公式3
其中,Yt表示负载预测值,其受自身变化的影响,根据回归分析可得到公式3中关于观测值的多项式,εt表示误差,其在不同时期具有依存关系,对应公式3中关于误差的多项式。由于是对历史工作负载数据进行差分之后进行ARMA模型拟合,因此在利用公式3求得Yt之后,需要对Yt进行逆差分操作,从而最终得到下个周期的工作负载预测值。
可选的,本申请在利用ARIMA模型进行拟合时,可以实时动态拟合,例如当采集单元410采集到当前周期的工作负载值(即平均用户请求速率)时,将其加入到用于模型拟合的时间序列中,并按照时间先后顺序从该时间序列中找出并丢弃最早采集的历史工作负载值,利用更新后的时间序列进行模型拟合,保证预测的准确性。当然,也可以是经过预设时长,将采集单元410采集到的多个周期的工作负载值(例如最近5个周期的工作负载值)加入上述时间序列中,并按照时间先后顺序从该时间序列中丢弃相应数量的历史工作负载值,然后进行模型拟合,这样可以减轻计算设备的计算压力,提高计算设备的资源利用效率。
S503:计算设备输入所述指标信息和所述工作负载预测结果至状态预测模型,得到状态预测结果。
具体地,本申请中的状态预测模型是一种已训练完成的神经网络模型,例如循环神经网络(recurrent neural networks,RCNN)、递归神经网络(recursive neuralnetworks,RNN)、卷积神经网络(convolutional neural networks,CNN)等,状态预测模型在用于对服务的状态进行预测之前需要进行训练,以使其具有预测服务的状态的能力。在训练过程中,需要使用特别的训练数据进行训练,从模型能力需求出发进行分析,需要使用采集单元410采集的历史样本数据进行训练,样本数据包括采集单元预先采集的每个历史周期服务的CPU利用率、内存利用率、响应时间、实例数量、工作负载值以及针对每个历史周期利用工作负载预测模型预测得到的工作负载预测值。
此外,在选取训练样本时,需要保证样本的全面性,保证均匀的获取到各个场景下的训练样本,例如工作负载较大实例数量较多的情况、工作负载较大实例数量较少的情况、工作负载较小实例数量较多的情况、工作负载较小实例数量较小的情况等。容易理解,通过使用较为全面的样本数据进行训练,可以避免训练得到的状态预测模型具有倾向性失去通用性。
在获取样本数据之后,首先确定初始状态预测模型为一种神经网络模型,如图6所示,本申请的初始状态预测模型600的结构主要包括三部分,即输入层610、隐藏层620和输出层630。然后将初始状态预测模型600的参数初始化,之后将样本数据输入至输入层610,输入层610对样本数据进行处理之后将其传送给隐藏层620,隐藏层620中的特征提取单元621对输入的样本数据进行特征提取和识别,然后输入至预测单元622,预测单元622预测出下个周期的CPU利用率和响应时间,损失函数计算单元623根据预测单元622预测得到的结果计算出损失函数,以损失函数为目标函数使用反向传播算法更新调整模型中的参数,输出层630将隐藏层620预测得到的响应时间预测值和CPU利用率预测值进行输出。依次输入不同的训练样本,不断迭代执行上述训练过程,直至损失函数值收敛时,即每次计算得到的损失函数值在某一个值附件上下波动,则停止训练,此时,状态预测模型已经训练完成,即状态预测模型已经具备预测下个周期服务的状态的功能。
应理解,服务的状态由响应时间和CPU利用率确定,因此,状态预测模型输出的为下个周期服务的响应时间和CPU利用率。另外,需要说明的是,本申请提供状态预测模型还支持在使用过程中动态训练,以使得模型贴合实际情况,提高预测精度,例如,若在实际应用场景中,负载具有倾向性(负载一直偏高或偏低等),那么对之前已经训练好的模型继续进行动态训练,可以使得模型更加适用于当前场景。
在实际应用中,状态预测模型的输入层610的神经元个数为7,分别为当前周期的CPU利用率、内存利用率、响应时间、实例数量、工作负载值、下个周期的工作负载预测值和一个偏置项(给网络分类增加平移的能力,使得模型拟合效果更好);输出层630的神经元个数为2,分别为响应时间预测值和CPU利用率预测值;隐藏层620的层数以及每一层的神经元数量可以灵活设置,通过大量实验和效果比对,本申请优选隐藏层神经元个数为12。
S504:计算设备根据状态预测结果,确定服务对应的实例扩缩策略。
具体地,利用状态预测模型得到响应时间预测值和CPU利用率预测值之后,可以确定服务在下个周期所对应的状态。然后根据确定的状态,使用ε-greedy策略从Q表中选择该状态下对应的动作,该动作即为确定的实例扩缩策略,例如增加5个实例、减少2个实例等。
应理解,上述Q表是执行改进后的SARSA算法得到的结果,在算法收敛之前,Q表中的值需要迭代执行上述算法以更新Q表中的值和动作空间,直至算法收敛,此时,Q表已经稳定,可以直接用于确定实例扩缩策略。
示例性的,在运行算法之前,对Q表进行初始化,将Q表中的各个项的值设为0,Q表的行代表服务的不同状态,Q表的列表示不同的动作,每个状态对应的动作都为5(-2,-1,0,+1,+2),Q(S,A)表示在状态S下执行动作A得到的值。该算法具体运行流程如图7所示,包括以下步骤:
S701:确定算法第一个周期的服务的状态S,从Q表中选择需要执行的动作。
具体地,利用采集单元410采集当前周期的响应时间和CPU利用率,从而确定服务的状态S,然后选择在状态S下最大的Q值所对应的动作,若存在多个Q值并列最大时,从中随机选择一个Q值对应的动作。
S702:执行上个周期选择的动作A,计算得到执行动作后的回报值R并确定当前周期的状态S1。
具体地,为了避免出现SLA违约并尽可能提高CPU利用率,在构造回报值函数时需要同时考虑响应时间、SLA规定的响应时间阈值以及CPU利用率,可以利用下述公式4计算回报值。
所述公式4为:
其中,R表示回报值,ρ表示CPU利用率,p是设定的常数,用于控制响应时间对回报值的影响,p越大则响应时间对回报值的影响就越大,一般设置为2,a表示响应时间,b表示SLA规定的响应时间。
可以看出,当响应时间大于SLA规定的响应时间,回报值一定为负,当响应时间小于SLA规定的响应时间,回报值一定为正。
此外,在执行完上个周期所确定的动作之后,可以通过测量当前周期的响应时间和CPU利用率得到当前周期的状态S1。
S703:更新Q(S,A)的值。
具体地,在确定当前周期的状态S1之后,利用ε-greedy策略选取动作A1,然后再根据计算得到的回报值,代入上述公式1,完成对Q(S,A)的更新。
S704:根据当前周期的状态S1,判断是否增加服务在状态S下的动作空间。
具体地,若上个周期的动作(即动作A)是增加最大数量的实例,例如动作A为增加2个实例,但是当前周期的响应时间依然超过SLA规定的响应时间,则说明上个周期增加的实例数量不够,因此,需要增加服务在状态S下对应的动作空间,例如可以增加2个动作,此时服务在状态S下对应的动作空间为(-3,-2,-1,0,+1,+2,+3),新增加的动作对应的Q值可以初始化为0。
可以理解,通过增加动作空间,能够避免多次重复调度,节省系统资源开销,同时保证资源调度更加及时。
S705:使用负载预测模型对下个周期的负载进行预测,得到工作负载预测值,并根据工作负载预测值和当前周期的各个指标利用状态预测模型预测得到下个周期服务的状态,使用ε-greedy策略选取动作A2。
S706:判断算法是否收敛,若算法收敛,则停止更新Q表,若算法未收敛,则继续重复执行步骤S702-S706。
具体地,在算法未收敛之前,Q表中的项将不断被更新,算法在运行过程中将要耗费大量的资源,为了提高整个系统的资源利用率,需要设定终止条件,当满足终止条件时,则可以确定算法已经收敛,可以停止运行该算法。
可选的,当算法运行周期数量超过预设周期数量时,则判定算法已经收敛,预设周期数量可以按照需要进行设置,例如设置为500。或者是,当Q表中的每个项都被更新了N次及以上,则判定算法已经收敛,N的值可以为3。或者是,每隔固定周期数(例如50个周期)进行Q表更新状况检测,计算Q表中所有被更新的项的绝对值与该项在更新前的绝对值的差值,若某些项存在被多次更新的情况,则计算最后一次更新后的项的绝对值与检测之前(50个周期前)的项的绝对值的差值,若这些差值均小于原来Q表中对应项的绝对值的百分之一,且Q表中不存在从算法运行开始直到当前周期为止没有被更新过的项,则判定算法已经收敛。
应理解,算法的收敛条件还可以通过其它方式进行设定,本申请对此不作限定。
S505:计算设备根据确定的实例扩缩策略,对所述服务对应的实例进行扩缩。
具体地,计算设备确定了服务需要扩缩的实例数量之后,将通过调用容器云集群暴露的对外接口,例如应用程序接口(application programming interface,API),将服务需要扩缩的实例数量传给复制控制器,由复制控制器增减服务的实例数量。
需要说明的是,图5所述的方法是针对每一个服务进行实例扩缩,若要对应用完成实例扩缩,则需要对组成该应用的每个服务分别执行上述S501-S505的步骤,从而完成对整个应用的实例扩缩。
上述详细阐述了本申请实施例的方法,为了便于更好的实施本申请实施例的上述方案,相应地,下面还提供用于配合实施上述方案的相关设备。
如图4所示,本申请还提供一种实例扩缩系统,该实例扩缩系统用于执行前述用于服务扩缩容的方法。本申请对该实例扩缩系统中的功能单元的划分不作限定,可以根据需要对该实例扩缩系统中的各个单元进行增加、减少或合并。图4示例性的提供了一种功能单元的划分:
实例扩缩系统400包括采集单元410、工作负载预测单元420、状态预测单元430以及实例调度单元440。
具体地,所述采集单元410用于执行前述步骤S501,且可选的执行前述步骤中可选的方法。
所述工作负载预测单元420用于执行前述步骤S502,且可选的执行前述步骤中可选的方法。
所述状态预测单元430用于执行前述步骤S503,且可选的执行前述步骤中可选的方法。
所述实例调度单元440用于执行前述步骤S504和S505,且可选的执行前述步骤中可选的方法。
上述四个单元之间互相可以通过通信通路进行数据传输,应理解,实例扩缩系统400包括的各单元可以为软件单元、也可以为硬件单元、或部分为软件单元部分为硬件单元。
参见图8,图8是本申请实施例提供的一种计算设备的结构示意图。如图8所示,该计算设备800包括:处理器810、通信接口820以及存储器830,所述处理器810、通信接口820以及存储器830通过内部总线840相互连接。应理解,该计算设备800可以是云计算中的计算设备,或边缘环境中的计算设备。
所述处理器810可以由一个或者多个通用处理器构成,例如中央处理器(centralprocessing unit,CPU),或者CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC)、可编程逻辑器件(programmablelogic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complexprogrammable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gatearray,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。
总线840可以是外设部件互连标准(peripheral component interconnect,PCI)总线或扩展工业标准结构(extended industry standard architecture,EISA)总线等。所述总线840可以分为地址总线、数据总线、控制总线等。为便于表示,图8中仅用一条粗线表示,但不表示仅有一根总线或一种类型的总线。
存储器830可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM);存储器130也可以包括非易失性存储器(non-volatilememory),例如只读存储器(read-only memory,ROM)、快闪存储器(flash memory)、硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器830还可以包括上述种类的组合。
需要说明的是,计算设备800的存储器830中存储了实例扩缩系统400的各个单元对应的代码,处理器810执行这些代码实现了实例扩缩系统400的各个单元的功能,即执行了S501-S505的方法。
本申请还提供一种计算机可读存储介质,其中,所述计算机可读存储介质存储有计算机程序,当该计算机程序被处理器执行时,可以实现上述方法实施例中记载的任意一种的部分或全部步骤。
本发明实施例还提供一种计算机程序,该计算机程序包括指令,当该计算机程序被计算机执行时,使得计算机可以执行任意一种用于服务扩缩容的方法的部分或全部步骤。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可能可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
Claims (12)
1.一种用于服务扩缩容的方法,其特征在于,包括:
获取当前周期服务的指标信息和工作负载数据,所述指标信息用于指示当前服务的状态;
输入所述工作负载数据至工作负载预测模型,得到工作负载预测结果,其中,所述工作负载预测模型用于对所述服务接收的工作负载值进行预测,所述工作负载预测结果包括所述服务在下一个周期接收到的平均用户请求速率;
输入所述指标信息和所述工作负载预测结果至状态预测模型,得到状态预测结果,其中,所述状态预测模型用于对服务的状态进行预测,所述预测结果包括所述服务在下一个周期的状态;
根据所述状态预测结果,确定所述服务对应的实例扩缩策略,并根据所述实例扩缩策略对所述服务对应的实例进行扩缩。
2.如权利要求1所述的方法,其特征在于,所述状态预测模型在用于对所述服务的状态进行预测之前,所述方法还包括:
确定初始状态预测模型,所述初始状态预测模型采用一种神经网络模型;
获取训练样本,所述训练样本包括所述服务对应的历史指标信息和历史工作负载数据;
利用所述训练样本对所述初始状态预测模型进行训练以得到所述状态预测模型。
3.如权利要求1或2所述的方法,其特征在于,所述指标信息包括中央处理器CPU利用率和响应时间,所述CPU利用率和所述响应时间用于确定所述服务所对应的状态。
4.如权利要求3所述的方法,其特征在于,所述CPU利用率和所述响应时间用于确定所述应用所对应的状态包括:
根据m个CPU利用率区间和n个响应时间区间确定所述服务对应的m*n个状态,所述状态预测结果为所述m*n个状态中的其中一个,其中,
所述m个CPU利用率区间为根据预设阈值对所述CPU利用率进行区间划分得到,所述CPU利用率的范围为0-1,所述m为大于1的正整数;
所述n个响应时间区间为根据预设时长对所述响应时间进行区间划分得到,所述n为大于1的正整数。
5.如权利要求1-4任一项所述的方法,其特征在于,所述根据所述状态预测结果,确定所述服务对应的实例扩缩策略,包括:
根据所述状态预测结果,以ε-greedy策略确定所述服务对应的实例扩缩策略,所述ε-greedy策略用于选取所述状态预测结果对应的Q值最大的动作,所述Q值用于指示在给定相应状态和相应动作下的最大未来奖励期望。
6.一种实例扩缩系统,其特征在于,包括:
采集单元,用于获取当前周期服务的指标信息和工作负载数据,所述指标信息用于指示当前服务的状态;
工作负载预测单元,用于将所述工作负载数据输入工作负载预测模型,得到工作负载预测结果,其中,所述工作负载预测模型用于对所述服务接收的工作负载值进行预测,所述工作负载预测结果包括所述服务在下一个周期接收到的平均用户请求速率;
状态预测单元,用于将所述指标信息和所述工作负载预测结果输入至状态预测模型,得到状态预测结果,其中,所述状态预测模型用于对服务的状态进行预测,所述预测结果包括所述服务在下一个周期的状态;
实例调度单元,用于根据所述状态预测结果,确定所述服务对应的实例扩缩策略,并根据所述实例扩缩策略对所述服务对应的实例进行扩缩。
7.如权利要求6所述的实例扩缩系统,其特征在于,
所述采集单元,还用于获取训练样本,所述训练样本包括所述服务对应的历史指标信息和历史工作负载数据;
所述状态预测单元,还用于确定初始状态预测模型,所述初始状态预测模型采用一种神经网络模型;利用所述训练样本对所述初始状态预测模型进行训练以得到所述状态预测模型。
8.如权利要求6或7所述的实例扩缩系统,其特征在于,所述指标信息包括CPU利用率和响应时间,所述CPU利用率和所述响应时间用于确定所述服务对应的状态。
9.如权利要求8所述的实例扩缩系统,其特征在于,
所述状态预测单元,还用于根据预设阈值对所述CPU利用率进行区间划分得到m个区间,所述CPU利用率的范围为0-1,所述m为大于1的正整数;根据预设时长对所述响应时间进行区间划分,得到n个区间,所述n为大于1的正整数;根据所述m个CPU利用率区间和所述n个响应时间区间确定所述服务对应的m*n个状态,所述状态预测结果为所述m*n个状态中的其中一个。
10.如权利要求6-9任一项所述的实例扩缩系统,其特征在于,所述实例调度单元,具体用于:
根据所述状态预测结果,以ε-greedy策略确定所述服务对应的实例扩缩策略,所述ε-greedy策略用于选取所述状态预测结果对应的Q值最大的动作,所述Q值用于指示在给定相应状态和相应动作下的最大未来奖励期望。
11.一种计算设备,其特征在于,所述计算设备包括存储器和处理器,所述处理器执行存储器存储的计算机指令,使得所述计算设备执行权利要求1-5任一项所述的方法。
12.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,当所述计算机程序被处理器执行时,所述处理器执行权利要求1-5任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010245634.9A CN112000459B (zh) | 2020-03-31 | 2020-03-31 | 一种用于服务的扩缩容的方法及相关设备 |
PCT/CN2021/084242 WO2021197364A1 (zh) | 2020-03-31 | 2021-03-31 | 一种用于服务的扩缩容的方法及相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010245634.9A CN112000459B (zh) | 2020-03-31 | 2020-03-31 | 一种用于服务的扩缩容的方法及相关设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112000459A true CN112000459A (zh) | 2020-11-27 |
CN112000459B CN112000459B (zh) | 2023-06-27 |
Family
ID=73461736
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010245634.9A Active CN112000459B (zh) | 2020-03-31 | 2020-03-31 | 一种用于服务的扩缩容的方法及相关设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112000459B (zh) |
WO (1) | WO2021197364A1 (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112926868A (zh) * | 2021-03-11 | 2021-06-08 | 郑州畅威物联网科技有限公司 | 调压设备负载状态评估方法、设备及可读存储介质 |
CN112953845A (zh) * | 2021-02-04 | 2021-06-11 | 中国工商银行股份有限公司 | 分布式系统流量控制方法及装置 |
CN113032157A (zh) * | 2021-05-31 | 2021-06-25 | 睿至科技集团有限公司 | 一种服务器自动智能扩缩容方法及系统 |
WO2021197364A1 (zh) * | 2020-03-31 | 2021-10-07 | 华为技术有限公司 | 一种用于服务的扩缩容的方法及相关设备 |
CN113515382A (zh) * | 2021-07-22 | 2021-10-19 | 中移(杭州)信息技术有限公司 | 云资源的分配方法、装置、电子设备及程序产品 |
CN113886095A (zh) * | 2021-12-08 | 2022-01-04 | 北京广通优云科技股份有限公司 | 一种基于模糊推理与强化学习结合的容器内存弹性伸缩方法 |
CN114138473A (zh) * | 2021-11-23 | 2022-03-04 | 西安电子科技大学 | 一种基于混合模式的弹性调度装置及方法 |
CN115017003A (zh) * | 2021-12-22 | 2022-09-06 | 荣耀终端有限公司 | 负载预测方法和负载预测装置 |
WO2023000806A1 (en) * | 2021-07-21 | 2023-01-26 | International Business Machines Corporation | Hybrid computing system management |
WO2023048609A1 (en) * | 2021-09-27 | 2023-03-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Device and method for scaling microservices |
WO2023226312A1 (zh) * | 2022-05-27 | 2023-11-30 | 华为云计算技术有限公司 | 一种业务集群的伸缩方法及相关设备 |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114237820A (zh) * | 2021-12-07 | 2022-03-25 | 中兴通讯股份有限公司 | 一种容器预加载方法、电子设备及存储介质 |
CN115242648B (zh) * | 2022-07-19 | 2024-05-28 | 北京百度网讯科技有限公司 | 扩缩容判别模型训练方法和算子扩缩容方法 |
CN115671716B (zh) * | 2022-12-28 | 2023-03-14 | 北京海誉动想科技股份有限公司 | 预加载实例申请的处理方法、装置、存储介质及电子设备 |
CN116225696B (zh) * | 2023-02-06 | 2024-06-07 | 北京邮电大学 | 用于流处理系统的算子并发度调优方法及装置 |
CN117009076A (zh) * | 2023-07-04 | 2023-11-07 | 中科南京移动通信与计算创新研究院 | 网元的资源处理方法、装置、电子设备及存储介质 |
CN117455205B (zh) * | 2023-12-25 | 2024-04-19 | 中国移动通信集团设计院有限公司 | 资源需求预测模型训练方法、系统及资源需求预测方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104065663A (zh) * | 2014-07-01 | 2014-09-24 | 复旦大学 | 一种基于混合云调度模型的自动伸缩、费用优化的内容分发服务方法 |
US20180097744A1 (en) * | 2016-10-05 | 2018-04-05 | Futurewei Technologies, Inc. | Cloud Resource Provisioning for Large-Scale Big Data Platform |
CN109787855A (zh) * | 2018-12-17 | 2019-05-21 | 深圳先进技术研究院 | 基于马尔可夫链和时间序列模型的服务器负载预测方法及系统 |
CN109800075A (zh) * | 2017-11-16 | 2019-05-24 | 航天信息股份有限公司 | 集群管理方法及装置 |
CN109995583A (zh) * | 2019-03-15 | 2019-07-09 | 清华大学深圳研究生院 | 一种延迟保证的nfv云平台动态扩缩容方法及系统 |
CN110149396A (zh) * | 2019-05-20 | 2019-08-20 | 华南理工大学 | 一种基于微服务架构的物联网平台构建方法 |
CN110275758A (zh) * | 2019-05-09 | 2019-09-24 | 重庆邮电大学 | 一种虚拟网络功能智能迁移方法 |
CN110418416A (zh) * | 2019-07-26 | 2019-11-05 | 东南大学 | 移动边缘计算系统中基于多智能体强化学习的资源分配方法 |
CN110457287A (zh) * | 2019-07-03 | 2019-11-15 | 北京百度网讯科技有限公司 | 数据库的扩缩容处理方法及装置、计算机设备及可读介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9195510B2 (en) * | 2011-04-04 | 2015-11-24 | Dell Products L.P. | Information handling system application decentralized workload management |
CN112000459B (zh) * | 2020-03-31 | 2023-06-27 | 华为云计算技术有限公司 | 一种用于服务的扩缩容的方法及相关设备 |
-
2020
- 2020-03-31 CN CN202010245634.9A patent/CN112000459B/zh active Active
-
2021
- 2021-03-31 WO PCT/CN2021/084242 patent/WO2021197364A1/zh active Application Filing
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104065663A (zh) * | 2014-07-01 | 2014-09-24 | 复旦大学 | 一种基于混合云调度模型的自动伸缩、费用优化的内容分发服务方法 |
US20180097744A1 (en) * | 2016-10-05 | 2018-04-05 | Futurewei Technologies, Inc. | Cloud Resource Provisioning for Large-Scale Big Data Platform |
CN109800075A (zh) * | 2017-11-16 | 2019-05-24 | 航天信息股份有限公司 | 集群管理方法及装置 |
CN109787855A (zh) * | 2018-12-17 | 2019-05-21 | 深圳先进技术研究院 | 基于马尔可夫链和时间序列模型的服务器负载预测方法及系统 |
CN109995583A (zh) * | 2019-03-15 | 2019-07-09 | 清华大学深圳研究生院 | 一种延迟保证的nfv云平台动态扩缩容方法及系统 |
CN110275758A (zh) * | 2019-05-09 | 2019-09-24 | 重庆邮电大学 | 一种虚拟网络功能智能迁移方法 |
CN110149396A (zh) * | 2019-05-20 | 2019-08-20 | 华南理工大学 | 一种基于微服务架构的物联网平台构建方法 |
CN110457287A (zh) * | 2019-07-03 | 2019-11-15 | 北京百度网讯科技有限公司 | 数据库的扩缩容处理方法及装置、计算机设备及可读介质 |
CN110418416A (zh) * | 2019-07-26 | 2019-11-05 | 东南大学 | 移动边缘计算系统中基于多智能体强化学习的资源分配方法 |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021197364A1 (zh) * | 2020-03-31 | 2021-10-07 | 华为技术有限公司 | 一种用于服务的扩缩容的方法及相关设备 |
CN112953845A (zh) * | 2021-02-04 | 2021-06-11 | 中国工商银行股份有限公司 | 分布式系统流量控制方法及装置 |
CN112926868A (zh) * | 2021-03-11 | 2021-06-08 | 郑州畅威物联网科技有限公司 | 调压设备负载状态评估方法、设备及可读存储介质 |
CN112926868B (zh) * | 2021-03-11 | 2024-04-09 | 郑州畅威物联网科技有限公司 | 调压设备负载状态评估方法、设备及可读存储介质 |
CN113032157A (zh) * | 2021-05-31 | 2021-06-25 | 睿至科技集团有限公司 | 一种服务器自动智能扩缩容方法及系统 |
CN113032157B (zh) * | 2021-05-31 | 2021-08-24 | 睿至科技集团有限公司 | 一种服务器自动智能扩缩容方法及系统 |
WO2023000806A1 (en) * | 2021-07-21 | 2023-01-26 | International Business Machines Corporation | Hybrid computing system management |
CN113515382B (zh) * | 2021-07-22 | 2024-04-09 | 中移(杭州)信息技术有限公司 | 云资源的分配方法、装置、电子设备及存储介质 |
CN113515382A (zh) * | 2021-07-22 | 2021-10-19 | 中移(杭州)信息技术有限公司 | 云资源的分配方法、装置、电子设备及程序产品 |
WO2023048609A1 (en) * | 2021-09-27 | 2023-03-30 | Telefonaktiebolaget Lm Ericsson (Publ) | Device and method for scaling microservices |
CN114138473A (zh) * | 2021-11-23 | 2022-03-04 | 西安电子科技大学 | 一种基于混合模式的弹性调度装置及方法 |
CN113886095A (zh) * | 2021-12-08 | 2022-01-04 | 北京广通优云科技股份有限公司 | 一种基于模糊推理与强化学习结合的容器内存弹性伸缩方法 |
CN115017003A (zh) * | 2021-12-22 | 2022-09-06 | 荣耀终端有限公司 | 负载预测方法和负载预测装置 |
WO2023226312A1 (zh) * | 2022-05-27 | 2023-11-30 | 华为云计算技术有限公司 | 一种业务集群的伸缩方法及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
WO2021197364A1 (zh) | 2021-10-07 |
CN112000459B (zh) | 2023-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112000459B (zh) | 一种用于服务的扩缩容的方法及相关设备 | |
Liu et al. | A hierarchical framework of cloud resource allocation and power management using deep reinforcement learning | |
Toka et al. | Machine learning-based scaling management for kubernetes edge clusters | |
Tuli et al. | COSCO: Container orchestration using co-simulation and gradient based optimization for fog computing environments | |
US11321141B2 (en) | Resource management for software containers using container profiles | |
WO2022037337A1 (zh) | 机器学习模型的分布式训练方法、装置以及计算机设备 | |
Minarolli et al. | Tackling uncertainty in long-term predictions for host overload and underload detection in cloud computing | |
Caron et al. | Pattern matching based forecast of non-periodic repetitive behavior for cloud clients | |
Tran et al. | A proactive cloud scaling model based on fuzzy time series and SLA awareness | |
Shahin | Automatic cloud resource scaling algorithm based on long short-term memory recurrent neural network | |
CN111258767A (zh) | 复杂系统仿真应用的云计算资源智能分配方法与装置 | |
Ismaeel et al. | Using ELM techniques to predict data centre VM requests | |
CN109542585B (zh) | 一种支持不规则时间间隔的虚拟机工作负载预测方法 | |
CN107608781B (zh) | 一种负载预测方法、装置以及网元 | |
CN114556299A (zh) | 动态修改管线中任务的并行性 | |
Ismaeel et al. | Multivariate time series ELM for cloud data centre workload prediction | |
Dogani et al. | Multivariate workload and resource prediction in cloud computing using CNN and GRU by attention mechanism | |
Zhang et al. | Service workload patterns for Qos-driven cloud resource management | |
US11620493B2 (en) | Intelligent selection of time series models | |
Dogani et al. | K-agrued: A container autoscaling technique for cloud-based web applications in kubernetes using attention-based gru encoder-decoder | |
CN113641445B (zh) | 基于深度确定性策略的云资源自适应配置方法及系统 | |
Verma et al. | Resource demand prediction in multi-tenant service clouds | |
Runsewe et al. | Cloud resource scaling for time-bounded and unbounded big data streaming applications | |
KR20230089509A (ko) | Bi-LSTM 기반 웹 애플리케이션 워크로드 예측 방법 및 장치 | |
CN115913967A (zh) | 一种云环境下基于资源需求预测的微服务弹性伸缩方法 |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220208 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Applicant after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |