APP下载

云平台主机资源负载预测分析研究

2021-12-08朱金灿梁晨君谢同磊任正伟

小型微型计算机系统 2021年12期
关键词:长度预测模型

朱金灿,邓 莉,梁晨君,严 明,谢同磊,任正伟

1(武汉科技大学 计算机科学与技术学院,武汉 430065) 2(智能信息处理与实时工业系统湖北省重点实验室,武汉 430065) 3(新加坡科技研究局,新加坡138632) E-mail:dengli@wust.edu.cn

1 引 言

在本文工作中,我们使用指数分段预测模式将未来连续区间内的主机平均负载预测转换为单一区间的预测模式,实验采用双向卷积长短期记忆模型(Bidirectional Convolutional Long Short-Term Memory,,BC-LSTM)作为预测模型.与以往的方法不同的是,BC-LSTM模型可以做序列输出,可以很好地完成主机实际负载多步预测,消除了累计误差.并且BC-LSTM是一种端到端模型,不需要实验中进行特征提取工作,模型可以自动学习到负载序列的双向依赖信息.最后我们在两个真实负载数据集验证,结果表明本文方法比现有方法具有更好的性能.

2 相关工作

主机负载预测能够在满足服务水平协议的前提下,提高资源的分配和利用率.因此受到研究人员的广泛关注.通常情况下,研究人员基于历史负载信息来预测未来负载信息,这是一个典型的时间序列预测问题.本文将现有的主机负载预测方法归纳为以下3类.

传统统计学概率模型.此类方法在传统网格或HPC系统中应用较多.研究人员将马尔科夫链与季节性分析相结合,提前一个时间步预测网格系统中主机CPU和网络负载信息[8].Ankita 等人[9]提出了一种改进的基于自回归(AR)的主机负载预测模型,在网格系统中取得了良好的效果.该方法适用于负载稳定、较小的电网负载系统.Wu等人[10]提出了一种将自回归模型与置信区间估计方法相结合进行预测和卡尔曼滤波消除噪声的混合方法.与传统的AR模型相比,很好地提高了预测精度,并且能够进行多步预测.然而该模型在长期负载和平均负载预测方面表现不佳.

机器学习模型.Sheng等人[4]基于Google Trace数据集设计9个新的特征,使用朴素贝叶斯模型预测主机在未来连续区间内的平均负载.该方法提高了平均负载预测的准确性,但缺点是不能完全捕捉到主机负载随着分段长度指数的增加而变化的情况,并且随着指数的增加,区间过长会导致预测精度极速下降.Cortez等人[11]对Microsoft Azure负载数据进行特征分析,使用随机森林模型对未来主机资源实际负载进行预测,表明对于云平台主机实际负载预测的可预测性和重要性.Zhong等人设计了加权支持向量机进行自适应预测,并用粒子群算法寻找最优参数[6].它的性能优于传统的支持向量机模型,但模型只适合小样本数据,在云平台大型数据集上的表现效果大大减弱.

神经网络模型.Duy等[12]将前馈人工神经网络(ANN)应用于主机负载预测任务,并且比传统分布式系统中的先前方法具有更好的性能.与AR模型相比,ANN模型最显著的优势是非线性拟合能力,它可以捕获输入和输出值之间的潜在关系,但是由于输入固定且有限,因此无法预测长期主机负载.Yang等人[13]提出了相空间重构(PSR)和基于进化算法的分组数据处理方法(EA-GMDH).模型使用PSR重构时间序列,使用进化算法优化的前馈神经网络进行预测.然而由于节点数量有限,该方法无法进行多步预测.研究人员使用自动编码器从时间序列中提取特征,并使用回声状态网络(ESN)执行多步提前主机负载预测[14].尽管该方法的性能优于以往的方法,但仍然存在人工选择漏失率、对自动编码器提取特征的依赖性很高,以及大型储备层随机初始化可能导致性能下降等缺点.在时间序列预测领域,为了提取到序列的更多特征,以便进行精确的多步提前负载预测,研究人员使用卷积长短期记忆(Convolutional Long Short-Term Memory,convLSTM)神经网络进行预测[15].与以往的方法相比,convLSTM的优势在于学习长期依赖关系的能力、自动特征提取能力、强大的非线性泛化能力以及同时提取时序空间依赖信息.

3 预测方法

3.1 问题描述

