CN111913803B - 一种基于akx混合模型的服务负载细粒度预测方法 - Google Patents
一种基于akx混合模型的服务负载细粒度预测方法 Download PDFInfo
- Publication number
- CN111913803B CN111913803B CN202010708031.8A CN202010708031A CN111913803B CN 111913803 B CN111913803 B CN 111913803B CN 202010708031 A CN202010708031 A CN 202010708031A CN 111913803 B CN111913803 B CN 111913803B
- Authority
- CN
- China
- Prior art keywords
- service load
- model
- arima
- data
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 94
- YHXISWVBGDMDLQ-UHFFFAOYSA-N moclobemide Chemical compound C1=CC(Cl)=CC=C1C(=O)NCCN1CCOCC1 YHXISWVBGDMDLQ-UHFFFAOYSA-N 0.000 claims abstract description 66
- 238000012937 correction Methods 0.000 claims abstract description 30
- 238000012549 training Methods 0.000 claims abstract description 25
- 230000008569 process Effects 0.000 claims abstract description 20
- 238000004364 calculation method Methods 0.000 claims abstract description 19
- 241001123248 Arma Species 0.000 claims abstract description 17
- 238000001914 filtration Methods 0.000 claims abstract description 17
- 238000007781 pre-processing Methods 0.000 claims abstract description 14
- 238000012544 monitoring process Methods 0.000 claims abstract description 8
- 238000004458 analytical method Methods 0.000 claims abstract description 6
- 239000011159 matrix material Substances 0.000 claims description 33
- 238000001514 detection method Methods 0.000 claims description 27
- 238000010586 diagram Methods 0.000 claims description 24
- 230000006870 function Effects 0.000 claims description 15
- 238000012360 testing method Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 9
- 230000002238 attenuated effect Effects 0.000 claims description 7
- 238000004422 calculation algorithm Methods 0.000 claims description 4
- 230000003247 decreasing effect Effects 0.000 claims description 4
- 238000007689 inspection Methods 0.000 claims description 4
- 238000005457 optimization Methods 0.000 claims description 4
- 238000001583 randomness test Methods 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 4
- 230000000007 visual effect Effects 0.000 claims description 4
- 239000004480 active ingredient Substances 0.000 claims description 3
- 238000009795 derivation Methods 0.000 claims description 3
- 230000008901 benefit Effects 0.000 description 5
- 238000010801 machine learning Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 101000614599 Homo sapiens Jerky protein homolog Proteins 0.000 description 3
- 102100040507 Jerky protein homolog Human genes 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000012300 Sequence Analysis Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000033764 rhythmic process Effects 0.000 description 1
- 238000012731 temporal analysis Methods 0.000 description 1
- 238000000700 time series analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5019—Workload prediction
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明是一种基于AKX混合模型的服务负载细粒度预测方法。本发明属于服务计算技术领域。采集服务运行监控过程中产生的数据进行预处理,对数据集进行白噪声和稳定性检测构建ARMA模型;建立ARIMA模型采用Kalman滤波方法对模型预测值进行在线实时校正,有效处理非线性残差;引入XGBoost方法对服务负载历史数据进行离线自回归预测训练分析,并与实际服务负载数据进行差值计算,将差值结果与基于混合模型的预测值进行拟合,获得最终的服务负载预测结果。本发明相对于现有预测方法,在资源受限和负载高发背景下,具有更高预测精度和较低时延,更好地满足的任务突发背景下指控系统对服务有效性、可靠性以及高资源利用率要求。
Description
技术领域
本发明涉及服务计算技术领域,是一种基于AKX混合模型的服务负载细粒度预测方法。
背景技术
当前,国际形势跌宕起伏、复杂多变,军事战争风险与挑战依然严峻。未来新型战争具有高速度、大机动、快节奏以及协同作战等特点,作为整个战场中枢的指挥控制系统掌控着战争的态势和成败,同时也面临着任务突发、态势幻测和高效协同等新挑战。微服务技术是当前指控系统的主要系统架构和主流实现方式,通过对历史数据的分析进行微服务负载预测是保证服务的有效性、可靠性以及高资源利用率的重要方法。如何在资源受限和负载高发背景下,顺利实施遂行作战任务并高效实现作战目标,对指控系统中服务负载预测的精度、时延和粒度等提出了更高的要求,现有方法大多存在模型单一、或缺乏预测结果的有效实时校正、或忽略对大量历史数据的有效分析利用等问题,无法很好地满足的一定背景下指控系统对高精度和低时延要求。
服务负载具有时变、复杂、不确定和非线性等特性,同时与时间有很强的关联性。主流的服务负载预测技术主要包括时间序列分析、机器学习、预测校正、马尔科夫模型等,核心步骤分为数据采集、数据预处理、建立模型、预测校正等。上述方法中,基于时间序列分析的服务负载预测是主要方法之一,主要包括AR模型、MA模型、ARMA模型和ARIMA模型等方法,具有简单、快速等特点,是短期预测方面的高效方法,但因建模样本长度、非平稳性数据等因素导致存在部分精度损失。基于机器学习的负载预测是当前流行的重要方法,主要有SVM、神经网络、贝叶斯等模型,具有数据预处理简单、预测精度高等优势,但需要较大样本数据和较高的算力,大多存在时延高、资源占用率高等问题。预测校正是提高预测精度的关键技术,常用的包括基于最小二乘参数估计、多维自适应机制以及卡尔曼滤波(Kalman)等方法,其中卡尔曼滤波方法是预测结果高效实时校正领域的核心方法之一,有着更加有效和广泛的应用。
时间序列分析是服务负载预测的主要方法之一。因在服务运行过程中其产生的数据存在离散性、多样性,但与时间之间存在相应的联系,并会随着时间的变化而变化,因此可通过时间序列模型建立一个服务负载与时间之间的关系模型,以来预测出服务负载的变化情况。本发明主要采用时间序列ARIMA模型,由于服务负载属性值数据存在平稳性和不平稳性,而ARIMA模型可以将不平稳时间序列经差分转换为平稳序列。基于ARIMA模型能够以较低的时延快速地对服务负载随时间的变化趋势进行初步有效预测。
对离线的历史数据进行机器学习训练是提高服务预测精度的重要方法之一,由于在时间序列经平稳性检测和白噪声检测后,去除了相关噪声数据,但相关的噪声数据也将会对预测的精度存在相应的影响,因此本发明通过XGBoost方法,将在离线状态下对已产生的服务负载历史数据进行自回归机器学习,并将最终学习的结果与经ARIMA-Kalman预测方法进行融合,降低因数据处理带来的精度误差影响。
发明内容
本发明为解决已有服务负载预测方法,存在模型单一、或缺乏预测结果的有效实时校正、或忽略对大量历史数据的有效分析利用等问题,无法很好地满足的一定背景下指控系统对高精度和低时延要求等问题。本发明首先利用ARIMA和Kalman拟合,可以准确、快速、自适应地在线实时预测出服务负载的值,使系统可以快速预警,并做出正确的判断和处理能力;为能够有效地降低因数据带来的误差,将引入XGBoost方法进行离线的面向服务负载历史数据预测,以来消除因数据预处理过程中存在的残差数据带来的服务负载预测精度问题,以更加全面的提高服务负载预测精度,本发明提供了一种基于AKX混合模型的服务负载细粒度预测方法,本发明提供了以下技术方案:
一种基于AKX混合模型的服务负载细粒度预测方法,包括以下步骤:
步骤1:采集服务运行监控过程中产生的在线实时数据,并对采集到的服务负载数据进行数据的预处理,得到在线实时的服务负载数据集;
步骤2:对采集到的服务负载数据集进行白噪声检测,以确保服务负载数据集的可用性;
步骤3:对已经过白噪声检测的服务负载数据进行基于观察时间序列法的平稳性检测,并对不平稳序列进行差分计算直至平稳,最终确定参数d的阶数。
步骤4:经平稳性检测后d的阶已数确定,则通过ARMA建立面向服务负载时间序列数据集的实时在线ARMA模型;
步骤5:根据建立的ARMA模型,识别AR模型或MA模型,确认ARIMA(d,p,q)模型中阶层p和阶数q的参数,并最终建立ARIMA(d,p,q)模型;
根据建立的ARMA模型,识别AR模型或MA模型,最终建立ARIMA(d,p,q)模型;
步骤6:对拟合后的ARIMA(d,p,q)模型利用基于残差序列的随机性进行模型检验,并根据检验结果判断该模是否可在线实时预测或还需进行模型的改进。
步骤7:将建立的ARIMA(d,p,q)模型进行基于卡尔曼滤波的校正处理,根据其时间和状态更新方程校正因ARIMA方法中非平稳序列数据精度损失以及非线性引起的残差等问题,最终得到ARIMA-Kalman混合)模型的在线实时服务负载预测结果;
步骤8:通过基于XGBoost自回归模型对服务负载历史数据进行离线服务负载预测,并将其结果与实际服务负载历史数据值进行差值计算。;
步骤9:将基于XGBoost自回归的服务负载历史数据的离线预测结果与实际服务负载历史数据计算的差值与基于ARIMA-Kalman的服务负载在线实时预测结果进行校正拟合。
优选地,所述步骤1具体为:
采集服务运行监控过程中的服务负载数据,包括CPU利用率、内存利用率,并对采集到的CPU利用率和内存利用率进行数据预处理,将数据中的噪声进行去除处理,最终得到服务负载数据集。
优选地,所述步骤2具体为:
根据采集到的服务负载数据集,采用白噪声检测对服务负载数据集进行检测,确保数据的可用性,得到高可用的服务负载数据集;
优选地,所述步骤3具体为:
将经白噪声检测后的高可用服务负载数据集进行基于观察法的稳定性检测,根据直观观察服务负载数据集的时间序列图来判断其是否稳定,平稳序列的图围绕某常数上下波动,x轴为时间变量,y轴为服务负载属性值;
不平稳序列图与平稳序列图是相反的,有增长或减少的趋势,x轴为时间变量,y轴为服务负载属性值。
经判断后若该序列不平稳,则进行d阶差分计算,使得服务负载时间序列为平稳序列,则确定ARIMA模型中d的阶数。
优选地,所述步骤4具体为:
经对服务负载原时间序列平稳性检测后,通过d阶差分使得服务负载时间序列是平稳序列,d的阶数已确定,则由建立ARIMA模型转换为建立ARMA模型,通过下式表示平稳序列:
其中,Zt为平稳序列;at为白噪声序列;φi,θj为模型参数,p,q分别为自回归阶数和移动平均阶数。
优选地,所述步骤5具体为:
根据建立的ARMA模型,识别AR模型或MA模型,根据服务负载时间序列的自相关系数和偏自相关系数的规律表进行判断,当自相关图中曲线衰减的同时,偏自相关图中的曲线截断,则AR模型适用;当自相关图中曲线截断的同时,偏自相关图中曲线衰减,MA模型适用;确定ARIMA(d,p,q)模型中的阶层p和阶数q的参数,在ARIMA(d,p,q)模型中通过对自相关图和偏自相关图的分析两者的拖尾特征和截尾特征,得到最佳的阶层p和阶数q,至此ARIMA(d,p,q)模型中的参数全部确定,则基于ARIMA模型的服务负载在线实时预测模型已建立。
优选地,所述步骤6具体为:
将得到的ARIMA(d,p,q)模型进行基于残差序列的随机性检验,根据服务负载数据的原时间序列和经过服务负载拟合的结果序列进行差值计算并构成残差序列,当残差序列具有随机性时,则该模型检验通过,则根据此模型进行面向服务负载的实时预测;反之若不具有随机性,则返回步骤4。
优选地,所述步骤7具体为:
将基于ARIMA的服务负载预测模型以数值形式输入到Kalman中进行校正,并将观测到的新服务负载数据值输入到Kalman中,不断得进行状态优化更新,则通过下式表示卡尔曼滤波的时间更新方程:
其中,A为作用在Xk-1上的n×n状态变换矩阵;为第k步的先验状态估计值,B为作用在控制向量uk-1上的n×1输入控制矩阵;为先验估计误差的协方差矩阵;
通过下式卡尔曼滤波的状态观测更新方程:
其中,H为m×n观测模型矩阵,Pk为n×n后验估计误差协方差矩阵;Q为n×n过程噪声协方差矩阵,R为m×m过程噪声协方差矩阵,I为n×n阶单位矩阵,Kk为卡尔曼增益或混合因数;
通过基于Kalman的校服务负载预测校正,在一定程度上降低基于ARIMA模型引起的非线性残差问题,最终得到基于ARIMA-Kalman的服务负载预测结果。
优选地,所述步骤8具体为:
在面向历史服务负载数据的XGBoost自回归离线预测模型中,首先对历史服务负载数据进行划分,分为训练集和测试集,调用Sklearn数据集划分函数train_test_split实现对数据集的划分,划分比例拟设置为0.3,训练集占数据集的70%,测试集占数据集的30%;
训练得到XGBoost回归模型,将训练集应用到XGBoost算法当中,得到CPU利用率、内存利用率与响应时间之间的回归模型,训练步骤如下:
基于数据集进行初始化,通过下式表示初始化后的数据:
其中,为初始化后的数据,xi为样本集中第i个样例,f0为初始树;,fk表示第k棵树,表示组合t棵树模型对样本xi的预测结果
根据的预测模型递归得向模型中加树,在不断优化目标损失函数,通过下式表示优化目标损失函数Obj:
其中,是样本训练所产生的误差,Ω(fi)表示树的复杂度,T为叶子的个数,γ、λ表示惩罚系数,w为叶子结点的取值,通过求导使损失函数值最小,得到最优化服务负载预测模型,进一步得到基于XGBoost的离线服务负载预测结果。
优选地,所述步骤9具体为:
将基于ARIMA-Kalman模型的在线实时服务负载预测结果和基于XGBoost的离线服务负载预测结进行融合,令基于ARIMA-Kalman模型的在线实时服务负载预测结果设为A,将实际历史服务负载数据则设为RD,将基于XGBoost的离线服务负载预测值设为H,则实际历史服务负载数据值与基于XGBoost的离线服务负载预测结果之间的差值设为V,将其与基于ARIMA-Kalman模型的在线实时服务负载预测结果A相结合,得到最终服务负载预测结果P,通过下式表示最终服务负载预测结果P:
P=A+V
V=RD-H。
本发明具有以下有益效果:
本发明从多角度进行服务负载预测和校正,首先通过时间序列ARIMA模型对服务负载进行在线实时预测,进而将其预测值输入卡尔曼滤波中进行预测校正,通过考虑历史服务负载数据的价值和在数据预处理过程中存在的数据误差,将在离线对服务负载历史数据进行XGBoost自回归机器学习,以更全面对服务负载预测进行校正,这与本发明预期目标一致。
本发明相对于现有服务负载预测方法,具有高精度且结构清晰的优势;相对于传统时间序列方法,具有更好的数据处理能力,以及动态优化更新的优势;相对于ARIMA和卡尔曼滤波结合的方法,有设计清晰的优势。
附图说明
图1为服务负载预测综合架构图;
图2为服务负载预测整体流程图;
图3为ARIMA建模流程图;
图4为基于ARIMA-Kalman的在线实时服务负载预测流程图;
图5为Kalman处理流程图;
图6为面向服务负载历史数据的XGBoost离线预测校正框架图。
具体实施方式
以下结合具体实施例,对本发明进行了详细说明。
具体实施例一:
本发明提供一种基于AKX混合模型的服务负载细粒度预测方法,具体为:
一种基于AKX混合模型的服务负载细粒度预测方法,包括以下步骤:
步骤1:
采集服务运行监控过程中产生的在线实时数据,并对采集到的服务负载数据进行数据的预处理,得到在线实时的服务负载数据集;
所述步骤1具体为:
采集服务运行监控过程中的服务负载数据,包括CPU利用率、内存利用率,并对采集到的CPU利用率和内存利用率进行数据预处理,将数据中的噪声进行去除处理,最终得到服务负载数据集。
步骤2:对收集到服务负载数据集进行白噪声检测,确保服务负载数据集的可用性;
所述步骤2具体为:
根据采集到的服务负载数据集,采用白噪声检测对服务负载数据集进行检测,确保数据的可用性,得到可用的服务负载数据集;
步骤3:对已经过白噪声检测的服务负载数据进行基于观察时间序列法的平稳性检测,并对不平稳序列进行差分计算直至平稳,最终确定参数d的阶数。
所述步骤3具体为:
将经白噪声检测后的高可用服务负载数据集进行基于观察法的稳定性检测,根据直观观察服务负载数据集的时间序列图来判断其是否稳定,平稳序列的图围绕某常数上下波动,x轴为时间变量,y轴为服务负载属性值;
不平稳序列图与平稳序列图是相反的,有增长或减少的趋势,x轴为时间变量,y轴为服务负载属性值。
经判断后若该序列不平稳,则进行d阶差分计算,使得服务负载时间序列为平稳序列,则确定ARIMA模型中d的阶数。步骤4:
经平稳性检测后d的阶已数确定,则通过ARMA建立面向服务负载时间序列的在线实时预测模型;
所述步骤4具体为:
经对服务负载原时间序列平稳性检测后,通过d阶差分使得服务负载时间序列是平稳序列,d的阶数已确定,则由建立ARIMA模型转换为建立ARMA模型,通过下式表示平稳序列:
其中,Zt为平稳序列;at为白噪声序列;φi,θj为模型参数,p,q分别为自回归阶数和移动平均阶数。步骤5:根据建立的ARMA模型,识别AR模型或MA模型,确认ARIMA(d,p,q)模型中阶层p和阶数q的参数,最终建立ARIMA(d,p,q)模型;
所述步骤5具体为:
根据建立的ARMA模型,识别AR模型或MA模型,根据服务负载时间序列的自相关系数和偏自相关系数的规律表进行判断,当自相关图中曲线衰减的同时,偏自相关图中的曲线截断,则AR模型适用;当自相关图中曲线截断的同时,偏自相关图中曲线衰减,MA模型适用;
确定ARIMA(d,p,q)模型中的阶层p和阶数q的参数,在ARIMA(d,p,q)模型中通过对自相关图和偏自相关图分析两者的拖尾特征和截尾特征,得到最佳的阶层p和阶数q,至此ARIMA(d,p,q)模型中的参数全部确定,则基于ARIMA模型的服务负载在线实时预测模型已建立。
步骤6:
对拟合后的ARIMA(d,p,q)模型利用基于残差序列的随机性进行模型检验,并根据检验结果判断该模是否可在线实时预测或还需进行模型的改进。
所述步骤6具体为:
将得到的ARIMA(d,p,q)模型进行基于残差序列的随机性检验,根据服务负载数据的原时间序列和经过服务负载拟合的结果序列进行差值计算并构成残差序列,当残差序列具有随机性时,则该模型检验通过,则根据此模型进行面向服务负载的实时预测;反之若不具有随机性,则返回步骤4。
步骤7:
将建立的ARIMA模型进行基于卡尔曼滤波的校正处理,根据其时间和状态更新方程校正因ARIMA方法中非平稳序列数据精度损失以及非线性引起的残差等问题,最终得到ARIMA-Kalman混合)模型的在线实时服务负载预测结果;
所述步骤7具体为:,将基于ARIMA的服务负载预测模型以数值形式输入到Kalman中进行校正,并将观测到的新服务负载数据值输入到Kalman中,不断得进行状态优化更新,通过下式表示卡尔曼滤波的时间更新方程:
其中,A为作用在Xk-1上的n×n状态变换矩阵;为第k步的先验状态估计值,B为作用在控制向量uk-1上的n×1输入控制矩阵;为先验估计误差的协方差矩阵;
通过下式卡尔曼滤波的状态观测更新方程:
其中,H为m×n观测模型矩阵,Pk为n×n后验估计误差协方差矩阵;Q为n×n过程噪声协方差矩阵,R为m×m过程噪声协方差矩阵,I为n×n阶单位矩阵,Kk为卡尔曼增益或混合因数;
确定非线性引起的残差,得到ARIMA(d,p,q)模型的服务负载预测结果。
步骤8:
通过基于XGBoost自回归模型对服务负载历史数据进行离线服务负载预测,并将其结果与实际服务负载历史数据值进行差值计算。;所述步骤8具体为:
在面向历史服务负载数据的XGBoost自回归离线预测模型中,首先对历史服务负载数据进行划分,分为训练集和测试集,调用Sklearn数据集划分函数train_test_split实现对数据集的划分,划分比例拟设置为0.3,训练集占数据集的70%,测试集占数据集的30%;
训练得到XGBoost回归模型,将训练集应用到XGBoost算法当中,得到CPU利用率、内存利用率与响应时间之间的回归模型,训练步骤如下:
基于数据集进行初始化,通过下式表示初始化后的数据:
其中,为初始化后的数据,xi为样本集中第i个样例,f0为初始树;,fk表示第k棵树,表示组合t棵树模型对样本xi的预测结果
根据的预测模型递归得向模型中加树,在不断优化目标损失函数,通过下式表示优化目标损失函数Obj:
其中,是样本训练所产生的误差,Ω(fi)表示树的复杂度,T为叶子的个数,γ、λ表示惩罚系数,w为叶子结点的取值,通过求导使损失函数值最小,得到最优化服务负载预测模型,进一步得到基于XGBoost的服务负载预测结果。
步骤9:
将基于XGBoost自回归的服务负载历史数据的离线预测结果与实际服务负载历史数据计算的差值与基于ARIMA-Kalman的服务负载在线实时预测结果进行校正拟合。所述步骤9具体为:
将基于ARIMA-Kalman模型的在线实时服务负载预测结果和基于XGBoost的离线服务负载预测结进行融合,令基于ARIMA-Kalman模型的在线实时服务负载预测结果设为A,将实际历史服务负载数据则设为RD,将基于XGBoost的离线服务负载预测值设为H,则实际历史服务负载数据值与基于XGBoost的离线服务负载预测结果之间的差值设为V,将其与基于ARIMA-Kalman模型的在线实时服务负载预测结果A相结合,得到最终服务负载预测结果P,通过下式表示最终服务负载预测结果P:
P=A+V
V=RD-H。
具体实施例二:
从图1可以看出,采用本发明给出的方法,将从多角度进行在线实时服务负载预测和基于Kalman的校正以及利用历史服务负载数据的XGBoost离线预测校正,首先通过时间序列ARIMA模型对服务负载进行在线实时服务负载预测,进而将基于ARIMA模型的服务负载预测值输入Kalman中进行预测校正,考虑历史服务负载数据的价值和数据预处理过程因不平稳序列经差分计算所引起的数据精度问题,以及ARIMA模型中非线性部分引起的残差问题,将离线对服务负载历史数据进行XGBoost自回归机器学习,以更全面对基于ARIMA-Kalman模型的在线实时服务负载预测进行校正,这与本发明预期目标一致。
第一步、数据选取及预处理。
由于在对服务运行监控过程中产生大量的数据,其中包含一些数据噪声会影响本发明的预测精度,因此本发明首先选取本发明所需的相关服务负载属性即为:CPU利用率、内存利用率,再将其数据记录中相关数据噪声数据进行预处理以得到低噪高可用性的服务负载数据集。
第二步、对预处理后的服务负载数据集进行白噪声检测。
利用第一步得到预处理后的服务负载数据集,采用白噪声检测对该服务负载数据集进行检测,以确保数据的高可用性。
第三步、稳定性检测。
将第二步得到的高可用性的服务负载数据集进行稳定性检测。根据直观观察其时间序列图来判断其是否稳定。平稳序列的图是围绕某常数上下波动,其x轴为时间变量,y轴为该时刻的服务负载属性值;不平稳序列图与平稳序列图是相反的,有明显的增长或减少的趋势,其x轴为时间变量,y轴为该时刻的服务负载属性值。经判断后若该序列不平稳,则进行d阶差分计算,使得服务负载时间序列为平稳序列,则确定ARIMA模型中d的阶数。
第四步、模型选择与建模。根据第三步对服务负载数据集的稳定性检测,经对服务负载原时间序列平稳性检测后,通过d阶差分使得服务负载时间序列是平稳序列且d的阶数已确定,则将ARIMA(p,d,q)模型转换为ARMA(p,q)模型。其基本公式如下所示:
其中,Zt为平稳序列;at为白噪声序列;φi,θj为模型参数,p,q分别为自回归阶数和移动平均阶数
第五步、识别AR/MA及确定参数。
根据第四步,对服务负载平稳时间序列进一步判断是否满足相关模型。其识别方法是根据序列的自相关系数(ACF)和偏自相关系数(PACF)的规律表进行判断。当自相关图中曲线衰减的同时、偏自相关图中的曲线截断,则AR模型适用;若自相关图中曲线截断的同时、偏自相关图中曲线衰减,MA模型适用。
根据图3所示,ARIMA(d,p,q)中通过对自相关图和偏自相关图的分析两者的拖尾特征和截尾特征,得到最佳的阶层p和阶数q;d在时间序列稳定性检测过程中已经确定,至此ARIMA(d,p,q)模型中的参数全部确定,则基于ARIMA模型的服务负载在线实时预测模型已建立。
第六步、模型拟合和检验
根据前五步的数据和模型的处理,将得到模型进行基于残差序列的随机性检验,即根据服务负载数据的原时间序列和经过服务负载拟合的结果序列进行差值计算并构成残差序列,若该残差序列具有随机性,则建立的模型可进行面向服务负载的预测,反之若不具有随机性,则该模型的建立需要改进,则重返第四步对本模型进一步改进。当该模型检验通过后,则根据此模型进行面向服务负载的实时预测。
第七步、Kalman预测校正
根据前六步的处理后得到由ARIMA建立起的服务负载时间序列模型,并将其以数值形式作为卡尔曼滤波预测校正的输入,并根据Kalman处理流程进行预测,如图4所示。并将不断观测到的新的服务负载数据值输入到Kalman中,其目的是将状态不断得进行优化更新,其具体流程及公式如图5所示。
根据图5所示,其中分为“时间更新方程”和“状态(观测)更新方程”。
时间更新方程为:
对时间更新方程做以下说明:(1)在第k步之前的状态已知的情况下,第k步的先验状态估计值(-代表先验,代表估计);(2)测量变量Zt已知情况下第k步的后验状态估计值。(3)A:作用在Xk-1上的n×n状态变换矩阵;(4)B:作用在控制向量Uk-1上的n×1输入控制矩阵;(5)为先验估计误差的协方差矩阵。
状态(观测)更新方程:
对状态(观测)更新方程做一下说明:
(1)H:m×n观测模型矩阵;
(2)为n×n先验估计误差协方差矩阵;
(3)Pk:为n×n后验估计误差协方差矩阵;
(4)Q:n×n过程噪声协方差矩阵
(5)R:m×m过程噪声协方差矩阵
(6)I:n×n阶单位矩阵
(7)Kk:n×m阶矩阵,称为卡尔曼增益或混合因数。
第八步、面向离线状态的XGBoost历史服务负载数据预测校正
首先将预处理后的历史服务负载数据进行划分,分为训练集和测试集。调用Sklearn数据集划分函数train_test_split实现对数据集的划分,划分比例拟设置为0.3,即训练集占数据集的70%,测试集占数据集的30%;
然后训练得到XGBoost回归模型。将训练集应用到XGBoost算法当中,得到CPU利用率、内存利用率与响应时间之间的回归模型。训练步骤如下:
首先基于数据集进行初始化:
按照预测模型递归得向模型中加树,其中xi是样本集中第i个样例,fk表示第k棵树,其中表示组合t棵树模型对样本xi的预测结果。
在建立模型的过程当中不断优化目标损失函数:
其中,是样本训练所产生的误差,Ω(fi)表示树的复杂度,即
其中T表示叶子的个数,γ、λ表示惩罚系数,w为叶子结点的取值。通过求导使损失函数值最小,得到最优化服务负载预测模型。
就九步、数据融合
时间序列是由线性(L)和非线性(NL)两部分组合,通过采用ARIMA模型对时间时间序列预测,其结果与原时间序列间存在残差即为非线性部分(NL),通过基于ARIMA在线实时服务负载预测的结果值作为卡尔曼滤波的输入在并结合新观测的服务负载数据在一定程度上校正由非线性(NL)引起的残差问题,将其最终服务负载预测结果假设为A。但由于历史数据中依旧存在没有考虑的残差数据,因此利用XGBoost方法对历史数据进行训练,则此时实际数据则设为RD,则利用XGBoost方法训练出的模型预测值设为H。则实际与基于XGBoost预测结果之间的差值设为V,则V=RD-H,将此差值与基于ARIMA-Kalman的在线实时服务负载预测值进行拟合,则其最终服务负载预测结果P为:P=A+V。数据拟合过程如图2所示,面向离线状态的XGBoost历史服务负载数据预测校正框架如图6所示。
由图1可知,本发明方法相对于传统的基于时间序列预测服务负载方法,具有同步误差小的优势;相对于基于ARIMA和卡尔曼滤波预测服务负载的方法,具有较全面的校正过程,降低了使得因数据误差引起的精度问题;相较于传统的时间序列和卡尔曼滤波的服务负载预测方法,有更全面的、更有针对性的分析与计算。
以上所述仅是一种基于AKX混合模型的服务负载细粒度预测方法的优选实施方式,一种基于AKX混合模型的服务负载细粒度预测方法的保护范围并不仅局限于上述实施例,凡属于该思路下的技术方案均属于本发明的保护范围。应当指出,对于本领域的技术人员来说,在不脱离本发明原理前提下的若干改进和变化,这些改进和变化也应视为本发明的保护范围。
Claims (9)
1.一种基于AKX混合模型的服务负载细粒度预测方法,其特征是:包括以下步骤:
步骤1:采集服务运行监控过程中产生的数据,并对采集到的数据进行预处理,得到服务负载数据集;
步骤2:对收集到服务负载数据集进行白噪声检测,确保服务负载数据集的可用性;
步骤3:对已经过白噪声检测的服务负载数据进行基于观察时间序列法的平稳性检测,并对不平稳序列进行差分计算直至平稳,最终确定参数d的阶数;
步骤4:根据平稳性检测和d阶数确定后的平稳服务负载时间序列,建立ARMA模型;
步骤5:根据建立的ARMA模型,识别AR模型或MA模型,并确认ARIMA(d,p,q)模型中阶层p和阶数q的模型参数,进而建立ARIMA(d,p,q)模型;
步骤6:对拟合后的ARIMA(d,p,q)模型利用基于残差序列的随机性进行模型检验,并根据检验结果判断该模型是否可在线实时预测或还需进行模型的改进;
步骤7:将ARIMA(d,p,q)模型通过基于Kalman校正处理,根据其时间和状态更新方程校正因ARIMA方法中非平稳序列数据精度损失以及非线性引起的残差问题,最终得到ARIMA-Kalman混合模型的在线实时服务负载预测结果;
步骤8:通过基于XGBoost自回归模型对服务负载历史数据进行离线服务负载预测,并将其结果与实际服务负载历史数据值进行差值计算;
步骤9:将基于XGBoost自回归的服务负载历史数据的离线预测结果与实际服务负载历史数据计算的差值,并与基于ARIMA-Kalman的服务负载在线实时预测结果进行校正拟合;
所述步骤9具体为:
将基于ARIMA-Kalman模型的在线实时服务负载预测结果和基于XGBoost的离线服务负载预测结进行融合,令基于ARIMA-Kalman模型的在线实时服务负载预测结果设为A,将实际历史服务负载数据则设为RD,将基于XGBoost的离线服务负载预测值设为H,则实际历史服务负载数据值与基于XGBoost的离线服务负载预测结果之间的差值设为V,将其与基于ARIMA-Kalman模型的在线实时服务负载预测结果A相结合,得到最终服务负载预测结果P,通过下式表示最终服务负载预测结果P:P=A+V
V=RD-H。
2.根据权利要求1所述的一种基于AKX混合模型的服务负载细粒度预测方法,其特征是:所述步骤1具体为:
采集服务运行监控过程中的服务负载数据,包括CPU利用率、内存利用率,并对采集到的CPU利用率和内存利用率进行数据预处理,将数据中的噪声进行去除处理,最终得到服务负载数据集。
3.根据权利要求1所述的一种基于AKX混合模型的服务负载细粒度预测方法,其特征是:所述步骤2具体为:
根据采集到的服务负载数据集,采用白噪声检测对服务负载数据集进行检测,确保数据的可用性,得到可用的服务负载数据集。
4.根据权利要求1所述的一种基于AKX混合模型的服务负载细粒度预测方法,其特征是:所述步骤3具体为:
将经白噪声检测后的高可用服务负载数据集进行基于观察法的稳定性检测,根据直观观察服务负载数据集的时间序列图来判断其是否稳定,平稳序列的图围绕某常数上下波动,x轴为时间变量,y轴为服务负载属性值;
不平稳序列图与平稳序列图是相反的,有增长或减少的趋势,x轴为时间变量,y轴为服务负载属性值;
经判断后若该序列不平稳,则进行d阶差分计算,使得服务负载时间序列为平稳序列,则确定ARIMA模型中d的阶数。
5.根据权利要求1所述的一种基于AKX混合模型的服务负载细粒度预测方法,其特征是:所述步骤4具体为:
经对服务负载原时间序列平稳性检测后,通过d阶差分使得服务负载时间序列是平稳序列,d的阶数已确定,则由建立ARIMA模型转换为建立ARMA模型,通过下式表示平稳序列:
其中,Zt为平稳序列;at为白噪声序列;φi,θj为模型参数,p,q分别为自回归阶数和移动平均阶数。
6.根据权利要求1所述的一种基于AKX混合模型的服务负载细粒度预测方法,其特征是:所述步骤5具体为:
根据建立的ARMA模型,识别AR模型或MA模型,根据序列的自相关系数和偏自相关系数的规律表进行判断,当自相关图中曲线衰减的同时,偏自相关图中的曲线截断,则AR模型适用;当自相关图中曲线截断的同时,偏自相关图中曲线衰减,MA模型适用;
确定ARIMA(d,p,q)模型中的阶层p和阶数q的参数,在ARIMA(d,p,q)模型中通过对自相关图和偏自相关图的分析两者的拖尾特征和截尾特征,得到最佳的阶层p和阶数q,至此ARIMA(d,p,q)模型中的参数全部确定,则基于ARIMA模型的服务负载在线实时预测模型已建立。
7.根据权利要求1所述的一种基于AKX混合模型的服务负载细粒度预测方法,其特征是:所述步骤6具体为:
将得到的ARIMA(d,p,q)模型进行基于残差序列的随机性检验,根据服务负载数据的原时间序列和经过服务负载拟合的结果序列进行差值计算并构成残差序列,当残差序列具有随机性时,则该模型检验通过,则根据此模型进行面向服务负载的实时预测;反之若不具有随机性,则返回步骤4。
8.根据权利要求1所述的一种基于AKX混合模型的服务负载细粒度预测方法,其特征是:所述步骤7具体为:
将基于ARIMA的服务负载预测模型以数值形式输入到Kalman中进行校正,并将观测到的新服务负载数据值输入到Kalman中,不断得进行状态优化更新,通过下式表示卡尔曼滤波的时间更新方程:
其中,A为作用在Xk-1上的n×n状态变换矩阵;为第k步的先验状态估计值,B为作用在控制向量uk-1上的n×1输入控制矩阵;为先验估计误差的协方差矩阵;
通过下式卡尔曼滤波的状态观测更新方程:
其中,H为m×n观测模型矩阵,Pk为n×n后验估计误差协方差矩阵;Q为n×n过程噪声协方差矩阵,R为m×m过程噪声协方差矩阵,I为n×n阶单位矩阵,Kk为卡尔曼增益或混合因数;
通过基于Kalman的校服务负载预测校正,在一定程度上降低基于ARIMA模型引起的非线性残差问题,最终得到基于ARIMA-Kalman的服务负载预测结果。
9.根据权利要求1所述的一种基于AKX混合模型的服务负载细粒度预测方法,其特征是:所述步骤8具体为:
在面向历史服务负载数据的XGBoost自回归离线预测模型中,首先对历史服务负载数据进行划分,分为训练集和测试集,调用Sklearn数据集划分函数train_test_split实现对数据集的划分,划分比例拟设置为0.3,训练集占数据集的70%,测试集占数据集的30%;
训练得到XGBoost回归模型,将训练集应用到XGBoost算法当中,得到CPU利用率、内存利用率与响应时间之间的回归模型,训练步骤如下:
基于数据集进行初始化,通过下式表示初始化后的数据:
其中,为初始化后的数据,xi为样本集中第i个样例,f0为初始树;fk表示第k棵树,表示组合t棵树模型对样本xi的预测结果
根据的预测模型递归得向模型中加树,在不断优化目标损失函数,通过下式表示优化目标损失函数Obj:
其中,是样本训练所产生的误差,Ω(fi)表示树的复杂度,T为叶子的个数,γ、λ表示惩罚系数,w为叶子结点的取值,通过求导使损失函数值最小,得到最优化服务负载预测模型,进一步得到基于XGBoost的离线服务负载预测结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010708031.8A CN111913803B (zh) | 2020-07-21 | 2020-07-21 | 一种基于akx混合模型的服务负载细粒度预测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010708031.8A CN111913803B (zh) | 2020-07-21 | 2020-07-21 | 一种基于akx混合模型的服务负载细粒度预测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111913803A CN111913803A (zh) | 2020-11-10 |
CN111913803B true CN111913803B (zh) | 2023-12-29 |
Family
ID=73281682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010708031.8A Active CN111913803B (zh) | 2020-07-21 | 2020-07-21 | 一种基于akx混合模型的服务负载细粒度预测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111913803B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112560338B (zh) * | 2020-12-10 | 2022-03-25 | 东北大学 | 基于自适应深度学习的复杂工业系统智能预报方法、装置、设备及存储介质 |
JP7459014B2 (ja) | 2021-05-18 | 2024-04-01 | トヨタ自動車株式会社 | コンテナ管理装置、及びコンテナ管理プログラム |
CN113393325A (zh) * | 2021-05-21 | 2021-09-14 | 乐刷科技有限公司 | 交易检测方法、智能设备及计算机存储介质 |
CN113190429B (zh) * | 2021-06-03 | 2022-07-19 | 河北师范大学 | 服务器性能预测方法、装置及终端设备 |
CN113890716A (zh) * | 2021-10-26 | 2022-01-04 | 中国联合网络通信集团有限公司 | 一种识别pRRU的方法、装置及存储介质 |
CN113934615A (zh) * | 2021-12-15 | 2022-01-14 | 山东中创软件商用中间件股份有限公司 | 一种数据监控方法、装置及设备 |
CN114489944B (zh) * | 2022-01-24 | 2022-12-20 | 合肥工业大学 | 基于Kubernetes的预测式弹性伸缩方法 |
CN115202889B (zh) * | 2022-09-13 | 2022-12-09 | 阿里巴巴(中国)有限公司 | 计算资源调整方法及计算系统 |
CN115237610B (zh) * | 2022-09-26 | 2023-03-21 | 城云科技(中国)有限公司 | 一种基于Kubernetes容器云平台的弹性伸缩方法、装置及应用 |
CN116708030A (zh) * | 2023-08-04 | 2023-09-05 | 浙江大学 | 工业边缘计算网关及其协议流量监测方法、装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107742420A (zh) * | 2017-09-22 | 2018-02-27 | 北京交通大学 | 一种用于突发交通事件下道路交通流预测的方法 |
CN109787855A (zh) * | 2018-12-17 | 2019-05-21 | 深圳先进技术研究院 | 基于马尔可夫链和时间序列模型的服务器负载预测方法及系统 |
CN110245801A (zh) * | 2019-06-19 | 2019-09-17 | 中国电力科学研究院有限公司 | 一种基于组合挖掘模型的电力负荷预测方法及系统 |
CN111148118A (zh) * | 2019-12-18 | 2020-05-12 | 福建省南鸿通讯科技有限公司 | 基于时间序列的流量预测和载波关断方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105069535B (zh) * | 2015-08-19 | 2020-07-24 | 中国电力科学研究院 | 一种基于arima模型的配电网运行可靠性的预测方法 |
-
2020
- 2020-07-21 CN CN202010708031.8A patent/CN111913803B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107742420A (zh) * | 2017-09-22 | 2018-02-27 | 北京交通大学 | 一种用于突发交通事件下道路交通流预测的方法 |
CN109787855A (zh) * | 2018-12-17 | 2019-05-21 | 深圳先进技术研究院 | 基于马尔可夫链和时间序列模型的服务器负载预测方法及系统 |
CN110245801A (zh) * | 2019-06-19 | 2019-09-17 | 中国电力科学研究院有限公司 | 一种基于组合挖掘模型的电力负荷预测方法及系统 |
CN111148118A (zh) * | 2019-12-18 | 2020-05-12 | 福建省南鸿通讯科技有限公司 | 基于时间序列的流量预测和载波关断方法和系统 |
Non-Patent Citations (1)
Title |
---|
基于ARIMA-Kalman滤波混合模型的网络负载预测方法;王骞;曹菡;;东南大学学报(自然科学版)(第S1期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN111913803A (zh) | 2020-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111913803B (zh) | 一种基于akx混合模型的服务负载细粒度预测方法 | |
CN110149237B (zh) | 一种Hadoop平台计算节点负载预测方法 | |
CN107153874B (zh) | 水质预测方法及系统 | |
WO2021098384A1 (zh) | 一种数据异常检测方法及装置 | |
CN112800616A (zh) | 基于比例加速退化建模的设备剩余寿命自适应预测方法 | |
CN107220500B (zh) | 基于逆高斯过程的性能退化试验贝叶斯可靠性评估方法 | |
CN111290967A (zh) | 一种软件缺陷预测方法、装置、设备及存储介质 | |
CN113868953B (zh) | 工业系统中多机组运行优化方法、装置、系统及存储介质 | |
CN111178261A (zh) | 一种基于视频编码技术的人脸检测加速方法 | |
CN116244647A (zh) | 一种无人机集群的运行状态估计方法 | |
CN110348540B (zh) | 基于聚类的电力系统暂态功角稳定故障筛选方法及装置 | |
CN112365099B (zh) | 一种非确定性分离的web服务器集群伸缩方法 | |
CN114418420A (zh) | 基于因果推断的竞争风险生存分析方法 | |
CN118036809A (zh) | 基于雪消融优化循环神经网络的故障电流预测方法和介质 | |
CN117587403A (zh) | 基于化学转化的铝合金模板表面处理方法及系统 | |
CN112286169A (zh) | 一种工业机器人故障检测方法 | |
CN117034149A (zh) | 故障处理策略确定方法、装置、电子设备和存储介质 | |
CN111158918A (zh) | 支撑点并行枚举负载均衡方法、装置、设备及介质 | |
CN114202110B (zh) | 一种基于rf-xgboost的业务故障预测方法及装置 | |
CN114862092A (zh) | 一种基于神经网络的评标方法及设备 | |
CN114463268A (zh) | 一种基于贝叶斯深度学习的图像分析方法 | |
CN110309472B (zh) | 基于离线数据的策略评估方法及装置 | |
CN112732519A (zh) | 一种事件监控方法及装置 | |
JP2021012600A (ja) | 診断方法、学習方法、学習装置およびプログラム | |
CN111291020A (zh) | 基于局部加权线性动态系统的动态过程软测量建模方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |