victorylee
作者victorylee·2021-06-04 16:30
软件开发工程师·浪潮商用机器有限公司

智能运维之时间序列分析

字数 1860阅读 3679评论 0赞 2

纳粹德国每月生成多少豹式坦克?

如何获得这个重要的情报呢?除了腥风血雨的谍战外,也可以通过统计估计获得。盟军通过研究缴获和被摧毁的坦克,发现轮胎编号为 1 、 2 、 3 等数字,这些数字是车轮模具的上的编号,通过估计模具的数量,推算这些模具可以产生多少轮胎,从而估算出纳粹德国的坦克数量。分析估算 1944 年 2 月可生产 270 辆坦克,大大超过此前预期,该估计与德国战后发布记录 276 辆相近。二战中德国,苏联,盟军都使用过,朝鲜战争也曾被使用过。

图1: 豹式坦克,速度快的重型坦克,1944年左右,驻法德军坦克数量的一半为该型号

我们享受这先烈们的披荆斩棘带来的幸福,战争的硝烟已经不再,但股市中红红绿绿的竞争依旧。量化分析人员使用各种统计方法去分析金融产品的价格。 Clive Granger 和 Robert Fry Engle III 使用时间序列分析经济指标而获得 2003 年诺贝尔经济学奖 , Engle 提出的 ARCH 时间序列模型是成果之一。时间序列是经典问题,被广泛研究和广泛应用,特别是金融资产价格预测。

智能运维中的时间序列分析

本次我们介绍智能运维中时间序列分析,它可用于进行系统容量预测,容器编排,例如预测今年“双十一”哪些系统需要增加扩容,购买新的服务器,或者激活服务器中闲置的处理器?数据中心有上千个系统,如何快速发现哪些系统出现异常?可用的统计方法很多,包括概率分布(例如正态分布,泊松分布等),贝叶斯估计、回归等,我们这次讨论最广泛使用的时间序列方法。

什么是时间序列数据?

按时间的先后顺序排列的数据被称为时间序列数据( Time Series Data ),简称时序数据。下图是一个 Docker 容器的空闲内存占比时序数据,其中横轴为时间,纵轴是空闲内存百分比。 **

时序数据通常是以时间来排列数据,但按空间位置排列的数据也称为时间序列数据,使用时间序列分析方法来做分析。和时间序列相对应的是 截面数据 (Cross Sectional Data), 以及将两者结合起来的面板数据 (Panel Data) ,与本次内容无关,有兴趣请查阅任何统计类书籍。

时间序列分析能做什么?

时间序列分析可用在如下的多个场景: **

1) 根据过去的历史数据预测未来数据。 例如使用历史运维数据,预测未来 CPU 和内存的利用率、磁盘容量、数据库事务数、页面访问量等。例如下面对过去一周 (5 月 10 日到 5 月 17 日 ) 的空闲内存建立模型(如图中绿色阴影部分),预测将来一天 (5 月 18 日 ) 的空闲内存占比情况(如下图红色阴影部分),从图中可以看到系统空闲内存在过去一周以来,呈现持续减少的趋势。

2)容量规划。 掌握系统对资源利用率的趋势,预测将来的资源需求。例如 6 个月后哪些系统需要扩容?今年“双十一”需要为哪些系统购买新机器 ?

通过对时间序列折线图进行分解,可得到变化趋势,周期趋势。下面是分解之后得到的结果,其中包含以下三部分内容:

  • 趋势。可以看到空闲内存持续减少。
  • 星期周期。
  • 天周期。

我们也可以通过变化趋势图,找出数据中心中哪些系统的空闲资源在持续下降,从而进行容量规划。我们也利用星期周期和天周期,发现每周或每天系统的繁忙或空闲情况,通过精心选择将一些系统部署在一台服务器,达到 “填谷削峰”的效果。

如果需要也可以分析节假日对时序数据的影响,下面分析结果了 2015 到 2016 年一年多时间中,节假日对 CPU 利用率的影响因素。

3) 异常检测。 发现哪些系统的运行数据偏离正常范围 ( 大幅突然偏离或持续逐渐偏离 ) 。使用时间序列分析方法,可预测未来数据的走向,然后通过比较当前系统运行指标和预测指标之间的差异,分析二者的偏离情况,发现系统突变异常和持续偏离异常。

下面系统运行指标突然偏离预测值,系统发生了突变:


| 图表 2陡变异常 |

以下系统指标逐渐偏离预测值:

时间序列分析的模型概述

时间序列分析可使用模型非常多,难度稍大,部分模型如下:

  1. 移动平均和加权移动平均。股票软件中的 30 日线, 60 日线是移动平均线。
  2. 指数平滑法。预测时距离预测值远的点影响程度呈指数下降。
  3. Holt-Winters( 三次指数平滑法 )
  4. ARIMA 。 差分移动平均自回归模型
  5. LSTM 。长短时循环神经网络

另外, Facebook 在 2017 年发布了 prophet 组件,算法创新不大,但支持 Python 和 R 语言,使用方便,本文使用 Prophet 来做时序预测。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

2

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广