本文所提出方法思路是将时间序列回归预测问题转换为监督学习问题.通过模型训练来建立历史序列信息和预测序列信息的关系映射.主机负载时间序列被划分为固定大小连续的历史序列;每个历史序列都对应着一个固定大小的预测序列.这两个序列分别用作模型的输入和输出.在本文工作中,预测序列可以是未来某个时间段主机实际负载值,也可以是未来连续时间间隔内的主机平均负载值.

假设已有的历史资源负载序列是X=(xt-1,xt-2,…,xt-n),其中xt=(at,bt)为t时刻主机的CPU、内存资源负载值.本文只考虑CPU利用率和内存利用率,因为这两个指标最直接反应集群机器的资源能耗情况[4].假设需要预测的未来主机资源负载序列为O=(xt+1,xt+2,…,xt+m),O表示当前时刻t之后的m步的负载序列.利用监督学习的思想在历史序列和未来序列之间初步建立映射函数f,如公式(1)所示.

(xt+1,xt+2,…,xt+m)=f(xt-1,xt-2,…,xt-n)

(1)

云环境中工作负载存在依赖关系,直观地讲,历史值越接近当前时间t,它们之间的关系就越密切,而远离现在的历史负荷可以提供诸如趋势之类的有用信息,保持依赖信息持久化传输,从而有助于预测.根据云环境中任务依赖关系,某一时刻的主机资源负载不仅受历史资源负载的影响,而且和未来资源负载有关[16].对于模型而言,长距离的依赖信息可以提供趋势信息,不能完全遗忘掉.为了更好地利用过去和未来的负载序列来建立函数关系,公式(1)进一步更改为如公式(2)所示:

O=f(g1(xt-1,…,xt-n),g2(xt-n,…,xt-1))

(2)

在公式(2)中函数g1是对负载序列信息的正序利用,而函数g2是对负载序列信息的逆序利用.在t时刻,模型既能够利用t-1时刻以前的信息,又能够利用到t+1时刻以后的信息.

3.2 预测模型

CNN模型在处理一维时间序列数据有很好的非线性拟合能力,可以负责时间序列空间维度的特征学习[17].LSTM模型能够保留学习过程中长距离依赖信息,可以负责时间序列时间维度的特征学习[18].综合上述考虑,本文使用双向卷积长短期记忆模型(Bidirectional Convolutional LSTM,BC-LSTM)作为预测模型,区别于经典的LSTM模型,BC-LSTM模型单元主要改动在于输入层和隐藏层状态传播之前使用卷积操作代替全连接形式以及长期记忆的反馈调节,这使得模型不仅可以提取时间序列空间特征,还可以在模型训练过程中保留长期依赖信息[19].本文在正反两个方向叠加模型,使得预测模型能够成功提取时间序列两个方向的依赖信息.如图1中预测模型框架所示,本文中使用的BC-LSTM体系结构由一组循环连接的子网组成,这些子网称为存储块.BC-LSTM模型的核心思想是使用两个独立的隐藏层来处理来自前向和后向的序列数据,以分别模拟历史和未来信息对当前隐藏状态的影响.BC-LSTM模型单个的内部结构如图1所示.

图1 convLSTM内部结构图Fig.1 Internal structure of convLSTM

BC-LSTM模型使用单元状态Ct来保存长期记忆,如公式(3)所示,单元状态由遗忘门和输入门共同作用.整个过程可分为3步.

(3)

第1步遗忘,对遗忘门输入信息选择性的遗忘,保存重要信息,舍弃无用信息.如公式(4)所示,改进后的模型单元遗忘门同时接受上一时刻的输出Ht-1,上一时刻单元状态Ct-1以及当前时刻的输入Xt.模型可以根据自身权重学习来选择性舍弃无用信息.

ft=σ(Wxf×Xt+Whf×Ht-1+Wcf∘Ct-1+bf)

(4)

第2步选择,通过输入门和候选向量来将新的信息选择性记录到单元状态中.如公式(5)所示,候选向量的作用是对接收到的序列信息做非线性转换.

(5)

输入门的计算如公式(6)所示,改后的输入门由当前时刻的输入Xt、上一时刻的输出Ht-1以及上一时刻的单元状态Ct-1所共同决定.

it=σ(Wxi×Xt+Whi×Ht-1+Wci∘Ct-1+bi)

(6)

第3步输出,由输出门控制哪些信息需要被输出,如公式(7)所示,它控制进入输出向量和隐藏状态的新单元状态Ct的量.

ot=σ(Wxo×Xt+Who×Ht-1+Wco∘Ct+bo)

(7)

最后,可以使用输出门的结果和当前时间步的单元状态更新隐藏状态(或输出),如公式(8)所示:

