电力云虚拟机负载预测方法与流程

文档序号:17220700发布日期:2019-03-27 11:55阅读:125来源:国知局
电力云虚拟机负载预测方法与流程
本发明涉及云计算
技术领域
,具体涉及一种电力云虚拟机负载预测方法。
背景技术
:云计算技术能够为用户提供动态的虚拟资源池,所以虚拟化以及虚拟资源调度是云计算不可或缺的技术。国内外研究者们对虚拟资源调度策略进行了较多的研究,主要研究方向有:以提高资源利用率为目标的虚拟资源调度的研究、以均衡物理机资源利用率为目标的虚拟资源调度的研究、以降低能耗为目标的虚拟资源调度的研究。电力云平台的虚拟资源池中有上百台虚拟机,各应用系统占有不同资源且在不同时间处于不断变化状态,针对各虚拟机使用情况,没有平台进行精确、长期的统计分析,运维人员无法准确掌握资源使用情况及需求趋势。现有技术都是对资源利用率设置阈值,在算法上进行优化,而不对历史数据或实时数据预处理。此外,电网云平台中虚拟资源可能处于不足或者剩余的状态,运维人员无法准确预测资源使用情况及需求趋势,造成资源浪费。因此,需要提出一种新的电力云虚拟机负载预测方法。技术实现要素:有鉴于此,本发明的目的是提供一种电力云虚拟机负载预测方法,通过关联缺失和异常数据前后数据,对缺失和异常数据分别进行补充和更新的预处理,然后将所要预测时刻的数据的前若干天的实际数据经预处理后输入通过遗传算法优化的bp神经网络,得到所要预测时刻的预测数据,预测精度高,实用性更广。本发明提供一种电力云虚拟机负载预测方法,包括步骤:s1:对虚拟机资源运行的数据进行预处理;s2:采用主成分分析法将对经预处理后的数据进行降维,得到样本矩阵z;s3:将样本矩阵z中的元素训练bp神经网络,并利用遗传算法优化bp神经网络;得到bp神经网络的预测模型;s4:将所要预测数据所在日期的前3天的虚拟机资源运行的数据进行预处理后,输入预先建立的bp神经网络的预测模型,得到所要预测日期的数据值。进一步,所述步骤s1包括:s11:采集预设的连续时间段的虚拟机资源运行的数据;所述预设的连续时间段为4天;s12:判断采集的连续时间段的虚拟机资源运行的数据中是否存在异常数据或缺失数据,若存在,则进入步骤s13,若不存在,则进入步骤s3;s13:对异常数据或缺失数据进行预处理,更新连续时间段的虚拟机资源运行的数据;s14:判断更新后的连续时间段的虚拟机资源运行的数据是否存在异常数据,若存在,返回步骤s13,若不存在则进入步骤s3。进一步,所述步骤s12中判断采集的连续时间段的虚拟机资源运行的数据中是否存在异常数据和步骤s14中判断更新后的连续时间段的虚拟机资源运行的数据是否存在异常数据具体为:遍历当前连续时间段的虚拟机资源运行的数据,逐一判断(1-1)式是否成立,如成立,则存在异常数据,且t时刻虚拟机资源运行的数据为异常数据,若遍历当前连续时间段的虚拟机资源运行的数据,不存在数据使(1-1)式成立,则不存在异常数据;所述(1-1)式为:υ(t)>3σ(1-1)其中,υ(t)表示t时刻虚拟机资源运行的数据的剩余误差;σ表示当前连续时间段的虚拟机资源运行的数据的标准差;所述υ(t)的计算公式为:其中,表示采集的虚拟机资源运行的所有数据的算术平均值,x(t)表示t时刻虚拟机资源运行的数据值,υ(t)表示t时刻虚拟机资源运行的数据的剩余误差。进一步,所述步骤s13具体包括:若同一天中存在不连续的n个缺失数据或异常数据,则根据离散数据更新公式分别对这n个数据点值进行更新,所述离散数据更新公式为:其中,x1(t)表示更新后的t时刻虚拟机资源运行的数据值,在(2-1)式中t时刻的数据为缺失数据或异常数据;k表示t时刻的前k时刻和后k时刻;k≥1,m为中间变量;若同一天中存在连续的n个缺失数据或异常数据,则根据连续数据更新公式ⅰ分别对这连续的n个数据点值进行更新,所述连续点数据更新公式ⅰ为:其中,x1(t)表示更新后的t时刻虚拟机资源运行的数据值,t′表示当前t时刻的前一天的t时刻;x(t′)表示前一天t时刻的虚拟机资源运行的数据值;在(2-2)式中时刻t至时刻t+n的时间段的数据均为缺失数据或异常数据,k表示时刻t至时刻t+n的时间段的后k时刻和时刻t至时刻t-n的时间段的前k时刻;k≥1,m为中间变量;若连续存在n天的数据为缺失数据或异常数据,则根据连续数据更新公式ⅱ分别对这连续的n天的各个数据点值进行更新,所述连续数据更新公式ⅱ为:其中,x1(t)表示更新后的t时刻虚拟机资源运行的数据值,表示t时刻虚拟机资源运行的初始更新数据值,表示t+m时刻虚拟机资源运行的初始更新数据值,表示t-m时刻虚拟机资源运行的初始更新数据值,k表示t时刻的前k时刻和后k时刻,k≥1,m为中间变量;λ为校正常数;所述的计算公式为:其中,表示t时刻虚拟机资源运行的初始更新数据值,xg+n+m(t)表示当前天数g天的后n+m天的t时刻的数据值,xg-n-m(t)表示当前天数g天的前n+m天的t时刻的数据值,k表示g+n天的后m天和g-n天的前m天;k≥1,m为中间变量。进一步,所述步骤s2具体包括:s21:将预处理后的虚拟机资源运行的数据用l×4阶的矩阵x表示;xij为矩阵x中第i行第j列的元素,表示第i个预处理后的虚拟机资源运行的数据的第j个信息;其中,l是矩阵x的列数,表示有l个预处理后的虚拟机资源运行的数据;4是矩阵x的列数,表示每个预处理后的虚拟机资源运行的数据依次有4类信息,具体地,xi1表示第i个预处理后的虚拟机资源运行的数据的时刻信息,xi2表示第i个预处理后的虚拟机资源运行的数据的cpu平均利用率信息,xi3表示第i个预处理后的虚拟机资源运行的数据的网络带宽信息,xi4表示第i个预处理后的虚拟机资源运行的数据的内存平均利用率信息,s22:对矩阵x中的元素进行标准化,得到标准化矩阵y,其中矩阵y中的元素yij的标准化公式为:其中,表示矩阵x中第j列元素的算术平均值,sj表示矩阵x中第j列元素的标准差;yij表示矩阵y中第i行第j列的元素;s23:计算标准化矩阵y的相关矩阵r,所述r的计算公式为:其中,l表示标准化矩阵y的行数,t为转置符号;s24:求解相关矩阵r的特征方程,得到特征矩阵λ和特征向量矩阵a,所述相关矩阵r的特征方程为:ra=aλ(3-3)s25:确定特征矩阵λ中前q个特征根;所述q为满足前q个特征根累计贡献率不小于85%的最小值,所述特征矩阵λ的中第h个特征根λh的贡献率ch计算公式为:其中,p表示特征矩阵λ中一共有p个特征根,λj为特征矩阵λ中第j个特征根;所述前q个主成分累计贡献率c的计算公式为:s26:根据特征向量矩阵a中与特征矩阵λ中前q个特征根λ1,λ2,……,λp对应的特征向量α1,α2,……,αq构建q×4阶的样本矩阵z,所述z中的元素的计算公式为:zij=αiyij(3-6)其中,zij为样本矩阵z中第i行第j列的元素值,αi为特征向量矩阵a中与特征矩阵λ中前q个特征根λ1,λ2,……,λp对应位置的特征向量α1,α2,……,αq中第i个特征向量,yij为标准化矩阵y中第i行第j列的元素值。进一步,所述步骤s3中具体如下:s31:初始化bp神经网络,所述bp神经网络包括输入层、隐层和输出层;采用浮点数编码对个体进行编码,所述每个个体包括bp神经网络的所有权值和阈值;初始化bp神经网络的输入层节点数r为9,隐层节点数s1为13,输出层节点数s2为1,种群中个体的长度为s,s的计算公式为:s=r×s1+s1×s2+s1+s2(4-1)初始化种群规模为50;s32:初始化最大训练次数为nmax次,学习速率为0.01,训练目标为实际输出与期望输出的差值的绝对值≤0.001;s33:将样本矩阵z中前3天的数据作为训练样本,第4天的数据作为期望输出,bp神经网络的实际输出作为预测输出;计算每个个体的适应度;s34:运用遗传算法对当前种群中的个体进行选择、变异、交叉,得到新的种群;s35:重复步骤s33至s35,直到达到训练目标或最大训练次数。进一步,适应度函数为:其中,f表示个体适应度,e表示预测输出和期望输出的误差的平方和,δ为修正常数,δ>0。进一步,所述步骤s34中对当前种群中的个体进行选择具体为:选择算子采用轮盘赌选择法,个体i被选择的概率pi的计算公式为:其中fi为第i个个体适应度,n’为种群规模大小。进一步,所述步骤s34中对当前种群中的个体进行交叉的概率为pc=0.7,交叉的最大迭代次数为100次;对当前种群中的个体进行变异的概率为pm=0.7,变异的最大迭代次数为100次。进一步,所述步骤s4中将所要预测数据所在日期的前3天的虚拟机资源运行的数据进行预处理具体为:s41:遍历所要预测数据所在日期的前3天的虚拟机资源运行的数据逐一判断是否存在缺失数据或异常数据,所述异常数据的判断具体为判断(1-1)式是否成立,则存在异常数据,且t时刻虚拟机资源运行的数据为异常数据;s42:若存在缺失数据或异常数据,则分情况对缺失数据或异常数据进行更新,具体如下:若同一天中存在不连续的n个缺失数据或异常数据,则根据离散数据更新公式分别对这n个数据点值进行更新;若同一天中存在连续的n个缺失数据或异常数据,则根据连续数据更新公式ⅰ;若连续存在n天的数据为缺失数据或异常数据,则根据连续数据更新公式ⅱ分别对这连续的n天的各个数据点值进行更新;s43:遍历更新后的所要预测数据所在日期的前3天的虚拟机资源运行的数据,判断是否存在缺失数据或异常数据,若不存在,则进入步骤s44;若存在则重复步骤s42,直到更新后的所要预测数据所在日期的前3天的虚拟机资源运行的数据无缺失数据或异常数据,进入步骤s44;s44:利用步骤s2采用的主成分分析法对步骤s43得到的数据降维,得到预处理后的所要预测数据所在日期的前3天的虚拟机资源运行的数据。本发明的有益效果:本发明通过关联缺失和异常数据前后数据,对缺失和异常数据分别进行补充和更新的预处理,然后将所要预测时刻的数据的前若干天的实际数据经预处理后输入通过遗传算法优化的bp神经网络,得到所要预测时刻的预测数据,预测精度高,实用性更广。附图说明下面结合附图和实施例对本发明作进一步描述:图1为本发明的流程图;具体实施方式如图1所示,本发明提供的一种电力云虚拟机负载预测方法,包括步骤:s1:对虚拟机资源运行的数据进行预处理;s2:采用主成分分析法将对经预处理后的数据进行降维,得到样本矩阵z;s3:将样本矩阵z中的元素训练bp神经网络,并利用遗传算法优化bp神经网络;得到bp神经网络的预测模型;s4:将所要预测数据所在日期的前3天的虚拟机资源运行的数据进行预处理后,输入预先建立的bp神经网络的预测模型,得到所要预测日期的数据值。通过上述方法,对缺失和异常数据分别进行补充和更新的预处理,然后将所要预测时刻的数据的前若干天的实际数据经预处理后输入通过遗传算法优化的bp神经网络,得到所要预测时刻的预测数据,预测精度高,实用性更广。所述步骤s1包括:s11:采集预设的连续时间段的虚拟机资源运行的数据;所述预设的连续时间段为4天;s12:判断采集的连续时间段的虚拟机资源运行的数据中是否存在异常数据或缺失数据,若存在,则进入步骤s13,若不存在,则进入步骤s3;本实施例中,缺失数据通过直接观察是否采集到数据来确定,此为现有技术,在此不赘述。s13:对异常数据或缺失数据进行预处理,更新连续时间段的虚拟机资源运行的数据;s14:判断更新后的连续时间段的虚拟机资源运行的数据是否存在异常数据,若存在,返回步骤s13,若不存在则进入步骤s3。所述步骤s12中判断采集的连续时间段的虚拟机资源运行的数据中是否存在异常数据和步骤s14中判断更新后的连续时间段的虚拟机资源运行的数据是否存在异常数据具体为:遍历当前连续时间段的虚拟机资源运行的数据,逐一判断(1-1)式是否成立,如成立,则存在异常数据,且t时刻虚拟机资源运行的数据为异常数据,若遍历当前连续时间段的虚拟机资源运行的数据,不存在数据使(1-1)式成立,则不存在异常数据;所述(1-1)式为:υ(t)>3σ(1-1)其中,υ(t)表示t时刻虚拟机资源运行的数据的剩余误差;σ表示当前连续时间段的虚拟机资源运行的数据的标准差;所述标准差的计算为现有技术,在此不赘述。所述υ(t)的计算公式为:其中,表示采集的虚拟机资源运行的所有数据的算术平均值,x(t)表示t时刻虚拟机资源运行的数据值,υ(t)表示t时刻虚拟机资源运行的数据的剩余误差。所述步骤s13具体包括:若同一天中存在不连续的n个缺失数据或异常数据,则根据离散数据更新公式分别对这n个数据点值进行更新,所述离散数据更新公式为:其中,x1(t)表示更新后的t时刻虚拟机资源运行的数据值,在(2-1)式中t时刻的数据为缺失数据或异常数据;k表示t时刻的前k时刻和后k时刻;k≥1,m为中间变量;本实施中,若同一天中存在不连续的n个缺失数据或异常数据,则采用t时刻的前k时刻和后k时刻的数据作为参照对t时刻的数据进行补充更新。(2-1)式中的k小于与t时刻距离最近的缺失数据或异常数据的时刻与t时刻的差值。(2-1)式k的值越大,利用(2-1)更新的缺失数据或异常数据越接近于虚拟机资源运行的数据的变化趋势,通常情况下(2-1)式中的k=3。本实施例中,所述同一天中存在不连续的n个缺失数据或异常数据,可以是同一天中只存在不连续的n个缺失数据,也可以是同一天中只存在不连续的n个异常数据,也可以是同一天中既存在不连续的缺失数据也存在不连续的异常数据,缺失数据和异常数据的数量和为n。若同一天中存在连续的n个缺失数据或异常数据,则根据连续数据更新公式ⅰ分别对这连续的n个数据点值进行更新,所述连续点数据更新公式ⅰ为:其中,x1(t)表示更新后的t时刻虚拟机资源运行的数据值,t′表示当前t时刻的前一天的t时刻;x(t′)表示前一天t时刻的虚拟机资源运行的数据值;在(2-2)式中时刻t至时刻t+n的时间段的数据均为缺失数据或异常数据,k表示时刻t至时刻t+n的时间段的后k时刻和时刻t至时刻t-n的时间段的前k时刻;k≥1,m为中间变量;本实施中,若同一天中存在连续的n个缺失数据或异常数据,则采用t时刻的前一天的数据值作为基准,以t时刻的前n+k时刻和后n+k时刻的数据作为参照对t时刻的前一天的数据值进行校正,从而对t时刻的数据补充更新。(2-2)式中k取值必须避开与上述中同一天中存在的连续的n个缺失数据或异常数据距离最近的其他异常数据和异常数据,避免将其他异常数据和异常数据作为参照来补充更新t时刻的数据。(2-2)式k的值越大,利用(2-2)更新的缺失数据或异常数据越接近于虚拟机资源运行的数据的变化趋势,通常情况下(2-2)式中的k=3。本实施例中,所述同一天中存在连续的n个缺失数据或异常数据,可以是同一天中存在连续的n个缺失数据,也可以是同一天中存在连续的n个异常数据,也可以是同一天存在连续的n个数据,这n个数据由若干异常数据和若干缺失数据组成。若连续存在n天的数据为缺失数据或异常数据,则根据连续数据更新公式ⅱ分别对这连续的n天的各个数据点值进行更新,所述连续数据更新公式ⅱ为:其中,x1(t)表示更新后的t时刻虚拟机资源运行的数据值,表示t时刻虚拟机资源运行的初始更新数据值,表示t+m时刻虚拟机资源运行的初始更新数据值,表示t-m时刻虚拟机资源运行的初始更新数据值,k表示t时刻的前k时刻和后k时刻,k≥1,m为中间变量;λ为校正常数,本实施例中,λ=3;本实施中,若连续存在n天的数据为缺失数据或异常数据,则采用前后若干天的t时刻的数据值作为基准,将前n+m天和后n+m天中t时刻的前k时刻和后k时刻的数据作为对前后若干天的t时刻的数据值的修正值,从而对当前日期中的t时刻的数据进行补充更新。(2-3)式中k取值必须避开与上述连续n天的缺失数据和异常数据距离最近的其他异常数据和异常数据,避免将其他异常数据和异常数据作为参照来补充更新t时刻的数据。(2-3)式k的值越大,利用(2-3)更新的缺失数据或异常数据越接近于虚拟机资源运行的数据的变化趋势,通常情况下(2-3)式中的k=3。本实施例中,所述连续存在n天的数据为缺失数据或异常数据,可以是连续n天的数据为缺失数据,也可以是连续n天的数据为异常数据,也可以是存在连续n天的数据,这n天的数据由若干异常数据和若干缺失数据组成。所述的计算公式为:其中,表示t时刻虚拟机资源运行的初始更新数据值,xg+n+m(t)表示当前天数g天的后n+m天的t时刻的数据值,xg-n-m(t)表示当前天数g天的前n+m天的t时刻的数据值,k表示g+n天的后m天和g-n天的前m天;k≥1,m为中间变量。所述步骤s2具体包括:s21:将预处理后的虚拟机资源运行的数据用l×4阶的矩阵x表示;xij为矩阵x中第i行第j列的元素,表示第i个预处理后的虚拟机资源运行的数据的第j个信息;本实施例中,表1表示部分的经预处理后的采集的虚拟机资源运行的数据。表1部分的经预处理后的采集的虚拟机资源运行的数据表样本编号时刻cpu平均利用率网络带宽内存平均利用率100:0085%1mb50%200:0585%1mb50%其中,l是矩阵x的列数,表示有l个预处理后的虚拟机资源运行的数据;4是矩阵x的列数,表示每个预处理后的虚拟机资源运行的数据依次有4类信息,具体地,xi1表示第i个预处理后的虚拟机资源运行的数据的时刻信息,xi2表示第i个预处理后的虚拟机资源运行的数据的cpu平均利用率信息,xi3表示第i个预处理后的虚拟机资源运行的数据的网络带宽信息,xi4表示第i个预处理后的虚拟机资源运行的数据的内存平均利用率信息,s22:对矩阵x中的元素进行标准化,得到标准化矩阵y,其中矩阵y中的元素yij的标准化公式为:其中,表示矩阵x中第j列元素的算术平均值,sj表示矩阵x中第j列元素的标准差;yij表示矩阵y中第i行第j列的元素;本实施例中,表2表示表1中的数据经(3-1)式标准化后的数据。表2表1中的数据经(3-1)式标准化后的数据样本编号时刻cpu平均利用率网络带宽内存平均利用率10.000.95911.030.979320.050.0917-2.030.9820s23:计算标准化矩阵y的相关矩阵r,所述r的计算公式为:其中,l表示标准化矩阵y的行数,t为转置符号;s24:求解相关矩阵r的特征方程,得到特征矩阵λ和特征向量矩阵a,所述相关矩阵r的特征方程为:ra=aλ(3-3)s25:确定特征矩阵λ中前q个特征根;所述q为满足前q个特征根累计贡献率不小于85%的最小值,所述特征矩阵λ的中第h个特征根λh的贡献率ch计算公式为:其中,p表示特征矩阵λ中一共有p个特征根,λj为特征矩阵λ中第j个特征根;本实施例中,p与矩阵x的总列数相等,即p=4。所述前q个主成分累计贡献率c的计算公式为:s26:根据特征向量矩阵a中与特征矩阵λ中前q个特征根λ1,λ2,......,λp对应的特征向量α1,α2,......,αq构建q×4阶的样本矩阵z,所述z中的元素的计算公式为:zij=αiyij(3-6)其中,zij为样本矩阵z中第i行第j列的元素值,αi为特征向量矩阵a中与特征矩阵λ中前q个特征根λ1,λ2,......,λp对应位置的特征向量α1,α2,......,αq中第i个特征向量,yij为标准化矩阵y中第i行第j列的元素值。本实施例中,表3表示表2中的数据经步骤s23至s26处理后得到的数据。表3表2中的数据经步骤s23至s26处理后得到的数据样本编号13.26370.3135-0.369223.97121.73020.5561通过上述方法,对采集的虚拟机资源运行的数据进行降维,在保证预测精度的同时,减小了后续计算的开销。所述步骤s3中具体如下:s31:初始化bp神经网络,所述bp神经网络包括输入层、隐层和输出层;采用浮点数编码对个体进行编码,所述每个个体包括bp神经网络的所有权值和阈值;初始化bp神经网络的输入层节点数r为9,隐层节点数s1为13,输出层节点数s2为1,种群中个体的长度为s,s的计算公式为:s=r×s1+s1×s2+s1+s2(4-1)初始化种群规模为50;s32:初始化最大训练次数为nmax次,学习速率为0.01,训练目标为实际输出与期望输出的差值的绝对值≤0.001;s33:将样本矩阵z中前3天的数据作为训练样本,第4天的数据作为期望输出,bp神经网络的实际输出作为预测输出;计算每个个体的适应度;s34:运用遗传算法对当前种群中的个体进行选择、变异、交叉,得到新的种群;s35:重复步骤s33至s35,直到达到训练目标或最大训练次数。通过遗传算法来优化bp神经网络,加快了bp神经网络训练的速度。适应度函数为:其中,f表示个体适应度,e表示预测输出和期望输出的误差的平方和,δ为修正常数,δ>0。本实施例中,δ是一个正的极小值,避免了(4-2)式的分母为0。本实施例中,预测输出和期望输出的误差为实际输出与期望输出的差值。所述步骤s34中对当前种群中的个体进行选择具体为:选择算子采用轮盘赌选择法,个体i被选择的概率pi的计算公式为:其中fi为第i个个体适应度,n’为种群规模大小。所述步骤s34中对当前种群中的个体进行交叉的概率为pc=0.7,交叉的最大迭代次数为100次;对当前种群中的个体进行变异的概率为pm=0.7,变异的最大迭代次数为100次。所述步骤s4中将所要预测数据所在日期的前3天的虚拟机资源运行的数据进行预处理具体为:s41:遍历所要预测数据所在日期的前3天的虚拟机资源运行的数据逐一判断是否存在缺失数据或异常数据,所述异常数据的判断具体为判断(1-1)式是否成立,则存在异常数据,且t时刻虚拟机资源运行的数据为异常数据;s42:若存在缺失数据或异常数据,则分情况对缺失数据或异常数据进行更新,具体如下:若同一天中存在不连续的n个缺失数据或异常数据,则根据离散数据更新公式分别对这n个数据点值进行更新;若同一天中存在连续的n个缺失数据或异常数据,则根据连续数据更新公式ⅰ;若连续存在n天的数据为缺失数据或异常数据,则根据连续数据更新公式ⅱ分别对这连续的n天的各个数据点值进行更新;s43:遍历更新后的所要预测数据所在日期的前3天的虚拟机资源运行的数据,判断是否存在缺失数据或异常数据,若不存在,则进入步骤s44;若存在则重复步骤s42,直到更新后的所要预测数据所在日期的前3天的虚拟机资源运行的数据无缺失数据或异常数据,进入步骤s44;s44:利用步骤s2采用的主成分分析法对步骤s43得到的数据降维,得到预处理后的所要预测数据所在日期的前3天的虚拟机资源运行的数据。最后说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的宗旨和范围,其均应涵盖在本发明的权利要求范围当中。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1