基于ARIMA和指数平滑算法对磁盘占用率的预测分析

2024-01-27 09:20张新禹
现代信息科技 2023年24期
关键词:周期性

摘  要:基于气象下行传输系统的磁盘利用率随着时间的变化呈现一定的周期性的现象,通过调用监控平台关于磁盘利用率的指标接口获取分析数据,进行关键指标项提取、数据缺失值修正等数据预处理操作,通过磁盘利用率的趋势图分析时间序列的稳定性和周期性,利用ARIMA和三次指数平滑算法分别对磁盘利用率的周期性时间序列做预测,并比较两种算法的残差、均方差等参考指标,通过两种预测算法分析得出最优算法模型,利用预测结果和告警阈值计算告警预测时间值。

关键词:磁盘利用率;周期性;ARIMA;三次指数平滑

中图分类号:TP39  文献标识码:A  文章编号:2096-4706(2023)24-0067-05

Prediction Analysis of Disk Utilization Rate Based on ARIMA and Exponential Smoothing Algorithms

ZHANG Xinyu

(Inner Mongolia Meteorological Service, Hohhot  010051, China)

Abstract: The utilization rate of disks based on the meteorological downlink transmission system exhibits a certain periodicity over time. The analysis data is obtained by calling the indicator interface of the monitoring platform regarding disk utilization rate, and data preprocessing operations such as key indicator item extraction and missing data value correction are performed. The stability and periodicity of the time series are analyzed through the trend chart of disk utilization rate. ARIMA and triple exponential smoothing algorithms are used to predict the periodicity of time series of disk utilization rate, and reference indicators such as residuals and mean squared errors are compared between the two algorithms. The optimal algorithm model is obtained through the analysis of the results of the two prediction algorithms, and the alarm prediction time value is calculated by using the predicted results and the alarm threshold value.

Keywords: disk utilization rate; periodicity; ARIMA; triple exponential smoothing

0  引  言

隨着气象信息技术日新月异的发展和硬件、软件资源的不断增加,仅仅依靠人工方式检查和监测系统的健康状况会消耗大量人力资源,为了分析和预处理处理监控平台中出现的基础资源指标的告警,通过对监控平台中气象资料下载服务器集群指标的趋势观察,发现气象下行传输系统的磁盘利用率随着时间的变化呈现一定的周期性,趋势较为平稳,因此可以选择一种能够处理周期性时间序列的模型进行时序数据的预测,在变化趋势不是很复杂的情况下,通过ARIMA和三次指数平滑算法可满足周期性和平稳性序列进行预测的需求,经过对比分析后选择与实际指标误差更小的算法来完成服务器集群的磁盘指标预测功能,进而在监控告警来临之前提前进行处置,保障业务实时稳定运行。

气象传输业务中监控平台在告警处理过程中起了很大的作用[1],作为业务运维中主要的监控方式,气象业务监控平台中存储了很多关于系统的监控数据,但在此过程中无法做到对监控平台中的指标数据进行分析,只能人工解决发生的告警信息,在这种情况下出现了以下的缺陷:

1)监控平台集约性较差。往往气象业务系统分布在不同系统中,例如内蒙古“天镜”监控系统、IMC设备监控平台、全国综合气象信息共享平台(内蒙古)、全区广域网监控平台等,每种监控系统都具备自身的功能[2],但是多个监控系统之间无法形成告警的集约化,日常运维时遇到复杂多样的监控告警信息时,需要切换监控系统并依次处理,导致运维人员无法及时处理相应告警[3]。

2)故障处理效率低下。当监控平台的告警信息生成并推送至运维人员面前时,运维人员无法直接做出处置方案,因为没有相适应的解决方案而拖慢运维过程中的故障处理时间,每次出现类似的故障需要人工重复处理,增加了运维的工作量。

3)缺乏对监控平台的数据分析。监控平台中存在的可研究性的数据,例如服务器的部分指标具有可预测性却没有被及时挖掘,利用预测信息和告警阈值可以提前判断告警的发生时间。

针对上述运维工作的情况,通过收集内蒙古自治区气象信息中心所有业务监控平台的服务器指标数据,基于ARIMIA算法和三次指数平滑对气象下行传输系统磁盘利用率进行预测分析,通过设定告警阈值来提前预知告警发生的时间。

1  监控平台数据获取及预处理

1.1  设备指标监控数据收集

通过调用H3C的IMC设备监控平台提供的接口链接,获取自2021年8月6日至2021年8月13日的磁盘使用率数据作为ARIMA、三次指数平滑模型分析的数据源。设备指标监控数据获取通过Python的json解析库、网页抓取方法[4]实现,函数主要由接口获取函数、解析入库函数、编码转换函数、定时器函数组成。其中接口获取函数调用接口请求库完成对天镜数据接口的读取,该函数创建了访问接口的链接参数,主要包含天镜系统平台的管理地址、接口数据所在路径。定时器函数则是定时调用接口获取函数,随后通过编码转换函数对获取数据进行编码转换和数据的美化,解析入库函数将编码转换后的数据写入数据库。

1.2  设备指标数据预处理

设备指标数据中存在时间戳、指标值、指标名称这三种类型信息,以下步骤对服务器的磁盘利用率数据进行指标信息提取:

1)关键指标项提取。本设计中按照服务器硬件指标中单一磁盘路径作为研究参考,例如将“/beht”磁盘利用率作为研究指标,因此在指标数据中通过Python中findall函数通过构造例如r"/beht"正则匹配规则筛选数据中包含“/beht”磁盘信息,得到包含该信息的一行字符串。再次利用r"(?<=\:)\d+"正则规则匹配冒号后的指标数字完成指标参数的获取,得到表1预处理后的设备指标数据。

2)数据缺失值修正。指标数据一般为时间序列类型的连续数据,对于缺少采集数据或出现异常数据的时间序列,由于序列整体变化趋势较为平缓,因此使用均值插值法计算该序列前后1小时内数据的均值作为缺失值的理论补充值。

2  磁盘利用率数据指标分析

本次预测所用到的数据为气象资料收集服务器磁盘“/beht”的利用率,从预测准确度来讲,为了保障模型的拟合过程更加贴近于实际的数据曲线,并且提高预测的准确性,对预测数据的平稳性有一定的要求,通常平稳性的要求是指随着时间变化的预测数据能够按照历史趋势不断发展下去[5]。将磁盘利用率的趋势图1资料采集服务器磁盘beht利用率时间序列趋势展示出来,从图中可以粗略看出数据的变化趋势是以天为周期连续的变化,利用率在60之间来回波动,最高不超过85,最低不超过35,虽然每天的数值较同周期有波动,但通过计算每个周期内数据的均值后发现差距较小。

3  ARIMIA和三次指数平滑算法分析及结果对比

3.1  基于ARIMA算法的分析和结果

在基于ARIMA算法预测之前,需要验证所处理的数据是否具有平稳性,即所预测的时间序列为稳定性序列。为了从统计检验方法角度判断是否为稳定性序列,对时间序列或其n阶差分的结果进行检验,验证其平稳性。数据挖掘分析中比较常用的方法就是ADF(Augmented Dickey-Fuller)檢验,即单位根检验。在ARIMA模型的构造过程中,如果单位根为1时,得出残差的任何误差均保持在一定的趋势内,且不会随着历史数据的增加而衰减,自回归模型中出现的残差将永远都会出现,这样的回归过程是一个伪回归[6]。为了避免伪回归过程的出现,通过检验序列中是否存在单位根,如果存在单位根就说明序列为伪平稳的序列,影响预测结果。而ADF检验就是假设存在单位根,如果得到的显著性检验统计量ADFTestresut均小于三个置信度(10%,5%,1%),则对应有(90%,95,99%)的概率来否定存在单位根,即可说明序列是稳定的,否则说明时间序列是非稳定的。

通过Python中的statsmodels统计学计算库可以完成对序列进行单位根检验,检测结果分别在时间序列的1阶、3阶、5阶差分结果下计算得到,检验结果如表2时间序列单位根校验结果所示。通过结果得出在1阶差分时显著性检验统计量就已经小于三个置信度的假设值了,并且其中假设检验结果的值在3阶差分之后趋于0,说明出现单位根的情况逐渐减小,从而证明磁盘利用率的时间序列数据是平稳的[7]。

使用ARIMA模型对平稳性的时间序列进行预测时,基本思想为对模型的参数进行分解之后求得自回归模型AR的阶数值p,移动平均模型MA的阶数值q,使得时间序列变得平稳的差分阶数d,然后将三个参数代入ARIMIA模型中对原始数据进行拟合,之后代入测试数据求出预测结果。

其中p的值可以通过自相关函数ACF(Autocorrelation

Function)画出的自相关图中求得,参数q的值可以通过偏自相关函数PACF(Partial Autocorrelation Function)画出的偏自相关图中解出。自相关函数(ACF)的作用是从数学的角度来解释时间序列数据与其过去的历史数据间的相关性关系[8]。偏自相关函数(PACF)描述在已经确定了中间观测值的情况下时间序列预测数据与历史数据之间的线性关系,具体参数的求解过程如表3平稳随机时间序列模型特征系数所示。参数p的值通过显著不为0时的偏自相关系数的个数计算,此时数据在坐标轴中展现出来的画面为拖尾,即当k>p时,满足偏自相关系数存在于置信范围内;q的取值根据显著不为0的自相关系数的个数来计算,此时数据在坐标轴上的表现为截尾,即当k>p时,自相关系数的结果均满足于置信范围[9]。此处所说的拖尾现象指坐标轴上y的值以指数形式单调或振荡衰减,截尾说的是从坐标轴某点开始衰减(不显著非零)。

差分阶数求解方法首先需要对序列进行n阶差分后观察序列值是否平稳,如果序列的值在某区间范围内上下周期性摆动则表示时间序列趋于平稳,但在求解差分时不宜将n的值调至过大,这样虽然满足平稳性要求,但差分的计算中会将一部分原始信息进行去除,在对数据处理的过程中,每次进行差分运算就意味着没有保留最原始的数据。

综上所述,ARIMA模型预测步骤如下:

1)求解差分的阶数。通过对时间序列进行1、3、5阶差分后,比较差分后的趋势结果图,得出在1阶差分后的数据已经出现了稳定性趋势,则确定差分参数d取值为1阶。

2)通过画出自相关与偏自相关图来计算出ARIMA模型的两个重要参数p和q。通过引入statsmodels库中的自相关函数plot_acf和偏自相关函数plot_pacf,将一阶差分后的数据导入,得出时序数据的自相关和偏自相关如图2自相关图和偏自相关图。从自相关图中在第0阶发生截尾,偏自相关图中在第0阶发生截尾,由此判定p、q的值均为0。

3)建立ARIMA模型。通过以上计算确定ARIMA的参数为(0,1,0),使用Python中statsmodels统计模型库来建立ARIMA模型,将将要预测的时间序列分解为趋势分量、周期分量和残差分量,首先趋势分量代入模型进行训练,然后对未来12小时内的数据进行预测,趋势预测结果与周期分量求和得到最终ARIMA模型预测结果如表4所示。

从表4中可以看出预测结果与实际情况的趋势基本一致,最大误差出现在时间20:10,在此时刻数据曲线正处于拐点阶段,此时的时序数发生跳变且未趋于稳定,其余时间点变化趋势趋于稳定,误差值均在0.5左右。在整个过程中预测数据与实际数据基本上吻合,可以得出较好的预测结果。

3.2  基于三次平滑算法的分析和结果

通过对时间序列的观察得知,该时间序列具有明显的周期性,且不随时间的延续发生变化,实际值有一定曲率,时间上属于非线性的数据,初步确定三次平滑加法模型适合,基于一、二次平滑算法求得的三次平滑算法数学式如下:

由此得出三次平滑算法预测未来时刻值xt+T的模型为:

其中:

上述公式中,α表示平滑系数,取值在0与1之间。T表示序列的周期,首先通过将原始序列做趋势分离,分离后的数据分为趋势序列、周期序列和残差序列,将分离后的周期结果进行周期求解,求解规则为计算器极值间的间隔距离,将极大值或极小值之间的距离求出,最终求得序列的周期为24小时,周期结果可判定每日服务器文件系统的数据下载趋势以天为周期循环进行。

在周期确定的前提下,求得平滑系数α即可完成模型的构建,其中平滑系数越小得到的结果就越平滑,相反得到的结果的变化趋势越不稳定,为了使平滑系统足够准确,引入均方误差MSE来描述平滑系数的好坏,其中  表示预测值,xk表示实际值,得到公式如下:

平滑系数可以通过假设法、公式预估法和验证函数法实现,经查阅文献得知当周期数T较大时,平滑系数α的值通过试算评估法计算一般为[10]:

通过计算得知α为0.08左右的值,将0.06、0.07、0.08、0.09带入到模型中,求得在α为0.06的情况下求得和原曲线均方差最小,由此得到At、Bt、Ct的值分别为48、0.016、8.38×10-7,使用α替换原预测模型得到预测模型的公式为[11]:

使用上述模型的表达式可以预测在下个周期的同一相对时间的数值,在求未来12个小时的值时,会将上一周期的相同时刻的值带入到模型中依次求得预测数据,根据以上思路计算得到的三次指数平滑模型预测结果,如表5所示。

