一种基于时序卷积神经网络的云平台服务负载预测方法与流程

    专利查询2022-07-06  304



    1.本发明涉及云平台资源领域,具体涉及一种基于时序卷积神经网络的云平台服务负载预测方法。


    背景技术:

    2.近年来,越来越多的服务被部署到云端,虚拟化技术已经成为云平台稳定高效运行的重要保障。docker作为轻量级操作系统虚拟化技术,具有优秀的隔离性能和敏捷部署等特点,越来越多的微服务开始基于docker容器进行构建,基于docker容器的云平台已逐渐成为现代云平台的标准架构。
    3.由于云平台服务多样性和用户负载的动态变化,集群容易出现应用负载过高或过低的现象,因此,基于应用负载动态调整容器数量的方式,已经成为云平台自动化运维的重要途径。传统的云平台一般采用响应式自动伸缩方式,当负载峰值到来时,往往会因为容器扩容滞后而造成服务质量的下降。近年来,基于负载预测的预测式自动伸缩因其具有超前、预先的特性,逐渐成为解决响应式自动伸缩滞后性的可行方案,并取得了显著效果。由于服务的cpu负载往往直接决定任务响应时间、服务质量和能耗大小,是服务最重要的工作负载之一,因此基于服务cpu负载预测值的自动伸缩工作,已经逐渐成为研究的热点并广泛应用于预测式自动伸缩场景中。


    技术实现要素:

    4.为了解决现有技术中容器云平台响应式自动伸缩策略滞后性所带来服务的质量下降问题,本发明提供一种能够用于预测式自动伸缩的基于时序卷积神经网络的云平台服务负载预测方法,本方法具有较高的预测精度。
    5.本发明采用如下技术方案:
    6.一种基于时序卷积神经网络的云平台服务负载预测方法,包括:
    7.s1采集cpu负载时序数据,构成训练样本集;
    8.s2对训练样本进行预处理及特征提取,所述特征提取包括周期注意力向量和峰值注意力向量,将训练样本、周期注意力向量和峰值注意力向量进行加权求和得到最终训练样本;
    9.s3构建时序卷积神经网络,最终训练样本作为输入信号;
    10.s4训练时序卷积神经网络;
    11.s5测试样本数据输入训练好的时序卷积神经网络,得到测试样本的cpu负载预测结果。
    12.进一步,所述s1采集cpu负载时序数据,具体为:
    13.s1.1设定采样周期δt,采集服务cpu负载的时间范围设置为tm,采集cpu负载时序数据;
    14.s1.2对cpu负载时序数据采用固定步长、固定长度滑窗扫描,具体为:滑窗采集的
    cpu负载数据从最早时刻数据开始扫描,每次截取固定长度lm的数据点作为训练样本,截取完成后滑窗向后平移δs个点,继续截取训练样本,构成训练样本集。
    15.进一步,所述预处理包括数据归一化及引入高斯白噪声进行数据增广。
    16.进一步,所述特征提取包括:
    17.通过自相关系数发掘数据周期性,生成用于引导模型关注周期特征的周期注意力向量;
    18.通过一阶差分的方式发掘峰值数据,生成用于引导模型关注峰值特征的峰值注意力向量。
    19.进一步,所述通过自相关系数发掘数据周期性,生成用于引导模型关注周期特征的周期注意力向量,具体为:
    20.对输入的长度为lm的数据点的时序数据,截取前面l
    m-1长度数据点进行处理,通过自相关系数公式计算时序数据的自相关向量,遍历自相关向量取非0下标的最大自相关值的下标作为时序数据的周期t:
    21.假设第lm个点为预测点t0,找到对应预测点t0的周期重复下标t

    =t0-n*t,n=0,1,2

    ,在t

    处生成正态分布的周期注意力向量,周期注意力向量atten
    season
    生成方式为
    [0022][0023]
    且t≠t0;
    [0024]
    其中t是整数,控制周期注意力向量的高亮区间长度为总长度的8%,σ2是周期注意力向量分布的离散度,考虑到正态分布3σ原则,因此至少要大于3σ长度,这样才能保证注意力向量在区间内包括注意力数值的可能取值。
    [0025]
    进一步,所述通过一阶差分的方式发掘峰值数据,生成用于引导模型关注峰值特征的峰值注意力向量,具体为:
    [0026]
    对输入的长度为lm的数据点的时序数据data,截取l
    m-1长度数据点进行处理,将l
    m-1长度数据点分为两个子向量arr1,arr2,其中:
    [0027][0028][0029]
    每个子向量长度都是l
    m-2,之后利用arr2和arr1进行逐位相减得到峰值向量,最终得到的归一化峰值注意力向量atten
    peak

    [0030][0031]
    其中,当t=1时和t=lm的时候,atten
    peak
    由0值进行补充,s是归一化操作,目的是避免峰值向量的值过高或过低。
    [0032]
    进一步,所述s2中,将训练样本、周期注意力向量和峰值注意力向量进行加权求和
    得到最终训练样本,具体为:
    [0033][0034]
    其中,α=1,β=0.4,γ=0.4。
    [0035]
    进一步,所述数据归一化按照比例0.75进行,所述引入高斯白噪声进行数据增广,具体是引入的高斯白噪声是均值为0,方差为0.01,通过和原始训练样本逐位相加生成与原始训练样本集同等数量的新训练样本。
    [0036]
    进一步,所述s5中所述测试样本需要进行如下处理:
    [0037]
    s5.1采样周期δt,获得cpu负载值作为测试样本,测试样本长度为为l
    m-1,通过末尾使用0值进行补充的方式,使测试样本长度扩充为lm;
    [0038]
    s5.2进行预处理及特征提取,并将测试样本与特征进行加权求和获得最终的测试样本,输入训练好的时序卷积神经网络。
    [0039]
    一种云平台服务负载预测方法的系统,包括
    [0040]
    获取训练样本集模块:采集cpu负载时序数据,构成训练样本集;
    [0041]
    预处理及特征提取模块:对训练样本集及测试样本进行处理;
    [0042]
    构建及训练时序卷积神经网络模块:用于构建集训练时序卷积神经网络模块;
    [0043]
    测试模块:将预处理及特征提取模块处理后的测试样本输入训练好的时序卷积神经网络模块,获得预测结果。
    [0044]
    本发明的有益效果:
    [0045]
    本发明从容器云平台传统的响应式自动伸缩机制弊端出发,突破时间序列预测分析、周期引导和峰值引导注意力向量生成的关键技术,形成预测精度高的预测算法,在云平台预测式自动伸缩机制中具有重要用途,有利于解决响应式自动伸缩可能带来的滞后性和服务质量下降的问题,在大规模容器微服务系统中具有广泛的应用价值。
    附图说明
    [0046]
    图1是本发明的工作流程图;
    [0047]
    图2是本发明的输入层残差块的结构图;
    [0048]
    图3是本发明的隐藏层残差块的结构图。
    具体实施方式
    [0049]
    下面结合实施例及附图,对本发明作进一步地详细说明,但本发明的实施方式不限于此。
    [0050]
    实施例
    [0051]
    如图1-图3所示,一种基于时序卷积神经网络的云平台服务负载预测方法,包括如下步骤:
    [0052]
    s1以一定采样周期采集云平台服务一段时间内的cpu负载时序数据,构成训练样本集,其中训练样本集包含对采集到的cpu负载时序数据采用固定步长、固定长度滑窗扫描产生的连续子序列数据,每个训练样本最后一个数据值设置为训练标签.
    [0053]
    具体为:
    [0054]
    步骤s1-1、所述采样周期设置为δt,采集服务cpu负载的时间范围设置为tm。
    [0055]
    δt是计算cpu负载值时前后采样时刻的时间差,也即是cpu负载的采样周期。现实中,主流云平台cpu负载的常用采样周期是1min、5min和15min,不失一般性,本发明的采样周期δt设置为常用采样周期之一。
    [0056]
    采集服务cpu负载的时间范围tm直接影响到训练样本的数量,为保证有足够的训练样本,tm近似为一般云平台在δt采样周期下cpu负载时序数据的最长保存时间。
    [0057]
    本实施例δt为5min,tm设置为3个月。
    [0058]
    步骤s1-2、所述固定长度为lm,固定步长设置为δs。考虑到实际场景中用户请求服务具有规律性,很多用户会习惯性在每天的相同时间请求服务,因此为便于发掘用户请求服务的周期性,lm的值应该使得在δt采样周期下训练样本时间跨度可以覆盖一天,也就是:
    [0059][0060]
    其中δd是一天的时间,与δt有相同单位,为1440min。
    [0061]
    步骤s1-3、滑窗从采集的cpu负载数据中最早时刻的数据开始扫描,每次截取lm长度的数据点作为训练样本,截取完成后滑窗向后平移δs个点,继续截取训练样本。
    [0062]
    s2对训练样本进行预处理及特征提取,所述特征提取包括周期注意力向量和峰值注意力向量,将训练样本、周期注意力向量和峰值注意力向量进行加权求和得到最终训练样本;
    [0063]
    具体为:
    [0064]
    s2-1所述预处理包括,通过除以训练样本集cpu负载最大值的一定比例数值的方式进行数据归一化,以及为原始训练样本引入高斯白噪声进行数据增广。
    [0065]
    进一步,本实施例中采用比例0.75进行数据归一化,这样在保证足够多的数据分布于[0,1]区间的同时,又不会使得较小的cpu负载数据被淹没。引入的高斯白噪声是均值为0,方差为0.01,通过和原始训练样本逐位相加生成与原始训练样本集同等数量的新训练样本。
    [0066]
    s2-2所述特征提取的方式如下:
    [0067]
    通过自相关系数发掘数据周期性,生成用于引导模型关注周期特征的周期注意力向量。
    [0068]
    进一步,对输入的lm长度的数据点的时序数据data,截取前面l
    m-1长度数据点进行处理,通过自相关系数公式计算时序数据的自相关向量,遍历自相关向量取非0下标的最大自相关值的下标作为时序数据的周期t:
    [0069][0070]
    其中n是序列长度,等于lm,是时序数据均值,k是滞后阶数,在本实施例中,lm设置为300。
    [0071]
    对上述自相关系数公式产生的自相关向量,依次遍历自相关向量所有值,取非0下标的最大值下标作为周期t。
    [0072]
    对前述步骤得到的周期t,假设第lm个点为预测点t0,找到对应预测点t0的周期重
    复下标t

    =t0-n*t,n=0,1,2

    ,在t

    处生成正态分布的周期注意力向量,周期注意力向量atten
    season
    生成方式为
    [0073][0074]
    且t≠t0;
    [0075]
    其中t是整数,控制周期注意力向量的高亮区间长度为总长度的8%,σ2是周期注意力向量分布的离散度,考虑到正态分布3σ原则,因此至少要大于3σ长度,这样才能保证注意力向量在区间内包括了足够多的注意力数值的可能取值。
    [0076]
    在本实施例中,σ2设置为9。
    [0077]
    通过一阶差分的方式发掘峰值数据,生成用于引导模型关注峰值特征的峰值注意力向量。
    [0078]
    进一步,对输入的lm长度数据点的时序数据data,截取前面l
    m-1长度数据点进行处理,将l
    m-1长度数据点分为两个子向量arr1,arr2,其中:
    [0079][0080][0081]
    每个子向量长度都是l
    m-2,之后利用arr2和arr1进行逐位相减得到峰值向量,最终得到的归一化峰值注意力向量atten
    peak

    [0082][0083]
    其中,当t=1时和t=lm的时候,atten
    peak
    由0值进行补充,s是归一化操作,目的是避免峰值向量的值过高或过低:
    [0084][0085]
    s2-3将原始训练样本、周期注意力向量和峰值注意力向量进行加权求和,得到最终训练样本。
    [0086]
    进一步,将原始训练样本、周期注意力向量和峰值注意力向量进行加权求和,得到最终训练样本,作为时序神经网络的输入:
    [0087][0088]
    其中,α=1,β=0.4,γ=0.4。
    [0089]
    s3构建时序卷积神经网络,最终训练样本作为输入信号;
    [0090]
    进一步,所述时序卷积神经网络包括输入层、隐藏层及输出层。
    [0091]
    如图1所示,所述输入层为residual-block1,采用1
    ×
    3卷积核构建残差块接收输入到神经网络的时序数据,residual-block1的结构如图2所示;
    [0092]
    所述隐藏层包括3个residual-block2残差块,residual-block2的具体结构如图3
    所示。随着深度增加,隐藏层残差块采用膨胀系数依次为2、4、8的空洞卷积,每一个隐藏层残差块输入/输出特征维度均设置为150;输出层为全连接层,可以进一步整合隐藏层所有特征信息,拟合标签大于1的样本。对于输入层和隐藏层,残差块由两组相同的结构串联,每组结构为卷积、权重归一化、线性修正单元、dropout率为0.2的dropout层。
    [0093]
    s4训练时序卷积神经网络
    [0094]
    s5测试样本数据输入训练好的时序卷积神经网络,得到测试样本的cpu负载预测结果。
    [0095]
    以步骤s1所述采样周期从云平台获取测试样本,首先将测试样本进行预处理和特征提取,然后输入到时序卷积神经网络中,通过训练后的时序卷积神经网络模型获取测试样本的预测值,并进行反归一化得到测试样本的cpu负载预测值,其具体处理流程如下:
    [0096]
    s5-1所述采样周期与步骤s1相同设置为δt,获取当前时刻往前每δt时间间隔的cpu负载值作为测试样本,测试样本长度为l
    m-1,通过末尾使用0值进行补充的方式,使测试样本长度扩充为lm。本实施例中,lm设置为300,δt设置为5min。
    [0097]
    s5-2所述预处理,采用上述步骤s2-1的预处理,所述特征提取,采用步骤s2-2周期注意力向量、峰值注意力向量的特征提取方式。
    [0098]
    s5-3所述反归一化操作,是对测试样本经训练后的时序神经网络处理输出的预测值,对该预测值乘上训练样本集cpu负载最大值的一定比例数值,更进一步,该比例为0.75。乘上训练样本集cpu负载最大值的一定比例数值,更进一步的,该一定比例为0.75。本实施例中,训练样本集cpu负载最大值的一定比例数值是30。
    [0099]
    s5-4输入训练好的卷积神经网络,获得预测结果。
    [0100]
    实施例2
    [0101]
    一种云平台服务负载预测方法的系统,包括
    [0102]
    获取训练样本集模块:采集cpu负载时序数据,构成训练样本集;
    [0103]
    预处理及特征提取模块:对训练样本集及测试样本进行处理;
    [0104]
    构建及训练时序卷积神经网络模块:用于构建集训练时序卷积神经网络模块;
    [0105]
    测试模块:将预处理及特征提取模块处理后的测试样本输入训练好的时序卷积神经网络模块,获得预测结果。
    [0106]
    上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受所述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。
    转载请注明原文地址:https://tc.8miu.com/read-93.html

    最新回复(0)