欢迎光临小豌豆知识网!
当前位置:首页 > 电学技术 > 电通讯技术> 一种基于深度强化学习的边缘容器资源分配方法独创技术14131字

一种基于深度强化学习的边缘容器资源分配方法

2021-03-23 02:28:20

一种基于深度强化学习的边缘容器资源分配方法

  技术领域

  本发明涉及资源分配领域,特别是一种基于深度强化学习的边缘容器资源分配方法。

  背景技术

  随着科技的发展,多种应用的服务请求流的种类和数量的爆发性增长,资源池需要在在不影响服务质量的前提下在不同时间内快速的销毁和部署完全适用于不同的容器服务组合的策略,轻量级容器技术得以让我们在较短时间内对资源池的资源进行重新分配,并在分配资源的过程中对服务请求的服务质量产生的影响降到最小,增强了部署应用的灵活性和效率。而应用对于多容器进行处理时需要一系列的容器和连接容器的网络链路,此特点不同于对单一容器进行的处理。对于时延敏感型应用来说,减少时延无疑是一个评价应用性能的重要特征,现有技术中的端到端时延是通过计算服务请求流中所有数据包的时延总和得出,而不同的容器服务请求流中的数据包在不同资源池的处理队列和数据链路中所得到的处理时间是不同的,并且在前一个容器处的数据包处理以及传输速率会影响到下一容器的数据包到达率,深度强化学习算法则用来解决这个难题,深度强化学习模型在与环境交互的过程中利用了深度学习的特征提取能力,将复杂的环境信息作为输入,在经过一段时间的学习后可以在短时间内得到资源池的容器资源分配策略。

  然而深度强化学习算法的存在着训练难度和收敛速度较差的缺点,无法满足在时延敏感型应用池上运行的要求,所以如何在时延敏感型应用的资源池中对容器集群中的一个或一部分容器进行资源分配并且快速根据实时服务组合的变化重新分配变成了一个值得研究的问题。现有技术1为专利号CN109491790A的《基于容器的工业物联网边缘计算资源分配方法及系统》的专利、现有技术2为专利号为CN109656717A的《一种容器化云资源分配方法》和现有技术3为专利号为CN107908457A的《一种基于稳定匹配的容器化云资源分配方法》专利都针对这个问题进行了解答,但是现有技术1只提出了低、中、高三种资源分配策略,这样导致资源分配无法达到最优化目标,也未考虑到边缘计算环境下状态信息的复杂程度和容器服务组合的变化;现有技术2仅提供了固定资源分配策略下的容器虚拟机选择方案,但该方案无法解决边缘计算环境中快速变化的服务组合和服务请求到达率的问题;现有技术3设计的流程效率不足以满足时延敏感性应用的要求,三者在如何针对时延敏感性应用的边缘计算环境的容器资源分配问题依然没有提出好的解决方案。

  因此本发明提供一种的新的方案来解决此问题。

  发明内容

  针对现有技术存在的不足,本发明的目的是提供一种基于深度强化学习的边缘容器资源分配方法,有效的解决了针对时延敏感性应用的边缘计算环境的容器资源分配的问题。

  一种基于深度强化学习的边缘容器资源分配方法,包括Actor网络、Critic网络、回声状态网络ESN,所述分配方法包括以下步骤:

  S1、利用回声状态网络ESN改进Critic网络得到EC-A3C网络,并将EC-A3C网络和Actor网络的参数初始化;

  S2、判断此时EC-A3C网络的时间t是否为1,其中t≤M,M为预置的时间间隔,当t=1时进行步骤S3,否则进行步骤S5;

  S3、获取EC-A3C网络的边缘环境状态值stz,t,将当前边缘环境状态值stz,t输入到深度强化学习算法中,并在当前t时刻根据资源分配策略At并实施;

  S4、在M/D/1排队模型的基础上建立端到端时延模型,通过端到端时延模型计算得到系统奖励值rt和新的环境状态值stz,t+1;

  S5、根据步骤S4获取新的环境状态值stz,t+1或到达M值时,返回步骤S2,并使用梯度下降法对actor网络和EC-A3C网络进行权重更新并异步更新全局网络参数;

  由于以上技术方案的采用,本发明与现有技术相比具有如下优点:

  本发明为每一个通过资源池z的服务请求流s在M/D/1排队模型的基础上建立端到端时延模型,从而得到服务流s的数据包在第一个容器的平均时延,将服务流s到达下一容器的过程近似为泊松过程,分析服务流s在上一个容器的处理过程在服务流s通过下一容器时造成的影响,得到服务流s数据包在容器n上的端到端时延;为解决边缘容器资源分配的问题采用基于深度强化学习模型,并通过回声状态网络ESN改进传统A3C算法得到了一种时延敏感型应用的边缘容器的资源分配方法—EC-A3C网络,在资源池z为不同的容器集群Sz,t分配资源分配策略At,用以解决边缘计算环境的容器资源分配的问题,EC-A3C网络通过改变端到端时延的奖励值rt,以适应不同的边缘计算环境,最终得到合适的边缘容器的资源分配策略并实施。

  附图说明

  图1为本发明资源分配方法EC-A3C网络的流程图。

  图2为本发明与传统A3C算法的系统奖励比较图。

  图3为本发明与传统A3C算法的损失函数比较图。

  图4为本发明与传统A3C算法的Actor网络损失函数比较图。

  图5为本发明与另外三种算法在不同到达率下的时延图。

  图6为本发明与另外三种算法在不同到达率下的平均吞吐量图。

  图7为本发明与另外三种算法在不同容器下的时延图。

  图8为本发明与另外三种算法在不同容器下的平均吞吐量图。

  具体实施方式

  为有关本发明的前述及其他技术内容、特点与功效,在以下配合参考附图1对实施例的详细说明中,将可清楚的呈现。以下实施例中所提到的结构内容,均是以说明书附图为参考。

  下面将参照附图描述本发明的各示例性的实施例。

  一种基于深度强化学习的边缘容器资源分配方法,包括Actor网络、Critic网络、回声状态网络ESN,利用资源池z维护全局网络参数,传统A3C网络由Actor网络、Critic网络构成,利用回声状态网络ESN改进Critic网络得到EC-A3C网络,使边缘容器的资源在深度强化学习模型分配的问题能够得到解决,所述分配方法包括以下步骤:

  S1、利用回声状态网络ESN改进Critic网络得到EC-A3C网络,并将EC-A3C网络和Actor网络的参数初始化;

  S2、判断此时EC-A3C网络的时间t是否为1,其中t≤M,M为预置的时间间隔,当t=1时进行步骤S3,否则进行步骤S5;

  S3、获取EC-A3C网络的边缘环境状态值stz,t,将当前边缘环境状态值stz,t输入到深度强化学习算法中,并在当前t时刻根据资源分配策略At并实施;

  S4、在M/D/1排队模型的基础上建立端到端时延模型,通过端到端时延模型计算得到系统奖励值rt和新的环境状态值stz,t+1;

  S5、根据步骤S4获取新的环境状态值stz,t+1或到达M值时,返回步骤S2,并使用梯度下降法对actor网络和EC-A3C网络进行权重更新并异步更新全局网络参数;所述步骤S1中的资源池z为边缘节点的可分配资源总量,储备池是回声状态网络ESN的储备池,回声状态网ESN络由输入层、储备池及输出层组成;

  所述步骤S1中EC-A3C网络在t时刻的储备池u当前时刻的内部状态值为:其中uz,t-1为EC-A3C网络在t-1时刻的储备池u内部状态值,xz,t为t时刻EC-A3C网络资源池z的输入状态向量,yz,t是EC-A3C网络的资源池z在t时刻由Critic网络预估的系统状态奖励值vz,t,则EC-A3C网络的储备池u内部权重矩阵为:其中代表输入权重矩阵,代表网络输出权重矩阵;

  所述步骤S3中EC-A3C网络的环境状态值stz,t={Sz,t,At},资源池z的容器组为其中资源池z的容器组中的Ωs={Ns,λs,ωs}表示为服务流s包含的数据信息,λs为服务流s的数据包的到达率,ωs为服务流s的优先级,服务流s的容器组所有资源池z的资源分配策略为At={Kz,νz},其中服务流s中容器n的具体信息Φn,s={Cs,1,Cs,2,Nnext},Kn表示资源池z当前容器n的数量,其中CS,1为容器n在单位计算带宽资源下所得到的数据包处理速率,CS,2为容器n在单位计算带宽资源下所得到的数据包传输速率,Nnext为服务流s中容器n的下一个容器,是资源池z分配给服务流S的计算资源模块,是资源池z分配给服务流S的带宽资源块,且分配的资源块必须满足以下条件:

  

  

  

  

  其中,θ代表容器n在资源池z可以得到的最大资源量,τ是深度强化学习算法中资源块的集合,Cz、Bz是资源池z的总资源单位数;

  所述步骤S4中通过端到端时延模型计算得到系统奖励值rt和新的环境状态值stz,t+1的具体步骤为:

  X1、服务流s在第一个容器处的数据包平均时延为:

  

  其中PS,1为服务流S在容器的数据包处理队列的非空概率;

  X2、对离开第一个容器后的服务流S的链路传输时延进行分析,当第一个容器与第二个容器在同一资源池z内,则不考虑服务流S的链路传输时延,当第一个容器与第二个容器不在同一资源池z内,则传输时延主要由链路所经过的交换机数量Km和链路数量Km决定,则链路传输时延为:

  

  数据包在第二个容器的总平均时延为:

  

  其中C′S,1代表服务请求数据包在第二个容器中的处理速率,当C′S,1<CS,2时,造成容器处的排队积压时延,排队积压时延是由于服务流s的数据包到达率λs≠服务流s的数据包在容器中的处理速率CS,1造成的;当C′S,1≥CS,2时,数据包以C′S,1的处理速率通过第二个容器,并以c′s,2的传输速率离开资源池z,因此由服务流s经过的资源池z和链路传输时延求出总时延为:

  

  X3、利用当前状态值stz,t和下一状态的容器服务流s的数据包的总时延Ds的奖励值rt,具体为:

  

  其中S、S′分别代表当前状态和下一状态资源池服务流s的容器组,Ks为服务流s的数量,若当前状态的时延值Ds,2<前一状态的时延值Ds,1,则奖励值rt为正值;若当前状态的时延值Ds,2>前一状态的时延值Ds,1,奖励值rt为负值;

  所述步骤S5中actor网络的权重更新为:

  

  EC-A3C网络权重更新为:

  其中at是深度强化学习算法从所有策略At选择出来使用的策略,α代表学习率,H表示为控制深度强化学习探索其他空间的概率的熵值,ξ控制熵的强弱,θ代表网络权重,A为实际得到的状态奖励值rt与Critic网络预估的系统状态奖励值vz,t之间的差值:A=rt+γrt+1+…+γn-1rt+n-1+γnrt+n-νz,t,其中γ为折扣因子,通过奖励值rt值的变化,使EC-A3C网络适应不同的边缘容器,以得到最合适的资源分配策略。

  本发明在进行具体使用的时候,使用python代码模拟实验流程,实验电脑配置为2.3Ghz、i5、4核、8线程、16GB内存的CPU,EC-A3C网络使用Tensor flow框架编写,actor网络和EC-A3C网络的学习率α均设置为0.001,为了评估EC-A3C网络的性能,设置随机的网络拓扑图,并在其中设置10个资源池和通信链接,每一个资源池z都有不同的CPU计算资源块(资源量范围为10到100),资源池z之间的链路带宽(资源量范围为50到100)也不相同,所有的容器n的服务流s的到达过程都服从泊松过程,平均到达率的范围为10到80,每一个容器集群Sz,t请求的容器n数量范围为1到8,请求的优先级ωs范围为1到3,根据实际情况设置服务流s流对不同资源池z的速率和容器之间是否跨节点:如图2-图4所示,在EC-A3C训练过程中,传统的A3C算法需要经过600的训练步数获得较高的奖励值,EC-A3C网络则在400训练步数以内实现,EC-A3C网络的损失函数和Actor网络也较传统的A3C网络的有较大改善,表明EC-A3C网络在资源边缘环境的资源分配取得较好的效果;

  在对EC-A3C网络与现有的算法与传统A3C算法、Random算法和DQN算法进行比较,在深度强化学习模型中的代理、状态空间、动作空间、系统奖励以及actor网络中均设置为相同的参数,通过仿真图进行比较得到:随着容器集群Sz,t请求的平均容器数量Kn的增加,图5显示出在请求流s到达率λs改变的情况下,EC-A3C网络相对于传统A3C算法、Random算法和DQN算法得到较好的性能表现,EC-A3C可以实现20.9%、33.5%、57.9%时延的减少,如图6所示,在到达率λs不同的情况下(即在图5的基础上),EC-A3C算法实现的平均吞吐量也多于传统A3C算法、Random算法和DQN算法实现的平均吞吐量,如图7所示,在容器数量Kn改变的情况下,相对于传统A3C算法、Random算法和DQN算法,EC-A3C算法显著减少了服务流s的平均端到端时延,EC-A3C分别实现了10.9%、18.1%、45.1%时延的减少,图8显示出EC-A3C算法在得到较好的时延效果的同时(即在图7的基础上),在增加网络平均吞吐量上也有很大的优势,然而传统A3C算法和DQN算法在平均吞吐量上表现得非常不稳定,故在深度强化学习模型的整体上,EC-A3C网络在实现边缘容器的资源分配上取得了较好的效果。

《一种基于深度强化学习的边缘容器资源分配方法.doc》
将本文的Word文档下载到电脑,方便收藏和打印
推荐度:
点击下载文档

文档为doc格式(或pdf格式)