Ht=ot∘tanh(Ct)

(8)

为了训练BC-LSTM网络,本文实验中使用时间反向传播(BPTT)算法,该算法包括重复应用链式规则[20].与先前使用LSTM进行主机负载预测工作类似,当参数变大以防止梯度爆炸时,我们会在参数更新之前削减梯度.另外,由于预测周期很长,本文还使用了基于时间的截断反向传播策略[21],以减少单个参数更新的成本.对于平均负载预测任务,截断的长度保持为39.与传统的LSTM工作不同,由于BC-LSTM方法具有更好的双向长期依赖学习能力,因此对于实际值预测任务,此长度减少为26.表1总结了BC-LSTM方法在实验过程中的重要参数值.

表1 BC-LSTM模型参数Table 1 Parameters of the BC-LSTM model

3.3 预测模式

如图2所示,通过指数分割模式,未来特定的预测区间被分割成一组连续的时间段,时间长度呈指数增长,总预测长度表示为s.第一个时间段s1称为基线段,是从当前时间点t0开始,到t0+b结束,长度为b.每个后续区间段的长度为si=2i-2×b,其中i=2,3…n.本文的目标是预测每个时间段的主机平均负载,记作li.在图2中,l1是基线段s1的平均负载.

图2 指数分段预测模式Fig.2 Exponential segmented prediction model

根据指数分段模式可知,每个时间段的平均负载预测是整个过程的关键步骤.由于主机负载总是在相邻的短期间隔之间具有较高的相关性,而不是在非相邻的短期间隔之间,因此本文直接根据证据区间来预测连续间隔中的负载.如图3所示,采用指数分段模式后,只需要预测一组从当前时间t0开始的不同长度的未来时间间隔平均主机负载ηi,预测的区间时间段表示[t0,ti].分段后预测区间的平均负荷水平表示为li,时间区间段为[ti-1,ti].

图3 主机负载分段模式Fig.3 Host load segmentation mode

由此可得:li×(ti-ti-1)+ηi-1×(ti-1-t0)=ηi-1×(ti-t0).在本文中,t0=0,ti=2ti-1,可进一步将简化计算得出:

li=2ηi-ηi-1

(9)

根据公式(9),我们可将预测连续时间段上的主机平均负载问题转化为预测从当前时刻开始不同时间长度的主机平均负载.

4 方法评估

为了评估BC-LSTM方法,本文在2个真实环境的数据集上开展实验,预测了2个集群负载跟踪的实际负载值和平均负载值.实验在服务器上进行,机器具体配置为28核CPU(CPU的型号为Intel(R)Xeon(R)CPU E5-2620 v4 @ 2.10GHz),内存容量为126G,显卡型号为NVIDIA Tesla P100.本文将BC-LSTM方法与以前的工作进行比较,分别进行了平均负载预测和实际负载预测.为了检验各种方法的有效性,本文考虑了3种不同的评估指标.

其中均方分段误差(Mean Segment Squared Error,MSSE)用来度量平均负载预测,均方根百分比误差(Root Mean Square Percentage Error,RMSPE)以及均方误差(Mean Square Error,MSE)用来度量实际负载预测.

4.1 评价指标

对于平均负载预测,实验使用指数分段模式的指标来描述主机负载在长度呈指数增长的连续时间间隔内的波动.为了量化指数分段模式的平均负荷预测的准确性,采用MSSE来表示预测效果,其定义如公式(10)所示:

(10)

对于实际负载预测,指数分段预测模式无法完全捕捉主机随时间的负载变化,因此本文还使用RMSPE和MSE来评估方法的准确性.二者定义如公式(11)-公式(12)所示,其中oi是预测值,yi是真实负载值,n是预测长度.RMSPE评价指标常见于数据科学竞赛中用来评价回归任务拟合效果,能够很好地反映出预测值与真实值之间的偏离程度,同时把每个预测点的误差归一化,降低个别离群点带来的误差影响.MSE是回归预测任务中最常见的评价标准,MSE可以评价数据的变化程度,MSE值越小,说明预测模型描述实验数据具有更好的精确度.

(11)

(12)

4.2 谷歌数据中心负载

Google集群工作负载跟踪[23]包含了超过2500万个任务,分布在12500多台主机上,记录了29天内约12500个计算节点的使用状态.收集的信息包括CPU利用率、内存利用率、磁盘I/O时间、磁盘空间等.本文实验将数据集划分成3组,其中包括计算模型权重的训练集(从开始到20天),用于选择超参数和防止过度拟合的验证集(从第21天-第26天),以及用于评估模型效果的测试集(从第27天到最后).在确定好超参数后,将训练集和验证集结合起来训练最终模型,并在测试集上评估最终模型.

