本发明属于云计算领域,尤其涉及一种负载预测方法。
背景技术:
为了实现负载均衡,当前云计算资源调度策略主要基于阈值触发机制的虚拟机迁移操作。这种阈值触发机制在某些情况下会引起虚拟机频繁且无效的迁移,如当前时刻物理机负载超过了规定的阈值范围,则触发虚拟机迁移操作;但下一时刻物理机负载降到阈值以下,即物理机的高负载仅为短时现象,此时虚拟机的迁移为无效操作。传统的负载均衡方法缺乏对物理机负载的预测机制,容易引起虚拟机的频繁、无效迁移。因此,基于负载预测机制的负载均衡更能有效地进行云计算资源的调度,实现云计算资源的最优化利用。
dindap.a.通过对服务器的长期跟踪观测,发现节点的负载变化是一种时间序列,因此可以用时间序列分析的方法进行负载预测。时间序列预测方法主要包括基于统计模型的方法、基于ann(artificialneuralnetwork)的方法以及基于svm(supportvectormachine)的方法。其中基于统计模型的方法计算复杂度低、实时性高,适合进行在线负载预测。jiantan、parijatdube等人提出了基于pca和ar(2)模型的数据中心资源预测方法,大幅减少了参数,降低了计算复杂度。然而,pca的实现需要进行协方差矩阵的特征值分解,时间复杂度为o(n3+n2m)(其中n为输入数据维数,m为数据个数),算法的实时性较差。并且arma模型参数估计常用的基于最小二乘的参数估计、基于最大似然的参数估计方法均为批处理方法,需要较大的存储空间。
技术实现要素:
本发明涉及一种基于快速pca-arima的负载预测方法,用于解决上述现有技术的问题。
本发明一种基于快速pca-arima的负载预测方法,其中,包括:设x是负载时间序列矩阵,y是利用pca降维之后的负载时间序列矩阵,包括:步骤1、计算负载时间序列矩阵x的协方差矩阵∑;步骤2、初始化p=1,1≤p≤h,其中h为系数向量的个数;步骤3、选择具有单位范数的初始化系数向量ωp;步骤4、更新ωp:ωp←∑·ωp=e[(x-e(x))(x-e(x))t]·ωp;步骤5、进行gram-schmidt正交化:
步骤e.n时刻负载时间序列的模型为
步骤f.由n时刻的负载时间序列矩阵预测未来第n+t时刻的负载值,即
其中,
本发明基于不动点迭代方法实现pca(简称“快速pca”),相比现有pca方法,时间复杂度大幅降低;采用阈值确定主成分个数,相比方差累计贡献率百分比(cpv)方法,不需要计算出全部的系数向量,更适合在线负载主成分的提取;用ema模型近似arima模型,只计算ema模型的阶数l=p+q值,不需要分别计算ar模型阶数p和ma模型阶数q;并且只计算ema模型参数dm,不需要分别计算ar模型的参数和ma模型的参数,计算复杂度相比传统arima模型大幅降低,更适合在线负载预测。
附图说明
图1所示为本发明基于快速pca-arima的负载预测方法的流程图;
图2所示为基于arima模型的负载预测示意图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
图1所示为本发明基于快速pca-arima的负载预测方法的流程图,如图1所示,基于快速pca-arima的负载预测方法主要包括2个部分,第一部分为针对负载时间序列的数据降维,基于快速pca算法实现;第二部分为负载预测,基于arima模型实现。
如图1所示,x是负载时间序列矩阵,y是利用pca降维之后的负载时间序列矩阵,针对负载时间序列的数据降维,采用基于快速pca的数据降维方法,具体步骤包括:
步骤1、计算负载时间序列矩阵x的协方差矩阵∑;
步骤2、初始化p=1,1≤p≤h,其中h为系数向量的个数(或主成分的个数);
步骤3、选择具有单位范数的初始化系数向量ωp(可随机选取);
步骤4、更新ωp:ωp←∑·ωp=e[(x-e(x))(x-e(x))t]·ωp;
步骤5、进行gram-schmidt正交化:
步骤6、标准化ωp,即
步骤7、如果ωp尚未收敛,返回步骤4;否则,进行到步骤8;
步骤8、计算
如果p=1,置p←p+1返回步骤3;
如果p≠1并且
如果p≠1并且
步骤8、基于快速pca降维之后的负载时间序列矩阵为
其中,步骤7中的收敛判定准则为
步骤4中ωp的更新采用渐进串行正交化方法,其推导过程如下:
设
主成分分析(pca)从多元冗余数据中提取出主要成分,模型为
其中,yp表示第p个主成分,ωp为系数向量,e(x)为x的期望,由公式(2)得到
公式(2)代入公式(3),
均方误差mse可以写为
其中,
公式(6)隐含一个不动点迭代算法,即
ωp←e[(x-e(x))(x-e(x))t]·ωp=∑·ωp(7);
其中,∑是x的协方差矩阵。每次不动点迭代后,ω都要除以其范数以满足相应的约束。
公式(7)是一种幂迭代法,因此协方差矩阵∑的最大特征值对应的系数向量会首先被估计出来,剩余的系数向量会按照特征值大小依次被估计出来。
基于快速pca的数据降维算法的时间复杂度为o(n2),其中n为负载时间x的数据维数。相比基于特征值分解的pca方法,时间复杂度大幅降低。
主成分个数的确定采用步骤8所示的阈值方法,即当
图2所示为基于arima模型的负载预测示意图,如图2所示,基于arima模型实现负载预测,包括:
对降维后的负载时间序列yk(第k个负载时间序列),基于arima模型进行未来时刻负载值的预测,arima(p,d,q)模型为:
其中,p为自回归模型的阶数,d为使成为平稳序列所做的差分次数,q为滑动平均模型的阶数,l是滞后算子,随机变量wk(n)为白噪声,ai为ar模型部分的系数,bi为ma模型部分的系数;
基于arima模型的负载预测步骤为:
步骤a.平稳性检验:若负载时间序列是平稳的,进行到步骤c,否则步骤b;
步骤b.差分:进行d阶差分
步骤c.模型定阶:采用aic(赤池信息准则)、bic(贝叶斯信息准则)等,确定arima模型的阶数p+q;
步骤d.在线模型参数估计:
d1.对于yk,计算倒谱系数
d2.计算ema模型参数的递归方程:
d3.用ma模型近似arma模型,得到yk的arma模型为:
其中,n表示时间。
d4.如果k<h,返回步骤(1),计算yk+1的arma模型;否则,进行到步骤e。
步骤e.因此,n时刻负载时间序列的模型为
步骤f.由n时刻的负载时间序列矩阵预测未来第n+t时刻的负载值,即
其中,
步骤d的推导过程如下:
arma模型可以用高阶ma模型近似,即arma(p,q)=ma(∞),称为ema(equivalentma)模型。因此,arma模型的z变换形式可写为:
其中l是ema模型的阶数,为方便计算,可近似取l=p+q。
根据谱因式分解,
其中,σω为arma模型中白噪声的方差,*表示共轭复数。自然对数lnsy(z)的laurent级数展开为:
其中,ci是倒谱系数。因此,
令z-1=u,上述公式两边同时对u取导数,得
令上式等号两侧u相同幂次的系数相等,得到ema模型参数dm的递归方程为:
倒谱系数ci为:
其中,
本发明基于不动点迭代方法实现pca(简称“快速pca”),相比传统pca方法,时间复杂度大幅降低;采用阈值确定主成分个数,相比方差累计贡献率百分比(cpv)方法,不需要计算出全部的系数向量,更适合在线负载主成分的提取;用ema模型近似arima模型,只计算ema模型的阶数l=p+q值,不需要分别计算ar模型阶数p和ma模型阶数q;并且只计算ema模型参数dm,不需要分别计算ar模型的参数和ma模型的参数,计算复杂度相比传统arima模型大幅降低,更适合在线负载预测。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。