一种基于时空图神经网络负载预测的微服务主动伸缩方法与流程



1.本发明涉及云计算领域领域,具体涉及一种基于时空图神经网络负载预测的微服务主动伸缩方法。


背景技术:



2.随着网络服务的快速发展,网络应用服务商所提供的服务越来越复杂,功能越来越多,同时业务也在快速扩展迭代。在这种趋势下,微服务架构应运而生。在微服务架构中,整个网络应用程序被拆分成若干个微服务,微服务之间相互独立,只通过网络请求调用其它微服务获取所需信息。相比于传统网络应用,微服务架构实现了应用模块化,具有更高的可扩展性、容错性和可维护性。在云数据中心中,为了使微服务能提供更好的服务质量,为其分配的计算资源应该越多越好,但分配过多的计算资源会导致资源利用率过低,从而产生资源浪费。因此,数据中心必须为微服务提供高效的弹性伸缩方案,以在满足他们的服务质量要求的同时尽量提高计算资源的利用率以降低自身的运营成本。因此微服务的动态资源调度受到了学术界和工业界的极大关注,而微服务的自动弹性伸缩则是其具体实现方式。目前进行弹性伸缩的方案主要分为两类:一类是基于阈值的反应式算法,另一类是基于预测的主动式算法。反应式算法如smartvm等只能在工作负载变化已经发生时做出反应,因此具有滞后性,在工作负载变化较快时容易产生抖动,频繁地伸缩造成不必要的开销。主动式算法如hansel等较为依赖对工作负载预测的准确性。现有的预测算法主要基于回归理论或传统神经网络,只能根据微服务工作负载的历史时间序列进行预测,无法体现微服务之间的空间联系。因此需要一种能同时体现微服务工作负载时间联系和空间联系的模型来进行预测,然后基于工作负载预测进行微服务的弹性伸缩。


技术实现要素:



3.为解决上述技术问题,本发明提供一种基于时空图神经网络负载预测的微服务主动伸缩方法,通过对微服务占用计算资源的伸缩调度,在尽可能地保证它们的服务质量的同时,提高计算资源的利用率以降低云计算中心的运行成本。
4.为解决上述技术问题,本发明采用如下技术方案:一种基于时空图神经网络负载预测的微服务主动伸缩方法,包括以下步骤:步骤一、对微服务架构进行建模:整个微服务架构共包含n个微服务,微服务的集合,第i个微服务的属性表示为;其中,表示微服务的工作负载,表示微服务的计算资源,表示微服务的服务质量;各微服务之间存在固定的调用关系,调用关系的集合,
;其中调用关系表示微服务对微服务的调用关系,微服务的工作负载发生改变时,调用关系会使微服务的工作负载发生改变;其中,第i个微服务属性还可以表示为,即增加一个属性,表示微服务的标识;步骤二、微服务工作负载预测:构建并训练一个由gat网络和gru网络组成的时空图神经网络,记为gat-gru网络;gat-gru网络中,输入包括输入数据和调用关系集合,其中代表输入数据的时间序列长度,代表微服务的个数;代表微服务工作负载的特征个数,微服务工作负载的特征包括微服务的cpu占用率和内存占用率;输入数据首先通过一个gat层gat-1的处理,然后将gat-1输出的隐藏状态输入到gru层中,再将gru层输出的隐藏状态通过另一个gat层gat-2处理后作为下一个时序的gru层的输入,最后将每一个时序的gru输出的隐藏状态合并,并经过一个预测层处理,最后输出所需的预测数据;其中代表预测数据的时序长度;步骤三、微服务水平伸缩决策:采用ddpg模型来基于微服务工作负载的预测决定每个微服务是否进行伸缩;ddpg模型的环境状态包括从预测数据中得到的每个微服务的资源占用情况和服务质量情况;资源占用情况包括微服务的cpu占用率、内存占用率和工作副本个数;服务质量情况包括微服务的平均请求响应时间;ddpg模型的动作集包括对每个微服务进行缩容、维持或者扩容;当动作值大于1时进行扩容,工作副本数量为动作值向下取整;当动作值小于-1时进行缩容,工作副本数量为动作值向上取整;当动作值在-1和1之间时维持微服务工作副本数量不变;ddpg模型的奖励为每个微服务cpu平均占用率、内存平均占用率和归一化后的请求响应时间的加权平均的倒数。
5.进一步地,所述预测层由几个全连接层串联而成。
6.与现有技术相比,本发明的有益技术效果是:由于引入了时空图神经网络进行工作负载预测,更好地体现了微服务场景下不同微服务之间的空间联系,因此能够做出更加准确的预测。基于对工作负载的准确预测,能通过微服务伸缩决策更好地在微服务占用的计算资源和提供的服务质量之间取得平衡。且由于本发明是基于预测的主动式伸缩,能提前对工作负载的变化做出响应,防止请求数量出现大幅变化时系统难以及时做出响应而导致服务质量崩溃或资源浪费。
附图说明
7.图1为本发明用于微服务工作负载预测的gat-gru网络的结构图;
图2为gru网络的内部工作流程图;图3为本发明微服务资源调度的实施流程图。
具体实施方式
8.下面结合附图对本发明的一种优选实施方式作详细的说明。
9.本发明的实现基于时空图神经网络和ddpg(deepdeterministicpolicygradiant,深度确定性策略梯度)模型的结合。
10.时空图神经网络由gru网络(gatedrecurrentunit,门控循环单元网络)网络和gat网络(graphattentionnetworks,图注意力网络)组成。
11.gru网络的转换形式如下式所示:;(1);(2);(3);(4)其中代表矩阵逐元素相乘,、和分别代表gru网络中的reset门、update门和cell门;、和分别为reset门、update门和cell门的参数,、和分别为reset门、update门和cell门对应的偏移,在训练过程中会被不断学习;为双曲正切函数,而和则分别为gru网络时刻的输入和输出。
12.gru网络的内部工作流程如图2所示。
13.而gat网络的转换形式如下式所示:;(5);(6)其中表示gat网络的输入数据,是gat网络中节点的特征向量,节点、节点为节点的邻居节点,为节点的特征向量,为节点的特征向量,、、的长度为;表示gat网络的输出数据,为gat网络中每个节点经过图注意力聚合后输出的特征向量,长度为;表示非线性函数,
为激活函数,为权重矩阵,其形状为,表示节点的邻居节点集合,符号表示向量拼接,而是一个长度为的权重向量,为的转置。最终由(6)式得出的即为注意力系数,它表示节点受到其邻居节点影响的程度。而采用多头注意力机制后,会同时使用几个相同的gat网络对输入数据进行处理,此后输出时取它们输出的平均值或拼接。
14.将gat网络应用于本发明中的微服务工作负载预测时,gat网络的节点即本发明中的微服务。
15.以上两种网络用于对微服务的工作负载进行预测。
16.ddpg模型是一种强化学习算法,用于进行微服务的伸缩决策。
17.ddpg模型包含四个网络,分别是网络、网络、网络和网络。其中网络用于将输入的环境状态转换为动作值,网络用于在对应环境状态下对网络提供的动作值打分,而和网络分别用于防止网络和网络在一次训练中发生过大的波动。ddpg模型的主要工作流程如下:(1)随机初始化网络的参数和网络的参数;(2)初始化网络的参数和网络的参数,使参数与的值相同、参数与的值相同;(3)初始化记忆缓存;(4)对于每一个回合:(5)初始化一个均值为0正态分布的随机变量;(6)从环境获取初始状态;(7)对于每一个时间步:(8)选取动作并加上随机变量;(9)对环境执行动作并观测奖励与新状态;(10)将存入记忆缓存;(11)从记忆缓存中选取个记录,其中第个记录为;(12)对每个记录分别计算目标值;(13)通过最小化损失函数来更新q网络:;
(14)更新网络:;其中为网络所代表的策略;(15)软更新和网络;(16)结束一个时间步,若状态不是终态或时间没有超出范围,回到(7),执行下一个时间步;(17)结束一个回合,回到(4),进入下一个回合。
18.在云计算中心中部署微服务的场景下,需要同时向很多微服务提供计算资源。一般来说,对于微服务而言,所获得的计算资源越多,其提供服务的能力就越强,也越能保证自身的服务质量。但是云计算中心不可能为了提高微服务的服务质量,无限制地为其分配计算资源,这会使得云计算中心的运营成本无限制地提高。因此,有必要在微服务工作负载较大的时候,为其分配更多的计算资源以保证其服务质量,而在其相对空闲的时候,应该回收一定的计算资源以防止其资源利用率过低导致的计算资源浪费。
19.为此,需要一种主动式资源调度方法,通过实时监控微服务的工作负载数据,预测未来一段时间的工作负载,此后根据预测的工作负载来决定是否对微服务进行伸缩。具体的方法描述如下:(1)对微服务架构进行建模。设整个微服务架构共包含个微服务,用表示微服务的集合,则。对于第个微服务,用表示其属性。其中,表示微服务的标识;表示微服务的工作负载;表示微服务的计算资源;表示微服务的服务质量。此外,微服务之间还存在固定的调用关系,这种关系在微服务设计的时候就已确定,把这种调用关系表示为,,其中表示微服务对微服务的调用关系。由于这种调用关系的存在,的工作负载发生改变时,会对的工作负载也造成一定的影响。
20.(2)微服务工作负载预测。采用图注意力网络和循环神经网络结合的模型进行微服务工作负载预测。具体地,构建并训练一个将gat网络和gru网络结合的时空图神经网络来进行工作负载预测,本发明中也称为gat-gru网络。
21.在本发明构建的gat-gru网络中,网络的输入数据为和,其中代表输入数据的时间序列长度,代表微服务的个数,代表微服务工作负载的特征个数,此处的矩阵即对应前文中gat网络中的输入数据,代表整个微服务架构的调用关系
集合。此处主要考虑微服务的cpu占用率和内存占用率,故。输入数据首先通过一个gat层的处理,然后将其输出的隐藏状态输入到gru层中。此后将gru层输出的隐藏状态再通过另一个gat层处理后作为下一个时序的gru隐藏输入。最后将每一个时序的gru隐藏输出合并,并经过一个预测层处理,最后输出所需的预测数据,其中代表预测数据的时序长度,此处的矩阵即对应前文中gat网络中的输出数据;预测层具体是由几个全连接层串联而成。整个网络的结构如图1所示。
22.(3)微服务水平伸缩决策。采用ddpg模型来基于微服务工作负载的预测决定每个微服务是否进行伸缩。环境状态包括每个微服务的资源占用情况和服务质量情况;其中资源占用情况具体包括cpu占用率、内存占用率和工作副本个数;服务质量情况具体包括平均请求响应时间。动作集则包括每个微服务的缩容、维持和扩容三类选择,此处定义当动作值大于1时进行扩容,工作副本数量为动作值向下取整;当动作值小于-1时进行缩容,工作副本数量为动作值向上取整;当动作值在-1和1之间时维持微服务工作副本数量不变。而奖励则为每个微服务cpu平均占用率、内存平均占用率和归一化后的请求响应时间的加权平均的倒数。
23.实施例本发明部署在云计算中心的微服务架构上,首先应该获取微服务架构中所有微服务节点信息,以及微服务之间的调用关系信息。接下来每过一段时间,根据本发明的微服务主动伸缩方法对每个微服务进行水平伸缩控制,即控制每个微服务的工作副本数量。具体的实施方式如图3所示,主要分为以下几个步骤:监控微服务资源占用情况:主要监控微服务工作副本数量、所有微服务工作副本的cpu占用率和内存占用率;进行微服务工作负载预测:根据过去一段时间全部微服务的资源占用情况预测下一时刻全部微服务的资源占用情况,具体使用本发明中的gat-gru网络来进行微服务工作负载预测。此后也根据下一时刻获取的实际微服务工作负载数据对gat-gru网络继续进行训练,不断完善提高gat-gru网络预测能力;进行微服务水平伸缩决策:在预测下一时刻的微服务工作负载后,将所预测的微服务工作负载数据输入到ddpg模型获取其输出的动作值,然后根据每个微服务的动作值决定为对应的微服务进行扩容操作、缩容操作或是不进行任何操作。此后根据ddpg模型的算法对网络进行训练更新。经过一段时间的训练后,ddpg模型能达到一个相对稳定的状态,并提供较好的伸缩决策;根据伸缩决策对微服务架构中所有的微服务进行水平伸缩:通过微服务工作副本控制器直接控制每个微服务工作副本的数量,从而将伸缩决策应用到微服务架构中。
24.图3中的圆代表微服务的工作副本,处于一个方框内的圆代表同一微服务的工作副本,无填充的圆代表工作副本处于正常工作状态,黑填充的圆代表工作副本处于初始化状态,点填充的圆代表工作副本处于销毁状态。图3中微服务架构包含四个微服务,本发明

