基于ARIMA-LSTM的容器云资源预测方法

徐 江,张晨飞,王富强,鲍 丹,屠 海 ,王怀军

(1.中国重型机械研究院股份公司,陕西 西安710018;
2.西安理工大学,陕西 西安710048;
3.甘肃酒钢集团宏兴钢铁股份有限公司,甘肃 嘉峪关735100)

根据思科报告,预计到2020年将有500亿设备实现智能互联,全球数据总量将会达到40 ZB,万物互联的时代己经到来[1]。大数据时代下智能设备正在从数据消费者的单一角色向生产者和消费者的双重角色转变,这些设备产生了海量的数据处理需求,对现有的集中式云计算架构提出了严峻的挑战。为了更好的满足边缘侧的“大连接、低时延、大带宽”需求,尤其在物联网、工业控制、车联网、无人驾驶等领域,边缘计算的概念应运而生。不同于云计算的集中式架构,边缘计算是一种分布式的计算模型,通过利用边缘设备的计算和存储资源,实现对边缘数据的过滤、处理和决策,有效缓解云中心业务和网络带宽压力[2]。同时,边缘服务器通过容器技术的虚拟化环境,为不同用户和边缘设备提供服务卸载能力,借助同期技术无需考虑程序的环境配置问题和资源隔离的安全问题,增加了物联网的灵活性。与传统主机级虚拟化技术不同,容器技术采用沙箱机制实现进程级隔离,具有占用物理主机资源少,启动速度快,移植能力强的优点[3]。容器虚拟化的优势,相比主机级虚拟化更适合作为边缘应用的载体,应对边缘场景下更加复杂的集群管理和应用部署问题[4]。容器技术的生态圈逐渐形成,基于容器技术的容器云也迅速发展。然而,容器云发展时间较短,成熟度低,并且面临着复杂的资源管理问题[5]。例如,企业通常在购置设备时不得不考虑经济成本和公司规模,因此不像云服务商那样拥有大量的备用设备。对于企业,资源的预留、分配和回收等成为一个非常重要的问题[6],如果能较为准确的预知未来一段时间内自身应用对资源的需求量,就可以提前申请和购买相应设备,避免因无力资源不足导致业务停止运行,给企业造成负面影响;
如果未来一段时间的资源需求量远低于现有设备数,就可以进行数据和业务迁移,停止某些设备的运行,降低能耗,提高企业的经济效益和资源利用率。

因此,容器云资源预测对推进容器云理论和技术更进一步发展、提高企业经济效益、避免资源浪费等具有重要意义,值得研究。

目前,边缘计算在很多方面都发挥着重要的作用。比如,在公安安全方面,边缘计算可用于视频监控以及消防系统。在城市建设中,大量的摄像头被使用,摄像头产生海量的数据,利用边缘计算技术在距离设备较近的地方处理这些数据,可以很好的降低网络传输带宽。在智能家居方面,由于智能设备越来越多,如何有效的管理这些设备是需要解决的一个问题。Lu[7]等人设计了一种基于边缘计算构建的智能家居控制系统,该系统分为终端感知层、边缘处理层以及控制应用层。在制造业方面,利用边缘计算技术可以实现更快的数据分析,简化运营,提高制造企业的生产效率和服务质量。边缘计算的商业价值方面Guo[8]等人针对边缘云的资源融合以及服务分发问题,开展了探索性研究工作,提出了“边际计算模型”。边缘计算与缓存方面,Zhu J[9]等人考虑到网页加载的时间主要发生在前端,通过在边缘服务器中对网页中js/css等资源进行优化并缓存,有效降低用户的访问时延。Chen M[10]等人提出一种基于任务流行度、任务大小以及缓存所需的计算能力的最优缓存策略,提供对计算任务的缓存,有效减低时延。

