CN117499251A - 一种无服务器的资源主动弹性伸缩方法、装置和管理系统 - Google Patents
一种无服务器的资源主动弹性伸缩方法、装置和管理系统 Download PDFInfo
- Publication number
- CN117499251A CN117499251A CN202311347904.7A CN202311347904A CN117499251A CN 117499251 A CN117499251 A CN 117499251A CN 202311347904 A CN202311347904 A CN 202311347904A CN 117499251 A CN117499251 A CN 117499251A
- Authority
- CN
- China
- Prior art keywords
- current
- resource
- flow rate
- historical
- service information
- 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 54
- 239000013598 vector Substances 0.000 claims description 59
- 230000009471 action Effects 0.000 claims description 48
- 239000011159 matrix material Substances 0.000 claims description 16
- 238000012544 monitoring process Methods 0.000 claims description 11
- 238000010276 construction Methods 0.000 claims description 3
- 230000001186 cumulative effect Effects 0.000 claims description 3
- 230000002787 reinforcement Effects 0.000 abstract description 25
- 230000008602 contraction Effects 0.000 abstract description 21
- 238000013528 artificial neural network Methods 0.000 abstract description 14
- 125000004122 cyclic group Chemical group 0.000 abstract description 14
- 230000008901 benefit Effects 0.000 abstract description 5
- 230000003993 interaction Effects 0.000 abstract description 4
- 230000003044 adaptive effect Effects 0.000 abstract description 3
- 230000004927 fusion Effects 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 16
- 238000007726 management method Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 10
- 238000005516 engineering process Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 7
- 230000015654 memory Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 230000007423 decrease Effects 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 238000013468 resource allocation Methods 0.000 description 4
- 230000008859 change 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
- 238000005457 optimization Methods 0.000 description 3
- 239000002699 waste material Substances 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000008447 perception Effects 0.000 description 2
- 238000013439 planning Methods 0.000 description 2
- 230000000306 recurrent effect Effects 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000006403 short-term memory Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000012384 transportation and delivery Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/092—Reinforcement learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0894—Policy-based network configuration management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/16—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/50—Network service management, e.g. ensuring proper service fulfilment according to agreements
- H04L41/5003—Managing SLA; Interaction between SLA and QoS
-
- 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)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Biomedical Technology (AREA)
- Computing Systems (AREA)
- Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Mathematical Physics (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Medical Informatics (AREA)
- Databases & Information Systems (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种无服务器的资源主动弹性伸缩方法、装置和管理系统,采用目标动作对无服务器内的容器资源进行弹性伸缩。具有前置主动自适应扩缩容的优点,通过融合循环神经网络,可以基于预测主动前置地进行扩缩容决策,而无需被动等待触发阈值。同时,深度强化学习拥有良好的自适应能力,哪怕应用流量模式随时间变化导致环境发生变化,深度强化学习也可以通过与环境的交互逐渐熟悉新的应用流量模式,降低了人工干预的开销。
Description
技术领域
本发明涉及资源分配技术领域,尤其涉及一种无服务器的资源主动弹性伸缩方法、装置和管理系统。
背景技术
在Serverless(无服务器)架构中,弹性伸缩是资源管理的关键技术之一,是指系统实时增加或释放分配的资源以适应请求负载变化的能力。系统会根据具体的业务请求数灵活地对计算实例进行扩缩容,以应对流量和数据的变化。当用户请求量上升时,弹性伸缩技术自动增加实例数量或为现有实例分配更多的资源(如CPU、内存或磁盘资源);当用户请求量下降时,弹性伸缩技术自动释放实例或减少现有实例占有的资源。弹性伸缩赋予了Serverless系统自动化、低成本、高可用、灵活智能等特性,不仅适用于请求量不断波动的业务场景,同时也适用于请求周期性的业务场景。
现有无服务器平台的弹性伸缩通常使用的是静态缩放技术,主要包括按请求缩放、并发值缩放、基于度量的缩放和基于阈值的缩放等。对此,一些研究工作提出了更加动态的方法,包括使用时间序列分析辅助决策,以及使用强化学习技术来支持动态性和适应性。
虽然机器学习技术有望提高动态资源分配的自动化,但是传统的机器学习技术在处理高维复杂问题方面存在弱点,同时难以识别资源利用和用户服务质量(Quality ofService,QoS)的平衡条件,难以平衡资源利用率和请求响应时间,经常导致资源浪费或违反服务水平协议(service-level agreement,SLA),进而导致资源弹性伸缩的成本较高。
发明内容
本发明提供了一种无服务器的资源主动弹性伸缩方法、装置和管理系统,解决了传统的机器学习技术在处理高维复杂问题方面存在弱点,同时难以识别资源利用和用户服务质量(QoS)的平衡条件,难以平衡资源利用率和请求响应时间,经常导致资源浪费或违反服务水平协议(SLA),进而导致资源弹性伸缩的成本较高的技术问题。
本发明提供的一种无服务器的资源主动弹性伸缩方法,包括:
当接收到业务请求时,匹配所述业务请求对应的业务服务信息,并获取当前已分配资源量和分配限值向量;
基于所述业务服务信息对应的历史流量速率和历史资源需求量,分别预测当前流量速率和当前资源需求量;
采用所述业务服务信息、所述当前已分配资源量、所述当前流量速率、所述当前资源需求量和所述分配限值向量进行拼接,得到当前资源状态;
将所述当前资源状态输入至预设的目标策略网络,通过所述目标策略网络确定对应的目标动作;
采用所述目标动作对无服务器内的容器资源进行弹性伸缩。
可选地,所述基于所述业务服务信息对应的历史流量速率和历史资源需求量,分别预测当前流量速率和当前资源需求量的步骤,包括:
按照所述业务服务信息,匹配对应的历史流量速率和历史资源需求量;
采用预设的GRU预测模型结合所述历史流量速率,预测当前流量速率;
采用预设的GRU预测模型结合所述历史资源需求量,预测当前资源需求量。
可选地,所述采用所述业务服务信息、所述当前已分配资源量、所述当前流量速率、所述当前资源需求量和所述分配限值向量进行拼接,得到当前资源状态的步骤,包括:
采用所述当前流量速率、所述业务服务信息、所述当前资源需求量和所述当前已分配资源量构建初始矩阵;
将所述初始矩阵进行展开,得到一维向量;
采用所述一维向量与所述分配限值向量进行向量拼接,得到当前资源状态。
可选地,所述方法还包括:
构建初始策略网络;
基于预设的参数更新梯度对所述初始策略网络内的模型参数进行调整,直至所述初始策略网络收敛,得到目标策略网络。
可选地,所述参数更新梯度为:
其中,指的是使用策略网络πθ计算得到的期望,at为t时刻的弹性伸缩动作,st为t时刻的当前资源状态,θ为策略网络πθ内的模型参数,/>为在状态st处选择动作at,并在之后执行当前策略情况下,从第t+i步开始获得的累计奖励。
本发明还提供了一种无服务器的资源主动弹性伸缩装置,包括:
信息获取模块,用于当接收到业务请求时,匹配所述业务请求对应的业务服务信息,并获取当前已分配资源量和分配限值向量;
资源预测模块,用于基于所述业务服务信息对应的历史流量速率和历史资源需求量,分别预测当前流量速率和当前资源需求量;
资源状态确定模块,用于采用所述业务服务信息、所述当前已分配资源量、所述当前流量速率、所述当前资源需求量和所述分配限值向量进行拼接,得到当前资源状态;
动作确定模块,用于将所述当前资源状态输入至预设的目标策略网络,通过所述目标策略网络确定对应的目标动作;
弹性伸缩模块,用于采用所述目标动作对无服务器内的容器资源进行弹性伸缩。
可选地,所述资源预测模块具体用于:
按照所述业务服务信息,匹配对应的历史流量速率和历史资源需求量;
采用预设的GRU预测模型结合所述历史流量速率,预测当前流量速率;
采用预设的GRU预测模型结合所述历史资源需求量,预测当前资源需求量。
可选地,所述资源状态确定模块具体用于:
采用所述当前流量速率、所述业务服务信息、所述当前资源需求量和所述当前已分配资源量构建初始矩阵;
将所述初始矩阵进行展开,得到一维向量;
采用所述一维向量与所述分配限值向量进行向量拼接,得到当前资源状态。
可选地,所述装置还包括:
策略网络构建模块,用于构建初始策略网络;
参数调整模块,用于基于预设的参数更新梯度对所述初始策略网络内的模型参数进行调整,直至所述初始策略网络收敛,得到目标策略网络。
本发明还提供了一种无服务器的资源主动弹性伸缩管理系统,包括API服务器、监测模块、日志模块和如上述任一项所述的无服务器的资源主动弹性伸缩装置。
从以上技术方案可以看出,本发明具有以下优点:
当接收到业务请求时,匹配业务请求对应的业务服务信息,并获取当前已分配资源量和分配限值向量;基于业务服务信息对应的历史流量速率和历史资源需求量,分别预测当前流量速率和当前资源需求量;采用业务服务信息、当前已分配资源量、当前流量速率、当前资源需求量和分配限值向量进行拼接,得到当前资源状态;将当前资源状态输入至预设的目标策略网络,通过目标策略网络确定对应的目标动作;采用目标动作对无服务器内的容器资源进行弹性伸缩。具有前置主动自适应扩缩容的优点,通过融合循环神经网络,可以基于预测主动前置地进行扩缩容决策,而无需被动等待触发阈值。同时,深度强化学习拥有良好的自适应能力,哪怕应用流量模式随时间变化导致环境发生变化,深度强化学习也可以通过与环境的交互逐渐熟悉新的应用流量模式,降低了人工干预的开销。
此外,使用深度强化学习算法来完成弹性伸缩决策,克服了传统机器学习技术难以解决高维复杂问题的难题,能更好地兼顾资源利用和用户服务质量(QoS)的优化目标,更有利于保证在使用较低资源成本以及服务水平协议违反率较低的条件下高效完成用户请求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例一提供的一种无服务器的资源主动弹性伸缩方法的步骤流程图;
图2为本发明实施例二提供的一种无服务器的资源主动弹性伸缩方法的步骤流程图;
图3为本发明实施例的一种无服务器的资源主动弹性伸缩管理系统的架构示意图;
图4为本发明实施例的一种无服务器的资源主动弹性伸缩装置的结构框图。
具体实施方式
尽管弹性伸缩在Serverless系统中已经有相关的落地实践,但大多采用被动服务的方式,即只能在用户的服务需求发生变化后或因故障导致资源发生变化后再进行扩缩容,具有较大的局限性。被动式的弹性收缩方式难以即时响应环境发生的变化,可能会导致少量的请求响应超时或出错。被动缩放的另一缺点是需要管理员干预来更新缩放规则。由于模型的高度灵活性以及用户业务需求的高度多样性,这会带来很大的人工管理开销。同时,使用更加动态的方法可以减少人工干预更新缩放规则的开销。此外,现有方法难以对Serverless平台的资源利用率和请求响应时间两大重要指标同时进行优化,亦或是难以识别两者的平衡条件。因此,发明基于对业务流量和资源负载预测的主动弹性伸缩技术,对Serverless系统的资源分配具有重要意义。
传统的被动式弹性缩放方法通常包括按请求缩放、并发值缩放、基于度量的缩放和基于阈值的缩放等。其中按请求缩放的缩放机制完全是被动的,新请求不使用排队,对每个新请求分配实例,需要解决函数冷启动的问题。并发值缩放定义了每个实例最大/小并发请求数,达到此数字时执行缩放操作。基于度量的缩放尝试将CPU使用率、内存使用率、吞吐量或延迟等度量保持在预定义范围内。基于阈值的缩放通常利用基于时间序列的分析进行辅助决策,但是它也只能通过管理员干预更新缩放规则。
本发明实施例提供了一种无服务器的资源主动弹性伸缩方法、装置和管理系统,用于解决传统的机器学习技术在处理高维复杂问题方面存在弱点,同时难以识别资源利用和用户服务质量(QoS)的平衡条件,难以平衡资源利用率和请求响应时间,经常导致资源浪费或违反服务水平协议(SLA),进而导致资源弹性伸缩的成本较高的技术问题。
为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
请参阅图1,图1为本发明实施例一提供的一种无服务器的资源主动弹性伸缩方法的步骤流程图。
本发明提供的一种无服务器的资源主动弹性伸缩方法,包括:
步骤101,当接收到业务请求时,匹配业务请求对应的业务服务信息,并获取当前已分配资源量和分配限值向量;
业务请求指的是请求无服务器实现某一功能或执行某一业务的请求信息。
业务服务信息指的是该类型业务所对应的服务级别协议信息(service-levelagreement,SLA)和服务级别目标等信息(Service Level Object,SLO)。
在本发明实施例中,当在当前时刻接收到业务请求时,可以通过匹配该业务请求所属类型的业务服务信息,并获取当前时刻各项资源的当前已分配资源量和各项资源的分配上限构建得到分配限值向量。
步骤102,基于业务服务信息对应的历史流量速率和历史资源需求量,分别预测当前流量速率和当前资源需求量;
为了实现对业务流量和资源负载的有效预测,本发明在深度强化学习中嵌入循环神经网络,可选的有基于门控循环单元(Gate Recurrent Unit,GRU)和长短时记忆网络(Long Short Term Memory Network,LSTM)的时序模型。
GRU是循环神经网络的一种,解决了传统循环神经网络无法处理长距离依赖和反向传播的梯度问题。GRU在保持着和LSTM相当的性能的同时结构上更加简单,处理更快,适合对实时性要求高的场景。
在本发明实施例中,在获取到业务服务信息后,可以按照其索引到该类型的业务请求对应的历史流量速率和历史资源需求量,结合GRU模型分别预测当前流量速率和当前资源需求量。
步骤103,采用业务服务信息、当前已分配资源量、当前流量速率、当前资源需求量和分配限值向量进行拼接,得到当前资源状态;
嵌入循环神经网络时序模型的深度强化学习可以将感知预测和调度决策融为一体,根据状态信息直接输出动作。
本发明将Serverless的弹性伸缩过程建模为马尔科夫决策过程(MarkovDecision Process,MDP),用一个四元组<S,A,P,R>表示,分别代表状态空间、动作空间、状态转移概率和奖励函数。
在得到当前流量速率和当前资源需求量后,可以采用业务服务信息、当前已分配资源量、当前流量速率、当前资源需求量展开为一维向量后,与分配限值向量进行向量拼接,从而得到当前资源状态。
步骤104,将当前资源状态输入至预设的目标策略网络,通过目标策略网络确定对应的目标动作;
步骤105,采用目标动作对无服务器内的容器资源进行弹性伸缩。
在本发明实施例中,将当前资源状态输入至预设的目标策略网络,通过该目标策略网络依据该当前资源状态确定对应的目标动作。再采用该目标动作所对应的扩缩容策略,将其传递至无服务器内的容器编排层,对下一时刻需要使用的容器资源进行弹性伸缩。
在本发明实施例中,当接收到业务请求时,匹配业务请求对应的业务服务信息,并获取当前已分配资源量和分配限值向量;基于业务服务信息对应的历史流量速率和历史资源需求量,分别预测当前流量速率和当前资源需求量;采用业务服务信息、当前已分配资源量、当前流量速率、当前资源需求量和分配限值向量进行拼接,得到当前资源状态;将当前资源状态输入至预设的目标策略网络,通过目标策略网络确定对应的目标动作;采用目标动作对无服务器内的容器资源进行弹性伸缩。具有前置主动自适应扩缩容的优点,通过融合循环神经网络,可以基于预测主动前置地进行扩缩容决策,而无需被动等待触发阈值。同时,深度强化学习拥有良好的自适应能力,哪怕应用流量模式随时间变化导致环境发生变化,深度强化学习也可以通过与环境的交互逐渐熟悉新的应用流量模式,降低了人工干预的开销。
请参阅图2,图2示出了本发明实施例二的一种无服务器的资源主动弹性伸缩方法的步骤流程图。
本发明提供的一种无服务器的资源主动弹性伸缩方法,包括:
步骤201,当接收到业务请求时,匹配业务请求对应的业务服务信息,并获取当前已分配资源量和分配限值向量;
步骤202,按照业务服务信息,匹配对应的历史流量速率和历史资源需求量;
在时刻t,未来[t,t+△t)时间内预计有K种业务需求的流量到达。
在时刻t到来的业务流量tk(k∈{1,2,…,K})可以用一个四元组(bk(t),lk(t),pk(t),qk(t))表示。
其中,bk(t)表示业务流量到达的速率,lk(t)表示业务服务信息,例如业务的服务级别协议(SLA)相关信息,用户在将函数提交到Serverless平台时可以指定服务级别目标(SLO),包括响应时间和处理速度等性能指标、请求成功率等可用性指标、以及可选的一些数据完整性与安全性等指标。pk(t)分别表示完成需求预计所需的资源量,qk(t)为在当前时刻t已分配至业务tk的当前已分配资源量。
假设Serverless系统中有M种资源,则pk(t)和qk(t)分别可以用一个M维向量表示,即和/>其中每个值表示各项资源的量,如CPU、GPU、内存、磁盘等。
同时,每项资源存在分配上限,即分配限值向量 各项资源的分配总量不应超过Serverless资源池的上限。对于描述业务流量tk的四元组,业务SLAlk(t)是固定值,由用户在创建服务请求时设置;已经分配的资源qk(t)可以从监测模块获取;流量速率bk(t)和预计所需要的资源数量pk(t)可以通过预测获取。
步骤203,采用预设的GRU预测模型结合历史流量速率,预测当前流量速率;
为了实现对业务流量和资源负载的有效预测,本发明在深度强化学习中嵌入循环神经网络,可选的有基于门控循环单元(Gate Recurrent Unit,GRU)和长短时记忆网络(Long Short Term Memory Network,LSTM)的时序模型。以下结合GRU对本发明作进一步描述,但并不因此而限制本发明的保护范围。
GRU是循环神经网络的一种,解决了传统循环神经网络无法处理长距离依赖和反向传播的梯度问题。GRU在保持着和LSTM相当的性能的同时结构上更加简单,处理更快,适合对实时性要求高的场景。以预测业务tk在时隙[t,t+△t)内的流量到达速率bk(t)为例,bk(t-1)为输入变量,表示从上一时刻的流量速率,则GRU的数学表达为:
rt=σ(Wr·[ht-1,bk(t-1)]),
zt=σ(Wz·[ht-1,bk(t-1)]),
bk(t)=σ(Wo·ht).
其中,ht-1为上一个节点传递下来的状态信息;rt为重置门变量,用于控制前一状态有多少信息被遗忘;zt表示更新门变量,用于控制前一时刻的状态有多少有用的信息向下传递到当前状态中;为GRU的隐状态;W和U为参数矩阵;σ和tanh为Sigmoid函数和双曲正切函数。
步骤204,采用预设的GRU预测模型结合历史资源需求量,预测当前资源需求量;
同理,预计所需要的资源数量pk(t)也可以通过GRU预测获取,相应数学表达式为pk(t)=σ(Wo·ht),具体过程可以参见上述步骤203对流量速率的预测过程。
步骤205,采用业务服务信息、当前已分配资源量、当前流量速率、当前资源需求量和分配限值向量进行拼接,得到当前资源状态;
可选地,步骤205可以包括以下子步骤:
采用当前流量速率、业务服务信息、当前资源需求量和当前已分配资源量构建初始矩阵;
将初始矩阵进行展开,得到一维向量;
采用一维向量与分配限值向量进行向量拼接,得到当前资源状态。
在本发明实施例中,采用当前流量速率、业务服务信息、当前资源需求量和当前已分配资源量构建初始矩阵,将初始矩阵进行展开,得到一维向量,采用一维向量与分配限值向量进行向量拼接,得到当前资源状态,即时刻t的状态st∈A,具体为当前时刻业务流量和系统资源的当前资源状态,即:
其中flat(·)函数将矩阵展开为一维的向量,⊕为向量拼接符号。
步骤206,将当前资源状态输入至预设的目标策略网络,通过目标策略网络确定对应的目标动作;
动作at∈A定义为采取的扩缩容决策,对于到达的K种业务需求,动作其中/>表示增加或减少的实例数。N为同一时间间隔△t内允许增加/减少的实例数,为系统配置参数。奖励值rt用户评估当前状态-动作对(st,at)的性能。
步骤207,采用目标动作对无服务器内的容器资源进行弹性伸缩。
可选地,方法还包括:
构建初始策略网络;
基于预设的参数更新梯度对初始策略网络内的模型参数进行调整,直至初始策略网络收敛,得到目标策略网络。
进一步地,参数更新梯度为:
其中,指的是使用策略网络πθ计算得到的期望,at为t时刻的弹性伸缩动作,st为t时刻的当前资源状态,θ为策略网络πθ内的模型参数,/>为在状态st处选择动作at,并在之后执行当前策略情况下,从第t+i步开始获得的累计奖励。
本发明将Serverless的弹性伸缩过程建模为马尔科夫决策过程(MarkovDecision Process,MDP),用一个四元组<S,A,P,R>表示,分别代表状态空间、动作空间、状态转移概率和奖励函数。
1)状态:时刻t的状态st∈S定义为当前时刻业务流量和系统资源的信息,即:
其中flat(·)函数将矩阵展开为一维的向量,为向量拼接符号。
2)动作:动作at∈A定义为采取的扩缩容决策,对于到达的K个业务需求,动作其中/>表示增加或减少的实例数。N为同一时间间隔△t内允许增加/减少的实例数,为系统配置参数。奖励值rt用户评估当前状态-动作对(st,at)的性能。
3)奖励:弹性伸缩的目的是完成业务请求的同时尽可能降低成本;因此,本发明将奖励值定义为rt=rcharge-rcontainer-rSLA,其中rcharge为Serverless系统向用户收取的费用,rcontainer为容器运行开销,rSLA为SLA违约成本。当Serverless系统违反对用户做出的SLA承诺,比如用户指定的服务延迟上限为200ms,而服务交付超时(>200ms)时,rSLA等于一个预设的惩罚值;反之,rSLA=0。rcharge和rcontainer可在执行动作后由监测模块获取。
基于以上MDP模型可以构建弹性伸缩场景下深度强化学习的优化目标。针对动态的Serverless系统,优化目标是寻找最优的弹性伸缩策略,从而最大化累积奖励其中γ∈(0,1]为折扣因子,用于权衡未来奖励的重要性。
深度强化学习的一类常见做法是直接对策略进行建模并对其不断优化。借助神经网络强大的表征能力,深度强化学习构建策略网络πθ,其中θ为神经网络的参数。
策略网络的输入为状态,输出为各动作的选择概率。更新策略网络πθ的核心思想为策略梯度(policy gradient),即基于从历史数据计算得到的累积回报,提高能获得高奖励的动作的采样概率,降低获得低奖励的动作的采样概率。因此,策略网络πθ的参数更新梯度可表示为:
其中,表示使用策略πθ计算得到的期望。深度强化学习通过与环境(即Serverless系统)交互采集训练数据并持续训练迭代,不断地优化策略网络,最终收敛到最优的弹性伸缩策略。
有了优化后的策略网络,深度强化学习智能体可以根据输入的当前时刻业务流量和系统资源等状态信息st输出动作:
at=πθ(st)
该公式表示在当前环境状态st下,根据策略网络的预测概率分布,选择最优的动作。该动作对应着函数实例的扩缩容决策,相应控制信息会从弹性伸缩模块传递到容器编排层,进行最后的实例扩缩容。
请参阅图3,图3示出了本发明实施例的一种无服务器的资源主动弹性伸缩管理系统的架构示意图。
本发明实施例提供的一种无服务器的资源主动弹性伸缩管理系统,包括API服务器、监测模块、日志模块和如任一实施例的无服务器的资源主动弹性伸缩装置。
Serverless系统可分为三层,从下至上依次是物理层、虚拟层和平台层。物理层即基础设施,包括物理主机、云服务器、存储器、网络设备等,为Serverless系统提供基础的硬件设施支持。物理层的硬件设备通常是异构的,存在如型号、规格、协议等差异。虚拟层通过容器虚拟化技术和Kubernetes容器编排工具,将硬件设备之间的差异性屏蔽,以统一接口的方式向上提供服务。物理层的基础设施通过虚拟化之后形成一个庞大的资源池,资源池的资源可以按需分配,从而实现快速环境部署、灵活的资源分配和回收。平台层,即系统平台支撑,是Serverless系统最核心的功能,基于虚拟层的资源管理能力提供一个可伸缩、高可用、易于管理的平台,支撑应用服务的开发、部署、测试和运行。
在本发明实施例中,平台层的弹性伸缩管理框架由以下四个模块组成,即APIServer、监测模块、弹性伸缩模块、日志模块。
API Server充当应用程序的前台,涉及接收和处理来自业务的高并发API调用,包括鉴权授权、API路由、负载均衡、请求分配等功能。
监测模块包括对业务流量和对资源负载的监控,并将业务流量的流向和规模、对容器资源的使用情况、服务的性能表现以及服务质量记录在日志模块。
弹性伸缩模块根据相应的算法和策略进行相应的决策,根据业务流量和资源负载的变化来增加或减少分配的资源量,从而在业务需求增长时保障计算能力、在业务需求下降时降低成本。
在本发明实施例中,如图3所示,基于深度强化学习的主动弹性伸缩方法以可插拔组件的方式集成于Serverless系统平台层的弹性伸缩模块。主动弹性伸缩方法分别从平台层的日志模块和监测模块获取进行流量预测和弹性伸缩决策所需的历史信息以及现阶段资源使用等状态信息。接着,弹性伸缩模块融合流量监控和资源负载的感知,并把对业务流量和资源负载的预测和伸缩决策算法融为一体,以深度强化学习统筹规划资源进行资源主动弹性伸缩。基于深度强化学习的弹性伸缩动作会将函数实例的扩缩容决策传递到容器编排层,并进一步由容器编排层采取具体的函数扩缩容动作。使用深度强化学习求解最优的伸缩策略,在不违反服务等级协议(Service-Level Agreement,SLA)的情况下最小化系统成本。
在本发明实施例中,将基于深度强化学习的主动弹性伸缩方法以可插拔组件的方式集成于Serverless系统平台层的弹性伸缩模块。主动弹性伸缩方法进行流量预测和弹性伸缩决策所需的历史信息以及请求和现阶段资源使用等状态信息,分别可从平台层的日志模块和监测模块获取。同时,基于深度强化学习的弹性伸缩动作会将函数实例的扩缩容决策传递到容器编排层,并进一步由容器编排层采取具体的函数扩缩容动作。将Serverless系统的弹性伸缩建模为马尔可夫决策过程MDP(Markov Decision Process),并以深度强化学习统筹规划资源进行资源主动弹性伸缩。为了实现对业务流量和资源负载的有效预测,本发明在深度强化学习中嵌入循环神经网络。嵌入循环神经网络时序模型的深度强化学习可以将资源负载的感知、业务流量的预测和弹性伸缩的调度决策融为一体,根据状态信息直接输出弹性伸缩的调度动作。
请参阅图4,图4示出了本发明实施例的一种无服务器的资源主动弹性伸缩装置的结构框图。
一种无服务器的资源主动弹性伸缩装置,包括:
信息获取模块401,用于当接收到业务请求时,匹配业务请求对应的业务服务信息,并获取当前已分配资源量和分配限值向量;
资源预测模块402,用于基于业务服务信息对应的历史流量速率和历史资源需求量,分别预测当前流量速率和当前资源需求量;
资源状态确定模块403,用于采用业务服务信息、当前已分配资源量、当前流量速率、当前资源需求量和分配限值向量进行拼接,得到当前资源状态;
动作确定模块404,用于将当前资源状态输入至预设的目标策略网络,通过目标策略网络确定对应的目标动作;
弹性伸缩模块405,用于采用目标动作对无服务器内的容器资源进行弹性伸缩。
可选地,资源预测模块402具体用于:
按照业务服务信息,匹配对应的历史流量速率和历史资源需求量;
采用预设的GRU预测模型结合历史流量速率,预测当前流量速率;
采用预设的GRU预测模型结合历史资源需求量,预测当前资源需求量。
可选地,资源状态确定模块403具体用于:
采用当前流量速率、业务服务信息、当前资源需求量和当前已分配资源量构建初始矩阵;
将初始矩阵进行展开,得到一维向量;
采用一维向量与分配限值向量进行向量拼接,得到当前资源状态。
可选地,装置还包括:策略网络构建模块,用于构建初始策略网络;
参数调整模块,用于基于预设的参数更新梯度对初始策略网络内的模型参数进行调整,直至初始策略网络收敛,得到目标策略网络。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种无服务器的资源主动弹性伸缩方法,其特征在于,包括:
当接收到业务请求时,匹配所述业务请求对应的业务服务信息,并获取当前已分配资源量和分配限值向量;
基于所述业务服务信息对应的历史流量速率和历史资源需求量,分别预测当前流量速率和当前资源需求量;
采用所述业务服务信息、所述当前已分配资源量、所述当前流量速率、所述当前资源需求量和所述分配限值向量进行拼接,得到当前资源状态;
将所述当前资源状态输入至预设的目标策略网络,通过所述目标策略网络确定对应的目标动作;
采用所述目标动作对无服务器内的容器资源进行弹性伸缩。
2.根据权利要求1所述的方法,其特征在于,所述基于所述业务服务信息对应的历史流量速率和历史资源需求量,分别预测当前流量速率和当前资源需求量的步骤,包括:
按照所述业务服务信息,匹配对应的历史流量速率和历史资源需求量;
采用预设的GRU预测模型结合所述历史流量速率,预测当前流量速率;
采用预设的GRU预测模型结合所述历史资源需求量,预测当前资源需求量。
3.根据权利要求1所述的方法,其特征在于,所述采用所述业务服务信息、所述当前已分配资源量、所述当前流量速率、所述当前资源需求量和所述分配限值向量进行拼接,得到当前资源状态的步骤,包括:
采用所述当前流量速率、所述业务服务信息、所述当前资源需求量和所述当前已分配资源量构建初始矩阵;
将所述初始矩阵进行展开,得到一维向量;
采用所述一维向量与所述分配限值向量进行向量拼接,得到当前资源状态。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
构建初始策略网络;
基于预设的参数更新梯度对所述初始策略网络内的模型参数进行调整,直至所述初始策略网络收敛,得到目标策略网络。
5.根据权利要求4所述的方法,其特征在于,所述参数更新梯度为:
其中,指的是使用策略网络πθ计算得到的期望,at为t时刻的弹性伸缩动作,st为t时刻的当前资源状态,θ为策略网络πθ内的模型参数,/>为在状态st处选择动作at,并在之后执行当前策略情况下,从第t+i步开始获得的累计奖励。
6.一种无服务器的资源主动弹性伸缩装置,其特征在于,包括:
信息获取模块,用于当接收到业务请求时,匹配所述业务请求对应的业务服务信息,并获取当前已分配资源量和分配限值向量;
资源预测模块,用于基于所述业务服务信息对应的历史流量速率和历史资源需求量,分别预测当前流量速率和当前资源需求量;
资源状态确定模块,用于采用所述业务服务信息、所述当前已分配资源量、所述当前流量速率、所述当前资源需求量和所述分配限值向量进行拼接,得到当前资源状态;
动作确定模块,用于将所述当前资源状态输入至预设的目标策略网络,通过所述目标策略网络确定对应的目标动作;
弹性伸缩模块,用于采用所述目标动作对无服务器内的容器资源进行弹性伸缩。
7.根据权利要求6所述的装置,其特征在于,所述资源预测模块具体用于:
按照所述业务服务信息,匹配对应的历史流量速率和历史资源需求量;
采用预设的GRU预测模型结合所述历史流量速率,预测当前流量速率;
采用预设的GRU预测模型结合所述历史资源需求量,预测当前资源需求量。
8.根据权利要求6所述的装置,其特征在于,所述资源状态确定模块具体用于:
采用所述当前流量速率、所述业务服务信息、所述当前资源需求量和所述当前已分配资源量构建初始矩阵;
将所述初始矩阵进行展开,得到一维向量;
采用所述一维向量与所述分配限值向量进行向量拼接,得到当前资源状态。
9.根据权利要求6所述的装置,其特征在于,所述装置还包括:
策略网络构建模块,用于构建初始策略网络;
参数调整模块,用于基于预设的参数更新梯度对所述初始策略网络内的模型参数进行调整,直至所述初始策略网络收敛,得到目标策略网络。
10.一种无服务器的资源主动弹性伸缩管理系统,其特征在于,包括API服务器、监测模块、日志模块和如权利要求6-9任一项所述的无服务器的资源主动弹性伸缩装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311347904.7A CN117499251A (zh) | 2023-10-17 | 2023-10-17 | 一种无服务器的资源主动弹性伸缩方法、装置和管理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311347904.7A CN117499251A (zh) | 2023-10-17 | 2023-10-17 | 一种无服务器的资源主动弹性伸缩方法、装置和管理系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117499251A true CN117499251A (zh) | 2024-02-02 |
Family
ID=89675364
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311347904.7A Pending CN117499251A (zh) | 2023-10-17 | 2023-10-17 | 一种无服务器的资源主动弹性伸缩方法、装置和管理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117499251A (zh) |
-
2023
- 2023-10-17 CN CN202311347904.7A patent/CN117499251A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Tuli et al. | COSCO: Container orchestration using co-simulation and gradient based optimization for fog computing environments | |
Liu et al. | A hierarchical framework of cloud resource allocation and power management using deep reinforcement learning | |
CN112000459B (zh) | 一种用于服务的扩缩容的方法及相关设备 | |
CN115037749B (zh) | 一种大规模微服务智能多资源协同调度方法及系统 | |
Khorsand et al. | A self‐learning fuzzy approach for proactive resource provisioning in cloud environment | |
CN110389820B (zh) | 一种基于v-TGRU模型进行资源预测的私有云任务调度方法 | |
CN107404523A (zh) | 云平台自适应资源调度系统和方法 | |
CN114490057B (zh) | 一种基于深度强化学习的mec已卸载任务资源分配方法 | |
CN109710404B (zh) | 分布式系统中的任务调度方法 | |
CN115237581B (zh) | 一种面向异构算力的多策略智能调度方法和装置 | |
CN111314120A (zh) | 基于迭代QoS模型的云软件服务资源自适应管理框架 | |
CN116257363B (zh) | 资源调度方法、装置、设备及存储介质 | |
Qi et al. | Vehicular edge computing via deep reinforcement learning | |
Wang et al. | Deep reinforcement learning-based scheduling for optimizing system load and response time in edge and fog computing environments | |
CN113641445B (zh) | 基于深度确定性策略的云资源自适应配置方法及系统 | |
Kafle et al. | Intelligent and agile control of edge resources for latency-sensitive IoT services | |
CN113190342B (zh) | 用于云-边协同网络的多应用细粒度卸载的方法与系统架构 | |
Fan et al. | Dras: Deep reinforcement learning for cluster scheduling in high performance computing | |
CN113422795B (zh) | 一种基于深度强化学习的车载边缘任务集中调度与资源分配联合优化方法 | |
Lorido-Botran et al. | Adaptive container scheduling in cloud data centers: a deep reinforcement learning approach | |
CN113543160A (zh) | 5g切片资源配置方法、装置、计算设备及计算机存储介质 | |
CN117499251A (zh) | 一种无服务器的资源主动弹性伸缩方法、装置和管理系统 | |
Kusic et al. | Approximation modeling for the online performance management of distributed computing systems | |
CN115913967A (zh) | 一种云环境下基于资源需求预测的微服务弹性伸缩方法 | |
CN116109058A (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 |