监控它们的资源使用数据;

预测它们未来的工作负载;

对每个微服务做出水平伸缩决策;

通过工作副本控制器将水平伸缩决策应用到微服务架构,调整每个微服务工作
副本的数量。
25.对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内,不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
26.此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立技术方案,说明书的这种叙述方式仅仅是为了清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。

技术特征:


1.一种基于时空图神经网络负载预测的微服务主动伸缩方法,包括以下步骤:步骤一、对微服务架构进行建模:整个微服务架构共包含n个微服务,微服务的集合,第i个微服务的属性表示为;其中,表示微服务的工作负载,表示微服务的计算资源,表示微服务的服务质量;各微服务之间存在固定的调用关系,调用关系的集合,;其中调用关系表示微服务对微服务的调用关系,微服务的工作负载发生改变时,调用关系会使微服务的工作负载发生改变;步骤二、微服务工作负载预测:构建并训练一个由gat网络和gru网络组成的时空图神经网络,记为gat-gru网络;gat-gru网络中,输入包括输入数据和调用关系集合,其中代表输入数据的时间序列长度,代表微服务的个数;代表微服务工作负载的特征个数,微服务工作负载的特征包括微服务的cpu占用率和内存占用率;输入数据首先通过一个gat层gat-1的处理,然后将gat-1输出的隐藏状态输入到gru层中,再将gru层输出的隐藏状态通过另一个gat层gat-2处理后作为下一个时序的gru层的输入,最后将每一个时序的gru输出的隐藏状态合并,并经过一个预测层处理,最后输出所需的预测数据;其中代表预测数据的时序长度;步骤三、微服务水平伸缩决策:采用ddpg模型来基于微服务工作负载的预测决定每个微服务是否进行伸缩;ddpg模型的环境状态包括从预测数据中得到的每个微服务的资源占用情况和服务质量情况;资源占用情况包括微服务的cpu占用率、内存占用率和工作副本个数;服务质量情况包括微服务的平均请求响应时间;ddpg模型的动作集包括对每个微服务进行缩容、维持或者扩容;当动作值大于1时进行扩容,工作副本数量为动作值向下取整;当动作值小于-1时进行缩容,工作副本数量为动作值向上取整;当动作值在-1和1之间时维持微服务工作副本数量不变;ddpg模型的奖励为每个微服务cpu平均占用率、内存平均占用率和归一化后的请求响应时间的加权平均的倒数。

技术总结


本发明涉及云计算领域领域,公开了一种基于时空图神经网络负载预测的微服务主动伸缩方法,引入了时空图神经网络进行工作负载预测,更好地体现了微服务场景下不同微服务之间的空间联系,因此能够做出更加准确的预测;基于对工作负载的准确预测,能通过微服务伸缩决策更好地在微服务占用的计算资源和提供的服务质量之间取得平衡。务质量之间取得平衡。务质量之间取得平衡。


技术研发人员:

郑烇 李峥 李江明 陈双武 杨坚 杨锋

受保护的技术使用者:

合肥综合性国家科学中心人工智能研究院(安徽省人工智能实验室)

技术研发日:

2022.11.18

技术公布日:

2022/12/19

本文发布于:2024-09-22 21:32:23,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/42791.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:负载   网络   伸缩   务工
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议