一种基于业务量的系统容量预测方法转让专利

申请号 : CN201911273253.5

文献号 : CN111045907B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 范宇航张雷花磊赵安全

申请人 : 苏州博纳讯动软件有限公司

摘要 :

本发明揭示了一种基于业务量的系统容量预测方法,其特征在于:采集至少一个月以上的原始数据,首先剔除季节因子影响,接着选定基于线性模型、移动平均模型及ARIMA模型的模型组,利用多元回归模型计算各模型的权重指数,而后引入遗传算法机器学习对模型组进行迭代优化得到最佳的模型组参数,计算日维度预测结果和分钟维度预测结果,利用业务与系统容量的历史数据的拟合关系,基于两个维度的预测结果计算系统容量需求。应用本发明预测方法,综合考虑了外部因素对预测的影响,通过模型组预测并引入遗传算法自动优化参数,非但能够灵活应对交易结构和业务量趋势的变化,而且提升预测结果使得平均误差小于5%,有利于保障互联网应用的服务质量。

权利要求 :

1.一种基于业务量的系统容量预测方法,其特征在于:采集至少一个月以上的原始数据,进行基础日数据处理:首先剔除季节因子影响,根据业务发生时间,截取发生日所在星期,按照星期作为季节因子,分为工作日、放假第一天、周日、放假后几天、放假后第一天共五个类别,所述季节因子基于原始数据的总体均值与各类别均值计算得到,公式为:,将每日对应类型的数据除以季节因子;接着选定基于线

性模型、移动平均模型及ARIMA模型的模型组,利用多元回归模型计算各模型的权重指数,而后引入遗传算法机器学习对模型组进行迭代优化得到最佳的模型组参数,计算日维度预测结果和分钟维度预测结果,利用业务与系统容量的历史数据的拟合关系,基于两个维度的预测结果计算系统容量需求,其中引入遗传算法优化的过程为:将待预测日期的前一天数据作为基准,采用遗传算法设置种群数量、进化次数、基因中允许出现的最大值、染色体长度、交配概率、变异概率的基础参数,在每一代中根据个体的适应度大小,借助遗传算子进行组合交叉和变异得到下一代群体,其中个体的适应度大小通过模型组的综合预测评估结果近5天RSS残差平方和得出,返回剔除季节因子影响并达到最大迭代次数;且优化的计算过程采用python框架sklearn中的LinearRegression线性回归模型进行模型参数的分析与RSS残差平方和的计算,计算公式为:,

其中f线性模型为基于线性模型的预测值、α为对应线性模型的权重指数,f移动平均为基于移动平均模型的预测值、β为对应移动平均模型的权重指数,fARIMA为基于ARIMA模型的预测值、γ为对应ARIMA模型的权重指数;RSS残差和表征个体的适应度,其中x指5天中的任意一天。

2.根据权利要求1所述基于业务量的系统容量预测方法,其特征在于:所述原始数据包含业务的访问或交易数据,数据字段包括交易发生时间、业务量、营销标识,其中业务量的数据维度为分钟级;且基础日数据处理包括将每日的数据按照星期进行分类标记,记录业务营销活动的日期。

3.根据权利要求2所述基于业务量的系统容量预测方法,其特征在于:处理后的数据存储在时序数据库中,数据结构包括类型、星期、日期、交易笔数;并采用python的pandas框架中的DataFrame加载程序在内存中进行数据操作。

说明书 :

一种基于业务量的系统容量预测方法

技术领域

[0001] 本发明涉及计算机和网络产品的软件技术领域,尤其涉及一种对业务访问与应用软件系统占用硬件资源之间的关系进行探索,对所需要的硬件资源(如CPU、内存、网络流量等)进行容量规划的预测方法。

背景技术

