本发明属于计算机,尤其涉及一种基于负载时序预测的集群弹性伸缩方法。
背景技术:
1、近年来,随着云计算的不断发展,海量服务系统被部署到了云端。当云端面临服务请求负载出现波动变化时,处理负载的容器集群能够随之进行自动地弹性伸缩,以保持稳定的服务性能并为运营商节省硬件及能耗资源。
2、尽管容器技术在轻量化、快速启停等方面优于传统的虚拟机技术,但是由于容器冷启动需要加载微服务功能代码和依赖,因此容器化运行环境中的冷启动问题仍旧存在。云计算的核心竞争力之一便是依托轻量化的容器技术,能够实现计算资源的快速供给与回收,体现在容器集群上便是集群的弹性伸缩能力。
3、到目前为止,容器集群弹性伸缩方法在针对不同类型工作负载请求的周期性处理方面已经有了较多研究。但由于云计算场景中存在的容器冷启动和突发场景流量问题,现有的容器集群弹性伸缩方法仍存在一定的局限性,主要表现为以下三点:
4、(1)面向负载变化的响应速度较低。对于周期性数据而言,没有完全挖掘负载的周期性规律,现有的预测算法针对长时间序列的处理速度和准确性不足,致使对容器集群的提前部署不到位,进而导致在负载流量变化时难以给出较快的响应速度,在面向突发场景流量时可能出现请求违规率提高的现象。
5、(2)容器集群资源利用率较低。传统伸缩方法由于对负载时序特征无法掌握以及响应速度较低的问题,为保证应对突发场景流量会进行资源预留,导致了整体资源利用率的降低。
6、(3)针对不同类型负载的泛化能力差。传统伸缩方法一般以规则或指标驱动为主,通过配置监控阈值进行资源调整。由于不同类型负载对不同资源敏感度不同,因此传统伸缩方法一般需要针对场景进行定制,缺乏自主学习能力与不同场景下的泛化能力。
技术实现思路
1、本发明目的在于提供一种基于负载时序预测的集群弹性伸缩方法,通过对周期性负载数据进行时间序列预测。实现预先伸缩决策的目标,进而改善容器集群弹性伸缩的决策效果和响应速度;本发明包含基于长短时记忆lstm编解码网络的时序预测模块以及基于价值导向的深度强化学习算法dqn的伸缩决策模块。针对原始lstm编解码网络处理长时间序列性能退化的问题,时序预测模块结合稀疏注意力机制对lstm进行改进,从而提升模块处理长时间序列的预测精度;伸缩决策模块针对弹性伸缩决策响应速度慢的问题,结合时序预测模块的预测结果改进dqn决策模块的状态空间,实现预先伸缩决策的目标,进而改善集群弹性伸缩的决策效果和响应速度。以解决现有技术中容器集群弹性伸缩方法面向负载变化的响应速度较低、容器集群资源利用率较低、针对不同类型负载的泛化能力差的技术问题。
2、为解决上述技术问题,本发明提出的一种基于负载时序预测的集群弹性伸缩方法,包括如下步骤:
3、步骤s1:在lstm网络输入层和输出层之间引入稀疏注意力机制,构建基于稀疏注意力机制的lstm编解码负载时序预测模块;
4、步骤s2:构建基于强化学习的集群弹性伸缩决策智能体;
5、步骤s3:构建基于dqn算法的价值导向强化学习算法;
6、步骤s4:构建基于负载时序预测的容器集群弹性伸缩决策框架,输出容器集群弹性伸缩策略。
7、进一步地,步骤s1中,对每个预测时刻t,输出层第i个解码器lstm单元的注意力权重计算如下所示:
8、
9、其中,代表解码器lstm单元前一时刻的隐藏状态,hi代表编码器lstm单元当前时刻的隐藏状态,代表解码器lstm单元前一时刻的细胞状态;x代表输入的工作负载时序数据,是注意力机制中的值向量矩阵,wl与ul代表注意力机制中的权重矩阵,分别对应前一时刻隐藏状态的注意力权重矩阵以及当前时刻的注意力权重矩阵,wl和ul为可学习参数;
10、编码器第i个编码器lstm单元隐藏状态的注意力权重计算如下所示:
11、
12、为编码器第i个编码器lstm单元隐藏状态hi的注意力权重,并且代表编码器状态特征集合范围,fenc代表编码器lstm单元隐藏状态特征维度;
13、预测时刻t的上下文向量ct为根据注意力机制计算得到的隐藏状态注意力权重与编码器lstm单元隐藏状态的乘积累加和:
14、
15、计算得到上下文向量ct后,使用和将其映射为解码器t时刻lstm单元的输入。
16、
17、其中,代表编码器lstm长短时记忆神经网络对输入时间序列经过训练后拟合得到的映射权重矩阵以及偏移量矩阵,均为可学习参数。
18、利用输入前一时刻的隐藏状态以及细胞状态对t时刻解码器隐藏状态进行更新;最后,结合和上下文向量ct产生t时刻预测值
19、
20、
21、其中,wy、by分别代表解码器lstm长短时记忆神经网络对输入时间序列经过训练后拟合得到的映射权重矩阵以及偏移量矩阵;和为可学习参数;代表特征集合,fdec代表解码器lstm单元隐藏状态特征维度。
22、进一步地,步骤s2中,集群弹性伸缩决策智能体包括<s,a,p,r,y>构成的五元组;智能体状态空间s包括工作负载信息和容器集群资源状态信息;
23、工作负载信息主要包含请求负载的种类、时间戳、slo等级以及所需要cpu和内存资源,如下公式所示:
24、[s1=[type1,time1,slo1,cpu1,mem1],...,[typen,timen,slon,cpun,memn]]
25、其中,n表示工作负载信息向量维度;
26、集群资源状态信息主要包含当前容器集群的cpu和内存资源量,如下公式所示:
27、[s2=[cpu1,mem1],[cpu2,mem2],...,[cpum,memm]]
28、其中,m表示集群资源状态信息向量维度;
29、状态空间s定义为所有可能的工作负载信息向量和容器集群资源状态信息向量的笛卡尔积,如下公式所示:
30、
31、其中,表示工作负载信息向量维度集合,表示集群资源状态信息向量维度集合。
32、进一步地,智能体动作空间包括动作a1为集群弹性扩容操作,动作a2为集群弹性缩容操作,动作a3为配置调整操作,动作a4为启动/停止操作。
33、进一步地,智能体奖励包括资源利用率奖励rresource和slo违规率奖励rslo,如下公式所示:
34、r=rresource+rslo
35、
36、其中,xt为容器集群在第t个时刻的容器数量,fr(xt)表示工作容器资源消耗量,fp(xt)表示空闲容器资源消耗量;
37、
38、其中,slov为服务等级目标违规率。
39、进一步地,步骤s3中,基于dqn强化学习方法的更新公式为:
40、q(st,at)=q(st,at)+a(rt+γmaxq(st+1,at+1)-q(st,at))
41、其中,st表示当前状态,at表示采取的动作,rt表示获得的奖励,st+1表示下一个状态,at+1表示下一个状态st+1下所有可能动作,q(st,at)表示在状态st下采取动作at所得到的动作值函数;q(st+1,at+1)表示目标网络估计的下一个状态st+1下所有可能动作at+1的动作值函数;γ为折扣因子。
42、进一步地,步骤s4中,将工作负载信息和容器集群状态信息作为输入的环境状态,负载时序预测模块通过基于稀疏注意力机制进行改进的lstm编解码网络进行时间序列预测,得到未来时刻的负载预测结果;伸缩决策模块基于负载预测结果根据基于dqn算法的价值导向强化学习算法的策略网络做出动作,同时基于dqn算法的价值导向强化学习算法的价值网络基于网络反馈为集群伸缩动作打分,最终输出使奖励值累加和大的容器集群弹性伸缩策略。
43、相对于现有技术,本发明具有以下有益技术效果:
44、1)本发明将稀疏注意力机制运用于lstm编解码网络中,降低了lstm编解码网络的计算复杂度,改善了网络处理长时间序列的响应速度和计算精度。
45、2)本发明将时序预测结果用于改善dqn算法的状态空间,将状态空间中的工作负载信息向量用时序预测模块的预测输出进行替代,从而使得弹性伸缩决策算法能够提前进行弹性伸缩决策操作,并通过实时环境状态计算得到的奖励,对实际的状态空间信息进行把握,从而提前适应即将到来的流量高峰或低谷,实现集群在复杂负载场景下的高效弹性伸缩。
46、3)本发明通过历史负载时间序列数据进行负载预测,并根据预测结果改进决策场景的强化学习状态空间,实现了容器集群在面向复杂负载场景时安全高效的弹性伸缩能力。
47、4)本发明的基于时序预测的集群弹性伸缩方法,相比于其他伸缩决策算法,降低了集群控制响应时间,在保证用户可用性的前提下提高了资源利用率,拥有更好的弹性伸缩效果。
1.一种基于负载时序预测的集群弹性伸缩方法,其特征在于,包括如下步骤:
2.根据权利要求1所述的基于负载时序预测的集群弹性伸缩方法,其特征在于,
3.根据权利要求1所述的基于负载时序预测的集群弹性伸缩方法,其特征在于,
4.根据权利要求3所述的基于负载时序预测的集群弹性伸缩方法,其特征在于,
5.根据权利要求4所述的基于负载时序预测的集群弹性伸缩方法,其特征在于,
6.根据权利要求5所述的基于负载时序预测的集群弹性伸缩方法,其特征在于,
7.根据权利要求6所述的基于负载时序预测的集群弹性伸缩方法,其特征在于,步骤s4中,将工作负载信息和容器集群状态信息作为输入的环境状态,负载时序预测模块通过基于稀疏注意力机制进行改进的lstm编解码网络进行时间序列预测,得到未来时刻的负载预测结果;伸缩决策模块基于负载预测结果根据基于dqn算法的价值导向强化学习算法的策略网络做出动作,同时基于dqn算法的价值导向强化学习算法的价值网络基于网络反馈为集群伸缩动作打分,最终输出使奖励值累加和大的容器集群弹性伸缩策略。