4.2.1 平均负载预测

在本节实验中,我们将BC-LSTM方法与其他四种方法进行了比较,包括朴素贝叶斯模型[4]、PSR+EA-GMDH[13]、LSTM[5]、Autoencoder+ESN[14],这些方法都已平均负载预测方面表现出良好的性能.图4示了不同方法之间MSSE结果的比较.如图4(a)所示,Autoencoder+ESN,LSTM和BC-LSTM方法显著优于Bayes和PSR+EA-GMDH,这得益于神经网络优秀的非线性拟合能力,并且本文所提出的BC-LSTM方法达到了最好的预测精度.

图4 不同方法MSSE结果比较Fig.4 Comparison of MSSE results by different methods

如图4(b)所示,将BC-LSTM、LSTM、ESN进行详细的比较.在预测长度0.7h、1.3h和2.7h时3种方法精度差异不太显著,但随着预测长度增大,在长度达到5.3h和10.7h时,BC-LSTM方法表现出显著的优越性.结果表明,本文的BC-LSTM方法的MSSE变化曲线比LSTM和ESN表现更加平滑,这表明BC-LSTM方法在处理主机负载的高方差和高噪声时具有更好的非线性泛化能力.

4.2.2 实际负载预测

为了充分评估本文的BC-LSTM方法方法预测主机负载变化的能力,我们将其与AR[10]、ANN[12]、PSR+EA-GMDH[13]、Autoencoder+ESN[14],和LSTM[15]等方法进行比较.实验分别使用RMSPE和MSE两种评价标准来衡量预测效果.

与LSTM方法相同的是,BC-LSTM方法使用LSTM基础单元作为模型组成单元,可提取更多有用的特征,二者都可以做向量输出,不会产生累积误差.与LSTM方法不同的是,BC-LSTM方法增加了卷积操作提取时间序列空间特征,并且使用了双向特征学习,这使得它具有比LSTM方法拥有更好的非线性泛化能力.

如图5所示,整体来看,BC-LSTM方法在预测实际负载值能保持较好的稳定性,能够最长提前36步预测主机负载值仍然保持较好效果.如图5(a)所示,从MSE值来看,随着预测步长从6步(0.5h)增大到36步(3h),BC-LSTM方法的MSE从0.0032逐渐增大到0.0053.LSTM方法的MSE值从0.0036逐渐增大到0.0057.在6种预测长度上,BC-LSTM方法预测效果分别比LSTM方法提高了11.6%、12.5%、16.1%、10.0%、9%、8%.随着预测步长的增大,所有方法的预测性能都有所下降,但BC-LSTM方法仍然能保持相对较好的预测效果.如图5(b)所示,从RMSPE值来看,BC-LSTM方法能始终保持稳定,在前期预测长度不超过18步时,BC-LSTM方法的预测性能始终优于LSTM,其RMSPE值平均值能始终低0.02.随着预测长度超过18步,BC-LSTM方法性能有所减弱,但也优于LSTM方法0.01.

图5 主机负载预测的MSE和RMSPEFig.5 MSE and RMSPE of host load prediction

4.3 hadoop集群负载

该数据集从真实在线云系统收集,收集了176台机器在40天内的负载跟踪数据,包含17个性能指标的数据[24].根据集群机器用途以及资源负载特征,我们将主机负载分为3类:(a)稳定负载,即部署了科学计算等批量作业的机器;(b)周期负载,部署有批处理作业的机器,如MapReduce;(c)抖动负载,使用web服务部署的机器,如nginx.将数据集划分成3组,其中包括计算模型权重的训练集(从开始到第30天),用于选择超参数和防止过度拟合的验证集(从第30天到第36天),以及用于评估模型效果的测试集(从第36天到最后).

4.3.1 稳定负载预测

如图6所示,每一种方法在预测主机平均负载和实际负载都有很好的效果.预测效果不会随着预测长度的递增而减弱,始终保持在较为稳定的水平上.本文的BC-LSTM方法始终稍稍领先于其他方法的预测效果.原因是部署像科学计算这样的批处理作业的机器往往具有稳定的负载,这些应用程序具有固定的工作模式,并且它们对资源的使用变化很小,稳定保持在一定的水平上.因此,模型很容易捕捉到主机负载序列的特性,并对主机负载做出准确的预测.