[0002] 随着IT技术的快速发展,互联网应用逐渐成为业务创新、企业提质增效的重要推动力。因此,保障互联网应用的服务质量至关重要。在移动、互联网的快速普及下,各类节假日、营销日对互联网应用业务的访问,提出了更高的要求;在高频率、高并发访问下的互联网应用需要更多的硬件资源用以支撑、保障业务的正常运行;但由于各类互联网应用实现的语言、框架、业务各不相同,导致应用依赖的各类硬件资源也不尽相同,比如按照占用资源可以将应用的种类分为CPU密集型、内存密集型、流量密集型等,这样对业务部门规划应用所需硬件资源容量提出了更高的挑战。
[0003] 当前为了更好的提高硬件资源的利用使用效果,为硬件资源规划提供更合理的依据,运维产品厂商都在探索基于人工智能、机器学习框架实现硬件资源容量预测。尽管当下机器学习、深度学习的框架有Caffe(http://caffe.berkeleyvision.org/)、Trensorflow(https://tensorflow.org)等,都提供了通用算法、模型以及框架,但由于容量的预测与互联网应用业务访问情况相关性强,无法直接应用算法直接适配,缺乏实际业务场景的直接应用,同时缺乏针对业务的系统容量预测的通用方法。

发明内容

[0004] 本发明的目的旨在提出一种基于互联网应用的业务量、实现应用系统对系统硬件资源需求的容量预测通用方法。
[0005] 本发明实现上述目的的技术解决方案是,一种基于业务量的系统容量预测方法,其特征在于:采集至少一个月以上的原始数据,首先剔除季节因子影响,接着选定基于线性模型、移动平均模型及ARIMA模型的模型组,利用多元回归模型计算各模型的权重指数,而后引入遗传算法机器学习对模型组进行迭代优化得到最佳的模型组参数,计算日维度预测结果和分钟维度预测结果,利用业务与系统容量的历史数据的拟合关系,基于两个维度的预测结果计算系统容量需求。
[0006] 上述基于业务量的系统容量预测方法,进一步地,所述原始数据包含业务的访问或交易数据,数据字段包括交易发生时间、业务量、营销标识,其中业务量的数据维度为分钟级;且数据处理包括将每日的数据按照星期进行分类标记,记录业务营销活动的日期。
[0007] 上述基于业务量的系统容量预测方法,更进一步地,处理后的数据存储在时序数据库中,数据结构包括类型、星期、日期、交易笔数;并采用python的pandas框架中的DataFrame加载程序在内存中进行数据操作。
[0008] 上述基于业务量的系统容量预测方法,进一步地,所述季节因子基于原始数据的总体均值与各类别均值计算得到,公式为; ,所述剔除季节因子影响为将每日对应类型的数据除以季节因子。
[0009] 上述基于业务量的系统容量预测方法,进一步地,引入遗传算法优化的过程为:将待预测日期的前一天数据作为基准,采用遗传算法设置种群数量、进化次数、基因中允许出现的最大值、染色体长度、交配概率、变异概率的基础参数,在每一代中根据个体的适应度大小,借助遗传算子进行组合交叉和变异得到下一代群体,其中个体的适应度大小通过模型组的综合预测评估结果近5天RSS残差平方和得出,返回剔除季节因子影响并达到最大迭代次数。
[0010] 上述基于业务量的系统容量预测方法,更进一步地,所述优化过程的计算过程采用python框架sklearn中的LinearRegression线性回归模型进行模型参数的分析与RSS残差平方和的计算,计算公式为:
[0011]
[0012] 应用本发明的系统容量预测方法,具备突出的实质性特点和显著的进步性:该方法综合考虑了外部因素对预测的影响,通过模型组预测并引入遗传算法自动优化参数,非但能够灵活应对交易结构和业务量趋势的变化,而且提升预测结果使得平均误差小于5%,有利于保障互联网应用的服务质量。

附图说明

[0013] 图1是本发明系统容量预测方法的流程拓扑图。

具体实施方式

[0014] 以下便结合实施例附图,对本发明的具体实施方式作进一步的详述,以使本发明技术方案更易于理解、掌握,从而对本发明的保护范围做出更为清晰的界定。
[0015] 如前所述,在互联网应用中对于硬件系统容量的预测与业务访问情况相关性很强,因而在进行系统容量预测时必要关联业务预测。该预测方法的概述为:采集至少一个月以上的原始数据,首先剔除季节因子影响,接着选定基于线性模型、移动平均模型及ARIMA模型的模型组,利用多元回归模型计算各模型的权重指数,而后引入遗传算法机器学习对模型组进行迭代优化得到最佳的模型组参数,计算日维度预测结果和分钟维度预测结果,利用业务与系统容量的历史数据的拟合关系,基于两个维度的预测结果计算系统容量需求。
[0016] 从另一个角度来看,上述业务预测方案整体思路分为两块,一块为日维度预测,另一块为分钟维度预测。日维度方面,原始日数据经过剔除营销、周期性处理后,通过模型组合综合预测日交易量数据。为使后期参数自适应调整,减少人工操作,采用遗传算法机器学习选择参数模型。分钟维度方面,原始分钟数据计算当日占比,并按周期分类。最终通过日预测数据的结果乘以分钟占比得出每分钟预测数据。
[0017] 为更清楚理解,分步骤的具体解决方案实现如下:
[0018] 第一步,基础日数据处理,采集至少一个月以上的原始数据,即业务的访问或交易数据,数据字段应包括交易发生日期、交易笔数(即业务量)、营销标识,其中业务量的数据维度为分钟级。对原始数据进行如下步骤的处理:将每日的数据按照星期进行分类标记。记录业务营销活动的日期,用以判断在特定日期下的业务量的增长率,针对特定的营销特殊点进行数据修正。
[0019] 第二步,季节因子识别,由于客户在访问或使用业务系统的时候,会在不同的星期以及不同的时间段内,会有不同的访问需求,即访问量;所以根据第一步标记的星期标记,对数据进行分类,按照时间分为工作日、放假第一天(周六)、周日、放假后几天、放假后第一天,5个类别,用于之后消除季节因子的影响。
[0020] 第三步,选定初始模型组参数,根据总体样本量n1,采用最小二乘法一次多项式拟合运算形成样本量n2,同时采用一次移动平滑、二次移动平滑形成期数n3,最后由遗传算法初始种群给出具体模型组的参数,用于后续基于样本量的模型组预测。
[0021] 第四步,消除季节因子,由于季节因子的存在,需要在总体样本量下对季节因子进行消除,针对总体样本量n1下分别计算总体均值及各类别均值,即
[0022]  ,将每日各类数据除以季节因子以消除季节因素。
[0023] 第五步,模型组预测,分别针对总体样本量n1采用模型1:线性方程(LM):线性模型样本量n2,采用最小二乘法一次多项式拟合线性模型预测;然后再采用模型2:二次移动平均(MA):利用总体样本量n1,延迟n3期计算一次移动平均,二次移动平均,利用公式计算移动平均预测值;最后再采用模型3:ARIMA模型:利用总体样本量n3,采用时间序列模型预测。
[0024] 第六步,模型组综合预测,在第五步得到线性模型、移动平均模型以及ARIMA模型之后,结合三组模型,利用多元回归模型,计算各个模型在预测模型中所占的权重指数,用于综合模型组预测结果,从而使预测结果更准确。
[0025],其中α、β、γ分别为对应模型的权重指数。
[0026] 第七步,遗传算法调整模型组参数,通过种群数量、进化次数、基因中允许出现的最大值、染色体长度、交配概率、变异概率等参数,在每一代中根据个体的适应度大小,借助遗传算子进行组合交叉和变异得到下一代群体,其中个体的适应度大小通过模型组的综合预测评估结果近5天RSS残差平方和得出,即总体样本量n1、线性模型样本量n2、移动平均期数n3等。返回第四步进行计算,直至达到最大迭代次数。其中RSS残差平方的计算公式为:。
[0027] 第八步,利用模型组和第七步调整后所得的最佳模型组参数,按照日维度计算预测结果。
[0028] 第九步,基础分钟数据处理。1)、计算每分钟业务量在当日业务总量中占比;2)每日数据标记工作日、假期及营销期间三类;3)每类日期中选择近十天每分钟业务量占比均值作为每类日期分钟占比基准值。
[0029] 第十步,业务量预测。利用第八步日维度预测结果与第九步分钟占比基准值相乘得出分钟维度业务量的预测值。
[0030] 第十一步,T+0容量预测。利用历史交易数据与系统容量历史数据进行模型拟合试算,得到业务量与系统容量关系,从而根据第十步的预测值,进行系统容量的预测及规划。
[0031] 如图例所示,本发明的具体实施案例描述如下:
[0032] 一、数据准备
[0033] 准备一个月以上的原始日数据和原始分钟数据,数据格式应包括交易发生时间、业务量、营销标识,业务量数据维度为分钟级;由于业务数据会受到营销业务的影响,造成数据高突发大流量,所以需要对数据进行处理,处理步骤如下:
[0034] 根据业务发生时间,截取发生日所在星期,按照星期作为季节因子,分为工作日、放假第一天(周六)、周日、放假后几天、放假后第一天共5个类别;记录业务营销活动的日期,用以判断在特定日期下的交易率的增长,针对特定的营销特殊点进行数据修正。
[0035] 原始数据经由csv格式的文本导入至系统中,在导入的过程中对数据进行处理加工,加工后的数据,存储在时序数据库中,能够加快数据的检索以及处理。时序数据库中的数据结构包括类型(季节分类)、星期、日期(交易发生日,格式为yyyyMMdd)、交易笔数。为了方便数据的处理,采用python的pandas框架中的DataFrame加载程序内存中进行数据操作。
[0036] 二、最优模型组参数
[0037] 数据准备完毕之后,需要根据选定的初始模型,得到最优模型组参数,以便用于实现交易预测模型。常用的预测模型包括拟合线性预测模型、一次移动平均预测法、二次移动平均预测法以及ARIMA(差分整合移动平均自回归模型)预测模型等多种方式,本发明结合三组模型,利用多元回归模型,计算模型权重指数,以便模型预测结果更加的准确。
[0038] 根据遗传算法调整多元回归模型中三个计算模型的权重指数,也就是将待预测日期的前一天数据作为基准,采用遗传算法,设置种群数量为10,进化次数为5,基因中允许出现的最大值为[16,32,4],染色体长度4+5+2,交配概率为0.6,变异概率为0.05为基础参数,将实际参数集通过编码组成初始群体后,按照进化次数,根据个体的适应度大小,借助遗传算子进行组合交叉和变异,得到下一代群体,其中个体的适应度大小可以通过模型组的综合预测评估结果近5天RSS残差平方和得出,从而得出三个计算模型中权重指数的最优解。计算过程采用python框架sklearn中的Linear Regression线性回归模型进行模型参数的分析与RSS(残差平方和)的计算。
[0039] 三、交易预测
[0040] 通过最优模型组中得到的最佳个体(参数组)按照给定的基础日维度数据,计算最终日维度的预测结果数据。为了得到业务量分钟数据预测,首先对基于分钟数据进行处理,计算每分钟业务量在当日业务总量中占的比例;将每日数据进行标记分为工作日、假期以及营销期间三类;每类日期中选择近十天每分钟业务占比均值作为每类日期分钟占比的基准值,最后利用日维度预测结果与分钟占比基准值相乘得出分钟维度交易的预测值。
[0041] 四、容量预测
[0042] 为了得到系统容量预测的结果,需要通过计算每类业务量或业务流向数据的历史数据对各类系统资源(cpu、内存、磁盘、流量等系统指标)的拟合依赖,利用一元或多元线性拟合公式,计算容量与业务量的线性关系,然后通过第三阶段的业务量的预测结果,计算出未来容量的需求量,从而实现基于业务流向的系统容量预测模型。
[0043] 综上关于本发明系统容量预测方案介绍及实施例详述可见,本方案具备实质性特点和进步性:该技术方案综合考虑了由于季节、营销等外部因素对交易或访问量产生的影响,通过多个模型组成模型组进行预测,每日通过不断调整模型参数,适应最优化参数设定,保证结果准确率;同时为了解决后期模型参数的维护工作,减少人工维护量,引入遗传算法的方法进行机器学习,自动化参数调优,可以灵活应对日后交易结构变化、业务量趋势变化的问题,完成参数自适应工作;最终达到日模型预测、分钟模型预测的预测结果平均误差小于5%。在业务预测完成之后,基于业务数据与系统容量数据的拟合关系,计算出未来系统容量要求,达到未来系统容量预测的目的。
[0044] 除上述实施例外,本发明还可以有其它实施方式,凡采用等同替换或等效变换形成的技术方案,均落在本发明所要求保护的范围之内。