一种基于EEMD-ARIMA的云计算服务器负载短期预测方法
技术领域
本发明涉及一种云计算服务器负载短期预测方法,更具体的说,尤其涉及一种基于EEMD-ARIMA的云计算服务器负载短期预测方法。
背景技术
云计算将大量计算、存储以及网络资源聚集起来,形成一个大的资源池,通过虚拟化技术有效地进行资源切割、调配和整合,实现资源的高效利用。它提供一种按需使用的模式,云计算用户可按需租赁资源降低成本,云平台提供商可通过合理调度实现虚拟资源的按需供给和动态管理,以提高资源利用率。按需供给、成本低、易扩展等特点使云计算得到广泛的应用,但由于用户应用需求不同以及云平台资源的异构性,如何有效地进行资源调度与配置成为云平台面临的一个主要挑战,特别是如何保障用户应用性能、提高资源利用率。
虚拟机的迁移调度是一种有效的资源调度方法。当云平台某物理服务器负载超过一定阈值,运行于该服务器的虚拟机性能会受到影响,需要将高负载虚拟机迁出,以降低该服务器负载提高虚拟机性能,保证用户应用性能;若物理服务器负载低于某阈值,可以将所有虚拟机迁移到高负载服务器,关闭服务器,降低能耗、节约用电成本。
虚拟机的迁移通常需要一定的配置时间,这会造成用户应用性能下降,因此需要***物理服务器负载并进行虚拟机迁移,以保证用户应用正常运行。常见的预测方法通常包括三类:第一类是专家判断法,基于专家知识经验判断;第二类是统计预测法,包括指数平滑、自回归模型(AR)、自回归移动平均模型(ARMA)、差分自回归移动平均模型(ARIMA)等;第三类是人工智能方法,例如神经网络(ANN)、支持向量机(SVM)等。由于第一类方法依赖于专家知识水平,结果很难得到理论上的解释,近年来很少应用;第二类和第三类方法在预测中得到广泛应用,但大多基于相对平稳的时间序列数据进行长期预测。云计算环境下,特别是公有云,用户资源需求具有随机突发性,短时间内可能会造成服务器负载呈现非平稳状态,并且短期内很难收集大量的样本数据;人工智能预测方法一般基于学***稳数据时不能获得良好的预测效果。
发明内容
本发明为了克服上述技术问题的缺点,提供了一种基于EEMD-ARIMA的云计算服务器负载短期预测方法。
本发明的基于EEMD-ARIMA的云计算服务器负载短期预测方法,其特别之处在于,通过以下方法来实现:
a).负载数据采集,每天24小时内以固定周期采集云计算物理服务器pi的CPU、内存、磁盘的利用率,将其作为云计算物理服务器的负载数据,表示为(Ci,Mi,Di);
b).负载数据预处理,将服务器的负载数据(Ci,Mi,Di)按照CPU、内存、磁盘的负载分类进行分类提取,并将每类负载数据形成训练集;设服务器的CPU负载训练集为Tcpu={Ct1,...,Cti,...,Ctn},n为训练集数据数量;
c).总体经验模态分解,对步骤b)中获取的训练集数据添加N次正、负白噪声,再进行总体经验模态分解EEMD,得到h-1个IMF分量和1个余项;每个分量和余项都是一组样本数据,分别用{Xj1,...,Xjk,...,Xjn}表示,1≤j≤h,h为EEMD分解后IMF分量和余项的总数量,Xjk为第j个IMF分量或余项数据中第k个数据;
d).判断分量、余项是否属于同一类别,对所有IMF分量和余项按照公式(1)计算两两分量或分量与余项之间的欧氏距离Dij:
1≤i≤h,1≤j≤h;
然后根据欧氏距离是否小于设定阈值来判断是否有分量或分量与余项属于同一类别,若有则表明存在模态混叠,执行步骤c),并增大添加白噪声的幅值和次数,重新对训练集进行EEMD分解直至IMF分量或余项不存在模态混叠;如果没有,则表明不存在模态混叠,执行步骤e);
e).计算信息熵,计算所有分量和余项的信息熵Sj,1≤j≤h;
f).计算相关系数,按照公式(2)计算每个IMF分量和余项与训练集的相关系数Pj:
其中,Cov(X,Y)为协方差,Var(X)、Var(Y)为方差,X是一个IMF分量或余项,Y是训练集,1≤j≤h;
g).计算能量因子,首先,分别根据公式(3)、公式(4)计算每个IMF分量和余项的能量密度Ej、平均周期Tj:
其中,n为训练集数据数量,lj为相应分量或余项极大值点个数,1≤j≤h;
然后,根据能量密度Ej与平均周期Tj的乘积是常数的特点,通过公式(5)计算每个IMF分量和余项的能量因子Efj:
Efj=Ej*Tj (5)
其中,1≤j≤h;
h).计算有效评价因子,基于所有IMF分量和余项的信息熵Sj、相关系数Pj、能量因子Efj和相应权重ws、wp、we建立综合模糊评价方法,通过公式(6)计算有效评价因子Zj:
其中,1≤j≤h;权重ws、wp、we满足约束关系:ws+wp+we=1;Smax、Smin分别表示所有IMF分量和余项信息熵S1,...,Sj,...,Sh中的最大值和最小值,Pmax、Pmin分别表示所有IMF分量和余项与训练集的相关系数P1,...,Pj,...,Ph中的最大值和最小值,Efmax、Efmin分别表示所有IMF分量和余项的能量因子Ef1,...,Efj,...,Efh中的最大值和最小值;
判断每个分量或余项的评价因子是否大于设置的阈值,若大于则为有效分量,若小于则为无效分量;
i).对每个有效分量进行ARIMA预测,然后将所有预测结果求和得到总预测集Fi={Cp1,...,Cpj,...,Cpm},pm为有效分量和余项的预测点数;
同样地,对服务器的内存负载、磁盘负载按照步骤c)至步骤i)的相同方法,得到服务器的内存负载、磁盘负载的总预测集,即实现了对服务器负载的短期预测。
本发明的基于EEMD-ARIMA的云计算服务器负载短期预测方法,步骤c)中所述的总体经验模态分解,具体通过以下方法来实现:
c-1).添加白噪声,向训练集T
cpu={C
t1,...,C
ti,...,C
tn}中添加N次正、负白噪声序列,所添加白噪声的幅值为训练集中数据标准差的0.1~0.2倍,设第k次白噪声序列为
得到新的训练集序列为:
1≤i≤n,1≤k≤N;
c-2).对新训练集
进行经验模态分解EMD,得到相应的分量
和余项
其中h=[log
2n],[]表示取整运算,j=1,2,...,h-1;1≤k≤N;
c-3).将上述分量和余项进行总体平均运算,得到EEMD分解的h-1个IMF分量和1个余项,第j个IMF分量
余项
每个IMF分量和余项都是一组样本数据{X
j1,...,X
jk,...X
jn}。
本发明的基于EEMD-ARIMA的云计算服务器负载短期预测方法,步骤e)中所述的计算信息熵具体通过以下步骤来实现:
e-1).对于待计算的IMF分量或余项,查找出其数据中的最大值Xjmax和最小值Xjmin;
e-2).将区间[Xjmax,Xjmin]进行n等分,n为训练集数据数量;然后统计该分量或余项中各数据落入相应区间的数量,设落入第i个区间的数据数量为mi个,则该分量或余项落在第i个区间的概率为pi=mi/n;
e-3).根据信息熵的定义,通过公式(7)可求得IMF分量或余项的信息熵为:
本发明的基于EEMD-ARIMA的云计算服务器负载短期预测方法,步骤h)中所述的权重ws、wp、we的取值范围均为0.2~0.5,步骤h)中所述的阈值在0~1之间进行选取,阈值取值越大,选取的有效分量越少,计算量就小,预测结果准确性相对较低;阈值取值越小,选取的有效分量越多,计算量就大,预测结果准确性相对较高。
本发明的有益效果是:本发明的基于EEMD-ARIMA的云计算服务器负载短期预测方法,不同于通常的ARIMA方法,本发明首先周期性采集云计算服务器的资源负载,针对不同资源类型预处理负载数据,建立训练集;然后针对服务器负载进行EEMD分解得到多个IMF分量和余项,针对所有IMF分量和余项进行聚类分析判断是否存在模态混叠,最终得到不存在模态混叠的IMF分量和余项;计算每个IMF分量和余项的信息熵、相关系数和能量因子,进而建立有效评价因子选择有效的IMF分量和余项;最后对有效的分量分别进行ARIMA预测并求和得到最终预测结果,实现了对云计算服务器负载的精确短期预测。本发明方法适用于云计算服务器非稳定负载的预测,特别是公有云,用户资源需求具有随机突发性、短时间内可能会造成服务器负载呈现非平稳状态情形的预测,适用于云计算使用的所有负载类型,不受单一负载类型的限制。
附图说明
图1为本发明的云计算服务器负载短期预测方法的流程图;
图2为本发明的服务器CPU负载预处理后的数据;
图3为本发明的服务器负载EEMD分解分量图;
图4为本发明的服务器负载有效分量ARIMA预测流程图;
图5为本发明方法与单纯ARIMA方法的预测对比图
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
图1给出了本发明的云计算服务器负载预测方法的流程图,本实施例中,以云计算平台某服务器的CPU资源负载(资源利用率)为例,实施基于EEMD-ARIMA的短期预测方法步骤如下:
步骤a:针对云计算平台某服务器,以每小时采集1次的频率周期性采集29天的服务器负载,包括CPU利用率、内存利用率、磁盘利用率。
步骤b:以CPU负载为列,提取该服务器CPU利用率进行预处理,将前28天数据设为训练集,第29天数据为验证集。如图2所示,给出了本发明的服务器CPU负载预处理后的数据,图中竖线左侧(左侧箭头方向)为前28天的数据共计28*24=672条,作为训练集数据;竖线右侧(右侧箭头方向)为第29天每小时的平均CPU利用率,共计24条数据,作为验证集。
步骤c:对预处理后的训练集数据添加正、负白噪声并进行EEMD分解,得到8个IMF分量(IMF1-IMF8)和1个余项(R),如图3所示。
步骤d:对所有IMF分量和余项按照公式(1)计算欧氏距离,如表1所示,设定阈值为0.05,可以看出所有两分量之间的距离以及分量与余项之间的距离均大于0.05,可知所有分量和余项不属于同一类,不存在模态混叠。
表1
步骤e:对每个IMF分量和余项计算信息熵,结果如表2所示。
表2
|
IMF1 |
IMF2 |
IMF3 |
IMF4 |
IMF5 |
IMF6 |
IMF7 |
IMF8 |
R |
信息熵 |
7.84 |
7.68 |
8.00 |
7.80 |
7.46 |
8.17 |
8.36 |
8.54 |
9.27 |
步骤f:计算每个IMF分量和余项与源训练集数据序列的相关系数,如表3所示。
表3
|
IMF1 |
IMF2 |
IMF3 |
IMF4 |
IMF5 |
IMF6 |
IMF7 |
IMF8 |
R |
相关系数 |
0.23 |
0.26 |
0.04 |
0.33 |
0.11 |
0.00 |
-0.02 |
0.39 |
0.80 |
步骤g:根据IMF分量或余项计算能量密度、平均周期及能量因子,如表4所示。
表4
步骤h:取ws=wp=we=1/3,根据步骤e、f、g计算出的信息熵、相关系数和能量因子计算IMF分量和余项的有效评价因子,如表5所示。
表5
|
IMF1 |
IMF2 |
IMF3 |
IMF4 |
IMF5 |
IMF6 |
IMF7 |
IMF8 |
R |
有效评价因子 |
0.46 |
0.50 |
0.28 |
0.53 |
0.43 |
0.22 |
0.17 |
0.45 |
0.67 |
步骤i:设定阈值为0.2,评估所有IMF分量和余项的有效性,IMF7为无效分量,其他为有效分量,根据图4所示流程将其他有效分量及余项分别进行ARIMA预测,并将预测结果求和,即得到EEMD-ARIMA预测集数据,如表6所示。
表6
序号 |
验证集数据(%) |
EEMD-ARIMA预测集数据(%) |
ARIMA预测集数据(%) |
1 |
16.13 |
16.00 |
16.40 |
2 |
16 |
15.88 |
16.45 |
3 |
16.09 |
15.84 |
16.56 |
4 |
16.14 |
15.88 |
16.64 |
5 |
16.04 |
16.14 |
16.68 |
6 |
16.08 |
16.64 |
16.64 |
7 |
16.12 |
17.32 |
16.56 |
8 |
16.06 |
18.10 |
16.48 |
9 |
16.25 |
18.93 |
16.45 |
10 |
20.75 |
19.67 |
16.49 |
11 |
26.31 |
20.21 |
16.58 |
12 |
29.76 |
20.52 |
16.67 |
13 |
26.63 |
20.66 |
16.72 |
14 |
27.56 |
20.74 |
16.70 |
15 |
23.35 |
20.84 |
16.63 |
16 |
28.61 |
21.01 |
16.55 |
17 |
24.97 |
21.29 |
16.51 |
18 |
25.54 |
21.69 |
16.53 |
19 |
20.21 |
22.16 |
16.60 |
20 |
22.52 |
22.62 |
16.69 |
21 |
20.03 |
23.04 |
16.75 |
22 |
22.64 |
23.46 |
16.75 |
23 |
21.29 |
23.88 |
16.70 |
24 |
22.68 |
24.29 |
16.62 |
|
MAPE |
11.13% |
19.88% |
本发明所述方法中,以CPU利用率作为服务器负载类型为例,依据本发明所述方法,我们利用EEMD分解出不存在模态混叠的IMF分量和余项,并计算每个分量和余项的信息熵、相关系数和能量因子,进而建立有效评价因子,筛选出有效分量,然后对每个有效分量分别进行ARIMA预测,将分量预测结果求和得到最终预测结果,提高了预测精度。
针对云平台服务器资源负载预测,通过对比本发明方法与通常的ARIMA预测方法,验证本发明方法的优势。
将训练集数据通过ARIMA方法进行预测,得到ARIMA预测集数据,表6展示验证集数据、EEMD-ARIMA预测集数据、ARIMA预测集数据,并计算EEMD-ARIMA和ARIMA两种方法的平均绝对百分误差(MAPE),分别是11.13%和19.88%,可以看出采用EEMD-ARIMA方法比单纯采用ARIMA方法在预测精度上有较大提高。
图5给出了表6中ARIMA预测集数据、EEMD-ARIMA预测集数据以及验证集数据的曲线图,可知本发发明的EEMD-ARIMA预测集数据与验证集数据更加接近,说明本发明的服务器负载短期预测方法具有更加接近实际数据的优势。