CN116610454A - 一种基于maddpg算法的混合式云资源弹性伸缩系统及运行方法 - Google Patents
一种基于maddpg算法的混合式云资源弹性伸缩系统及运行方法 Download PDFInfo
- Publication number
- CN116610454A CN116610454A CN202310868189.5A CN202310868189A CN116610454A CN 116610454 A CN116610454 A CN 116610454A CN 202310868189 A CN202310868189 A CN 202310868189A CN 116610454 A CN116610454 A CN 116610454A
- Authority
- CN
- China
- Prior art keywords
- module
- agent
- maddpg
- cloud resource
- decision
- 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 48
- 238000013461 design Methods 0.000 claims abstract description 35
- 230000002787 reinforcement Effects 0.000 claims abstract description 32
- 230000033228 biological regulation Effects 0.000 claims abstract description 31
- 238000003032 molecular docking Methods 0.000 claims abstract description 22
- 239000003795 chemical substances by application Substances 0.000 claims description 120
- 230000009471 action Effects 0.000 claims description 56
- 238000012544 monitoring process Methods 0.000 claims description 41
- 230000008602 contraction Effects 0.000 claims description 29
- 230000006870 function Effects 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 15
- 238000012549 training Methods 0.000 claims description 8
- 230000007246 mechanism Effects 0.000 claims description 6
- 238000013528 artificial neural network Methods 0.000 claims description 4
- 230000003993 interaction Effects 0.000 claims description 4
- 230000002159 abnormal effect Effects 0.000 claims description 3
- 238000005070 sampling Methods 0.000 claims description 3
- 238000004387 environmental modeling Methods 0.000 claims 1
- 230000004044 response Effects 0.000 abstract description 3
- 238000007726 management method Methods 0.000 description 8
- 238000005457 optimization Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000003247 decreasing effect Effects 0.000 description 4
- 238000004088 simulation Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000001276 controlling effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000001105 regulatory effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000011002 quantification Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000002195 synergetic effect Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
- 239000002699 waste material Substances 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/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
- G06F9/505—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 considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- 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
-
- 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)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- Multi Processors (AREA)
Abstract
本发明涉及一种基于MADDPG算法的混合式云资源弹性伸缩系统及运行方法,属于云计算领域,所述系统包括集群负载监控中心模块、MADDPG决策中心设计模块,云资源调控中心模块和下游接口对接模块,MADDPG决策中心模块有基于MADDPG算法的多智能体强化学习模型;MADDPG决策中心设计模块与集群负载监控中心模块、MADDPG决策中心设计模块有信号连接,云资源调控中心模块与下游接口对接模块有信号连接。本发明云资源弹性伸缩系统可以智能地适应复杂和动态的环境,以较短的响应时间,及时提供足够的资源满足应用程序的需求。并且在满足性能需求的同时降低云服务商运营成本。
Description
技术领域
本发明属于云计算领域,具体的涉及一种基于MADDPG算法的混合式云资源弹性伸缩系统及运行方法。
背景技术
云资源弹性伸缩可以根据实时的负载情况自动增加或减少计算资源。当负载增加时,弹性伸缩可以自动扩展资源,以确保应用程序的性能和可用性不受影响。当负载减少时,它可以自动缩减资源,以减少资源浪费和成本。云资源弹性伸缩包括水平弹性伸缩和垂直弹性伸缩,如图1所示。
水平弹性伸缩是云计算中的一种资源管理策略,它允许根据应用程序的需求自动增加或减少计算资源的数量。这种弹性伸缩策略旨在应对负载的变化,确保应用程序始终具有足够的资源来满足用户需求。当负载增加时,水平弹性伸缩会自动增加计算资源的数量。例如,在虚拟化环境中,可以通过启动更多的虚拟机实例或容器来增加计算能力。在分布式系统中,可以增加更多的服务器节点来扩展资源。这样可以确保应用程序能够处理更多的请求,并提供更好的性能。负载均衡在水平弹性伸缩中起着重要的作用。负载均衡器将请求流量分发到多个实例上,确保每个实例的负载均衡,避免任何一个实例过载。通过负载均衡,可以提高应用程序的可伸缩性和可用性,同时确保用户请求得到及时的处理。弹性伸缩组是实现水平弹性伸缩的常见机制,它是一组虚拟机实例或容器的集合,它们共同提供服务。弹性伸缩组负责根据负载情况自动调整实例数量,确保集群中的实例数始终满足需求。通过弹性伸缩组,系统可以实现高可用性和弹性,即使某个实例失败,也可以自动替换它,确保应用程序的连续性。
垂直弹性伸缩是一种在云计算中常用的资源管理策略。它允许根据应用程序的需求动态地调整单个计算资源的配置,以适应不同的工作负载。当负载增加时,垂直弹性伸缩可以通过增加资源的配置来提高计算能力。例如,可以增加虚拟机实例的内存或CPU核心数,以满足更高的性能需求。这样可以确保应用程序能够处理更多的请求,并保持良好的响应时间。相反,当负载减少时,垂直弹性伸缩可以通过减少资源的配置来降低成本。例如,可以减少虚拟机实例的内存或CPU核心数,以避免资源的浪费。这种灵活的资源调整能够根据实际需求进行动态的配置变更。垂直弹性伸缩是一种根据应用程序的需求调整单个计算资源配置的资源管理策略。它可以提高应用程序的性能和可用性,并在负载波动时实现资源的有效利用。
云计算的快速发展为现代信息技术提供了强大的支持和基础设施。弹性伸缩作为云计算中关键的资源管理策略,旨在根据实时负载需求调整云资源的数量和规模,以满足用户的需求并提供最佳的性能和资源利用率。然而,传统的弹性伸缩方法在面对复杂和动态的环境时面临一些挑战,例如缺乏对不确定性和动态性的适应能力。
发明内容
针对上述技术问题,本发明提出了一种基于MADDPG(Multi-Agent DeepDeterministic Policy Gradient)算法的混合式云资源弹性伸缩系统及运行方法,用于云资源水平与垂直混合式弹性伸缩系统的优化,本发明云资源弹性伸缩系统可以智能地适应复杂和动态的环境,以较短的响应时间,及时提供足够的资源满足应用程序的需求。并且在满足性能需求的同时降低云服务商运营成本。
本发明是通过如下技术方案来实现的:
一种基于MADDPG算法的混合式云资源弹性伸缩系统,所述系统包括集群负载监控中心模块、MADDPG决策中心设计模块,云资源调控中心模块和下游接口对接模块,MADDPG决策中心模块有基于MADDPG算法的多智能体强化学习模型;MADDPG决策中心设计模块与集群负载监控中心模块、MADDPG决策中心设计模块有信号连接,云资源调控中心模块与下游接口对接模块有信号连接。
进一步,所述的MADDPG决策中心设计模块中采用了智能体分组模式,分为水平伸缩智能体组与垂直伸缩智能体组,其中水平伸缩智能体组只负责水平弹性伸缩,垂直伸缩智能体组只负责垂直弹性伸缩。
进一步,所述集群负载监控中心模块能够实现CPU负载监测、GPU负载监测、内存负载监测、存储负载监测和网络负载监测。
进一步,所述的MADDPG决策中心设计模块包括环境建模,所述环境建模包括状态空间设计、动作空间设计、奖励函数设计和多智能体设计。
进一步,所述云资源调控中心模块的功能包括虚拟机CPU扩容与缩容、虚拟机GPU扩容与缩容、虚拟机内存扩容与缩容、虚拟机存储扩容与缩容、虚拟网络储扩容与缩容和增加与减少虚拟机数量。
进一步,所述的下游接口对接模块将各云平台的包括认证与鉴权接口、API调用和数据交互接口、错误处理与异常情况处理接口、监控与同步接口在内的接口封装整合为一个通用云平台接口,实现跨平台接口调用。
本发明提供所述系统的运行方法,MADDPG决策中心模块内基于深度神经网络进行决策的多智能体通过观察环境进行动作决策,得到一组动作,同时执行这一组动作也会使云环境发生变化,这个变化向好的方向发展智能体就会得到正反馈,反之,如果向不好的方向发展会得到一个负反馈,智能体得到反馈后会进行学习与思考,优化动作决策策略;
MADDPG决策中心模块首先通过调用集群负载监控中心模块的接口,对集群负载监控中心模块进行观测,进而获取当前集群负载监控中心模块内虚拟机的实时负载情况,进而通过深度强化学习进行动作决策,由于这一部分是多智能体协同决策,会形成一组动作集合,然后会调用云资源调控中心模块进行云资源水平弹性伸缩与垂直弹性伸缩;
最后云资源调控中心模块会通过调用下游接口对接模块实现各平台API控制,在各个云平台上完成云资源的扩容与缩容。
进一步,深度强化学习训练过程采用了协同训练和经验回放机制,在每个时间步,每个智能体根据自己的Actor网络选择动作,并与环境模型交互;智能体的经验存储在共享的经验回放缓冲区中;然后,从经验回放缓冲区中随机采样一批经验,用于更新每个Actor和Critic网络的参数;更新过程中,各个Critic网络通过最小化与实际奖励之间的误差来学习状态值函数,而各个Actor网络则通过最大化Critic网络估计的状态值函数来更新策略,这种协同学习和经验回放的结合,使得智能体能够在多智能体环境中协作并优化动作选择策略,达到协同决策的目标;
进一步,所述的智能体分组模式:将所有虚拟机或容器分成N组,每组有M个实例,满M个实例的组为垂直伸缩智能体和不满M个实例的组为水平伸缩智能体。当水平伸缩智能体达到M个实例时,变成垂直伸缩智能体,同时添加一个空的水平伸缩智能体;反之当垂直伸缩智能体不足M个实例时,则变成水平伸缩智能体,通过限制M的大小使每个智能体的状态空间和动作空间都是确定的。
进一步,所述的集群负载监控中心模块的工作步骤如下:
第一步、初始化程序,集群负载监控中心程序开始运行后进入监听状态,等待决策中心的指令,MADDPG决策中心向集群负载监控中心发送开始监听指令或结束指令;
第二步、集群负载监控中心模块收到开始监控指令后,注册监控线程;
第三步、监控线程会收集集群负载监控中心模块中各虚拟机的包括CPU利用率、GPU利用率、内存利用率、存储利用率、网络利用率在内的负载信息,
第四步、集群负载监控中心模块整理收集到的所有负载信息发送给MADDPG决策中心,如果发送成功,回到第三步,进行循环操作;反之,发送失败结束监控线程并重新注册监控线程;
第五步、如果集群负载监控中心模块监听到MADDPG决策中心发来的结束监听指令,会结束进程,结束集群负载监控程序。
进一步,所述的MADDPG决策中心模块实施方法:
第一步、等待人工指令,人工开始运行MADDPG决策中心;
第二步、运行多智能体深度强化学习MADDPG算法的决策中心程序,并且初始化MADDPG算法的多智能体强化学习模型;
第三步、向集群负载监控中心模块发送开始监控指令,等待集群负载监控中心模块发送过来的所有负载信息。
第四步、获取集群负载监控中心模块发送过来的负载信息,整理这些负载信息成为多智能体状态信息;
第五步、将整理好的状态信息,通过MADDPG算法的多智能体强化学习模型获取所有智能体决策后得到的动作集合;
第六步、将MADDPG算法的多智能体强化学习模型决策得到的动作集合发送给云资源调控中心模块,通过云资源调控中心模块完成混合式云资源弹性伸缩;
第七步、获取资源调度后集群负载信息,计算奖励反馈;
第八步、存储第四步至第七步获得的状态集合、动作集合、奖励集合;
第九步、更新MADDPG算法的多智能体强化学习模型;重新运行第四步。
进一步,第五步的操作进行水平弹性伸缩,增加或减少虚拟机的动作;当水平伸缩组容量超过上限会自动变成垂直伸缩组,执行垂直伸缩的动作,并且重新创建一个水平伸缩组,执行水平伸缩的动作;当垂直伸缩组出现空缺,该垂直伸缩组会自动变成水平伸缩组,执行水平伸缩的动作。
进一步,结束MADDPG决策中心程序的运行,需要进行人工干预,保存当前MADDPG网络模型,并销毁程序。
所述的云资源调控中心的运行方法如下:
第一步、初始化云资源调控中心程序,云资源调控中心的所有操作都按照监听决策中心传递的指令表达式运行;
第二步、等待决策中心传递的指令,指令分为普通操作指令与资源调控指令,普通指令实现重启程序与结束程序的操作;资源调控指令分为对某虚拟机某资源的定量调控的操作和增减虚拟机的操作;
第三步、与下游云平台通过下游接口对接模块进行交互;
第四步、如果下游接口对接模块调用成功,会调用监控与同步接口,观测当前集群负载并且将集群负载信息发送给MADDPG决策中心,供其计算奖励函数;反之,下游接口对接模块调用失败,会调用错误与异常处理接口,检测问题,并重新调用下游接口对接模块完成MADDPG决策中心发来的操作指令。
当收到MADDPG决策中心发来的结束程序的指令,会运行销毁程序,结束云资源调控中心的运行。
本发明与现有技术相比的有益效果:本发明通过智能体之间的学习和协作,使弹性伸缩系统能够自适应地调整云资源的配置,以适应不同的环境和负载情况。基于深度强化学习的多智能体算法利用了深度神经网络的强大表征能力和强化学习的优化能力。多智能体通过与环境的交互和奖励信号的反馈,逐渐学习到如何根据当前环境状态和负载情况来调整资源的配置,以达到系统性能的最优化。通过多智能体不断地学习和优化,本云资源弹性伸缩系统可以智能地适应复杂和动态的环境,以较短的响应时间,及时提供足够的资源满足应用程序的需求。并且在满足性能需求的同时降低云服务商运营成本。
MADDPG(Multi-Agent Deep Deterministic Policy Gradient)是一种多智能体强化学习算法,用于解决多智能体之间的协同决策问题。它结合了深度强化学习和确定性策略梯度方法,通过引入对其他智能体策略的建模来实现合作与竞争。MADDPG算法使用独立智能体框架,每个智能体有自己的观察状态和动作空间,以及一个独立的深度神经网络来近似策略函数。每个智能体的策略网络通过最大化期望累积回报来进行训练,采用确定性策略梯度方法进行策略优化。与单智能体的深度确定性策略梯度(DDPG)算法不同,MADDPG算法考虑了其他智能体的策略。每个智能体的策略网络不仅接收自身的观察状态,还接收其他智能体的观察状态作为输入,从而实现协同决策。通过学习其他智能体的策略,智能体可以改进自己的决策,实现更好的协同效果。为了提高训练的效率和稳定性,MADDPG算法使用经验回放机制和目标网络。经验回放机制将智能体的经验存储在一个共享的经验回放缓冲区中,通过随机抽取样本进行训练。目标网络是策略网络的延迟副本,用于计算目标Q值,通过软更新方式逐渐调整目标网络的参数,提高训练的稳定性。MADDPG算法在多智能体协同决策问题中具有广泛的应用,例如多智能体协同控制、多智能体交通管理等领域。它能够处理多智能体之间的合作与竞争,并学习出一组策略,使得整体系统达到更好的性能和效果。
本发明将分组思想应用于多智能体云资源弹性伸缩系统。解决了现有技术由于云资源调控中心进行水平伸缩时会导致虚拟机数量不确定,进而导致强化学习建模过程中无法确定状态空间与动作空间的技术问题。
附图说明
图1水平伸缩与垂直伸缩示意图;
图2 MADDPG算法模型;
图3 基于MADDPG算法的云资源混合式弹性伸缩方法设计架构图;
图4 智能体分组架构;
图5 负载监控中心程序流程图;
图6 MADDPG算法决策中心程序流程图;
图7 下游接口对接模块示意图;
图8云资源调控中心程序流程图。
具体实施方式
下面通过实施例来对本发明的技术方案做进一步解释,但本发明的保护范围不受实施例任何形式上的限制。
实施例1
一种基于MADDPG算法的混合式云资源弹性伸缩系统,所述系统包括集群负载监控中心模块、MADDPG决策中心设计模块,云资源调控中心模块和下游接口对接模块,MADDPG决策中心模块有基于MADDPG算法的多智能体强化学习模型;MADDPG决策中心设计模块与集群负载监控中心模块、云资源调控中心模块有信号连接,云资源调控中心模块与下游接口对接模块有信号连接。
其中MADDPG决策中心是整个框架的“大脑”,其内核为基于MADDPG算法的多智能体强化学习模型。强化学习的每个智能体通过观察环境进行动作决策,会得到一组动作集合,同时这组动作也会使云环境发生变化,这个变化向好的方向发展智能体就会得到正反馈,反之,如果向不好的方向发展会得到一个负反馈,智能体得到反馈后会进行学习与思考,优化动作决策策略。
如图3所示,MADDPG决策中心模块首先通过调用集群负载监控中心模块的接口,对集群进行观测,进而获取当前集群负载监控中心模块内各虚拟机的实时负载信息,例如各个虚拟机CPU实时利用率、GPU实时利用率、内存实时利用率、磁盘实时利用率、网络利用率等各负载信息。
进而通过深度强化学习进行动作决策,由于这一部分是多智能体协同决策,会形成一组动作集合,然后会调用云资源调控中心模块进行云资源水平弹性伸缩与垂直弹性伸缩。
最后云资源调控中心会通过调用下游接口对接模块的通用API接口实现各平台API控制,在各个云平台上完成云资源的扩容与缩容。
如图4所示,MADDPG决策中心设计模块中采用了智能体分组模式,分为水平伸缩智能体组与垂直伸缩智能体组,水平伸缩智能体组只负责水平弹性伸缩,垂直伸缩智能体组只负责垂直弹性伸缩。将所有虚拟机或容器分成N组,每组有M个实例,满M个实例的组为垂直伸缩智能体和不满M个实例的组为水平伸缩智能体。当水平伸缩智能体达到M个实例时,变成垂直伸缩智能体,同时添加一个空的水平伸缩智能体;反之当垂直伸缩智能体不足M个实例时,则变成水平伸缩智能体,通过限制M的大小使每个智能体的状态空间和动作空间都是确定的。
所述集群负载监控中心模块能够实现CPU负载监测、GPU负载监测、内存负载监测、储存负载监测和网络负载监测。
所述的MADDPG决策中心设计模块包括环境建模,所述环境建模包括状态空间设计、动作空间设计、奖励函数设计和多智能体设计。
状态空间设计、动作空间设计、奖励函数设计具体设计步骤如下:
第一步,状态空间是对云计算环境的状态的一种量化。首先要将集群负载监控中心传递来的集群当前负载信息进行数据处理。状态空间公式表示如下:
其中分别代表集群内各个虚拟机CPU
实时利用率集合、GPU实时利用率集合、内存实时利用率集合、存储实时利用率集合、网络实
时利用率集合。,,,,,分别代表
了集群内k个虚拟机中的任意个虚拟机的CPU实时利用率、GPU实时利用率、内存实时利用
率、存储实时利用率、网络实时利用率。
第二步,动作空间是强化学习智能体能够执行的动作集合,本发明通过多智能体实现了云资源水平弹性伸缩与云资源垂直弹性伸缩,因此动作集合分成了两类,一种是水平弹性伸缩动作空间,另一种是垂直弹性伸缩动作空间。水平弹性伸缩动作空间数学公式表示如下:
;
其中分别是增加虚拟机实例的个数和减少虚拟
机实例的个数。
垂直弹性伸缩动作空间数学公式表示如下:
其中分别代表了每个智能体控
制的所有虚拟机实例扩容与缩容的集合。
分别代表垂直伸缩智能体中任一智能体控制下的任一虚拟机实例的CPU核心数增加与减
少,GPU数量增加与减少,内存容量增加与减少,硬盘容量增加与减少,网络带宽增加与减
少。
第三步,奖励函数设计是对于强化学习是极其重要的,其关乎到强化学习智能体是否能够找到合适的动作去进行云资源弹性伸缩。奖励函数设计以优化目标为导向。本发明的云资源弹性伸缩优化目标为:优化集群负载均衡,避免虚拟机实例过载现象,提高集群计算资源利用率。奖励函数数学公式如下:
;
其中是某时刻集群负载标准差、过载虚拟机数量、集群平均利用率的权
重,通过权重决定优化的重点方向。
。
其中分别代表某时刻集群内虚拟机实例CPU实时利用率标准
差,虚拟机实例GPU实时利用率标准差,虚拟机实例内存实时利用率标准差,虚拟机实例硬
盘实时利用率标准差,虚拟机实例实时网络利用率标准差的权重。分别代表了某时刻
集群内任意虚拟机实例的CPU实时利用率,GPU实时利用率,内存实时利用率,硬盘实时利用
率,网络实时利用率。
分别代表了某时刻集群CPU平均利用率,GPU平均利用率,内存平均利用率,硬盘平均利用
率,网络平均利用率。
;
表示某时刻集群内过载的虚拟机实例数量,
当虚拟机CPU,GPU,内存,硬盘,网络任意指标超过限定的阈值表明该虚拟机实例过载,同时
也代表了当前云计算资源无法满足用户的计算请求。
其中分别为某时刻集群内所有虚拟机实例的CPU平均利用
率,GPU平均利用率,内存平均利用率,硬盘平均利用率,网络平均利用率。
其中
取值如表1所示:
表1位参数取值
。
所述云资源调控中心模块的功能包括虚拟机CPU扩容与缩容、虚拟机GPU扩容与缩容、虚拟机内存扩容与缩容、虚拟机存储扩容与缩容、虚拟网络储扩容与缩容和增加与减少虚拟机数量。
所述的下游接口对接模块将认证与鉴权接口、API调用和数据交互接口、错误处理与异常情况处理接口、监控与同步接口合并为一个通用接口。
所述系统的运行方法,所述方法采用深度强化学习和多智能体协作,深度强化学习训练过程采用了协同训练和经验回放机制,在每个时间步,每个智能体根据自己的Actor网络选择动作,并与环境模型交互;智能体的经验存储在共享的经验回放缓冲区中;然后,从经验回放缓冲区中随机采样一批经验,用于更新每个Actor和Critic网络的参数;更新过程中,各个Critic网络通过最小化与实际奖励之间的误差来学习状态值函数,而各个Actor网络则通过最大化Critic网络估计的状态值函数来更新策略,这种协同学习和经验回放的结合,使得智能体能够在多智能体环境中协作并优化动作选择策略,达到协同决策的目标,如图2所示;
如图5所示,所述的集群负载监控中心模块的工作步骤如下:
第一步、初始化程序,集群负载监控中心程序开始运行后进入监听状态,等待决策中心的指令,MADDPG决策中心向集群负载监控中心发送开始监听指令与结束指令;
第二步、集群负载监控中心模块收到开始监控指令后,注册监控线程;
第三步、监控线程会收集集群负载监控中心模块中各虚拟机的包括CPU利用率、GPU利用率、内存利用率、存储利用率、网络利用率在内的负载信息,
第四步、集群负载监控中心模块整理收集到的所有负载信息发送给MADDPG决策中心,如果发送成功,回到第三步,进行循环操作;反之,发送失败结束监控线程并重新注册监控线程;
第五步、如果集群负载监控中心模块监听到MADDPG决策中心发来的结束监听指令,会结束进程,结束集群负载监控程序。
如图6所示,所述的MADDPG决策中心模块实施方法:
第一步、等待人工指令,人工开始运行MADDPG决策中心;
第二步、运行多智能体深度强化学习MADDPG算法的决策中心程序,并且初始化MADDPG算法的多智能体强化学习模型;
第三步、向集群负载监控中心模块发送开始监控指令,等待集群负载监控中心模块发送过来的所有负载信息。
第四步、获取集群负载监控中心模块发送过来的负载信息,整理这些负载信息成为多智能体状态信息;
第五步、将整理好的状态信息,通过MADDPG算法的多智能体强化学习模型获取所有智能体决策后得到的动作集合;
第六步、将MADDPG算法的多智能体强化学习模型决策得到的动作集合发送给云资源调控中心模块,通过云资源调控中心模块完成混合式云资源弹性伸缩;
第七步、获取资源调度后计算负载信息,计算奖励反馈;
第八步、存储上述获得的状态集合、动作集合、奖励集合;
第九步、更新MADDPG算法的多智能体强化学习模型;重新运行第四步。
第五步的操作进行水平弹性伸缩,增加或减少虚拟机的动作;当水平伸缩组容量超过上限会自动变成垂直伸缩组,执行垂直伸缩的动作,并且重新创建一个水平伸缩组,执行水平伸缩的动作;当垂直伸缩组出现空缺,该垂直伸缩组会自动变成水平伸缩组,执行水平伸缩的动作。
结束MADDPG决策中心程序的运行,需要进行人工干预,保存当前MADDPG算法的多智能体强化学习模型,并销毁程序。
如图8所示,所述的云资源调控中心的运行方法如下:
第一步、初始化云资源调控中心程序,云资源调控中心的所有操作都按照监听决策中心传递的指令表达式运行;
第二步、等待决策中心传递的指令,指令分为普通操作指令与资源调控指令,普通指令实现重启程序与结束程序的操作;资源调控指令分为对某虚拟机某资源的定量调控的操作和增减虚拟机的操作;
第三步、与下游云平台通过下游接口对接模块进行交互;如图7所示。
第四步、如果下游接口对接模块调用成功,会调用监控与同步接口,观测当前集群负载,并将集群负载信息发送给MADDPG决策中心,供其计算奖励函数;反之,下游接口对接模块调用失败,会调用错误与异常处理接口,检测问题,并重新调用云平台接口完成MADDPG决策中心发来的操作指令。
当收到MADDPG决策中心发来的结束程序的指令,会运行销毁程序,结束云资源调控中心的运行。
实施例2:本实施例采用深度多智能体算法来实现云资源的水平弹性伸缩和垂直弹性伸缩。相比传统的单一智能体方法,深度多智能体算法可以通过智能体之间的协作和学习,更好地适应复杂的资源管理场景。传统的水平伸缩主要关注资源数量的调整,而本实施例能够在调整资源数量的同时,还可以根据实际需求调整单个资源的容量。这种综合调整范围可以更好地满足各种负载需求的变化,提供更灵活的资源管理方案。本实施例按照实施例1的方法通过云仿真实验,模拟了不同云资源调度策略应对不同强度的云计算资源请求,本实施例的云资源混合式弹性伸缩策略展现出优秀的效果。在仿真周期中通过高频次的调整云资源相较基于阈值的云资源调度策略极大地降低了云资源投入,从而降低了云服务成本,实验参数见表2,实验结果见3。
表2.实验参数
。
本发明为此次实验设置了4个负载起伏周期,每个周期6个小时。在实验周期的不同时间点,负载分别从低负载(50%)、中等负载(80%)到高负载(95%)进行变化。云资源调度策略选择基于阈值的云资源调度策略作为本发明的对照策略。初始资源各配置100个虚拟机实例。
表3.实验结果
。
本次实验结果如表3所示,基于阈值的云资源调度策略只有水平资源调整次数,而本发明不仅有水平资源调整次数同时还有垂直资源调整次数。从表3可以看出,本发明对比基于阈值的云资源调度策略在周期内虚拟机数量变化范围方面极大地减少了虚拟机投入数量,节约了云服务商成本,同时侧重于垂直弹性伸缩,减少了水平弹性伸缩次数。由于水平弹性伸缩过程时间较长,而垂直弹性伸缩过程时间较短,本发明可以更好的响应负载变化需求。
本发明的综合策略可以带来更好的成本效益。传统的水平伸缩策略可能会导致资源的过度购买或闲置,浪费了成本。而本发明结合水平伸缩和垂直伸缩,可以根据实际需求合理分配资源,避免资源的浪费,降低成本。通过精确的资源调整,本发明能够提供更高的资源利用率和成本效益。本发明的综合策略使系统具备更好的可扩展性和弹性。传统的水平伸缩策略可能在面对大规模变化或突发性的负载波动时能力有限。而本发明通过结合水平伸缩和垂直伸缩,能够更灵活地调整资源配置,以适应不断变化的业务需求,提供更强的可扩展性和弹性。通过与其他云资源弹性伸缩策略对照效果,本发明综合了水平伸缩和垂直伸缩,能够提供更全面、灵活和高效的资源管理方案,从而在资源利用、系统性能优化、成本效益和可扩展性方面具有明显的优势。
Claims (9)
1.一种基于MADDPG算法的混合式云资源弹性伸缩系统,其特征在于,所述系统包括集群负载监控中心模块、MADDPG决策中心设计模块,云资源调控中心模块和下游接口对接模块,MADDPG决策中心模块有基于MADDPG算法的多智能体强化学习模型;MADDPG决策中心设计模块与集群负载监控中心模块、MADDPG决策中心设计模块有信号连接,云资源调控中心模块与下游接口对接模块有信号连接。
2.根据权利要求1所述的基于MADDPG算法的混合式云资源弹性伸缩系统,其特征在于,所述的MADDPG决策中心设计模块中采用了智能体分组模式,分为水平伸缩智能体组与垂直伸缩智能体组,其中水平伸缩智能体组只负责水平弹性伸缩,垂直伸缩智能体组只负责垂直弹性伸缩。
3.根据权利要求1所述的基于MADDPG算法的混合式云资源弹性伸缩系统,其特征在于,所述集群负载监控中心模块能够实现CPU负载监测、GPU负载监测、内存负载监测、存储负载监测和网络负载监测。
4.根据权利要求1所述的基于MADDPG算法的混合式云资源弹性伸缩系统,其特征在于,所述的MADDPG决策中心设计模块包括环境建模,所述环境建模包括状态空间设计、动作空间设计、奖励函数设计和多智能体设计。
5.根据权利要求1所述的基于MADDPG算法的混合式云资源弹性伸缩系统,其特征在于,所述云资源调控中心模块的功能包括虚拟机CPU扩容与缩容、虚拟机GPU扩容与缩容、虚拟机内存扩容与缩容、虚拟机存储扩容与缩容、虚拟网络储扩容与缩容和增加与减少虚拟机数量。
6.根据权利要求1所述的基于MADDPG算法的混合式云资源弹性伸缩系统,其特征在于,所述的下游接口对接模块将各云平台的包括认证与鉴权接口、API调用和数据交互接口、错误处理与异常情况处理接口、监控与同步接口在内的接口封装整合为一个通用云平台接口,实现跨平台接口调用。
7.权利要求1-6任何一项所述基于MADDPG算法的混合式云资源弹性伸缩系统的运行方法,其特征在于,MADDPG决策中心模块内基于深度神经网络进行决策的多智能体通过观察环境进行动作决策,得到一组动作,同时执行这一组动作也会使云环境发生变化,这个变化向好的方向发展智能体就会得到正反馈,反之,如果向不好的方向发展会得到一个负反馈,智能体得到反馈后会进行学习与思考,优化动作决策策略;
MADDPG决策中心模块首先通过调用集群负载监控中心模块的接口,对集群负载监控中心模块进行观测,进而获取当前集群负载监控中心模块内虚拟机的实时负载情况,进而通过深度强化学习进行动作决策,由于这一部分是多智能体协同决策,会形成一组动作集合,然后会调用云资源调控中心模块进行云资源水平弹性伸缩与垂直弹性伸缩;
最后云资源调控中心模块会通过调用下游接口对接模块实现各平台API控制,在各个云平台上完成云资源的扩容与缩容。
8.根据权利要求7所述的基于MADDPG算法的混合式云资源弹性伸缩系统的运行方法,其特征在于,深度强化学习训练过程采用了协同训练和经验回放机制,在每个时间步,每个智能体根据自己的Actor网络选择动作,并与环境模型交互;智能体的经验存储在共享的经验回放缓冲区中;然后,从经验回放缓冲区中随机采样一批经验,用于更新每个Actor和Critic网络的参数;更新过程中,各个Critic网络通过最小化与实际奖励之间的误差来学习状态值函数,而各个Actor网络则通过最大化Critic网络估计的状态值函数来更新策略,这种协同学习和经验回放的结合,使得智能体能够在多智能体环境中协作并优化动作选择策略,达到协同决策的目标。
9.根据权利要求7所述的基于MADDPG算法的混合式云资源弹性伸缩系统的运行方法,其特征在于,智能体分组模式:将所有虚拟机或容器分成N组,每组有M个实例,满M个实例的组为垂直伸缩智能体和不满M个实例的组为水平伸缩智能体;当水平伸缩智能体达到M个实例时,变成垂直伸缩智能体,同时添加一个空的水平伸缩智能体;反之当垂直伸缩智能体不足M个实例时,则变成水平伸缩智能体,通过限制M的大小使每个智能体的状态空间和动作空间都是确定的。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310868189.5A CN116610454B (zh) | 2023-07-17 | 2023-07-17 | 一种基于maddpg算法的混合式云资源弹性伸缩系统及运行方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310868189.5A CN116610454B (zh) | 2023-07-17 | 2023-07-17 | 一种基于maddpg算法的混合式云资源弹性伸缩系统及运行方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116610454A true CN116610454A (zh) | 2023-08-18 |
CN116610454B CN116610454B (zh) | 2023-10-17 |
Family
ID=87685669
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310868189.5A Active CN116610454B (zh) | 2023-07-17 | 2023-07-17 | 一种基于maddpg算法的混合式云资源弹性伸缩系统及运行方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116610454B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118069381A (zh) * | 2024-04-25 | 2024-05-24 | 江西锦路科技开发有限公司 | 一种基于资源需求预测容器云混合弹性伸缩方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112311578A (zh) * | 2019-07-31 | 2021-02-02 | 中国移动通信集团浙江有限公司 | 基于深度强化学习的vnf调度方法及装置 |
CN113778677A (zh) * | 2021-09-03 | 2021-12-10 | 天津大学 | 面向sla的云边协同资源编排与请求调度智能优化方法 |
CN113886095A (zh) * | 2021-12-08 | 2022-01-04 | 北京广通优云科技股份有限公司 | 一种基于模糊推理与强化学习结合的容器内存弹性伸缩方法 |
CN113993218A (zh) * | 2021-11-18 | 2022-01-28 | 国网福建省电力有限公司经济技术研究院 | 一种mec架构下基于多智能体drl的协作卸载和资源分配方法 |
CN114003387A (zh) * | 2021-11-04 | 2022-02-01 | 中国石油大学(华东) | 一种基于强化学习的微服务负载均衡和弹性扩缩容方法 |
CN115086189A (zh) * | 2022-05-20 | 2022-09-20 | 中国科学院软件研究所 | 一种面向无服务器计算的服务资源弹性伸缩方法和系统 |
CN115237571A (zh) * | 2022-07-30 | 2022-10-25 | 重庆大学 | 一种微服务架构下基于强化学习的计算机资源调度系统 |
WO2023272726A1 (zh) * | 2021-07-02 | 2023-01-05 | 深圳先进技术研究院 | 云服务器集群负载调度方法、系统、终端以及存储介质 |
CN115774605A (zh) * | 2022-12-28 | 2023-03-10 | 青岛海洋科学与技术国家实验室发展中心 | Kubernetes的预测式弹性伸缩方法及系统 |
-
2023
- 2023-07-17 CN CN202310868189.5A patent/CN116610454B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112311578A (zh) * | 2019-07-31 | 2021-02-02 | 中国移动通信集团浙江有限公司 | 基于深度强化学习的vnf调度方法及装置 |
WO2023272726A1 (zh) * | 2021-07-02 | 2023-01-05 | 深圳先进技术研究院 | 云服务器集群负载调度方法、系统、终端以及存储介质 |
CN113778677A (zh) * | 2021-09-03 | 2021-12-10 | 天津大学 | 面向sla的云边协同资源编排与请求调度智能优化方法 |
CN114003387A (zh) * | 2021-11-04 | 2022-02-01 | 中国石油大学(华东) | 一种基于强化学习的微服务负载均衡和弹性扩缩容方法 |
CN113993218A (zh) * | 2021-11-18 | 2022-01-28 | 国网福建省电力有限公司经济技术研究院 | 一种mec架构下基于多智能体drl的协作卸载和资源分配方法 |
CN113886095A (zh) * | 2021-12-08 | 2022-01-04 | 北京广通优云科技股份有限公司 | 一种基于模糊推理与强化学习结合的容器内存弹性伸缩方法 |
CN115086189A (zh) * | 2022-05-20 | 2022-09-20 | 中国科学院软件研究所 | 一种面向无服务器计算的服务资源弹性伸缩方法和系统 |
CN115237571A (zh) * | 2022-07-30 | 2022-10-25 | 重庆大学 | 一种微服务架构下基于强化学习的计算机资源调度系统 |
CN115774605A (zh) * | 2022-12-28 | 2023-03-10 | 青岛海洋科学与技术国家实验室发展中心 | Kubernetes的预测式弹性伸缩方法及系统 |
Non-Patent Citations (4)
Title |
---|
GABRIELE RUSSO RUSSO: "Using Reinforcement Learning to Control Auto-Scaling of Distributed Applications", 《COMPANION OF THE 2023 ACM/SPEC INTERNATIONAL CONFERENCE ON PERFORMANCE ENGINEERING》 * |
吴晓军: "基于强化学习的云资源混合式弹性伸缩算法", 《 西安交通大学学报》, vol. 56, no. 1 * |
曹宇;杨军;: "一种基于深度学习的云平台弹性伸缩算法", 计算机与现代化, no. 04 * |
邓子凡;: "基于云计算资源的弹性伸缩创新及应用", 通讯世界, no. 02 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN118069381A (zh) * | 2024-04-25 | 2024-05-24 | 江西锦路科技开发有限公司 | 一种基于资源需求预测容器云混合弹性伸缩方法 |
CN118069381B (zh) * | 2024-04-25 | 2024-07-26 | 江西锦路科技开发有限公司 | 一种基于资源需求预测容器云混合弹性伸缩方法 |
Also Published As
Publication number | Publication date |
---|---|
CN116610454B (zh) | 2023-10-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN116610454B (zh) | 一种基于maddpg算法的混合式云资源弹性伸缩系统及运行方法 | |
CN110351348B (zh) | 一种基于dqn的云计算资源调度优化方法 | |
CN112052092B (zh) | 一种风险感知的边缘计算任务分配方法 | |
CN113485826B (zh) | 一种边缘服务器负载均衡方法、系统 | |
CN114996001A (zh) | 一种分布式机器学习任务gpu资源调度分配方法及系统 | |
WO2024192952A1 (zh) | 一种基于强化学习的Serverless高效资源分配方法及系统 | |
US20230254214A1 (en) | Control apparatus, virtual network assignment method and program | |
CN115378789B (zh) | 一种多层次协作的流资源管理方法及系统 | |
CN112533237A (zh) | 工业互联网中支持大规模设备通信的网络容量优化方法 | |
CN116048802A (zh) | 训练推理一体深度学习的gpu集群调度方法 | |
CN115237580A (zh) | 面向智能计算的流水并行训练自适应调整系统、方法 | |
CN115878260A (zh) | 一种低碳自适应云主机任务调度系统 | |
CN112559122A (zh) | 一种基于电力专用安防设备的虚拟化实例管控方法及系统 | |
CN116185584A (zh) | 一种基于深度强化学习的多租户数据库资源规划与调度方法 | |
CN117851056A (zh) | 一种基于约束近端策略优化的时变任务调度方法及系统 | |
CN118210609A (zh) | 一种基于dqn模型的云计算调度方法及系统 | |
CN117349026B (zh) | 一种用于aigc模型训练的分布式算力调度系统 | |
CN108170522B (zh) | 一种基于动态阈值的云计算虚拟机迁移控制方法 | |
CN107948330A (zh) | 一种云环境下基于动态优先级的负载均衡策略 | |
CN117130769B (zh) | 一种调频方法、频率调节神经网络的训练方法及电子设备 | |
CN114518951A (zh) | 分布式流数据处理系统虚拟化资源弹性调度管理研究 | |
CN114116220B (zh) | 一种gpu共享控制方法、gpu共享控制装置及存储介质 | |
CN115116879A (zh) | 一种面向晶圆表面缺陷检测的动态权值优化负载均衡算法 | |
CN115145383A (zh) | 一种面向cpu/gpu服务器的自适应节能选择方法 | |
CN116028193A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |