1.本发明属于时间序列预测技术领域,具体涉及基于时间序列分割的云服务器性能衰退预测方法。
背景技术:
2.随着云计算技术的发展,云服务器使用越来越普遍。云服务器具有长期运行、高复杂性和资源交换频繁的特点,这增加了资源耗尽和软件系统出现异常和故障的风险。随着资源消耗的累积,云服务器系统会出现缓慢的性能下降,故障率增加甚至系统崩溃。系统性能衰退的主要原因包括操作系统资源的消耗、数据的破坏以及误差的积累。在重要系统,如军事国防、电信系统、金融系统、证券系统、商业等系统中,已经出现了软件性能衰退现象,影响整个业务系统的正常运行,给企业事业单位带来无可估量的经济损失。
3.常用应对系统性能衰退的手段是软件再生技术。该技术通过清理系统内部错误,在故障发生之前主动恢复系统。软件再生技术很大程度上取决于软件再生的时间。停机时间或者由此类操作引起的开销是不可忽略的,频繁的软件再生可能降低系统可用性。因此对软件性能衰退趋势的准确预测,计算性能衰退阈值,根据阈值确定再生时间,可以为系统预维护提供理论依据。
4.对系统性能衰退趋势进行预测时,需分析系统性能指标时间序列数据变化特征。通常需要结合时间序列的相似性度量方法,对时间序列进行分解,降低原时间序列的维度,然后预测时间序列变化趋势,以便实时发现和预测系统性能衰退模式。典型的时间序列分割算法有滑动窗口算法、自顶向下(top down,td)算法和自底向上(bottom up,bu)算法三种。时间序列分割方法常与时间序列相似性度量方法结合使用,如斜率偏离距离度量、动态时间弯曲算法(dynamic time warping,dtw)等。滑动窗口方法不能捕捉波动较大的原始时间序列变化信息。自顶向下td算法时间复杂度相对较高,且对噪声数据相对敏感。相比之下,自底向上bu算法不仅时间复杂度低,且对数据集有线性扩展性,分割效果较为良好。
5.此外,现有云服务器系统性能衰退趋势的预测方法,大多数为时间序列分析或智能算法。时间序列分析法采用循环神经网络、粒子滤波等模型进行趋势预测,模型简单,但所需数据量大且对于波动较大的数据预测精度较低。智能算法包括神经网络、支持向量机等,该类算法在预测时间序列数据时,预测精度亦不高。云服务器资源和性能数据具有非线性、随机性和突发性的特点,上述预测方法云服务器性能衰退的预测精度不高,并且容易出现过拟合现象。
技术实现要素:
6.本发明的目的是,提供基于动态时间弯曲dtw算法与自底向上bu算法相结合的时间序列分割dtw-bu算法,并利用深度学习模型长短期记忆(long short-term memory,lstm)来预测云服务器性能衰退趋势,最终根据预测得到的时间序列数据判定软件再生时机;本发明可提高云服务器性能衰退预测结果的精度,并避免预测过程出现过拟合现象,从
而为系统再生维护提供理论依据。
7.本发明所采用的技术方案是,基于时间序列分割的云服务器性能衰退预测方法,具体按以下步骤实施:
8.步骤1,将云服务器上的性能资源时间序列数据进行提取;
9.步骤2,将步骤1中得到的时间序列数据采用dtw-bu算法进行时间序列分割;
10.步骤3,将经步骤2分割后的子序列分别构建lstm模型,训练lstm模型,并对云服务器资源时间序列数据进行预测;
11.步骤4,将经步骤3训练后的子序列合并;
12.步骤5,使用均方根误差和平均绝对百分比误差验证模型精度;
13.步骤6,根据lstm模型的时间序列预测数据,对系统性能衰退趋势进行预测,检验数据的拟合程度,根据预测数据阈值判定软件再生的时间节点。
14.本发明的特点还在于:
15.其中步骤1中云服务器上的性能资源时间序列数据包括cpu空闲率数据和系统可用内存数据;
16.其中步骤2中分割过程具体为:
17.步骤2.1,云服务器性能衰退原始时间序列x=(x1,x2,
…
x
t
),长度为t,将时间序列x数据段两两连接,分割成t/2个分段;
18.步骤2.2,计算两两分段segi和segj的相似性度量dtw值,计算公式如下:
[0019][0020]
其中ω
t
表示第t个变量对应的权重值,且|α
ti-α
tj
|、|h
ti-h
tj
|和|d
i-dj|分别表示两个分段segi和segj在第t个变量上趋势、均值和时间跨度上的差异性,ε、λ和γ分别代表三者差异的权重值,同时有ε λ γ=1。这里dtw值越小,表明两个时间序列分段越相似;
[0021]
步骤2.3,循环地从中选择最小的dtw值,如果该最小值小于设定的分割阈值δ,则合并对应的两个分段segi和segj;
[0022]
步骤2.4,重复步骤2.1至步骤2.3,直到所有分段的dtw值均不小于分割阈值δ,分割结束;
[0023]
步骤2.5,得到序列x分割后的特征相似的d个子序列{seg1,seg2,
…
,segd}。
[0024]
其中步骤3具体按以下步骤实施:
[0025]
步骤3.1,原始数据转化,将云资源时间序列数据进行归一化;
[0026]
步骤3.2,生成模型训练数据集,确定训练集的窗口长度;
[0027]
步骤3.3,进行lstm网络模型结构的确定和调整;
[0028]
步骤3.4,对模型训练和结果预测;
[0029]
其中步骤5中验证过程具体为:将步骤3中预测结果与实际时间序列进行拟合验证预测精确度:
[0030]
对云服务器资源实际监测数据和模型预测数据进行均方根误差(rmse)和平均绝对百分比误差(mape)对比,计算公式如下所示:
[0031][0032][0033]
其中,actual(t)表示实际的时间序列数据;forecast(t)表示lstm模型预测的时间序列数据;rmse表示误差的平方的期望值;mape的值越小,预测模型拥有更好的精确度;
[0034]
将云服务器的性能资源时间序列数据按4:1的比例随机分为训练集和验证集;然后将时间序列数据作为参数导入模型得到预测数据,与实际的云资源时间序列相比得到拟合曲线;
[0035]
其中步骤6中根据lstm模型的云服务器资源时间序列预测数据阈值,从而判定进行软件再生的时间节点,为云服务器处于临近宕机时的状态,在此时选择进行软件再生操作以保持系统处于良好运行的状态。
[0036]
本发明的有益效果是:
[0037]
本发明采用dtw-bu时间序列分割算法和lstm模型结合的预测方法对云服务器衰退趋势进行预测,避免模型预测过程出现过拟合现象;克服了传统预测方法对非平稳时间序列数据和波动较大的时间序列数据预测准确度较低的局限性;从而能够更精确地预测云服务器性能衰退趋势,为软件再生操作提供准确执行的时间节点。
附图说明
[0038]
图1是本发明的基于时间序列分割的云服务器性能衰退预测方法的整体流程图;
[0039]
图2是本发明的基于时间序列分割的云服务器性能衰退预测方法中云服务器cpu空闲资源时间序列图;
[0040]
图3是本发明的基于时间序列分割的云服务器性能衰退预测方法中云服务器系统可用内存资源时间序列图;
[0041]
图4是本发明的基于时间序列分割的云服务器性能衰退预测方法中dtw-bu时间序列分割算法流程图;
[0042]
图5是本发明的基于时间序列分割的云服务器性能衰退预测方法中所用的lstm模型结构图。
具体实施方式
[0043]
下面结合附图和具体实施方式对本发明进行详细说明。
[0044]
本发明提供了基于时间序列分割的云服务器性能衰退预测方法,如图1所示,具体按以下步骤实施:
[0045]
步骤1,提取云服务器上性能资源时间序列数据,包括cpu空闲率数据和系统可用内存数据,时间序列数据具体如图2和图3所示。
[0046]
其中步骤2中分割过程具体为:首先对时间序列数据的预处理;将长度为t的时间序列数据点两两连接,划分成不重合的t/2个初始分段,并计算合并相邻分段的相似度dtw
值;然后循环地从中选择最小的dtw值,如果该最小值小于设定的分段阈值δ,则合并对应的两个分段,并计算新分段与它前后分段的dtw值;重复该过程,直到所有分段间的dtw值均不小于分段阈值,分割结束;由自下而上的将给定的序列分解为特征相似的子序列,每个分段被视为具有不同衰退程度的云服务器健康状态;如图4所示:
[0047]
步骤2.1,云服务器性能衰退原始时间序列x=(x1,x2,
…
x
t
),长度为t,将时间序列x数据段两两连接,分割成t/2个分段;
[0048]
步骤2.2,计算两两分段segi和segj的相似性度量dtw值,计算公式如下:
[0049][0050]
其中ω
t
表示第t个变量对应的权重值,且|α
ti-α
tj
|、|h
ti-h
tj
|和|d
i-dj|分别表示两个分段segi和segj在第t个变量上趋势、均值和时间跨度上的差异性,ε、λ和γ分别代表三者差异的权重值,同时有ε λ γ=1;这里dtw值越小,表明两个时间序列分段越相似;
[0051]
步骤2.3,循环地从中选择最小的dtw值,如果该最小值小于设定的分割阈值δ,则合并对应的两个分段segi和segj;
[0052]
步骤2.4,重复步骤2.1至步骤2.3,直到所有分段的dtw值均不小于分割阈值δ,分割结束;
[0053]
步骤2.5,得到序列x分割后的特征相似的d个子序列{seg1,seg2,
…
,segd};
[0054]
其中步骤3具体按以下步骤实施:
[0055]
步骤3.1,原始数据转化,将云资源时间序列数据进行归一化;
[0056]
步骤3.2,生成模型训练数据集,确定训练集的窗口长度;
[0057]
步骤3.3,进行lstm网络模型结构的确定和调整;
[0058]
步骤3.4,对模型训练和结果预测;
[0059]
其中步骤5中验证过程具体为:将步骤3中预测结果与实际时间序列进行拟合验证预测精确度:
[0060]
对云服务器资源实际监测数据和模型预测数据进行均方根误差(rmse)和平均绝对百分比误差(mape)对比,计算公式如下所示:
[0061][0062][0063]
式中,actual(t)表示实际的时间序列数据;forecast(t)表示lstm模型预测的时间序列数据;rmse表示误差的平方的期望值;mape的值越小,预测模型拥有更好的精确度;
[0064]
将云服务器的性能资源时间序列数据按4:1的比例随机分为训练集和验证集;然后将时间序列数据作为参数导入模型得到预测数据,与实际的云资源时间序列相比得到拟合曲线;
[0065]
其中步骤6中根据lstm模型的云服务器资源时间序列预测数据阈值,如图5所示,
从而判定进行软件再生的时间节点,为云服务器处于临近宕机时的状态,在此时选择进行软件再生操作以保持系统处于良好运行的状态。
转载请注明原文地址:https://tc.8miu.com/read-3497.html