云计算资源预测是云计算平台实现资源高效管理和系统安全、稳定运行的重要前提和保障措施之一,长期以来一直受到研究者的关注且运用于资源预测中的预测方法也有很多。谢晓兰等人针对容器云存在过度供应和供应不足等资源问题,提出一种基于三次指数平滑法和时间卷积网络的云资源预测模型[11],根据历史数据预测未来的资源需求,使用TPOT调参思想优化参数,提供更好的预测性能。针对云计算环境中的资源负载预测问题,国内外一些学者提出了多种解决方案和负载预测模型。这些预测模型一般将云计算资源负载看作一种时间序列,然后通过一定的建模方法对其进行预估[12]。文献[13]使用ARIMA负载预测模型对虚拟机集群的负载进行收集及预测。随着人工神经网络的发展,越来越多的人工神经网络方法被应用到时间序列预测当中。文献[14]对LSTM负载预测模型与ARIMA预测模型进行了比较分析,从结果可以看出,LSTM负载预测模型优于ARIMA负载预测模型。文献[15]通过优化支持向量机构建负载预测模型,对单步与多步云计算资源负载进行预测分析。文献[16]使用递归神经网络RNN来实现对云工作负荷的预测,通过Google Cloud Trance数据集上的实验验证了该方法的准确性。文献[17]首先使用ARIMA模型进行预测,再使用ENN模型对AR-MA误差进行预测,最终得到修正后的预测值。该文献提出的组合预测模型有效地提升了云环境中工作负载预测的精度。采用多模型融合的方式进行了云计算资源负载预测,将负载数据集分为训练集与测试集,利用ARIMA、指数平滑法、神经网络等预测模型根据训练集的平均均方误差对测试集各预测结果进行权重划分,最后得到组合预测值。文献[18]采用了ARIMA-ANN的组合预测模型,分别对时间序列数据进行线性和非线性的预测,并将最终结果组合。实验结果表明,混合模型均具有更高的预测精度。文献[19]提出了一种基于ARIMA与LSTM的组合模型LACL,使用公开数据集与传统负载预测模型进行了对比试验,显著降低了云环境中对资源负载的实时预测误差。文献[20]提出了一种基于负载预测的虚拟资源调度策略VRSP-LP,根据最近一个时间区间内的虚拟机负载数据,预测下一个时间区间内的负载,从而进行资源动态分配实现负载均衡。

可见,对平台历史资源进行时效性,准确性的预测,是如何对平台历史资源数据进行时效性、准确性的预测,是研究容器云资源预测的重要问题之一。本文提出了一种ARIMA-LSTM混合模型的容器云资源预测方法,解决了单个预测算法不能同时求解容器云资源需求量数据中的线性分量和非线性分量问题。该模型使用自回归综合移动平均模型(ARIMA)来预测资源需求量中的线性分量,并使用长短期记忆模型(LSTM)来预测非线性分量。以容器云资源使用量为例,通过比较单一模型和混合模型的预测结果,验证了本文预测方法的有效性。

容器云资源需求量的时间序列中含有线性分量和非线性分量,仅采用单一模型难以充分学习资源使用量序列的特性。本文采用线性和非线性模型组合的方法来预测容器云资源需求量,利用线性模型ARIMA拟合时间序列的资源需求量数据,最大程度地消除数据中的线性成分;
然后利用非线性模型LSTM来预测线性模型无法拟合的误差序列,并以此来校正最终预测结果。

2.1 ARIMA模型构建

ARIMA模型在时间序列分析中的能力和灵活性已得到广泛证明。ARIMA模型建立过程主要包括数据平稳性检测、数据差分处理、模型定阶、模型检验以及模型结果预测,ARIMA模型构建流程如图1所示。

图1 ARIMA模型的构建

(1)数据平稳性检测。时间序列平稳性检测最常用的就是观察法。观察法通过观察容器负载时间序列变化趋势来判断是否平稳,判断依据是如果时间序列值只在某个常数附近随机变化并且没有出现周期规律的趋势,数据平稳;
如果时间序列值存在单增或单减趋势,数据非平稳。除了观察时间序列自身变化趋势判定是否平稳外,还可以通过观察时间序列的观察ACF自相关图和偏自相关图所表现的特征来判定数据平稳性。通过计算自相关函数和偏自相关函数来画图,其中通过自相关函数如式(1)可以获取自相关数如式(2)。

(1)

(2)

偏自相关函数如式(3)所示。

(3)

(2)数据差分处理。因为模型只能处理平稳数据,所以面对非平稳数据时必须进行差分处理。差分处理的原则是能用低阶满足要求就不在用高阶进行处理,因为过度的差分会使原始数据信息丢失,差分处理数学表达式如下。

zt=yt-yt-1,t=1,2,3…

(4)

式中,zt表示差分后的数据;
yt为原始的容器负载值。