图6 稳定负载预测的MSSE 和MSEFig.6 MSSE and MSE of stable load prediction

4.3.2 周期负载预测

如图7(a)所示,与其他方法相比,BC-LSTM和LSTM的预测精度均有提高.偶尔或周期性负载峰值的机器在云计算中很常见.在数百神经元的帮助下,神经网络具有强大的特征提取能力,能够更好地检测系统状态,预测变化的到达时间.如图7(a),在平均负载预测时,BC-LSTM稍稍优于LSTM,两种方法都保持比较稳定的预测效果.如图7(b),在预测实际负载时,相对于其他方法,短期内BC-LSTM能够保持较大优势,因为它可以从上面提到的数据中学到更多的信息.随着预测长度增大,BC-LSTM方法与其他方法相比的优势逐渐减弱.

图7 周期负载预测的MSSE和MSEFig.7 MSSE and MSE of periodic load prediction

4.3.3 抖动负载预测

从图8可以看出,在面对高变化的抖动负载序列时,所有方法预测效果都受到极大的影响,但BC-LSTM和LSTM始终保持着明显的优势.随着网络请求随机到达,带有web服务的机器的负载会有更剧烈的波动.由于负荷的工作模式是动态变化的,传统的线性函数方法不再适合这种复杂的情况.利用非线性函数变换的神经网络可以更好地处理高变化的主机负载.在预测平均负载时,BC-LSTM方法预测效果最好,贝叶斯方法表现最差的.在预测实际负载时,随着预测长度增大,BC-LSTM方法的预测性能逐渐显著.当预测长度超过18步(1.5h),只有BC-LSTM方法和LSTM方法能保持较为稳定的预测效果,其他方法的预测效果都发生极速减弱.并且本文的BC-LSTM方法始终能够领先于LSTM的预测效果.原因是与LSTM相比,BC-LSTM对两个方向的数据进行处理,发现更多的隐藏特征,获得更低的预测误差.

图8 抖动负载预测的MSSE和MSEFig.8 MSSE and MSE of jitter load prediction

4.4 方法综合分析

综上所述,本文总结分析云平台主机资源负载预测领域各个方面,综合对比各方法,具体如表2所示.

表2 预测方法总结Table 2 Summary of prediction methods

我们对BC-LSTM方法进行时间开销分析,同时将其与其他方法进行比较.理论上应该将模型执行时间分为3个部分,即准备阶段、训练阶段以及预测阶段.其中Bayes、AR模型运行在CPU环境,其他4种深度学习模型运行在GPU环境.在实际预测工作中,Bayes、PSR+EA-GMDH、Autoencoder+ESN等模型严重依赖于特征提取步骤,而LSTM和BC-LSTM都是典型的端到端模型,不需要额外的特征提取对于模型训练阶段,且Bayes、PSR+EA-GMDH、AR等模型无法直接进行多步预测,需要借助多次递归进行.因此无法客观统一比较各个模型的前期准备时间和建模训练时间.

在本文工作中,我们更关心模型预测过程中所消耗的时间,因为预测过程中所消耗的时间会对数据中心的资源调度和其他工作产生影响.表3中给出了各个模型在预测时出结果所花费时间,仅供参考.由此可得,非深度学习方法的预测速度相对较快但却无法获取更高的预测精度.在5种深度学习预测方法中,本文提出的BC-LSTM既保持了最好的预测精度,又保持相对较短的预测时间.

表3 不同算法的执行时间Table 3 Execution time of different algorithms

5 总结和展望

本文提出了一种基于双向卷积长短期内存(BC-LSTM)的方法用于在云中预测主机负载.该方法能够预测未来连续时间间隔上的平均负载,以及长期单个时间间隔上的实际负载.本文使用Google Trace和Hadoop集群两个真实负载跟踪来评估所提出的方法.根据实验结果,BC-LSTM模型显示出良好的自适应能力,并且在两个数据集中都实现了最优的性能.对于未来的工作,我们将进行更多的研究,以进一步提高BC-LSTM的特征学习能力,将该方法改进为实时模型,将其应用于实际主机负载预测.本文所提出的预测方法主要是为了提高负载预测精度,所以在算法的预测时间上并没有太大的优势,这也是今后工作中需要改进的部分.

猜你喜欢

长度预测模型
无可预测
适用于BDS-3 PPP的随机模型
选修2-2期中考试预测卷(A卷)
选修2-2期中考试预测卷(B卷)
选修2—2期中考试预测卷(A卷)
自制空间站模型
绳子的长度怎么算
爱的长度
模型小览(二)
长度单位