位置: IT常识 - 正文

【数据挖掘实战】——应用系统负载分析与容量预测(ARIMA模型)(数据 挖掘)

编辑:rootadmin
【数据挖掘实战】——应用系统负载分析与容量预测(ARIMA模型)

推荐整理分享【数据挖掘实战】——应用系统负载分析与容量预测(ARIMA模型)(数据 挖掘),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:数据挖掘快速入门,数据挖掘视频教程,数据 挖掘,数据挖掘视频教程,数据挖掘 入门,数据挖掘 入门,数据 挖掘,数据挖掘 实战,内容如对您有帮助,希望把文章链接给更多的朋友!

项目地址:Datamining_project: 数据挖掘实战项目代码

目录

一、背景和挖掘目标

 1、问题背景

2、传统方法的不足

2、原始数据

3、挖掘目标 

二、分析方法与过程

1、初步分析

2、总体流程

第一步:数据抽取

第二步:探索分析

第三步:数据的预处理

3、构造容量预测模型

三、总结和思考

一、背景和挖掘目标 1、问题背景应用系统是由服务器、数据库、中间件、存储设备等组成。它在日常运行时,会对底层软硬件造成负荷。其中任何一种资源负载过大,都可能会引起应用系统性能下降甚至瘫痪。及时了解当前应用系统的负载情况,以便提前预防,确保系统安全稳定运行。应用系统的负载率:通过对一段时间内软硬件性能的运行状况进行综合评分而获得。负载率趋势:通过系统的当前负载率与历史平均负载率进行比较。应用系统的负载高或者负载趋势大的现象,代表系统目前处于高危工作环境中。如果系统管理员不及时进行相应的处理,系统很容易出现故障。本例重点分析磁盘容量,如果应用系统出现存储容量耗尽的情况,会导致应用系统负载率过高,最终引发故障。2、传统方法的不足系统负载分析的传统方法:通过监控采集到的性能数据以及所发出的告警事件,人为进行判断系统的负载情况。此方法虽然能够判断系统故障以及磁盘的容量情况,但是存在一些缺陷和不足:磁盘容量的情况没有提供预测的功能。只有当容量将要被耗尽时,会有告警提示。如果是告警服务器的磁盘容量被耗尽,此种情况下,系统即使出现故障,也不会有告警提示。不能提前知道系统负载的程度,只有当系统故障时,通过接受告警才得知。并且当系统真正故障的时,告警的发出大多数情况下会有一定的延迟。2、原始数据性能属性说明:针对采集的性能信息,对每个属性进行相应说明。

磁盘数据:包含应用系统、磁盘基本信息等。

3、挖掘目标 针对历史磁盘数据,采用数据挖掘的方法,预测应用系统服务器磁盘已使用空间大小;根据用户需求设置不同的预警等级,将预测值与容量值进行比较,对其结果进行预警判断,为系统管理员提供定制化的预警提示;二、分析方法与过程1、初步分析应用系统出现故障通常不是突然瘫痪造成的(除非对服务器直接断电),而是一个渐变的过程。例如系统长时间运行,数据会持续写入存储,存储空间逐渐变少,最终磁盘被写满而导致系统故障。在不考虑人为因素的影响时,存储空间随时间变化存在很强的关联性,且历史数据对未来的发展存在一定的影响,故可采用时间序列分析法对磁盘已使用空间进行预测分析。2、总体流程

第一步:数据抽取

磁盘使用情况的数据都存放在性能数据中,而监控采集的性能数据中存在大量的其他属性数据。故以属性的标识号(TARGET_ID)与采集指标的时间(COLLECTTIME)为条件,对性能数据进行抽取。

抽取10-01至11-16财务管理系统中某一台数据库服务器的磁盘的相关数据。第二步:探索分析

对数据进行周期性分析,探索数据的平稳性。

【数据挖掘实战】——应用系统负载分析与容量预测(ARIMA模型)(数据 挖掘)

C盘和D盘的使用的大小。 

# -*- coding:utf-8 -*-import pandas as pdimport matplotlib.pyplot as pltdata = pd.read_excel('data/discdata.xls')str1 = 'C:\\'str2 = 'D:\\'dataC = data[(data['DESCRIPTION'] == '磁盘已使用大小') & (data['ENTITY'] == str1)]dataD = data[(data['DESCRIPTION'] == '磁盘已使用大小') & (data['ENTITY'] == str2)]dataC.plot(y='VALUE')dataD.plot(y='VALUE')plt.show()第三步:数据的预处理

数据清洗:实际业务中,监控系统会每天定时对磁盘的信息进行收集,但是磁盘容量属性一般情况下都是一个定值(不考虑中途扩容的情况),因此磁盘原始数据中会存在磁盘容量的重复数据。

剔除磁盘容量的重复数据。将所有服务器的磁盘容量作为一个固定值,方便模型预警时需要。

属性构造:因每台服务器的磁盘信息可以通过表中NAME,TARGET_ID,ENTITY三个属性进行区分,且每台服务器的上述三个属性值是不变的,所以可以将三个属性的值进行合并。 (实质是将行转换成列)。

# -*-coding: utf-8-*-import pandas as pddef attr_trans(x): result = pd.Series(index=['SYS_NAME', 'CWXT_DB:184:C:\\', 'CWXT_DB:184:D:\\', 'COLLECTTIME']) result['SYS_NAME'] = x['SYS_NAME'].iloc[0] result['COLLECTTIME'] = x['COLLECTTIME'].iloc[0] result['CWXT_DB:184:C:\\'] = x['VALUE'].iloc[0] result['CWXT_DB:184:D:\\'] = x['VALUE'].iloc[1] return resultdiscfile = 'data/discdata.xls'transformeddata = 'data/discdata_processed.xls'data = pd.read_excel(discfile)data = data[data['TARGET_ID'] == 184].copy()# 按时间分组data_group = data.groupby('COLLECTTIME')data_processed = data_group.apply(attr_trans)data_processed.to_excel(transformeddata, index=False)3、构造容量预测模型

平稳性检验:为了确定原始数据序列中没有随机趋势或趋势,需要对数据进行平稳性检验,否则将会产生“伪回归”的现象。方法:单位跟检验或者观察时序图。白噪声检验:为了验证序列中有用的信息是否已被提取完毕,需要对序列进行白噪声检验。如果序列检验为白噪声序列,就说明序列中有用的信息已经被提取完毕了,剩下的全是随机扰动,无法进行预测和使用。方法:一般采用LB统计量检验方法。模型识别:通过AIC、BIC信息准则或者观测自相关图和偏自相关图确定P、Q的参数,识别其模型属于AR、MA和ARMA中的哪一种模型。参数估计:估计模型的其他参数。可以采用极大似然估计、条件最小二乘法确定。模型检验:检测模型残差序列是否属于白噪声序列。