(3)模式定阶。根据前面介绍可得,ARIMA(p,d,q)模型中包含了自回归系数、差分次数以及移动平均项阶数。在使用ARIMA模型进行预测之前需要确定这三个参数,针对差分阶数需要由所做差分处理的阶数决定;
针对自回归系数和移动平均项阶数可利用AIC和BIC标准选择出最小参数。本文使用AIC准则确定参数,AIC准则的数学表达式为

AIC=-2In(L)+2N

(5)

式中,L为模型的似然函数;
N为模型中未知参数的个数。

(4)有效性检验。有效性检验主要包括对模型的显著性检验和对参数的显著性检验。其中针对模型的显著性检验,主要是通过检验残差序列是否为白噪声序列,通常使用LB检验统计量作为残差序列有效性检验标准。针对ARIMA模型,可以先做出假设检验。

H0∶ρ1=ρ2=…=ρm=0,∀m≥1
H1∶至少存在某个ρk≠0,∀m≥1,k

(6)

在此假设基础上构建LB统计量。

(7)

当第一个假设成立时,说明模型是显著有效的;
当第二个假设成立时,说明残差序列中还存在线性关系,模型不显著有效。

针对参数显著性检验主要是为了检验模型中所有参数是否是显著非零的,通过删除不显著的参数来精简模型。针对模型参数做出如下假设。

H0∶βj=0
H1∶βj≠0

(8)

式中,βj是参数。

参数显著性检验的统计量为

(9)

当第一个假设成立时,需要删除这个参数;
当第二假设成立时,说明参数是显著的,不需要删除。

(10)

式中,St表示差分平稳序列;
Zt表示随机误差;
p表示自回归系数;
q表示移动平均数。

2.2 LSTM模型构建

LSTM预测模型构建过程如图2所示。从图2中可知LSTM预测模型构建分为数据预处理、模型参数设置、模型训练和结果输出。

图2 LSTM模型的构建

(1)数据预处理。原始的容器负载时间序列数据不适合直接被预测模型使用。因此,在使用数据之前需要对数据进行预处理,常用的预处理方法是将时间序列数值范围限定在[0,1]之间,即数据归一化处理。归一化数学表达式为

(11)

式中,t为时间;yt为t时刻的输入原始时间序列数据;
yt(max)和yt(min)分别表示原始数据的上界和下界;
zt(max)和zt(min)分别为1和-1。

(2)模型参数设置。LSTM模型中有训练窗口数大小、隐藏层节点数以及训练迭代次数参数,并通过调整参数值训练模型。模型激活函数的选取至关重要,考虑到ReLu模型具有明显的优势,本文选用ReLu激活函数。

(12)

式中,y为的是容器负载原始时间序列;
f1为LSTM模型代表的函数关系;
n为窗口大小。

2.3 ARIMA与LSTM混合模型构建

本文构建的云资源预测模型为如图3所示。

图3 ARIMA-LSTM预测模型

图3中,将容器云资源使用量时间序列输入到ARIMA模型中,得到线性资源预测值;
比较原始数据和线性拟合数据,得到拟合误差序列;
利用LSTM模型预测拟合误差序列;
将线性拟合预测值与非线性误差预测值相加,得出混合模型最终的预测结果。使用CRITIC客观赋权法实现两种模型预测结果的融合,并使用误差修正提升预测精度。CRITIC是一种客观的权重赋权方法,通过各指标概率和各指标权重计算出各模型的权重,能更好的挖掘各单一模型中的有用信息。这里指标是指用于评价预测结果的误差评价指标,本文选用4种误差评价指标。

首先,针对指标权重的计算,先计算各指标包含的信息量Cj如下。

(13)

σj表示第j项指标的标准差,本文采用4种误差评价指标,因此k=4;
tij为评价指标i和j之间的相关系数,其中m表示模型的个数且m=2。信息量Cj取值越大,说明该指标包含的信息量越大。

通过各指标包含的信息量Cj计算出各指标权重Wj为

(14)

然后,通过指标权重Wj和指标概率Pij求出各模型的权重Pi。

AIC=-2In(L)+2N

(15)

(16)

rij表示标准化后的误差评价指标值。

最后,利用各模型权重融合各模型的预测结果如下。

(17)

计算得出的权重值分别为PARIMA=0.42,PLSTM=0.58。得到组合预测结果后,通过组合预测结果和真实值求出误差,并对误差进行修正,进一步提升预测结果精度。

