CN114217974A - 一种云计算环境中的资源管理方法及系统 - Google Patents
一种云计算环境中的资源管理方法及系统 Download PDFInfo
- Publication number
- CN114217974A CN114217974A CN202111562519.5A CN202111562519A CN114217974A CN 114217974 A CN114217974 A CN 114217974A CN 202111562519 A CN202111562519 A CN 202111562519A CN 114217974 A CN114217974 A CN 114217974A
- Authority
- CN
- China
- Prior art keywords
- resource allocation
- resource
- memory
- action
- cpu
- 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
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
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3447—Performance evaluation by modeling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3457—Performance evaluation by simulation
-
- 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
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- 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
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45583—Memory management, e.g. access or allocation
-
- 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
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种云计算环境中的资源管理方法及系统,涉及云计算技术领域,用以解决云计算环境中现有的对于虚拟节点的静态资源管理不能有效提高其运行性能的问题。本发明的技术要点包括:采集虚拟节点的CPU、内存和带宽资源信息,提出一种基于DDPG的资源分配算法根据上述资源信息计算每个虚拟节点的目标资源配置量以获得资源配置决定的结果,并根据该结果对每个虚拟节点的资源进行动态的调节,从而在提高整体资源利用率的基础上提高虚拟节点运行性能;进一步地,在基于DDPG的资源分配算法中,利用Actor网络生成相应的动作输出,并通过一个动作解码过程将基于比率的输出转换为目标资源配置大小。本发明可以整体缩短不同应用程序的完成时间,且不会产生大量系统开销。
Description
技术领域
本发明涉及云计算技术领域,具体涉及一种云计算环境中的资源管理方法及系统。
背景技术
近年来,随着云计算技术的发展与兴起,虚拟化技术又重新开始出现在人们的视线当中。虚拟化技术的目的是将物理资源虚拟化,并将虚拟出来的物理资源合理分配给多个虚拟节点进行使用,并且保证多个虚拟节点之间相互独立,对于各自任务的运行相互不影响。在很多云计算场景中,虚拟节点在创建之初就被分配了静态的资源,包括CPU、内存和带宽资源。然而随着虚拟节点在运行过程中负载的动态变化,虚拟节点的静态资源有时不能很好的处理负载任务,从而导致虚拟节点的运行性能受到限制。
发明内容
鉴于以上问题,本发明提出一种云计算环境中的资源管理方法及系统,用以解决云计算环境中现有的对于虚拟节点的静态资源管理不能有效提高其运行性能的问题。
根据本发明一方面,提出一种云计算环境中的资源管理方法,该方法包括以下步骤:
步骤一、实时采集每个虚拟节点的资源信息,所述资源信息包括CPU使用时间、空闲内存和带宽信息;
步骤二、获取每个虚拟节点的CPU、内存及带宽资源配置量;
步骤三、根据所述资源信息和CPU、内存及带宽资源配置量进行计算提取,获得每个虚拟节点的CPU、内存及带宽使用率;所述CPU、内存及带宽资源配置量和CPU、内存及带宽使用率共同构成状态集;
步骤四、利用基于深度确定性策略梯度的资源管理算法对所述状态集进行训练学习,获得每个虚拟节点的资源配置决策;
步骤五、根据所述资源配置决策对每个虚拟节点的资源进行动态调节。
进一步地,步骤三中CPU使用率uci、内存使用率umi及带宽使用率ubi计算公式分别为:
其中,cpu(t)表示t时刻CPU使用时间;ci表示CPU资源配置量;fi表示空闲内存;mi表示内存资源配置量;recv(t)表示t时刻带宽收包数;trans(t)表示t时刻带宽发包数;bi表示带宽资源配置量。
进一步地,步骤四的具体步骤包括:
步骤四一、初始化当前Actor网络πθ(S)、当前Critic网络Qω(S,A)、目标Actor网络π′θ′(S)和目标Critic网络Q′ω′(S,A),并创建经验池;
步骤四二、初始化环境并获取当前t时刻状态信息;
步骤四三、以状态集中当前t时刻状态st为输入,根据Actor网络πθ(S)计算获得离散动作并加入噪声,获得当前t时刻动作at:
步骤四四、根据当前t时刻状态st利用基于比率的动作解码算法对当前t时刻动作at进行解码,得到解码后的资源配置动作;
步骤四五、按照解码后的资源配置动作进行资源配置;
步骤四六、获取状态集中t+1时刻状态st+1,并根据下述奖励函数公式计算获得即时奖励rt:
rt=-λ1Bads-λ2Vars+λ3Evav
式中,λ1、λ2、λ3表示权重参数;Bads表示处于资源过度利用或未充分利用状态的虚拟实例的数量;Vars表示CPU、内存及带宽使用率的方差之和,值越小说明虚拟节点的资源利用率越均衡;Evav表示对每个资源管理动作操作的评价值,值越大说明越认可;
步骤四七、将当前状态st、t时刻动作at、t+1时刻状态st+1和即时奖励rt即<st,at,st+1,rt>存入经验池;
步骤四八、从经验池中进行mini-batch取样,并基于下述公式对当前t时刻Critic网络中的参数ω进行梯度更新:
式中,E表示期望值;Qω(st,at)表示当前t时刻Critic网络;表示对当前Critic网络的参数ω求导;yt表示目标值,yt=rt+γQ′ω′(st+1,π′θ′(st+1)),γ表示折损率,Q′ω′(st+1,π′θ′(st+1))表示t+1时刻目标Critic网络,π′θ′(st+1)表示t+1时刻目标Actor网络;
步骤四九、从经验池中进行mini-batch取样,并基于下述公式对当前t时刻Actor网络中的参数θ进行梯度更新:
步骤四十、通过下列公式更新目标Actor网络的参数θ′:θ′←τθ+(1-τ)θ′;
通过下列公式更新目标Critic网络的参数ω′:ω′←τω+(1-τ)ω′;其中,τ表示动量因子;
步骤四十一、迭代循环执行步骤四二至步骤四十,直至达到预设最大迭代次数则停止迭代执行。
进一步地,步骤四四的具体步骤包括:
步骤四四一、对第i个虚拟节点的内存动作进行解码:
步骤四四二、对第i个虚拟节点的内存动作进行解码:
CPU动作值在[-1,-0.2)、[-0.2,0.2]和(0.2,1]范围内时,分别对应以下的CPU资源配置量:CPU资源配置量减少1个、CPU资源配置量保持不变、CPU资源配置量增加1个,即分别对应动作结果为:
步骤四四三、对第i个虚拟节点的带宽动作进行解码:
进一步地,步骤四四三之后还包括步骤四四四:确定该虚拟节点在执行所述资源配置动作后所获得的资源配置量后,若所述资源配置量低于预设最小资源配置量或超过预设最大资源配置量,则所述资源配置动作更改为对应的预设最小资源配置量或预设最大资源配置量。
根据本发明另一方面,提出一种云计算环境中的资源管理系统,该系统包括信息采集模块、资源计算模块和资源调整模块;其中,
所述信息采集模块用于实时采集每个虚拟节点的资源信息,所述资源信息包括CPU使用时间、空闲内存和带宽信息;获取每个虚拟节点的CPU、内存及带宽资源配置量;
所述资源计算模块用于根据所述资源信息和CPU、内存及带宽资源配置量进行计算提取,获得每个虚拟节点的CPU、内存及带宽使用率;所述CPU、内存及带宽资源配置量和CPU、内存及带宽使用率共同构成状态集;利用基于深度确定性策略梯度的资源管理算法对所述状态集进行训练学习,获得每个虚拟节点的资源配置决策;
所述资源调整模块用于根据所述资源配置决策对每个虚拟节点的资源进行动态调节。
进一步地,所述资源计算模块中CPU使用率uci、内存使用率umi及带宽使用率ubi计算公式分别为:
其中,cpu(t)表示t时刻CPU使用时间;ci表示CPU资源配置量;fi表示空闲内存;mi表示内存资源配置量;recv(t)表示t时刻带宽收包数;trans(t)表示t时刻带宽发包数;bi表示带宽资源配置量。
进一步地,所述资源计算模块中利用结合Actor-Critic网络和深度确定性策略梯度的资源管理算法基于所述状态集进行训练学习,获得每个虚拟节点的资源配置决策的具体步骤包括:
步骤四一、初始化当前Actor网络πθ(S)、当前Critic网络Qω(S,A)、目标Actor网络π′θ′(S)和目标Critic网络Q′ω′(S,A),并创建经验池;
步骤四二、初始化环境并获取当前t时刻状态信息;
步骤四三、以状态集中当前t时刻状态st为输入,根据Actor网络πθ(S)计算获得离散动作并加入噪声,获得当前t时刻动作at:
步骤四四、根据当前t时刻状态st利用基于比率的动作解码算法对当前t时刻动作at进行解码,得到解码后的资源配置动作;
步骤四五、按照解码后的资源配置动作进行资源配置;
步骤四六、获取状态集中t+1时刻状态st+1,并根据下述奖励函数公式计算获得即时奖励rt:
rt=-λ1Bads-λ2Vars+λ3Evav
式中,λ1、λ2、λ3表示权重参数;Bads表示处于资源过度利用或未充分利用状态的虚拟实例的数量;Vars表示CPU、内存及带宽使用率的方差之和,值越小说明虚拟节点的资源利用率越均衡;Evav表示对每个资源管理动作操作的评价值,值越大说明越认可;
步骤四七、将当前状态st、t时刻动作at、t+1时刻状态st+1和即时奖励rt即<st,at,st+1,rt>存入经验池;
步骤四八、从经验池中进行mini-batch取样,并基于下述公式对当前t时刻Critic网络中的参数ω进行梯度更新:
式中,E表示期望值;Qω(st,at)表示当前t时刻Critic网络;表示对当前Critic网络的参数ω求导;yt表示目标值,yt=rt+γQ′ω′(st+1,π′θ′(st+1)),γ表示折损率,Q′ω′(st+1,π′θ′(st+1))表示t+1时刻目标Critic网络,π′θ′(st+1)表示t+1时刻目标Actor网络;
步骤四九、从经验池中进行mini-batch取样,并基于下述公式对当前t时刻Actor网络中的参数θ进行梯度更新:
步骤四十、通过下列公式更新目标Actor网络的参数θ′:θ′←τθ+(1-τ)θ′;
通过下列公式更新目标Critic网络的参数ω′:ω′←τω+(1-τ)ω′;其中,τ表示动量因子;
步骤四十一、迭代循环执行步骤四二至步骤四十,直至达到预设最大迭代次数则停止迭代执行。
进一步地,所述资源计算模块中根据当前t时刻状态st利用基于比率的动作解码算法对当前t时刻动作at进行解码,得到解码后的资源配置动作的具体步骤包括:
步骤四四一、对第i个虚拟节点的内存动作进行解码:
步骤四四二、对第i个虚拟节点的内存动作进行解码:
CPU动作值在[-1,-0.2)、[-0.2,0.2]和(0.2,1]范围内时,分别对应以下的CPU资源配置量:CPU资源配置量减少1个、CPU资源配置量保持不变、CPU资源配置量增加1个,即分别对应动作结果为:
步骤四四三、对第i个虚拟节点的带宽动作进行解码:
步骤四四四:确定该虚拟节点在执行所述资源配置动作后所获得的资源配置量后,若所述资源配置量低于预设最小资源配置量或超过预设最大资源配置量,则所述资源配置动作更改为对应的预设最小资源配置量或预设最大资源配置量。
本发明的有益技术效果是:
本发明为云计算环境中虚拟节点提供一种动态的资源管理方法及系统,对虚拟节点资源进行动态配置,以实现对虚拟节点运行性能的提升。本发明首先采集需要的信息,包括虚拟节点的CPU、内存和带宽资源信息,提出一种基于DDPG的资源分配算法根据获取的资源信息计算每个虚拟节点的目标资源配置量以获得资源配置决定的结果,并根据该结果对每个虚拟节点的资源进行动态的调节,从而在提高整体资源利用率的基础上提高虚拟节点运行性能;进一步地,在基于DDPG的资源分配算法中,利用Actor网络生成相应的动作输出,并通过一个动作解码过程将基于比率的输出转换为目标资源配置大小。实验证明,本发明可以整体缩短不同应用程序的完成时间,且不会产生大量系统开销。
附图说明
图1是本发明一种云计算环境中的资源管理系统架构示意图;
图2是本发明中对每个资源管理动作操作的评价规则示例图;
图3是本发明实施例中KVM虚拟机环境中性能结果比较图;其中,图(a)表示单个基准程序;图(b)表示在不同基准测试程序负载下的Httpload任务;图(c)表示在Httpload负载下各基准测试程序;
图4是本发明实施例中Docker容器环境中性能结果比较图;其中,图(a)表示单个基准程序;图(b)表示在不同基准测试程序负载下的Httpload任务;图(c)表示在Httpload负载下各基准测试程序;
图5是本发明实施例中KVN主机上的能耗开销对比图;其中,图(a)表示CPU利用率;图(b)表示内存利用率;
图6是本发明实施例中Docker主机上的能耗开销对比图;其中,图(a)表示CPU利用率;图(b)表示内存利用率。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,在下文中将结合附图对本发明的示范性实施方式或实施例进行描述。
本发明为云计算环境中虚拟节点设计一种动态的资源管理框架,从而实现对虚拟节点资源的动态配置,希望通过这种方式实现对虚拟节点运行性能的提升。本发明所研究的虚拟节点包括当下应用较多的KVM和Docker两种虚拟化技术,管理的资源包括CPU、内存、带宽资源。
本发明系统总体包含三个模块,分别为信息采集模块、资源计算模块以及资源调整模块。其中,信息采集模块负责通过底层接口函数采集需要的信息,包括虚拟节点的CPU、内存和带宽资源信息,并将收集到的信息传输到资源计算模块;资源计算模块获取到信息之后,将调用算法得出资源配置决定的结果,并将该结果传输至资源调整模块;资源调整模块根据该结果对每个虚拟节点的资源进行动态的调节,从而在提高整体资源利用率的基础上提高虚拟节点运行性能。系统整体的框架如图1所示。
在资源管理系统中,需要首先获取每个虚拟节点的CPU、内存和网络信息。如表1所示,表1列出了获取KVM和Docker虚拟节点的资源信息。
表1虚拟节点资源信息
采用虚拟化管理软件—libvirt来实现中间的虚拟机信息采集,它是KVM管理程序中广泛使用的工具。主要通过virDomain.info()和virDomain.MemoryStats()分别获取CPU和内存信息。前者返回结果中的第四个返回参数是以纳秒(ns)为单位的CPU使用时间。同样获得每个虚拟机的空闲内存大小。另外通过观察/proc/net/dev来获取通信数据包信息。
这些原始信息需要转换为资源计算模块的输入数据,以便为后续的资源管理算法服务。对于第i个虚拟节点vi,分别通过公式(1)-(3)获得CPU使用率uci、内存使用率umi和带宽使用率ubi。
其中,ci、mi和bi分别是vi的CPU、内存和带宽资源配置。
Docker容器的CPU、内存、网络资源信息是通过docker stats命令获取的,它首先通过Docker Daemon记录读取cgroup文件系统下CPU和内存参数的数据值,然后将数据值累加,通过读取的值形成一个数组,最后通过计算公式得到相应的CPU和内存利用率,以及接收和发送的网络字节数。
资源计算模块定期从信息采集模块中获取所有虚拟节点的资源信息,并为资源调整模块做出全局决策,实现在多个虚拟节点之间自动调度资源。为了保持采集和计算之间的同步,设置5秒(s)间隔的周期性程序来监控和调度资源。在每个周期中,资源计算模块利用资源调度算法根据当前工作负载计算每个虚拟节点的目标资源分配量,资源计算模块的核心即为资源调度算法。
尽管虚拟节点的资源超额配置在各个集群中已经成为普遍做法,但无法完全避免运行节点之间的超额配置时的竞争干扰,从而导致服务时间的不可预测。为了应对突发的需求工作负载,本发明提出一种基于DDPG的资源分配算法,称为DDPG-RA,根据获取的资源信息计算每个虚拟节点的目标资源配置量。在DDPG-RA算法中,利用Actor网络生成相应的动作输出。由于多资源管理的复杂性,通过一个动作解码过程将基于比率的输出转换为目标资源配置大小。下面对本发明的资源调度算法进行详细介绍。
1.问题建模
首先建立资源管理模型,实现对物理服务器中每个虚拟节点的CPU、内存、带宽资源的管理问题的描述。表2显示了算法中使用的关键符号。
表2主要的符号
定义V={v1,v2,…,vn}为虚拟节点集合,其中,n表示虚拟节点数量。为了方便说明,将M={m1,m2,…,mn}定义为虚拟节点的内存资源配置集合;同时将UM={um1,um2,…,umn}设置为这些虚拟节点的内存利用率集合,其中每个值的取值范围为umi∈[0,1]。在这里,将每个虚拟节点的vCPU数量作为调节维度,并且定义C={c1,c2,…,cn}为每个虚拟节点的vCPU资源配置集合,定义UC={uc1,uc2,…,ucn}为虚拟节点的CPU利用率集合,同样每个值取值范围为uci∈[0,1]。为了满足用户能够享受到更好的网络服务质量,尤其是当用户需要高带宽时,可以通过协调为其分配更高的带宽。同样定义集合B={b1,b2,…,bn}表示虚拟节点的带宽配置,定义UB={ub1,ub2,…,ubn}为带宽资源使用率,并且每个值取值范围为ubi∈[0,1]。
将每个资源的最大值和最小值分别定义为mmaxi、cmaxi、bmaxi、mmini、cmini、bmini。通过调节先前不合理的资源配置状态来实现资源的充分利用,假设虚拟节点的数量是一个常数n且不会改变。为了避免多个资源之间的差异,将虚拟节点vi的CPU、内存以及带宽的资源配置标准化为cnori(t)、mnori(t)、bnori(t),标准化公式如下所示:
uci(t)、umi(t)、ubi(t)这三种资源利用率的值都在[0,1]范围内,因此不需要归一化。
系统目标是使资源得到充分利用,因此每个虚拟节点都应该释放其未充分利用的资源并增加其过度使用的资源。在这里,为每种资源定义了两个阈值。对于内存利用率,将定义为内存利用率的下限,当内存利用率低于这个阈值时,认为内存没有得到充分利用,应该释放它的内存资源;将定义为内存利用率的上限,当内存利用率大于该阈值时,认为该虚拟实例上的内存过载,应增加其内存资源。同样,对于CPU和带宽利用率分别定义了两组阈值和和这些阈值用于判断CPU和带宽是否充分利用或过载。从而管理系统框架会相应地调节资源,以在合理的阈值内管理虚拟节点。本发明中三种资源的上限阈值和下限阈值均设置为80%和20%。每个虚拟节点都应该考虑相应的上下限阈值来避免过载和欠负载状态。
进一步将Bads定义为处于非正常状态的虚拟实例的数量,包括资源过度利用状态和未充分利用状态;将Vars定义为三种资源利用率的方差之和。
Vars=γm*var(UM)+γc*var(UC)+γb*var(UB) (8)
其中,var(·)表示方差计算;γm、γc以及γb分别表示比重系数,可以由用户根据实际情况确定。Vars值越小说明虚拟节点的资源利用率越均衡。另外,定义变量Evav表示对每个资源管理动作操作的评价值,值越大说明越认可。具体而言,需要对每个虚拟节点的资源调节情况进行评价,将对虚拟节点vi的评价结果定义为ei,那么可以得到通过对vi的资源调节效果来获取评价值,包括对CPU、内存以及带宽的资源调节的评价,将对应的评价值分别定义为以及从而得到接下来,如图2所示,根据资源利用率状态的变化制定评价规则,从而获得以及的值。以图2中编号为(2)和(5)的箭头为例,它们分别表示资源利用率从未充分利用状态至正常状态、从正常状态到过载状态,对应的评价值分别为-0.1和-10。
因此,资源管理问题的目标函数H可以表述为:
minH=λ1Bads+λ2Vars-λ3Evav (9)
其中,λ1、λ2以及λ3分别表示权重参数,用户可根据实际需求来设置数值。
2.问题分析
在资源管理问题中,还没有完全理解复杂的依赖关系和不规则的负载变化来勾勒出资源需求,因此下面对问题进行初步的分析。在t时刻,目标函数H(t)如下:
H(t)=λ1Bads(t)+λ2Vars(t)-λ3Evav(t) (10)
令H(Tt)为H(t)从0时刻到t时刻的值之和,表示为如下形式:
H(Tt)=λ1Bads(Tt)+λ2Vars(Tt)-λ3Evav(Tt) (11)
式中,
根据以上公式计算,可得:
综上可以得出结论:资源管理问题服从一阶马尔可夫过程。因此能够采用强化学习算法来解决这个问题。首先需要将问题转化为马尔可夫决策问题。用四元组<St,At,St+1,Rt>表示资源管理问题,其中,St是所有当前状态的集合,At是所有动作的集合,St+1是所有下一个状态的集合,Rt是采取行动后获得的即时奖励。
a.状态:因为需要对内存、CPU、带宽进行综合管理,所以内存、CPU、带宽都要包含在状态信息中。为了做出有效的决策,状态集包含了每个虚拟节点vi的资源信息,包括三个配置资源{ci,mi,bi}的数量以及三个资源对应的利用率{uci,umi,ubi}。因此将t时刻的状态st∈St(st∈R1*6n)定义为:
其中,表示虚拟节点vi在t时刻的状态信息;ci(t),、mi(t)以及bi(t)表示在t时刻的CPU、内存以及带宽资源配置,这些资源配置信息通过初始配置参数以及配置动作中获取。uci(t)、umi(t)以及ubi(t)表示在t时刻的CPU、内存以及带宽的资源利用率。
b.动作:包括对三个资源的操作,在t时刻的动作at∈At(at∈R1*3n)定义如下:
c.下一状态:执行相应动作后,系统将状态从st更新为st+1,获取新的st+1状态信息,包括每个虚拟节点的资源配置和资源利用率情况。
d.即时奖励:为了保证目标函数的最大化,将奖励函数设为与目标函数公式(9)相反的值,如下所示:
rt=-λ1Bads-λ2Vars+λ3Evav (20)
3.基于DDPG的资源管理算法
本发明旨在通过调度先前不合理的资源配置来实现资源的充分利用,假设虚拟实例的数量是一个常数n并且不会改变。本发明设计了DDPG-RA算法来管理虚拟实例之间的多个资源(算法1),该算法是基于深度确定性策略梯度(Deep Deterministic PolicyGradient,以下简称DDPG)设计的。本发明DDPG-RA算法结合了Actor和Critic网络,使用Actor网络生成动作,并使用Critic网络引导Actor网络产生更好的动作。DDPG网络由四个主要部分组成:当前Actor网络、当前Critic网络、目标Actor网络和目标Critic网络。
a.当前Actor网络是以当前状态st为输入,根据ε-greedy算法计算离散动作at,执行动作后得到下一个状态st+1。而基于DDPG的算法根据奖励函数计算即时奖励rt,将四元组<st,at,st+1,rt>放入replay memory(经验池),将当前Actor网络定义为πθ(S),输出为动作at。
b.当前Critic网络负责当前Actor网络的迭代更新,根据st和at计算潜在奖励值。潜在奖励值是从当前状态开始的所有未来步骤奖励的期望值的加权和,将当前Critic网络定义为Qω(S,A)。
c.目标Actor网络用于更新当前Critic网络,通常在一定时期从当前Actor网络复制参数,将目标Actor网络定义为π′θ′(S),它为replay memory采样元组中的st+1计算一个at+1的动作;最后,将和st+1传递给目标Critic网络以计算潜在奖励值。
d.目标Critic网络用于更新当前Critic网络,也会定期从当前Critic网络复制参数,将目标Critic网络定义为Q′ω′(S,A),它计算at+1和st+1的潜在奖励,即Q′ω′(st+1,at+1)。
在训练当前Actor网络时,这是一种确定性策略,而不是像Critic网络那样的预测策略。对于相同的系统状态,当前Actor网络产生的动作应该使当前Critic网络预测的潜在奖励值尽可能大,这样才可以认为能够获得更多的奖励。具体来说,当前Actor网络的损失函数需要获得当前Critic网络的最大潜在奖励值。为了最小化策略损失函数,将当前Critic网络的输出的相反数作为当前Actor网络的损失函数:
其中,Qω(s,a)为Critic网络的潜在奖励函数值,Qω(st,at)的具体计算过程如下所示:
Qω(st,at)=E[rt+γQω(st+1,at+1)] (22)
其中,γ∈[0,1]表示折损率。
当前Actor网络中的参数θ通过来自replay memory的随机mini-batch经验取样<st,at,st+1,rt>(t∈{1,2,…,X})来进行策略梯度更新,如下所示:
具体来说,在每个训练步骤中,θ按照如下方式更新:
其中,απ为当前Actor网络的学习率。
对于当前Critic网络的训练,采用均方误差函数定义其损失函数,如下所示:
J(ω)=E[(yt-Qω(st,at))2] (25)
其中,yt是一个目标值计算公式,如下所示:
yt=rt+γQ′ω′(st+1,π′θ′(st+1)) (26)
其中,Q′ω′(st+1,π′θ′(st+1))是通过目标Actor和Critic网络计算得到的。
当前Critic网络中的参数ω同样通过来自replay memory的随机mini-batch经验取样<st,at,st+1,rt>(t∈{1,2,…,X})来进行梯度更新,如下所示:
在每次训练过程中,ω更新过程如下所示:
其中,αQ为当前Critic网络的学习率。
最后,在每个episode过程中,通过下列公式来更新目标网络的参数:
ω′←τω+(1-τ)ω′ (29)
θ′←τθ+(1-τ)θ′ (30)
其中,动量因子τ=0.05。
DDPG-RA算法直接决定需要增加或者减少的资源数量,而不是固定大小的资源调节步长。由于使用tanh作为激活函数的Actor网络的输出值在[-1,1]范围内,不能直接反映动作的含义,因此提出一种基于比率的动作解码方法。通过动作解码,可以直接获得分配或者回收资源的大小,从而提高分配效率。
根据公式(9),首先,算法旨在通过资源调度消除所有资源短缺的虚拟节点,即最小化Bads;其次,为了充分利用资源,算法尽量保证每个虚拟节点的三种资源利用率的方差尽可能小,即最小化Vars;最后,根据采取行动后资源利用状态的变化来评估行动,分别获取每个虚拟节点vi的最大评价值,即最小化-Evav。DDPG-RA算法实现过程的伪代码如下所示。
在上述算法1的每个episode中,首先通过信息采集模块获取虚拟节点当前的资源状态(第5行),当前Actor网络生成对应的动作结果(第7行)。由于使用tanh作为激活函数的Actor网络的输出值在[-1,1]范围内,不能直接反映动作的含义,因此设计了基于比率的动作解码方法,按照基于比率的动作解码方法即算法2对动作进行解码,得到解码后的资源配置动作(第8行),Arema执行资源配置动作(第9行);接下来,获取下一时刻的资源状态st+1,并根据公式(20)计算奖励(第10行);之后将<st,at,st+1,rt>存储在replay memory中(第11行);当没有超出正常资源利用率阈值的虚拟节点时,DDPG-RA就会跳出当前episode(第12-14行)。为了克服经验数据和非平稳分布的相关性问题,采用replay memory中采样训练的方法从之前的状态转移经验中随机抽样进行训练(第16-19行),使经验数据能够充分还可以减少连续样本的相关性,避免训练参数更新过程中出现较大的方差。
在算法1中利用动作解码算法将基于比率的动作转化为可执行的动作,记为dat。dat的信息包含了每个虚拟节点资源配置的具体大小,然后就可以根据dat执行资源配置。
在动作解码过程,动作at是[-1,1]中的连续值,负值和正值分别被认为减少和增加资源。解码过程的伪代码如下所示。
对于内存动作解码,对于内存动作来说,需要将它的内存回收量转化为并且将该虚拟节点vi的内存资源回收也就意味着该虚拟节点的内存资源应该配置为(第4行)。这里解释一下用来转换内存资源回收量,而不是通过来转换的理由。在tanh函数中,在定义域中大量的值所对应的函数值是近似等于-1,如果出现需要回收vi所有的内存资源,这显然是不可行的,尤其是在早期训练的过程中,非常容易出现的情况。因此,不建议用转换为vi需要回收的内存量。而选择之后,这将大大降低不良动作发生的概率,有利于训练。
对于内存动作来说,根据动作值将上述回收的内存分配给这些虚拟节点。计算出可分配的内存大小M(第5行),并获得正动作值比率的总和(第7行)。然后,Arema根据动作值之间的比率来增加各虚拟节点的内存资源。换句话说,Arema将为每个虚拟节点vi配置的内存大小(第12行)。在这种情况下,动作值大的虚拟节点可以获得更多的内存,而动作值小的节点也会缓解资源紧缺。
对于CPU动作解码,虚拟节点中vCPU作为任务在物理内核上执行,其数量可以超过物理内核的数量。然而,通过在不同内核上执行的不同任务之间产生干扰和通信延迟,多处理器具有不可预测的架构。如果不考虑多处理器上的任务调度策略,每个vCPU无法在物理核上获得固定的时间片来执行任务。因此,CPU资源难以量化控制,不适合做大幅调节。以每次1个vCPU的调节粒度进行管理,更具体地说,当CPU动作值在[-1,-0.2)、[-0.2,0.2]和(0.2,1]范围内时,Arema分别通过对vi进行减少1个vCPU、保持不变、增加1个vCPU的操作,即分别对应动作结果为以及(第16-22行)。
除了动作解码,还需要保证动作的安全,应该停止恶意行为(例如释放虚拟节点的几乎全部内存)。为了保证每个虚拟节点的正常运行,为每个虚拟节点vi的CPU、内存和带宽设置最小的资源配置量,分别记为cmini,mmini,bmini。在调节过程中,每个虚拟节点不能低于这些最小资源。在执行动作之前,需要确定每个虚拟节点在执行动作后能够获得多少资源。如果低于最小资源或超过最大资源配置,则操作无效,改为选择最小或最大资源量(第24-32行)。
在计算获得这些目标资源配置值后,Arema通过执行模块执行资源分配。对于KVM执行资源分配:可以使用virsh管理工具来控制内存和vCPU的分配,采用Linux TC工具来控制每个虚拟网卡的最大通信带宽。TC工具采用qdisc-class-filter树结构,实现对流经每个虚拟网卡的流量通过htb队列和netem进行分层控制。基于OVS网络架构,上传流量从vNIC流向qvb设备,下载流量从qvo设备流向tap设备。因此,qvb(qvo)设备设置为限制最大上传(下载)带宽。对于Docker执行资源分配:使用docker update配置工具,通过参数cpus和memory来控制内存和vCPU的分配。与虚拟机类似,采用Linux TC工具为容器分配带宽资源。
进一步通过实验验证本发明的技术效果。
使用经典基准测试程序来展示本发明系统的性能。使用多个主机来构建OpenStack平台。每台主机使用具有48个内核的Intel(R)Xeon(R)Silver 4116处理器,内存为128GB,磁盘大小为3.3TB。操作系统是Centos-release-7-5x86 64。在OpenStack平台中主要使用一个nova(KVM)和一个nova-docker(Docker)计算节点,在KVM和Docker节点中创建多个虚拟节点来评估包括内存、CPU和带宽在内的多种类型的资源管理。本发明系统——Arema系统是用Python编写的,它的采集、计算和执行模块一起部署在计算节点上。每个虚拟节点都按照表3中的初始配置启动。
表3虚拟机和容器的初始配置
由于目标是通过精心分配多类型资源来提高虚拟节点的效率,通过比较基准测试程序性能和资源利用率来衡量其性能。具体实验设置如下。
(1)对比方法
为了评估本发明,不仅将本发明系统与未使用资源调度方案的默认情况进行比较(这种默认情况被称为Default),还分别与以下KVM和基于Docker的技术中的其他资源管理系统原型进行比较:对于基于虚拟机的虚拟化环境中的对比试验,与适用于KVM环境的算法Adares[1]进行比较,其利用上下文赌博机框架来控制虚拟机的CPU和内存资源;对于基于容器的虚拟化环境中的对比试验,与Thoth[2]进行比较,这是一个动态Q-learning资源管理系统,用于为基于容器的云平台进行适当的资源调整。
(2)基准测试程序
使用DaCapo[3]测试集评估性能开销,这是一个Java基准测试套件。它包括不同类型的测试应用程序,包括计算、内存和磁盘密集型应用程序。本发明实施例选择几个基准应用程序来评估性能开销,包括内存密集型(即h2)、计算密集型(即jython、pmd、jython、avrora、sunflow、fop、xalan、lusearch、batik)、磁盘密集型(即eclipse、luindex)基准测试。在所有评估中,每个选定的DaCapo应用程序都会运行十次。
Httpload是一个基于Linux平台的Web服务器性能测试工具,用于测试Web服务器的吞吐量和负载。给定固定数量的并发p和固定数量的访问次数f。可以根据测试的完成时间来估计网络性能。在所有评估中设置p=50和f=1000。
为了创建出资源竞争的场景,采用一些工作负载应用程序在实验过程中与基准测试程序一起运行,包括:
计算负载程序:这是一个无限循环的连续加法操作,它使用非阻塞锁来控制计算任务的终止。给定数字x,它将创建相应的x个进程,每个进程将占用一个vCPU。当主进程释放非阻塞锁时,子进程将结束计算任务。
静态内存负载程序:这也是一个真实内存请求的测试应用程序,给定消耗内存负载的固定数量的大小y,它请求y量的内存占用。
动态内存负载程序:在Mono程序中[4],给定工作负载范围[low,high],Mono会分两个阶段工作,在第一阶段,Mono最初请求一个low大小的内存,然后它会单调地将其内存请求增加到high。在第二阶段,Mono将其内存请求从high到low逐渐减少并释放所有工作负载。在实验中,Mono与h2作为一组测试集共同运行,通过观察h2在Mono动态内存工作负载下的性能。
(3)算法参数设置
DDPG-RA算法中一些参数可以通过经验分析或实际需求来设置。表4给出了出现在公式(8)和(9)中的参数值设置。
表4参数设置
虽然深度强化学习被广泛使用,但其训练一直是个问题。神经网络的训练主要是一个探索性的过程,早期经验不足时很可能会出现恶意行为(比如内存分配过少导致的崩溃)。因此需要一种预训练方法来加速学习过程并尽可能避免这些行为。然而,这仍然是一个挑战。一方面,神经网络需要大量的训练数据;另一方面,当网络直接与真实环境交互时,数据收集效率会很低。因此本发明构建了一个负载模拟器来预训练网络,然后将模型迁移到实际环境中,从而降低训练成本并提高安全性。模拟器对虚拟节点配置了表3中相同的资源配置,同时,为了充分了解各种应用负载的知识,针对各实验规模生成了1000种不同的初始负载向量,向量中包括CPU、内存和带宽负载。每个episode开始时都是从中随机选择一个状态并开始执行算法1中第6-16行,过程中负载向量不变,当没有超出正常资源利用率阈值的虚拟节点时,就跳出当前episode,每次跳出时都会在replay memory中采样训练模型,对后续5和15规模的实验中所用的agent分别训练了50000个episode,分别大约30、50小时。从而本发明模型可以得到全面的训练过程,并适用于各种场景。由于在实际系统环境中,多种类型的应用程序是同步执行的,依赖关系复杂,资源需求不规则,难以勾勒出资源需求。但是从机器学习的角度来看,模型只需要合理的、有经验的初始值,然后与实际环境交互,再不断训练更新经验。通过这种方式,模型将初始模拟器和实际系统的知识进行了整合,从而能够减少随机探索的范围和时间,提高效率。
在性能实验中创建15个虚拟节点,以验证本发明是否可以缩短由DaCapo和Httpoad组成的混合基准测试程序的完成时间。在所有15个虚拟节点中同时部署了不同的基准测试程序组合,表5中的每个组合都运行在一个虚拟节点上。DaCapo程序是10次,得到的结果中包括平均运行时间以及误差棒,误差棒表示DaCapo程序十次运行结果的标准差,以量化其整体性能的差异。根据表3中的初始配置以及测试程序的设置,这15个虚拟实例将会竞争主机的CPU资源。
表5实验测试组合信息
在KVM虚拟机实验中,图3显示了通过KVM环境进行基准测试的最终完成结果。从图3中可以得出,Default情况下的结果表现最差。因此,主要关注本发明系统Arema和对比方案Adares之间的比较。在图3(a)中,本发明系统Arema下运行的avrora的结果获得了最高的运行速度提升,提高了113.10%。同样,当Arema管理时,h2、h2[mono]和eclipse的结果分别提高了89.65%、55.65%和49.38%倍运行速度。sunflow和lusearch也分别被降低了14.78%和20.78%的完成时间。但是,jython的运行速度下降了不到5%,这是一个很小的性能损失。
当测试网络密集型和计算密集型基准测试程序的组合时,相比于Adares,本发明系统Arema在各种计算密集型程序下Httpload程序获得了102%以上的速度提升,如图3(b)所示。这主要是因为Adares在处理多资源管理时没有进行带宽管理。至于相应的计算密集型基准测试的结果,如图3(c)所示,与Adares相比,fop和lusearch-fix在Arema下运行分别获得了87.64%和72.06%倍的运行速度提升。pmd和eclipse在Arema下也分别获得了61.13%和42.91%倍的运行速度提升。luindex和jython的结果分别提高了29.00%和26.47%倍。此外,xalan的性能也略微提高了4.65%的运行速度。因为Adares忽略了网络密集型任务带来的CPU资源竞争。然而,batik在Arema方案下下降了4.70%的运行速度。
在Docker容器实验中,比较结果如图4所示。在图4中,相比于Thoth,本发明系统Arema运行时,前两个内存密集型h2相关结果在完成时间上分别减少了48.40%和58.53%。jython、eclipse、avrora、sunflow分别减少了22.82%、20.37%、19.20%、13.87%的运行时间。然而,lusearch中的结果呈现3.52%的性能下降。至于图4(b)和(c)中网络和计算密集型基准程序组合运行的结果,在各种DaCapo程序同时运行下,本发明系统Arema比Thoth方案至少给Httpload降低了59.96%运行时间,如图4(b)所示。图4(c)展示了相应计算密集型基准测试程序的结果,与Thoth方案相比,本发明系统Arema将eclipse、jython、pmd、fop、xalan、batik、lusearch-fix和luindex的完成时间分别降低了45.58%、27.53%、20.87%、18.99%、16.68%、15.75%、11.50%、11.05%。
图3和图4中显示的这些结果验证了本发明系统Arema可以整体缩短不同应用程序的完成时间。与Adares和Thoth相比,Arema将每个基准测试程序的运行完成时间平均分别减少了38.95%和37.95%。虽然存在两个虚拟节点的应用程序性能略有下降,但仍被认为是可以接受的结果。因为无法在众多运行的虚拟实例中提高每个节点的性能,所以理想的结果是提高大多数应用程序的性能。
进一步对系统能耗进行分析。测量了本发明系统Arema在CPU和内存上的系统开销。在nova和nova-docker计算节点上分别启动了15个虚拟机和容器,称为Default情况,并在一个小时内观察CPU和内存利用率。此外,采用Arema每分钟为所有虚拟实例调节一次CPU、内存和带宽,调节范围分别为[1vCPU,2vCPU]、[1024MB,2048MB]和[1MB/s,2MB/s]。还观察了一个小时内的CPU和内存利用率。通过这种方式评估执行资源调度操作的Arema的CPU和内存开销。在图5和图6中,红线分别显示了在频繁调度虚拟机和容器节点的CPU、内存和带宽时产生的CPU和内存开销;而黑线是Default的CPU和内存开销。虽然在观察过程中有很多未知的系统进程干扰了结果,但是可以发现Arema出现了与Default情况下的KVM或Docker主机相似的CPU和内存开销,Arema不会产生大量的开销,这证明了本发明系统Arema的可用性。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。对于本发明的范围,对本发明所做的公开是说明性的,而非限制性的,本发明的范围由所附权利要求书限定。
本发明所援引的文献如下:
[1]I.A.Cano,Optimizing distributed systems using machinelearning.Ph.D.dissertation,University of Washington,Seattle,USA,2019.
[2]A.Sangpetch,O.Sangpetch,N.Juangmarisakul,and S.Warodom,Thoth:Automatic resource management with machine learning for container-based cloudplatform.in CLOSER,2017,pp.75–83.
[3]S.M.Blackburn,R.Garner,C.Hoffmann,A.M.Khang,K.S.McKinley,R.Bentzur,A.Diwan,D.Feinberg,D.Frampton,S.Z.Guyer et al.,The dacapobenchmarks:Java benchmarking development and analysis,in Proceedings of the21st annual ACM SIGPLAN conference on Object-oriented programming systems,languages,and applications,2006,pp.169–190.
[4]W.Zhao,Z.Wang,and Y.Luo,Dynamic memory balancing for virtualmachines,ACM SIGOPS Operating Systems Review,vol.43,no.3,pp.37–47,2009.
Claims (9)
1.一种云计算环境中的资源管理方法,其特征在于,包括以下步骤:
步骤一、实时采集每个虚拟节点的资源信息,所述资源信息包括CPU使用时间、空闲内存和带宽信息;
步骤二、获取每个虚拟节点的CPU、内存及带宽资源配置量;
步骤三、根据所述资源信息和CPU、内存及带宽资源配置量进行计算提取,获得每个虚拟节点的CPU、内存及带宽使用率;所述CPU、内存及带宽资源配置量和CPU、内存及带宽使用率共同构成状态集;
步骤四、利用基于深度确定性策略梯度的资源管理算法对所述状态集进行训练学习,获得每个虚拟节点的资源配置决策;
步骤五、根据所述资源配置决策对每个虚拟节点的资源进行动态调节。
3.根据权利要求2所述的一种云计算环境中的资源管理方法,其特征在于,步骤四的具体步骤包括:
步骤四一、初始化当前Actor网络πθ(S)、当前Critic网络Qω(S,A)、目标Actor网络π′θ′(S)和目标Critic网络Q′ω′(S,A),并创建经验池;
步骤四二、初始化环境并获取当前t时刻状态信息;
步骤四三、以状态集中当前t时刻状态st为输入,根据Actor网络πθ(S)计算获得离散动作并加入噪声,获得当前t时刻动作at:
步骤四四、根据当前t时刻状态st利用基于比率的动作解码算法对当前t时刻动作at进行解码,得到解码后的资源配置动作;
步骤四五、按照解码后的资源配置动作进行资源配置;
步骤四六、获取状态集中t+1时刻状态st+1,并根据下述奖励函数公式计算获得即时奖励rt:
rt=-λ1Bads-λ2Vars+λ3Evav
式中,λ1、λ2、λ3表示权重参数;Bads表示处于资源过度利用或未充分利用状态的虚拟实例的数量;Vars表示CPU、内存及带宽使用率的方差之和,值越小说明虚拟节点的资源利用率越均衡;Evav表示对每个资源管理动作操作的评价值,值越大说明越认可;
步骤四七、将当前状态st、t时刻动作at、t+1时刻状态st+1和即时奖励rt即<st,at,st+1,rt>存入经验池;
步骤四八、从经验池中进行mini-batch取样,并基于下述公式对当前t时刻Critic网络中的参数ω进行梯度更新:
式中,E表示期望值;Qω(st,at)表示当前t时刻Critic网络;表示对当前Critic网络的参数ω求导;yt表示目标值,yt=rt+γQ′ω′(st+1,π′θ′(st+1)),γ表示折损率,Q′ω′(st+1,π′θ′(st+1))表示t+1时刻目标Critic网络,π′θ′(st+1)表示t+1时刻目标Actor网络;
步骤四九、从经验池中进行mini-batch取样,并基于下述公式对当前t时刻Actor网络中的参数θ进行梯度更新:
步骤四十、通过下列公式更新目标Actor网络的参数θ′:θ′←τθ+(1-τ)θ′;通过下列公式更新目标Critic网络的参数ω′:ω′←τω+(1-τ)ω′;其中,τ表示动量因子;
步骤四十一、迭代循环执行步骤四二至步骤四十,直至达到预设最大迭代次数则停止迭代执行。
4.根据权利要求3所述的一种云计算环境中的资源管理方法,其特征在于,步骤四四的具体步骤包括:
步骤四四一、对第i个虚拟节点的内存动作进行解码:
步骤四四二、对第i个虚拟节点的内存动作进行解码:
CPU动作值在[-1,-0.2)、[-0.2,0.2]和(0.2,1]范围内时,分别对应以下的CPU资源配置量:CPU资源配置量减少1个、CPU资源配置量保持不变、CPU资源配置量增加1个,即分别对应动作结果为:
步骤四四三、对第i个虚拟节点的带宽动作进行解码:
5.根据权利要求4所述的一种云计算环境中的资源管理方法,其特征在于,步骤四四三之后还包括步骤四四四:确定该虚拟节点在执行所述资源配置动作后所获得的资源配置量后,若所述资源配置量低于预设最小资源配置量或超过预设最大资源配置量,则所述资源配置动作更改为对应的预设最小资源配置量或预设最大资源配置量。
6.一种云计算环境中的资源管理系统,其特征在于,包括信息采集模块、资源计算模块和资源调整模块;其中,
所述信息采集模块用于实时采集每个虚拟节点的资源信息,所述资源信息包括CPU使用时间、空闲内存和带宽信息;获取每个虚拟节点的CPU、内存及带宽资源配置量;
所述资源计算模块用于根据所述资源信息和CPU、内存及带宽资源配置量进行计算提取,获得每个虚拟节点的CPU、内存及带宽使用率;所述CPU、内存及带宽资源配置量和CPU、内存及带宽使用率共同构成状态集;利用基于深度确定性策略梯度的资源管理算法对所述状态集进行训练学习,获得每个虚拟节点的资源配置决策;
所述资源调整模块用于根据所述资源配置决策对每个虚拟节点的资源进行动态调节。
8.根据权利要求7所述的一种云计算环境中的资源管理系统,其特征在于,所述资源计算模块中利用结合Actor-Critic网络和深度确定性策略梯度的资源管理算法基于所述状态集进行训练学习,获得每个虚拟节点的资源配置决策的具体步骤包括:
步骤四一、初始化当前Actor网络πθ(S)、当前Critic网络Qω(S,A)、目标Actor网络π′θ′(S)和目标Critic网络Q′ω′(S,A),并创建经验池;
步骤四二、初始化环境并获取当前t时刻状态信息;
步骤四三、以状态集中当前t时刻状态st为输入,根据Actor网络πθ(S)计算获得离散动作并加入噪声,获得当前t时刻动作at:
步骤四四、根据当前t时刻状态st利用基于比率的动作解码算法对当前t时刻动作at进行解码,得到解码后的资源配置动作;
步骤四五、按照解码后的资源配置动作进行资源配置;
步骤四六、获取状态集中t+1时刻状态st+1,并根据下述奖励函数公式计算获得即时奖励rt:
rt=-λ1Bads-λ2Vars+λ3Evav
式中,λ1、λ2、λ3表示权重参数;Bads表示处于资源过度利用或未充分利用状态的虚拟实例的数量;Vars表示CPU、内存及带宽使用率的方差之和,值越小说明虚拟节点的资源利用率越均衡;Evav表示对每个资源管理动作操作的评价值,值越大说明越认可;
步骤四七、将当前状态st、t时刻动作at、t+1时刻状态st+1和即时奖励rt即<st,at,st+1,rt>存入经验池;
步骤四八、从经验池中进行mini-batch取样,并基于下述公式对当前t时刻Critic网络中的参数ω进行梯度更新:
式中,E表示期望值;Qω(st,at)表示当前t时刻Critic网络;表示对当前Critic网络的参数ω求导;yt表示目标值,yt=rt+γQ′ω′(st+1,π′θ′(st+1)),γ表示折损率,Q′ω′(st+1,π′θ′(st+1))表示t+1时刻目标Critic网络,π′θ′(st+1)表示t+1时刻目标Actor网络;
步骤四九、从经验池中进行mini-batch取样,并基于下述公式对当前t时刻Actor网络中的参数θ进行梯度更新:
步骤四十、通过下列公式更新目标Actor网络的参数θ′:θ′←τθ+(1-τ)θ′;通过下列公式更新目标Critic网络的参数ω′:ω′←τω+(1-τ)ω′;其中,τ表示动量因子;
步骤四十一、迭代循环执行步骤四二至步骤四十,直至达到预设最大迭代次数则停止迭代执行。
9.根据权利要求8所述的一种云计算环境中的资源管理系统,其特征在于,所述资源计算模块中根据当前t时刻状态st利用基于比率的动作解码算法对当前t时刻动作at进行解码,得到解码后的资源配置动作的具体步骤包括:
步骤四四一、对第i个虚拟节点的内存动作进行解码:
步骤四四二、对第i个虚拟节点的内存动作进行解码:
CPU动作值在[-1,-0.2)、[-0.2,0.2]和(0.2,1]范围内时,分别对应以下的CPU资源配置量:CPU资源配置量减少1个、CPU资源配置量保持不变、CPU资源配置量增加1个,即分别对应动作结果为:
步骤四四三、对第i个虚拟节点的带宽动作进行解码:
步骤四四四:确定该虚拟节点在执行所述资源配置动作后所获得的资源配置量后,若所述资源配置量低于预设最小资源配置量或超过预设最大资源配置量,则所述资源配置动作更改为对应的预设最小资源配置量或预设最大资源配置量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111562519.5A CN114217974A (zh) | 2021-12-20 | 2021-12-20 | 一种云计算环境中的资源管理方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111562519.5A CN114217974A (zh) | 2021-12-20 | 2021-12-20 | 一种云计算环境中的资源管理方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114217974A true CN114217974A (zh) | 2022-03-22 |
Family
ID=80704311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111562519.5A Pending CN114217974A (zh) | 2021-12-20 | 2021-12-20 | 一种云计算环境中的资源管理方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114217974A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114706670A (zh) * | 2022-04-15 | 2022-07-05 | 海南大学 | 一种基于强化学习的多租户任务调度方法 |
CN116048820A (zh) * | 2023-03-31 | 2023-05-02 | 南京大学 | 面向边缘云的dnn推断模型部署能耗优化方法和系统 |
WO2024000443A1 (en) * | 2022-06-30 | 2024-01-04 | Intel Corporation | Enforcement of maximum memory access latency for virtual machine instances |
-
2021
- 2021-12-20 CN CN202111562519.5A patent/CN114217974A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114706670A (zh) * | 2022-04-15 | 2022-07-05 | 海南大学 | 一种基于强化学习的多租户任务调度方法 |
WO2024000443A1 (en) * | 2022-06-30 | 2024-01-04 | Intel Corporation | Enforcement of maximum memory access latency for virtual machine instances |
CN116048820A (zh) * | 2023-03-31 | 2023-05-02 | 南京大学 | 面向边缘云的dnn推断模型部署能耗优化方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11989647B2 (en) | Self-learning scheduler for application orchestration on shared compute cluster | |
CN114217974A (zh) | 一种云计算环境中的资源管理方法及系统 | |
US8510747B2 (en) | Method and device for implementing load balance of data center resources | |
CN109324875B (zh) | 一种基于强化学习的数据中心服务器功耗管理与优化方法 | |
US9386086B2 (en) | Dynamic scaling for multi-tiered distributed systems using payoff optimization of application classes | |
CN109542603B (zh) | 一种提高不同优先级任务间隔离性的多维资源隔离系统 | |
Moreno et al. | Improved energy-efficiency in cloud datacenters with interference-aware virtual machine placement | |
US9239734B2 (en) | Scheduling method and system, computing grid, and corresponding computer-program product | |
Janus et al. | SLO-aware colocation of data center tasks based on instantaneous processor requirements | |
US20110035753A1 (en) | Mechanism for continuously and unobtrusively varying stress on a computer application while processing real user workloads | |
Georgiou et al. | Evaluating scalability and efficiency of the resource and job management system on large HPC clusters | |
GB2527788A (en) | Scheduling applications in a clustered computer system | |
CN111344677B (zh) | 管理处理系统效率 | |
CN116467082A (zh) | 一种基于大数据的资源分配方法及系统 | |
Razavi et al. | FA2: Fast, accurate autoscaling for serving deep learning inference with SLA guarantees | |
Zhang et al. | Astraea: towards QoS-aware and resource-efficient multi-stage GPU services | |
Zhao et al. | Insight and reduction of MapReduce stragglers in heterogeneous environment | |
Zhang et al. | CHARM: Collaborative host and accelerator resource management for gpu datacenters | |
CN116360921A (zh) | 一种面向电力物联网的云平台资源优化调度方法及系统 | |
CN114466014B (zh) | 一种服务调度方法、装置、电子设备及存储介质 | |
Alatawi et al. | Hybrid load balancing approach based on the integration of QoS and power consumption in cloud computing | |
Yazdanov | Towards auto-scaling in the cloud: online resource allocation techniques | |
Ghanavatinasab et al. | SAF: simulated annealing fair scheduling for Hadoop Yarn clusters | |
Chen et al. | Conlar: Learning to allocate resources to docker containers under time-varying workloads | |
Wang et al. | Modeling vm performance interference with fuzzy mimo model |
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 |