# -*- coding:utf-8 -*-import pandas as pddef stationarityTest(): ''' 平稳性检验 :return: ''' discfile = 'data/discdata_processed.xls' predictnum = 5 data = pd.read_excel(discfile) data = data.iloc[: len(data) - predictnum] # 平稳性检验 from statsmodels.tsa.stattools import adfuller as ADF diff = 0 adf = ADF(data['CWXT_DB:184:D:\\']) while adf[1] > 0.05: diff = diff + 1 adf = ADF(data['CWXT_DB:184:D:\\'].diff(diff).dropna()) print(u'原始序列经过%s阶差分后归于平稳,p值为%s' % (diff, adf[1]))def whitenoiseTest(): ''' 白噪声检验 :return: ''' discfile = 'data/discdata_processed.xls' data = pd.read_excel(discfile) data = data.iloc[: len(data) - 5] # 白噪声检验 from statsmodels.stats.diagnostic import acorr_ljungbox [[lb], [p]] = acorr_ljungbox(data['CWXT_DB:184:D:\\'], lags=1) if p < 0.05: print(u'原始序列为非白噪声序列,对应的p值为:%s' % p) else: print(u'原始该序列为白噪声序列,对应的p值为:%s' % p) [[lb], [p]] = acorr_ljungbox(data['CWXT_DB:184:D:\\'].diff().dropna(), lags=1) if p < 0.05: print(u'一阶差分序列为非白噪声序列,对应的p值为:%s' % p) else: print(u'一阶差分该序列为白噪声序列,对应的p值为:%s' % p)def findOptimalpq(): ''' 得到模型参数 :return: ''' discfile = 'data/discdata_processed.xls' data = pd.read_excel(discfile, index_col='COLLECTTIME') data = data.iloc[: len(data) - 5] xdata = data['CWXT_DB:184:D:\\'] from statsmodels.tsa.arima_model import ARIMA # 定阶 # 一般阶数不超过length/10 pmax = int(len(xdata) / 10) qmax = int(len(xdata) / 10) # bic矩阵 bic_matrix = [] for p in range(pmax + 1): tmp = [] for q in range(qmax + 1): try: tmp.append(ARIMA(xdata, (p, 1, q)).fit().bic) except: tmp.append(None) bic_matrix.append(tmp) bic_matrix = pd.DataFrame(bic_matrix) # 先用stack展平,然后用idxmin找出最小值位置。 p, q = bic_matrix.stack().astype('float64').idxmin() print(u'BIC最小的p值和q值为:%s、%s' % (p, q))def arimaModelCheck(): ''' 模型检验 :return: ''' discfile = 'data/discdata_processed.xls' # 残差延迟个数 lagnum = 12 data = pd.read_excel(discfile, index_col='COLLECTTIME') data = data.iloc[: len(data) - 5] xdata = data['CWXT_DB:184:D:\\'] # 建立ARIMA(0,1,1)模型 from statsmodels.tsa.arima_model import ARIMA # 建立并训练模型 arima = ARIMA(xdata, (0, 1, 1)).fit() # 预测 xdata_pred = arima.predict(typ='levels') # 计算残差 pred_error = (xdata_pred - xdata).dropna() from statsmodels.stats.diagnostic import acorr_ljungbox # 白噪声检验 lb, p = acorr_ljungbox(pred_error, lags=lagnum) # p值小于0.05,认为是非白噪声。 h = (p < 0.05).sum() if h > 0: print(u'模型ARIMA(0,1,1)不符合白噪声检验') else: print(u'模型ARIMA(0,1,1)符合白噪声检验')def calErrors(): ''' 误差计算 :return: ''' # 参数初始化 file = 'data/predictdata.xls' data = pd.read_excel(file) # 计算误差 abs_ = (data[u'预测值'] - data[u'实际值']).abs() mae_ = abs_.mean() # mae rmse_ = ((abs_ ** 2).mean()) ** 0.5 mape_ = (abs_ / data[u'实际值']).mean() print(u'平均绝对误差为:%0.4f,\n均方根误差为:%0.4f,\n平均绝对百分误差为:%0.6f。' % (mae_, rmse_, mape_))stationarityTest()whitenoiseTest()findOptimalpq()arimaModelCheck()calErrors()

模型预测:应用模型进行预测,获取未来5天的预测值。为了方便比较,将单位换算成GB。

模型评价:

采用三个衡量模型预测精度的统计量指标:平均绝对误差、均方根误差、平均绝对百分误差,从不同侧面反映了算法的预测精度。

模型应用:

计算预测使用率:根据模型预测得到的值,计算预测使用率。设定预警等级:根据业务应用一般设置的阈值,也可以根据管理员要求进行相应的调整。发布预警信息三、总结和思考监控不仅能够获取软硬件的性能数据,同时也能检测到软硬件的日志事件,并通过告警的方式提示用户。因此管理员在维护系统的过程中,特别关注应用系统类别的告警。一旦系统发生故障,则会影响整个公司的运作。但是在监控收集性能以及事件的过程中,会存在各类型告警误告情况。(注:应用系统发生误告时系统实际处于正常阶段)根据历史每天的各种类型的告警数,通过相关性进行检验判断哪些类型告警与应用系统真正故障有关。通过相关类型的告警,预测明后两天的告警数。针对历史的告警数与应用系统的关系,判断系统未来是否发生故障。可通过时序算法预测未来相关类型的告警数,然后采用分类预测算法对预测值进行判断,判断系统未来是否发生故障。
本文链接地址:https://www.jiuchutong.com/zhishi/295360.html 转载请保留说明!

上一篇:HTML学生个人网站作业设计:个人主页博客web网页设计制作 (HTML+CSS) (1)(学生个人网页制作html5)

下一篇:eslint常见报错及解决(eslint不起作用)

  • vivo手机定位在哪里找(vivo手机定位在哪里设置)

    vivo手机定位在哪里找(vivo手机定位在哪里设置)

  • 微信删除的信息怎么恢复(手机微信删除的信息怎么恢复)

    微信删除的信息怎么恢复(手机微信删除的信息怎么恢复)

  • 小度能下载微信吗(小度能下载微信上网课吗)

    小度能下载微信吗(小度能下载微信上网课吗)

  • 华为dav703l什么型号

    华为dav703l什么型号

  • oled和lcd的区别(oled 和lcd的区别)

    oled和lcd的区别(oled 和lcd的区别)

  • adobe视频剪辑软件叫什么(adobe视频剪辑软件叫什么Ai)

    adobe视频剪辑软件叫什么(adobe视频剪辑软件叫什么Ai)

  • 苹果7手机麦克风启动不成功怎么办(苹果7手机麦克风没声音怎么回事)

    苹果7手机麦克风启动不成功怎么办(苹果7手机麦克风没声音怎么回事)

  • 快手被对方拉黑私信有提示吗(快手被对方拉黑后是什么样的显示)

    快手被对方拉黑私信有提示吗(快手被对方拉黑后是什么样的显示)

  • 抖音上线能隐身吗(抖音上线能隐身吗怎么设置)

    抖音上线能隐身吗(抖音上线能隐身吗怎么设置)

  • opporeno摄像头容易坏吗(opporeno摄像头参数)

    opporeno摄像头容易坏吗(opporeno摄像头参数)

  • 京东验证码频繁多久解除(京东验证码频繁怎么回事)

    京东验证码频繁多久解除(京东验证码频繁怎么回事)

  • 一个手机怎么下载两个抖音app(一个手机怎么下载两个QQ)

    一个手机怎么下载两个抖音app(一个手机怎么下载两个QQ)

  • 陌陌怎么快速升30级(陌陌怎么快速升财富等级)

    陌陌怎么快速升30级(陌陌怎么快速升财富等级)

  • ms dos是多任务操作系统吗(ms-dos怎么操作)

    ms dos是多任务操作系统吗(ms-dos怎么操作)

  • dc和ac代表什么意思(dc和ac代表什么电压)

    dc和ac代表什么意思(dc和ac代表什么电压)

  • 安卓手机怎么提升wifi(安卓手机怎么提高网速)

    安卓手机怎么提升wifi(安卓手机怎么提高网速)

  • vivos1pro是闪充么(vivos1pro是闪充吗)

    vivos1pro是闪充么(vivos1pro是闪充吗)

  • 一加7T Pro怎么强制关机(一加七pro怎么操作)

    一加7T Pro怎么强制关机(一加七pro怎么操作)

  • 怎么删除时钟里的就寝(怎么删除时钟里的铃声)

    怎么删除时钟里的就寝(怎么删除时钟里的铃声)

  • ios13怎么隐藏dock(ios13怎么隐藏app)

    ios13怎么隐藏dock(ios13怎么隐藏app)

  • word下划线固定长度(word下划线固定住了怎么办)

    word下划线固定长度(word下划线固定住了怎么办)

  • 微信视频中断是谁挂的(微信视频中断是对方正在忙吗)

    微信视频中断是谁挂的(微信视频中断是对方正在忙吗)

  • id在哪里看(企业微信id在哪里看)

    id在哪里看(企业微信id在哪里看)

  • 小程序视频怎么保存(小程序视频怎么在电脑上全屏)

    小程序视频怎么保存(小程序视频怎么在电脑上全屏)

  • 华为钱包门禁卡用不了(华为钱包门禁卡模拟成功但是打不开)

    华为钱包门禁卡用不了(华为钱包门禁卡模拟成功但是打不开)

  • vivo悬浮球是啥意思(vivo手机悬浮球app)

    vivo悬浮球是啥意思(vivo手机悬浮球app)

  • TDesign小程序组件库体验(小程序navigator组件)

    TDesign小程序组件库体验(小程序navigator组件)

  • 【论文笔记】CycleGAN(基于PyTorch框架)(毕业论文笔记怎么写)

    【论文笔记】CycleGAN(基于PyTorch框架)(毕业论文笔记怎么写)

  • 个税不汇算清缴对个人的处罚
  • 增值税发票确认平台怎么认证发票
  • 纳税检查调整的销售额确认收入吗
  • 定额税改为查账征收,可以弥补上年度亏损吗
  • 公司收到劳务发票怎么申报个税
  • 个体如何申请电子公章流程
  • 核定征收变更查账征收利润怎么办
  • 没申报可以开票嘛
  • 酒店开办费
  • 折扣优惠 印花税也是折扣缴纳吗
  • 如何调整所得税费用
  • 接受捐赠的固定资产计入什么科目
  • 2019招标费用收取标准
  • 电子承兑汇票付款流程
  • 服务行业营业成本包括财务费用和管理费用吗
  • 增资的印花税纳税义务时间
  • 个人所得税申报方式选哪个比较好
  • 科技型中小企业享受优惠税收政策2023
  • 一般纳税人的资质在哪里打印
  • 银行承兑汇票企业账户没钱
  • 以前年度利润和当年净利润
  • 个体工商户要交附加税吗
  • 推广费什么公司能开
  • 福利费不属于工资
  • 专用发票购货清单怎么写
  • 私车公用报销怎么算
  • 网络共享每次都要输入密码
  • 怎么保存win10锁屏界面
  • 什么情况下公司可以开除员工
  • 发票专用章正规位置盖在哪里
  • 收据和发票的区别图片
  • 建筑企业总产值是什么
  • 已认证留抵待抵扣税额分录
  • 预提费用的账务处理
  • php生成验证码代码
  • 不符合政策和条件的成语
  • 待抵扣进项税计入其他应收款
  • 利息收入税务处理办法
  • 增值税留抵税额科目如何使用
  • 代理进口业务应纳的关税
  • 公司注销剩余的发票怎么作废
  • 织梦添加文章如何修改高级参数
  • 年终奖个人所得税税率表
  • 建筑安装工人住宿费会计分录
  • sql server如何查看本地的登录名和密码
  • 将自产的应税消费品用于连续生产非应税消费品
  • 确认委托代销手续费的会计分录
  • 发票未到成本如何做分录
  • 房地产企业土地价款如何入账
  • 农产品收购发票怎么抵扣
  • 其它综合收益包括
  • 税金及附加是按什么基础交的
  • 律师事务所优惠政策
  • 内部交易固定资产折旧为什么调整
  • 商业零售企业商品进销差价
  • sql中的视图提高了数据库的
  • win7系统如何恢复桌面图标
  • ntdll.dll no matching
  • WIN10如何设置字体大小
  • mac m1读取ntfs
  • centos6设置ip
  • linux 文件查看
  • extjs3 combobox取value和text案例详解
  • cocos2d开发的知名游戏
  • 用批处理删除注册表项
  • 创建网元
  • js数字跳动增加效果
  • android-ListView(1)-listview概览
  • android重写方法
  • js校验姓名
  • js很简单
  • javascript教程完整版
  • nodejs cli
  • python mp3play
  • 1+征收率
  • 甘肃增值税发票查验平台官网
  • 加强税务系统党委全面监督工作
  • 有关单位和个人应该怎么样
  • 到税务局领购免税产品
  • 农副产品批发价
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设