容器调度对于保证边缘计算集群负载均衡和提升集群整体资源利用率具有重要意义。边缘计算集群中的负载是动态随机变化的,集群中节点负载过高或过低都会影响部署的应用容器所使用的资源。因此,为了保证集群负载均衡从而提升集群资源利用率,对集群内容器资源进行合理调度是非常重要的。在实现容器调度过程中,主要涉及到容器调度的时机选择、被调度容器的选择以及调度目标节点的选择。

3.1 容器调度时机的选择

集群内容器调度时机的触发主要分为两种情况。针对新建Pod容器会触发容器调度机制,将新建Pod调度到剩余计算量最多的节点上。针对集群在运行状态时,会对集群内各节点的负载值进行周期性监控,并基于阈值将节点分成三类,分别为低负载节点、临界负载节点以及高负载节点。当节点负载高于高负载阈值时,就触发容器调度机制。节点分类如图4所示。

图4 节点分类

其中,CVl表示低阈值界限,CVh表示高阈值界限。当节点负载值高于CVh时触发容器调度机制,将该负载节点上的部分容器调度到低负载节点上,实现集群负载均衡,提升集群资源利用率。本文低阈值界限CVl=0.4,高阈值界限值CVh=0.8。

3.2 待调度容器的选择

容器调度机制进行容器调度时,选择高负载节点中的容器应用进行调度,可以有效降低节点负载,实现集群的负载均衡。在选择被调度容器的时候,借用上文提出的容器负载预测模型,使用模型对该节点上所有的容器进行预测,然后综合考虑容器现有负载值和预测值来算出容器负载综合值,将容器负载综合值最高的容器调度到低负载节点上。假设容器当前的负载值为x,使用预测模型预测出来的下一时刻的负载值为y。形式化上,我们定义综合容器负载值为。

Z=α1×x+α2×y

(18)

α1和α2为权重系数,α1+α2=1.0,0≤α1≤1,0≤α2≤1。其中α1=0.3,α2=0.7。

3.3 调度目标节点的选择

为待调度容器选择目标节点的时候,需要考虑目标节点的剩余资源量是否能满足容器应用的资源需要。本文仅考虑CPU这一种负载值,所以仅考虑节点剩余CPU计算量是否满足容器应用即可。容器调度策略从高负载节点中选择待调度容器后,将其调度到低负载节点列表中任意一个节点即可。

4.1 误差评价指标

为了衡量容器负载预测值与容器负载真实值之间的差距,需要选用合理的评价指标来评价容器负载预测结果的精确度,而精确度最直观的量化标准就是用误差。常见的误差指标有绝对平均误差(MAE)、绝对平均百分比误差(MAPE)、均误差(MSE)和均方根误差(RMSE)。其公式分别为

(19)

(20)

(21)

(22)

4.2 集群负载均衡度

(23)

(24)

5.1 实验环境

本实验的硬件环境为一台PC,其配备i5处理器,16G内存。软件环境为Windows10操作系统,编程语言是Python3.0。容器云平台集群环境为一个Kubernetes集群,集群内包含一个Master节点三个Node节点。开源边缘计算框架EdgeX Foundry以容器方式部署在Kubernetes集群上面。

5.2 实验数据获取

本次实验中,利用自定义监控方案对所搭建的边缘计算平台中的应用容器进行样本数据的采集,采集时间间隔为5 s,利用半小时采集数据即360个数据作为样本,取前90%即324个样本数据作为预测模型的输入数据,后10%即36个样本数据作为真实值与预测值进行对比。因为实验条件的局限性,这里暂时主要利用容器云的CPU资源使用量作为预测分析。如图5所示是样本数据的折线图,从图中可以看出,样本数据在时间上具有一定的相关性,发现其都是动态变化的,在短时间内频繁波动,包含有线性关系和非线性关系,具备一定的规律性和周期性。

图5 容器负载时间序列

从图5可以看出,容器负载数据是动态随机变化的,并且在短时间内负载值波动频繁,由此可以得出负载数据中包含线性成分数据和非线性成分数据。图4~图6中样本数据前期CPU利用率比后期高,是因为所采集的数据是在基于强化学习容器伸缩策略控制下环境中采集的,负载请求由新Pod分摊,所以容器CPU利用率会降低,因此样本数据才会存在这样的趋势。

5.3 结果与分析

5.3.1 负载预测实验

(1)ARIMA模型参数确定。数据平稳性检测。容器负载原始时间序列如图5所示,时间序列的ACF自相关如图6所示。通过观察图5原始数据和图6的自相关图可以得出容器负载时间序列数据是不平稳。