从预测结果中可以看出在未来12个小时的预测值趋势基本与实际值趋势一致,相对误差较小,但是在20:10时间点存在3.7的误差值,该时刻为机器清理文件系统造成磁盘利用率的迅速减小,这也是预测算法在遇到趋势突变情况下的收敛程度不够造成的数据误差。

3.3  两种预测算法结果对比分析

根据上述两种算法预测到的结果,分别计算ARIMIA、三次平滑算法的平均误差和均方误差如表6所示,从表中可以看出在相同源数据情况下预测序列的结果中,ARIMA模型的均方差和平均误差均小于三次指数平滑算法,预测的趋势效果通过趋势曲线图和残差曲线图能够直观地看出两种算法与实际值的契合程度。

从图3两种算法预测与实际值的曲线中可以看出两种预测算法的总体趋势均与实际相符,在磁盘使用率增加的过程中基本与实际值相同,预测结果可靠性较好。在第九个预测时间点上,三次指数平滑算法的结果相对误差为3.072,ARIMA模型的相对误差为0.9,相比之下后者更加完美地还原了实际情况。从图4两种算法的残差比较曲线中可以看出除了第7个预测值与第12个预测值以外,ARIMA模型的相对误差均低于三次平滑算法的结果,并且在预测相对误差稳定性方面,前者更加平缓,未出现较大突变的预测值。综上所述,在未来12个小时的预测磁盘利用率实现过程中,ARIMA模型的预测结果更好。

3.4  告警预测时间计算

通过预测下次的告警时间可以使得运维人员提前了解告警的发生时间,从而制定清理磁盘空间的策略。通常监控平台中的磁盘告警阈值为90%,考虑到告警发生前需要处理的时间,因此在磁盘利用率预测值达到阈值为85%时定义为告警时间Ta,由于时间序列的预测值为离散的时间序列,因此选择阈值前的时间点作为告警时刻,告警预测时间为当前时间Tn与告警时间Ta的差值。

4  结  论

通过基于ARIMIA和三次指数平滑算法对磁盘利用率的趋势值做预测,并比较了两种算法的残差、均方差等参考指标,最终得出ARIMA算法的预测结果更加趋于实际的情况,实际应用中首选该算法进行预测分析,在预测值到达告警阈值时能够通过短信或者语音方式通知运维人员,缩短告警处理时间。

参考文献:

[1] 沈文海.当前气象信息化所处阶段的特征及主要内涵 [J].中国信息化,2015(9):81-86.

[2] 曾乐,梁中军.气象信息化评价指标体系研究 [J].信息系统工程,2020(3):129-130+133.

[3] 闫慧敏.大数据时代背景下的气象信息化困境与对策研究 [J].信息记录材料,2020,21(6):165-166.

[4] 李一风.基于Celery和Django的分布式自动化测试系统设计 [J].信息技术,2019,43(5):97-100.

[5] 房玄骅,王艺宁,刘夕.基于预测有效度成分数据处理方法组合预测 [J].价值工程,2019,38(21):192-194.

[6] 张朝辉,梁家豪,梁秉岗,等.基于时序分析的阀冷进阀温度预测方法 [J].计算机系统应用,2021,30(4):9-16.

[7] 沈露露,梁嘉樂,周雯.基于ARIMA-LSTM的能量预测算法 [J].无线电通信技术,2023,49(1):150-156.

[8] 彭斯俊,沈加超,朱雪.基于ARIMA模型的PM_(2.5)预测 [J].安全与环境工程,2014,21(6):125-128.

[9] 金旗,裴昌幸,朱畅华.ARIMA模型法分析网络流量 [J].西安电子科技大学学报,2003(1):6-10.

[10] 吴会会,王嘉鹏,吴文静,等.基于ARIMA模型的全球气表温度预测分析 [J].现代信息科技,2023,7(16):147-150.

[11] 熊莎,贺跃光,姬方,等.指数平滑法在基坑深层位移预测中的应用 [J].矿冶工程,2013,33(2):5-7.

作者简介:张新禹(1992—),男,汉族,内蒙古化德

人,工程师,硕士研究生,研究方向:网络与网络安全、气象数据分析。

猜你喜欢
周期性
慢速抗阻训练:周期性增肌的新刺激模式
铁电材料中发现周期性半子晶格
具周期性潜伏期的SEIR传染病模型的动力学
新广告商:广告业周期性在弱化,而集中度在提升 精读
数列中的周期性和模周期性
关于整函数零点和周期性的研究
一类整数递推数列的周期性
如何快速解答抽象函数对称性与周期性的问题
整函数的周期性与唯一性的进一步结果
基于扩频码周期性的单通道直扩通信半盲分离抗干扰算法