图6 ACF自相关图

数据平稳性处理:对容器负载原始时间序列数据做差分处理,得到的一阶差分序列如图7所示。

图7 一阶差分序列

将容器负载时间序列数据经过一阶差分后,需要对一阶差分数据进行平稳性检测,其中一阶差分数据的自相关图如图8所示,图中出现截尾表明差分后的时间序列平稳。

图8 ACF自相关图

模型定阶:对非平稳化数据进行差分处理,可以唯一确定序列差分阶数d。而针对p和q参数存在多种可能,本文将0-4之间的所有可能组合值进行计算其信息量,信息量最小所对应的那组参数就是模型最优参数。表1中可以看出(1,3)是最小的,因此确定ARIMA模型的三个参数,分别为(1,1,3)。

表1 AIC信息量

模型检验:通过模型定阶确定了模型的参数,将所确定的参数代入模型检验,通过绘制容器负载时间序列的残差序列的ACF和PACF如图9所示,可以看出该模型通过检验,最终确定该模型为ARIMA(1,1,3)。

图9 ACF和PACF图

(2)负载预测。通过上文获取的实验数据对组合预测模型进行训练,使用训练好的模型对容器负载数据进行预测。ARIMA模型和LSTM模型的相关参数值如表2、3所示。

表2 LSTM模型参数

表3 ARIMA模型参数

利用容器负载组合预测模型以及各单一模型分别对容器负载数据进行预测,模型预测效果如图10所示,各模型误差评价指标值如表4所示。

图10 模型预测结果

图10显示三种预测模型的预测结果,可以看出ARIMA-LSTM组合预测模型的预测值与真实值最为接近,可以得出组合预测模型预测效果最好。为准确评价各模型的预测效果,使用4种误差评价指标评价模型预测的精度,各模型的误差指标值如表4所示。

表4 误差值

从表4中加粗字体数据可以看出,ARIMA-LSTM组合模型的预测误差最小,精度最高。结合模型预测结果图和模型误差值可以得出结论:ARIMA-LSTM组合预测模型的预测最佳,对实现容器资源调度提供有效的数据依据。

5.3.2 容器调度实验

将容器负载预测值作为容器调度策略的输入,作为被调度容器的选择标准。实验结果以集群资源利用率和集群负载均衡度来衡量。表5是集群负载均衡度,图11所示是集群CPU资源利用率。

图11 集群资源利用率

表5 集群资源负载均衡度

从表5也可以得出,ALS策略下的集群负载均衡度比Kube-scheduler策略低,说明ALS策略更能有效保证集群负载均衡。从图11也可以看出,ALS策略对比Kube-scheduler能更有效的提升集群资源利用率。因此,ALS策略比Kubernetes原生调度策略好,更能满足边缘计算场景中资源调度的需求。

本文在边缘计算框架EdgeX Foundry,以及开源容器云平台Kubernetes基础之上,提出了一种基于ARIMA-LSTM混合模型的容器云资源预测方法,通过ARIMA模型的线性特点和LSTM的非线性特点优势预测容器云的资源需求量,有效提高了预测精度,从而为容器云资源的管理和利用提供更准确的数据基础。本文介绍了基于容器负载预测的容器调度策略的实现,主要包括容器负载预测模型的构建以及基于预测值实现容器调度;
然后通过实验分析证明了基于容器负载预测的容器调度策略比kube-scheduler策略能更有效的保证集群负载均衡,提升集群整体资源利用率。

猜你喜欢差分容器集群RLW-KdV方程的紧致有限差分格式数学杂志(2022年5期)2022-12-02容器倒置后压力压强如何变中学生数理化·八年级物理人教版(2022年4期)2022-04-26数列与差分新世纪智能(数学备考)(2021年5期)2021-07-28难以置信的事情读者·校园版(2019年24期)2019-12-10海上小型无人机集群的反制装备需求与应对之策研究军事运筹与系统工程(2019年4期)2019-09-11一种无人机集群发射回收装置的控制系统设计电子制作(2018年11期)2018-08-04Python与Spark集群在收费数据分析中的应用中国交通信息化(2017年3期)2017-06-08勤快又呆萌的集群机器人知识就是力量(2017年2期)2017-01-21取米小朋友·聪明学堂(2015年8期)2015-11-30基于差分隐私的大数据隐私保护信息安全研究(2015年3期)2015-02-28

相关热词搜索: 容器 预测 方法