掌桥专利:专业的专利平台
掌桥专利
首页

存储集群的负载预测方法和装置、存储介质及电子设备

文献发布时间:2024-04-18 19:58:30


存储集群的负载预测方法和装置、存储介质及电子设备

技术领域

本申请涉及存储集群领域,具体而言,涉及一种存储集群的负载预测方法和装置、存储介质及电子设备。

背景技术

相关技术中,在选择对存储集群进行负载预测时所使用的预测方法时,往往只能依据经验选择所使用的预测方法,并且往往是为不同的存储集群选择相同的预测方法来进行负载预测,比如:通过相同的预测算法对存储集群1和存储集群2的负载进行预测,而不同的存储集群的负载情况并不相同,并且同一个存储集群的负载情况也可能随着时间的变化发生变化,可能导致采用相同的预测算法可能会导致预测出的存储集群1或者存储集群2的负载不准确。

针对上述存储集群的负载预测的准确率较低的问题,目前尚未提出有效的解决方案。

发明内容

本申请实施例提供了一种存储集群的负载预测方法和装置、存储介质及电子设备,以至少解决存储集群的负载预测的准确率较低的技术问题。

根据本申请实施例的一个方面,提供了一种存储集群的负载预测方法,包括:获取目标存储集群的第i个集群负载序列,其中,所述目标存储集群包括一组存储设备,所述第i个集群负载序列包括第i组时间点上所述目标存储集群的实际负载,i为大于或等于1的正整数;确定所述第i个集群负载序列所属的目标序列类别,其中,所述目标序列类别是序列类别集合中的序列类别,所述序列类别集合包括至少对样本集群负载序列集合进行聚类所得到的多个序列类别,所述样本集群负载序列集合包括多个存储集群的多个样本集群负载序列,每个样本集群负载序列是在对应的一组时间点上所述多个存储集群中的一个存储集群的实际负载,多个存储集群包括所述目标存储集群,或者,所述目标存储集群与所述多个存储集群不同;将所述第i个集群负载序列输入与所述目标序列类别对应的目标预测神经网络模型,得到在所述第i组时间点的下一个时间点上所述目标存储集群的预测负载,其中,所述目标预测神经网络是使用样本集群负载序列子集对待训练的预测神经网络模型进行训练得到的模型,所述样本集群负载序列子集包括所述样本集群负载序列集合中属于所述目标序列类别的样本集群负载序列。

根据本申请实施例的另一方面,还提供了一种存储集群的负载预测装置,包括:获取单元,用于获取目标存储集群的第i个集群负载序列,其中,所述目标存储集群包括一组存储设备,所述第i个集群负载序列包括第i组时间点上所述目标存储集群的实际负载,i为大于或等于1的正整数;确定单元,用于确定所述第i个集群负载序列所属的目标序列类别,其中,所述目标序列类别是序列类别集合中的序列类别,所述序列类别集合包括至少对样本集群负载序列集合进行聚类所得到的多个序列类别,所述样本集群负载序列集合包括多个存储集群的多个样本集群负载序列,每个样本集群负载序列是在对应的一组时间点上所述多个存储集群中的一个存储集群的实际负载,多个存储集群包括所述目标存储集群,或者,所述目标存储集群与所述多个存储集群不同;输入单元,用于将所述第i个集群负载序列输入与所述目标序列类别对应的目标预测神经网络模型,得到在所述第i组时间点的下一个时间点上所述目标存储集群的预测负载,其中,所述目标预测神经网络是使用样本集群负载序列子集对待训练的预测神经网络模型进行训练得到的模型,所述样本集群负载序列子集包括所述样本集群负载序列集合中属于所述目标序列类别的样本集群负载序列。

可选的,所述确定单元,包括:第一确定模块,用于在所述序列类别集合包括对所述样本集群负载序列集合进行聚类所得到的N个序列类别、且所述N个序列类别与N个参考负载序列具有一一对应的情况下,确定所述第i个集群负载序列分别与所述N个参考负载序列中的每个参考负载序列的相似度,得到N个相似度,其中,所述N个参考负载序列中的第j个参考负载序列是根据所述样本集群负载序列集合中属于第j个序列类别的样本集群负载序列确定得到的序列,所述N个序列类别包括所述第j个序列类别,N为大于或者等于2的正整数,j为大于或者等于1、且小于或者等于N的正整数;第二确定模块,用于在所述N个相似度中的第p个相似度最大、且所述第p个相似度大于或等于预设阈值的情况下,将所述目标序列类别确定为所述N个序列类别中与所述第p个相似度对应的序列类别,其中,p为大于或等于1、且小于或等于N的正整数。

可选的,所述确定单元,包括:聚类模块,用于对所述样本集群负载序列集合和所述第i个集群负载序列进行聚类,得到M个序列类别,其中,M为大于或等于2的正整数;第三确定模块,用于将所述目标序列类别确定为所述M个序列类别中所述第i个集群负载序列所属的序列类别。

可选的,所述装置还包括:第一聚类单元,用于在确定所述第i个集群负载序列所属的目标序列类别之前,对所述样本集群负载序列集合进行聚类,得到所述序列类别集合;或者第二聚类单元,用于在所述样本集群负载序列集合包括P个样本集群负载序列的情况下,在所述P个样本集群负载序列中的每个样本集群负载序列中截取相同长度的子序列,得到P个子序列,其中,所述P个子序列中的每个子序列包括q个时间点上所述多个存储集群中的一个存储集群的实际负载;对所述P个子序列进行聚类,得到所述序列类别集合。

可选的,所述第二聚类单元,包括:第四确定模块,用于分别确定所述P个子序列中的每个子序列与所述P个子序列中的每个子序列之间的相似度,得到维度为P×P的相似度矩阵,其中,所述P个子序列中的第a个子序列与所述P个子序列中的第b个子序列之间的相似度是所述第a个子序列中的q个实际负载与所述第b个子序列中的q个实际负载之间的相似度,a和b为大于或等于1、且小于或等于P的正整数;第五确定模块,用于根据所述P×P的相似度矩阵,确定维度为1×P的类别标签向量,其中,所述1×P的类别标签向量表示所述P个子序列中的每个子序列所属的序列类别,其中,所述序列类别集合包括所述类别标签向量所表示的不同序列类别。

可选的,所述输入单元,包括:输入模块,用于将所述第i个集群负载序列输入所述目标预测神经网络模型,得到在第i组时间点的所述下一个时间点上所述目标存储集群的预测负载均值和预测负载方差;第六确定模块,用于根据所述预测负载均值和所述预测负载方差,确定在所述第i组时间点的所述下一个时间点上所述目标存储集群的所述预测负载。

可选的,第六确定模块,用于:将所述预测负载确定为等于所述预测负载均值与目标加权值之和,其中,所述目标加权值是预设的方差影响因子与所述预测负载方差之间的乘积。

可选的,所述装置还包括:训练单元,用于在将所述第i个集群负载序列输入与所述目标序列类别对应的目标预测神经网络模型,得到在所述k个时间点的下一个时间点上所述目标存储集群的预测负载之前,使用所述样本集群负载序列子集对所述待训练的预测神经网络模型进行训练,直到所述待训练的预测神经网络模型对应的目标损失值满足预设的收敛条件的情况下,结束训练,并将结束训练时的待训练的预测神经网络模型确定为所述目标预测神经网络模型,其中,所述目标损失值是样本预测负载与样本实际负载之间的损失值,所述样本预测负载是所述待训练的预测神经网络模型根据输入的样本集群负载序列子集确定的在一个时间点上所述多个存储集群中的一个存储集群的预测负载,所述样本实际负载是预先获取到的在所述一个时间点上所述多个存储集群中的一个存储集群的实际负载。

可选的,所述训练单元,用于通过以下步骤对所述待训练的预测神经网络模型进行第r轮训练,其中,r为大于或等于2的正整数:将所述第r轮训练使用的第r个样本集群负载序列输入第r-1轮训练确定的预测神经网络模型,得到所述第r轮训练的样本预测负载,其中,所述第r轮训练的样本预测负载表示在第r+1个时间点上所述多个存储集群中的一个存储集群的预测负载;确定所述第r轮训练的样本预测负载与所述第r轮训练的样本实际负载之间的损失值,得到所述第r轮训练的所述目标损失值,其中,所述第r轮训练的样本实际负载是预先获取到的在所述第r+1个时间点上所述多个存储集群中的一个存储集群的实际负载;在所述第r轮训练的所述目标损失值不满足所述预设的收敛条件的情况下,调整所述第r-1轮训练确定的预测神经网络模型中的参数,得到所述第r轮训练确定的预测神经网络模型;在所述第r轮训练的所述目标损失值满足所述预设的收敛条件的情况下,结束训练,并将所述第r-1轮训练确定的预测神经网络模型确定为所述目标预测神经网络模型。

可选的,所述训练单元,还用于:将所述第r轮训练使用的所述第r个样本集群负载序列输入所述第r-1轮训练确定的预测神经网络模型,得到在所述第r+1个时间点上所述多个存储集群中的一个存储集群的预测负载均值和预测负载方差;根据在所述第r+1个时间点上所述多个存储集群中的一个存储集群的所述预测负载均值和所述预测负载方差,确定所述第r轮训练的样本预测负载。

可选的,所述训练单元,还用于:将所述第r轮训练的样本预测负载确定为等于在所述第r+1个时间点上所述多个存储集群中的一个存储集群的所述预测负载均值与样本加权值之和,其中,所述样本加权值是预设的方差影响因子与在所述第r+1个时间点上所述多个存储集群中的一个存储集群的所述预测负载方差之间的乘积。

根据本申请实施例的又一方面,还提供了一种计算机可读的存储介质,该计算机可读的存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述存储集群的负载预测方法。

根据本申请实施例的又一个方面,提供一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行如以上存储集群的负载预测方法。

根据本申请实施例的又一方面,还提供了一种电子设备,包括存储器和处理器,上述存储器中存储有计算机程序,上述处理器被设置为通过所述计算机程序执行上述的存储集群的负载预测方法。

在本申请实施例中,将存储集群的集群负载序列输入集群负载序列所属的序列类别所对应的预测神经网络模型中,可以理解的是,属于不同序列类别的集群负载序列所输入的预测神经网络模型可能是不同的,即通过与集群负载序列所属的序列类别所对应的预测神经网络模型对存储集群的负载进行预测,避免了通过相同的预测神经网络模型对不同的存储集群的负载进行预测,提升了存储集群的负载预测的准确率,进而解决了存储集群的负载预测的准确率较低的技术问题。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1是根据本申请实施例的一种可选的存储集群的负载预测方法的应用环境的示意图;

图2是根据本申请实施例的一种可选的存储集群的负载预测方法的流程图;

图3是根据本申请实施例的一种可选的确定目标预测神经网络模型的示意图;

图4是根据本申请实施例的一种可选的参考负载序列的示意图;

图5是根据本申请实施例的一种可选的降维后的集群负载序列的示意图;

图6是根据本申请实施例的一种可选的负载序列元素对应关系图;

图7是根据本申请实施例的一种可选的确定目标序列类别的示意图;

图8是根据本申请实施例的一种可选的截取子序列的示意图;

图9是根据本申请实施例的一种可选的确定负载序列所属的序列类别的示意图;

图10是根据本申请实施例的一种可选的聚类后的示意图;

图11是根据本申请实施例的一种可选的确定集群负载序列所属的序列类别的示意图;

图12是根据本申请实施例的一种可选的DeepAR模型的示意图;

图13是根据本申请实施例的一种可选的通过滑动窗口对数据进行处理的示意图;

图14是根据本申请实施例的一种可选的确定预测负载的示意图;

图15是根据本申请实施例的一种方差影响因子与召回率之间的关系图;

图16是根据本申请实施的一种可选的确定目标预测神经网络模型的示意图;

图17是根据本申请实施例的一种可选的训练预测神经网络模型的示意图;

图18是根据本申请实施例的一种可选的确定预测神经网络模型输出的样本预测负载的示意图;

图19是根据本申请实施例的一种可选的预测结果的示意图;

图20是根据本申请实施例的一种可选的存储集群的负载预测装置的结构示意图;

图21是根据本申请实施例的一种可选的电子设备的示意图;

图22是根据本申请实施例的电子设备的计算机系统结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

首先,在对本申请实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:

RNN:Recurrent Neural Network,循环神经网络,是一种神经网络模型,它可以处理具有顺序性质的数据,如文本数据、语音数据和时间序列数据等。

LSTM:Long Short-Term Memory,长短期记忆网络,是循环神经网络中的一种神经网络,用于处理序列数据。与传统的RNN模型相比,LSTM模型可以更好的处理长序列数据,并且可以避免梯度消失和梯度爆炸等问题。

GRU:Gated Recurrent Unit,门控循环神经网络。GRU可以更好的处理长序列数据,并且比LSTM模型计算速度更快。目前在自然语言处理、时间序列预测等领域有较为广泛的应用。

DTW:Dynamic Time Warping,动态时间规整算法,是一种用于计算两个时间序列之间的距离的算法。

PAA:Piecewise Aggregate Approximation,分段聚合逼近算法,PAA算法是一种用于时间序列降维的算法。可以将高纬度的时间序列数据转换为低纬度的数据,从而更好地进行数据分析和处理。

DeepAR:Probabilistic Forecasting with Autoregressive Recurrent,是一种基于深度学习的时间序列预测模型,由亚马逊公司提出。DeepAR模型基于循环神经网络和卷积神经网络等深度学习技术,可以处理多变量时间序列,并且可以自动学习时间序列数据中的复杂模式和趋势。

根据本申请实施例的一个方面,提供了一种存储集群的负载预测方法,可选地,作为一种可选的实施方式,上述存储集群的负载预测方法可以但不限于应用于如图1所示的环境中。

可选的,在本实施例中,目标存储集群包括的一组存储设备可以但不限于独立部署,或者,部署在一个或者多个服务器上,可以但不限于以存储设备1、和存储设备2以及存储设备3、存储设备4、存储设备5和存储设备6部署在服务器102、服务器104和服务器106上为例,对本申请实施例中的存储集群的负载预测方法的应用场景进行解释和说明。

如图1所示,目标存储集群包括的存储设备1、和存储设备2以及存储设备3,存储集群1包括存储设备4、和存储设备5以及存储设备6,终端设备101通过网络可以访问服务器102、服务器104和服务器106上部署的目标存储集群中的各个存储设备和存储集群1中的各个存储设备。可以但不限于通过以下步骤实现本申请实施例中的存储集群的负载预测方法:

步骤S102:获取目标存储集群的第i个集群负载序列,其中,目标存储集群包括一组存储设备,第i个集群负载序列包括第i组时间点上目标存储集群的实际负载,i为大于或等于1的正整数;

步骤S104:确定第i个集群负载序列所属的目标序列类别,其中,目标序列类别是序列类别集合中的序列类别,序列类别集合包括至少对样本集群负载序列集合进行聚类所得到的多个序列类别,样本集群负载序列集合包括多个存储集群的多个样本集群负载序列,每个样本集群负载序列是在对应的一组时间点上多个存储集群中的一个存储集群的实际负载,多个存储集群包括目标存储集群,或者,目标存储集群与多个存储集群不同;

步骤S106:将第i个集群负载序列输入与目标序列类别对应的目标预测神经网络模型,得到在第i组时间点的下一个时间点上目标存储集群的预测负载,其中,目标预测神经网络是使用样本集群负载序列子集对待训练的预测神经网络模型进行训练得到的模型,样本集群负载序列子集包括样本集群负载序列集合中属于目标序列类别的样本集群负载序列。

通过本申请实施例,将存储集群的集群负载序列输入集群负载序列所属的序列类别所对应的预测神经网络模型中,可以理解的是,属于不同序列类别的集群负载序列所输入的预测神经网络模型可能是不同的,即通过与集群负载序列所属的序列类别所对应的预测神经网络模型对存储集群的负载进行预测,避免了通过相同的预测神经网络模型对不同的存储集群的负载进行预测,提升了存储集群的负载预测的准确率,进而解决了存储集群的负载预测的准确率较低的技术问题。

可选地,在本实施例中,上述终端设备可以是配置有目标客户端的终端设备,可以包括但不限于以下至少之一:手机(如Android手机、iOS手机等)、笔记本电脑、平板电脑、掌上电脑、MID(Mobile Internet Devices,移动互联网设备)、PAD、台式电脑、智能电视等。目标客户端可以是视频客户端、即时通信客户端、浏览器客户端、教育客户端等。上述网络可以包括但不限于:有线网络,无线网络,其中,该有线网络包括:局域网、城域网和广域网,该无线网络包括:蓝牙、WIFI及其他实现无线通信的网络。上述服务器可以是单一服务器,也可以是由多个服务器组成的服务器集群,或者是云服务器。上述仅是一种示例,本实施例中对此不作任何限定。

可选地,作为一种可选的实施方式,如图2所示,上述存储集群的负载预测方法包括:

步骤S202,获取目标存储集群的第i个集群负载序列,其中,所述目标存储集群包括一组存储设备,所述第i个集群负载序列包括第i组时间点上所述目标存储集群的实际负载,i为大于或等于1的正整数。

存储集群可以但不限于包括一组存储设备,存储设备可以但不限于为用于存储信息或者数据等等的设备,比如:硬盘、闪存、或者磁盘等等,存储设备可以但不限于独立部署、或者部署在服务器上。不同存储集群包括的存储设备可以但不限于独立部署,或者部署在相同、不同或者部分相同的服务器上,通过访问存储集群中的存储设备,可以充分发挥存储设备的性能,提升存储设备的利用率。

集群负载序列可以但不限于包括读带宽、写带宽、读IOPS(Input/OutputOperations Per Second,每秒进行读写操作的次数)、以及写IOPS等等负载的序列,其中,写带宽对于存储集群的影响最大,往往是对写带宽较为关注。

存储集群的负载会随着时间发生变化,为了提升存储集群的运行的稳定性,可以但不限于通过基于统计学的方法和基于学习的方法等等方法对存储集群的负载进行预测。基于统计学的方法可以但不限于包括线性回归、指数平滑、自回归等等方法,基于学习的方法可以但不限于包括基于机器学习的传统方法,例如:决策树、随机森林等等,以及基于深度学习的方法,例如:RNN、LSTM、GRU等等。

基于统计学的方法和基于学习的方法虽然在一些存储集群的负载的预测上较为准确,但这两种方法都存在着一些缺陷,基于统计学的负载预测方法有很明显的局限性,当工作负载模式较为复杂、不具有明显周期性或者序列不稳定时,预测效果会变得很差。而存储集群在不同时间的工作负载的高差异性使得这种方法难以发掘时间序列内的相关性。

而基于深度学习的预测方法尽管有着更高的预测准确率,但当要预测的时间序列变多时,这类模型也无法很好的从中提取有效特征。而如果为每一条时间序列训练一个模型预测,不仅丢失了很多相似的时序特征,还带来了巨大的训练成本开销,这种方法在生产环境中难以应用。

现有的深度学习方法通常只会输出一个预测均值,在存储集群的负载经常发生过载的场景中,仅仅依赖输出的预测均值信息确定的存储集群的负载在未来一段时间是否发生过载的概率往往是不准确的,即预测的结果不准确。

另一方面,往往根据经验选择对存储集群的负载进行预测时所使用的方法,但不同的存储集群所支持的业务往往不同,不同的存储集群的负载情况往往是不同的,比如:存储集群1的业务量和业务高峰期与存储集群2的业务量和业务高峰期不同,在这样的情况下,通过相同的方法对存储集群1和存储集群2的负载进行预测的效果可能并不好,比如:预测的存储集群1的负载较为准确,但预测的存储集群2的负载不准确。

在这样的情况下,为了提升预测结果的准确性,可以但不限于考虑存储集群的实际负载,获取存储集群中的各个存储设备的负载序列,根据各个存储设备的负载序列得到可以表示存储集群的集群负载序列。

可选地,在本实施例中,可以但不限于通过以下方式获取目标存储集群的集群负载序列的第i个集群负载序列:获取目标存储集群包括的一组存储设备中各个存储设备的存储设备负载序列,得到一组存储设备负载序列,其中,一组存储设备负载序列中的各个存储设备负载序列包括在第i组时间点上一组存储设备中各个存储设备的实际负载;将目标存储集群的第i个集群负载序列确定为一组存储设备负载序列中的各个存储设备负载序列的和值,或者,将目标存储集群的第i个集群负载序列确定为一组存储设备负载序列的平均值。

可选的,在本实施例中,第i组时间点可以但不限于包括在第i个时间段内的k个时间点,k为大于或等于2的正整数,第i个集群负载序列包括在第i个时间段内的k个时间点上目标存储集群的k个实际负载;第i+1组时间点可以但不限于与第i组时间点之间具有交叉重复的时间点,第i+1组时间点可以但不限于包括在第i+1个时间段内的k个时间点,k为大于或等于2的正整数,第i+1个集群负载序列包括在第i+1个时间段内的k个时间点上目标存储集群的k个实际负载。例如:可以但不限于将第i组时间点中的第1个时间点去除,然后将第k+1个时间点加入第i组时间点,得到第i+1组时间点。

例如:第i个时间段为当天时间14:00至16:00之间的时间段,k个时间点为14:00至16:00之间的时间段中每隔20分钟的时间点,即第i组时间点包括的k个时间点可以但不限于为时间点14:20、时间点14:40、时间点15:00、时间点15:20、时间点15:40、和时间点16:00,共计6个时间点,在这样的情况下,第i个集群负载序列包括时间点14:20、时间点14:40、时间点15:00、时间点15:20、时间点15:40、和时间点16:00上目标存储集群的6个实际负载。

那么,第i+1个时间段为当天时间14:20至16:20之间的时间段,k个时间点为14:20至16:20之间的时间段中每隔20分钟的时间点,即第i组时间点包括的k个时间点可以但不限于为时间点14:40、时间点15:00、时间点15:20、时间点15:40、时间点16:00和时间点16:20,共计6个时间点,在这样的情况下,第i+1个集群负载序列包括时间点14:40、时间点15:00、时间点15:20、时间点15:40、时间点16:00和时间点16:20上目标存储集群的6个实际负载。

步骤S204,确定所述第i个集群负载序列所属的目标序列类别,其中,所述目标序列类别是序列类别集合中的序列类别,所述序列类别集合包括至少对样本集群负载序列集合进行聚类所得到的多个序列类别,所述样本集群负载序列集合包括多个存储集群的多个样本集群负载序列,每个样本集群负载序列是在对应的一组时间点上所述多个存储集群中的一个存储集群的实际负载,多个存储集群包括所述目标存储集群,或者,所述目标存储集群与所述多个存储集群不同。

为了提升选择的对存储集群的负载进行预测的方法的合理性,可以但不限于根据存储集群的实际负载,从预设的序列类别集合中确定存储集群的集群负载序列所属的序列类别。可选的,在本实施例中,样本集群负载序列集合可以但不限于包括多个存储集群的多个样本集群负载序列,多个样本集群负载序列中的每个样本集群负载序列所对应的时间点的数量可以但不限于相同或者部分相同,多个样本集群负载序列中的各个样本集群负载序列所对应的存储集群可以但不限于相同、或者不同。例如:多个样本集群负载序列包括4个样本集群负载序列,第1个样本集群负载序列包括5个时间点上多个存储集群中的存储集群1的负载,第2个样本集群负载序列包括4个时间点上多个存储集群中的存储集群2的负载,第3个样本集群负载序列包括4个时间点上多个存储集群中的存储集群1的负载,第4个样本集群负载序列包括3个时间点上多个存储集群中的存储集群3的负载。

可以但不限于从预设的序列类别集合中确定第i个集群负载序列所属的目标序列类别,序列类别集合可以但不限于包括对样本集群负载序列集合进行聚类所得到的多个序列类别,详细来说,可以但不限于将样本集群负载序列集合中相似的样本集群负载序列聚为一类,属于相同序列类别的样本集群负载序列的集群负载具有相同或者相似的变化趋势,在这样的情况下,可以表明目标序列类别是序列类别集合中已经聚类得到的序列类别中的一个序列类别。通过这样的方式,一方面,实现了通过多个存储集群的样本集群负载序列,扩大了样本集群负载序列的范围,扩大了确定的序列类别集合所包括的序列类别的数量和范围,另一方面,可以直接从已经聚类得到的多个序列类别中,确定集群负载序列所属的序列类别,提升了确定集群负载序列所属的序列类别的效率。

或者,序列类别集合可以但不限于包括对样本集群负载序列集合和第i个集群负载序列进行聚类所得到的多个序列类别,可以理解的是,目标序列类别并不是序列类别集合中已经聚类得到的序列类别中的一个序列类别,在这样的情况下,可以但不限于将样本集群负载序列集合和第i个集群负载序列进行聚类,得到序列类别集合。可以但不限于将样本集群负载序列集合和第i个集群负载序列中相似的样本集群负载序列聚为一类,属于相同序列类别的集群负载序列的集群负载具有相同或者相似的变化趋势。

存储集群的实际负载随着其所支撑的业务的业务量的变化,可能会发生变化,在这样的情况下,同一个存储集群在不同时间段中的实际负载也会发生变化,那么同一个存储集群在不同时间上的集群负载序列所属的目标序列类别可能也会发生变化,比如:存储集群1在时间段1内,实际负载较大,其集群负载序列1所对应的序列类别为类别1,存储集群1在时间段2内,实际负载较小,其集群负载序列2所对应的序列类别为类别2。

步骤S206,将所述第i个集群负载序列输入与所述目标序列类别对应的目标预测神经网络模型,得到在所述第i组时间点的下一个时间点上所述目标存储集群的预测负载,其中,所述目标预测神经网络是使用样本集群负载序列子集对待训练的预测神经网络模型进行训练得到的模型,所述样本集群负载序列子集包括所述样本集群负载序列集合中属于所述目标序列类别的样本集群负载序列。

为了提升预测结果的准确性,可以但不限于将第i个集群负载序列输入与目标序列类别对应的目标预测神经网络模型中,得到在第i组时间点的下一个时间点上目标存储集群的预测负载,可选的,第i组时间点可以但不限于包括k个时间点,这样,得到的是在k个时间点的下一个时间点上(比如:第k+1个时间点上)目标存储集群的预测负载。可选的,在本实施例中,不同序列类别对应的预测神经网络模型可以但不限于不同,预测神经网络模型可以但不限于包括Deep AR模型、RNN、BP(Backpropagation,反向传播)神经网络、CNN(Convolutional Neural Network,卷积神经网络)等等预测神经网络模型。

如图3所示,目标存储集群可以但不限于包括存储设备1和存储设备2和存储设备3,可以但不限于获取存储设备1的存储设备负载1,存储设备负载1包括在第i个时间段中的k个时间点上的存储设备1的实际负载1,存储设备负载2包括在第i个时间段中的k个时间点上的存储设备2的实际负载2,存储设备负载3包括在第i个时间段中的k个时间点上的存储设备3的实际负载3,可以但不限于对存储设备负载1、存储设备负载2和存储设备负载3进行求和,得到第i个集群负载序列。

序列类别集合中可以但不限于包括序列类别1、序列类别2和序列类别3,序列类别1对应预测神经网络模型1,序列类别2对应预测神经网络模型2,序列类别3对应预测神经网络模型3,可以但不限于从预设的序列类别集合中确定第i个集群负载序列所属的序列类别2(相当于目标序列类别),将第i个集群负载序列输入与序列类别2对应的预测神经网络模型2,得到在k个时间点的下一个时间点上目标存储集群的预测负载。

通过上述方式,将存储集群的集群负载序列输入集群负载序列所属的序列类别所对应的预测神经网络模型中,可以理解的是,属于不同序列类别的集群负载序列所输入的预测神经网络模型可能是不同的,即通过与集群负载序列所属的序列类别所对应的预测神经网络模型对存储集群的负载进行预测,避免了通过相同的预测神经网络模型对不同的存储集群的负载进行预测,提升了存储集群的负载预测的准确率,进而解决了存储集群的负载预测的准确率较低的技术问题。

作为一种可选的方案,确定所述第i个集群负载序列所属的目标序列类别,包括:

S11,在所述序列类别集合包括对所述样本集群负载序列集合进行聚类所得到的N个序列类别、且所述N个序列类别与N个参考负载序列具有一一对应的情况下,确定所述第i个集群负载序列分别与所述N个参考负载序列中的每个参考负载序列的相似度,得到N个相似度,其中,所述N个参考负载序列中的第j个参考负载序列是根据所述样本集群负载序列集合中属于第j个序列类别的样本集群负载序列确定得到的序列,所述N个序列类别包括所述第j个序列类别,N为大于或者等于2的正整数,j为大于或者等于1、且小于或者等于N的正整数;

S12,在所述N个相似度中的第p个相似度最大、且所述第p个相似度大于或等于预设阈值的情况下,将所述目标序列类别确定为所述N个序列类别中与所述第p个相似度对应的序列类别,其中,p为大于或等于1、且小于或等于N的正整数。

可选的,在本实施例中,N个参考负载序列中的第j个参考负载序列是样本集群负载序列集合中属于第j个序列类别的样本集群负载序列中的一个序列,或者,是对样本集群负载序列集合中属于第j个序列类别的样本集群负载序列进行拟合所得到的序列,或者,是对样本集群负载序列集合中属于第j个序列类别的样本集群负载序列进行平均所得到的序列。

例如:如图4所示,样本集群负载序列集合包括样本集群负载序列1至7,对样本序列集合进行聚类,得到3个序列类别,其中,其中,序列类别1包括样本集群负载序列1和样本集群负载序列2,序列类别2包括样本集群负载序列3和样本集群负载序列4和样本集群负载序列6,序列类别3包括样本集群负载序列5和样本集群负载序列7。这样,参考负载序列1可以是负载序列1和负载序列2中的一个,或者,是负载序列1和负载序列2拟合得到的序列,或者是负载序列1和负载序列2平均得到的序列。参考负载序列2可以是负载序列3、负载序列4和负载序列6中的一个,或者,是负载序列3、负载序列4和负载序列6拟合得到的序列,或者是负载序列3、负载序列4和负载序列6平均得到的序列。参考负载序列3可以是负载序列5和负载序列7中的一个,或者,是负载序列5和负载序列7拟合得到的序列,或者是负载序列5和负载序列7平均得到的序列。

为了提升确定集群负载序列所属于的序列类别的效率,可以但不限于从序列类别集合已有的序列类别中获取第i个集群负载序列所属的目标序列类别。

可选的,在本实施例中,可以但不限于通过以下方式确定第i个集群负载序列分别与N个参考负载序列中的每个参考负载序列的相似度:获取第i个集群负载序列分别与N个参考负载序列中的每个参考负载序列之间的距离,得到N个距离;将N个距离确定为N个相似度。

例如:获取第i个集群负载序列分别与N个参考负载序列中的每个参考负载序列之间的欧式距离、余弦相似度、互信息等等距离。在本实施例中,以欧式距离为例进行解释和说明,详细来说,可以但不限于将两条长度相同的负载序列按照时间点的顺序一对一的对应起来,然后计算欧式距离。

可选的,在本实施例中,还可以但不限于通过以下方式确定第i个集群负载序列分别与N个参考负载序列中的每个参考负载序列的相似度:通过第一算法确定第i个集群负载序列分别与N个参考负载序列中的每个参考负载序列的相似度,其中,第一算法用于确定不同负载序列之间的相似度;或者,通过第二算法对第i个集群负载序列与N个参考负载序列中的每个参考负载序列进行降维处理,其中,所述第二算法用于降低第i个集群负载序列与N个参考负载序列的维度,得到第i个降维集群负载序列与N个降维参考负载序列;通过第一算法确定第i个降维集群负载序列与N个降维参考负载序列中的每个降维参考负载序列的相似度。

为了提升通过算法确定不同负载序列之间的相似度的效率,可以但不限于先对数据进行降维处理,降维处理可以但不限于用于将高维度的时间序列数据转换为低纬度的数据,同时保留数据的主要特征和趋势,以便更好地进行数据分析和处理。在本实施例中,可以但不限于以第二算法为PAA算法为例,PAA降维算法将负载序列分为多段,保留突兀的数据点,删除部分较为平滑的点,得到筛选后的点,在各段内使用筛选后的点的均值代替曲线。如图5所示,存储集群的原始集群负载序列中包含864个数据点,在对原始集群负载序列进行降维之后,包含200个数据点。降维后的集群负载序列尽可能的保留了原始集群负载序列中的信息。

在对数据进行降维处理之后,可以但不限于通过第一算法计算降维后的集群负载序列与参考负载序列之间的相似度,可选的,在本实施例中,第一算法可以但不限于包括基于形状的算法、基于编辑距离的算法、基于特征的算法,以及基于结构的算法等等,在本实施例中,以第一算法为DTW算法为例。详细来说,DTW算法,基于动态规划的思想来计算两条负载序列之间的相似度。例如:有两条负载序列分别是Q和C,长度分别是n和m,那么负载序列Q中长度为i的前缀序列和负载序列C中长度为j的前缀序列之间的相似度g(i,j)可以基于以下递推公式(1)得到:

其中,g(i-1,j)用于表示负载序列Q中长度为i-1的前缀序列和负载序列C中长度为j的前缀序列之间的相似度,g(i,j-1)用于表示负载序列Q中长度为i的前缀序列和负载序列C中长度为j-1的前缀序列之间的相似度,d(i,j)表示负载序列Q中第i个值和负载序列C中第j个值之间的距离,可以但不限于为欧式距离、余弦相似度等等。

如图6所示,欧式距离虽然计算较为简单,但往往适合负载序列的长度相同或负载模式变化同步的情况下,例如:负载序列1和负载序列2的长度往往是相同的、且负载序列1和负载序列2包括的时间点需要对齐。可以理解的是,负载序列1中包括S个时间点上的集群1的S个集群负载,负载序列2中包括S个时间点上的集群2的S个集群负载,DTW算法解决了欧式距离计算方法中存在的时间对齐、长短不一等问题,例如:负载序列3和负载序列4的长度可能不同,负载序列3和负载序列4中包括的时间点往往不需要对齐,可以理解的是,负载序列3中包括P个时间点上的集群3的P个集群负载,负载序列4中包括S个时间点上的集群4的S个集群负载,因此DTW算法更适合在具有复杂模式的时间序列聚类场景。此外,通过PAA算法对数据进行降维处理,在不损失过多信息的前提下,极大地提升了DTW算法的计算速度。在本实施例中,维度降低了4倍,DTW算法的计算速度提升到原来的16倍左右。

可选的,在本实施例中,在N个相似度中的第p个相似度最大、且第p个相似度小于预设阈值的情况下,确定未获取到第i个集群负载序列所属的目标序列类别。可以但不限于对样本集群负载序列集合和第i个集群负载序列进行聚类。

作为一种可选的方案,可以但不限于通过以下方式确定第i个集群负载序列所属的目标序列类别:

S21,对所述样本集群负载序列集合和所述第i个集群负载序列进行聚类,得到M个序列类别,其中,M为大于或等于2的正整数;

S22,将所述目标序列类别确定为所述M个序列类别中所述第i个集群负载序列所属的序列类别。

目标序列类别可能并不是序列类别集合中已经聚类得到的序列类别中的一个序列类别,在这样的情况下,可以但不限于对样本集群负载序列集合和第i个集群负载序列进行聚类,得到M个序列类别,可选的,M个序列类别与N个序列类别相同,或者不同,在M个序列类别与N个序列类别相同的情况下,每个类别中的负载序列可以但不限于不同。

如图7所示,样本集群负载序列集合包括样本集群负载序列1至7,可以但不限于将负载序列1至7与第i个集群负载序列进行聚类,得到4个序列类别,其中,序列类别1包括样本集群负载序列1和样本集群负载序列2,序列类别2包括样本集群负载序列3和样本集群负载序列4,序列类别3包括样本集群负载序列5和样本集群负载序列7,序列类别4包括样本集群负载序列6和第i个集群负载序列。这样,第i个集群负载序列所属的序列类别为序列类别4(相当于目标序列类别)。

通过这样的方式,在已经聚类得到的序列类别集合中不包括第i个集群负载序列所属于的序列类别的情况下,可以重新将样本集群负载序列集合和当前的第i个集群负载序列进行聚类,提升了确定第i个集群负载序列所属于的序列类别的合理性。

作为一种可选的方案,可以但不限于通过以下方式得到序列类别集合:

S31,对所述样本集群负载序列集合进行聚类,得到所述序列类别集合;或者

S32,在所述样本集群负载序列集合包括P个样本集群负载序列的情况下,在所述P个样本集群负载序列中的每个样本集群负载序列中截取相同长度的子序列,得到P个子序列,其中,所述P个子序列中的每个子序列包括q个时间点上所述多个存储集群中的一个存储集群的实际负载;对所述P个子序列进行聚类,得到所述序列类别集合。

可选的,在本实施例中,样本集群负载序列集合中的每个样本集群负载序列的长度可以但不限于相同或者部分相同或者不同,样本集群负载序列的长度可以但不限于用于表示样本集群负载序所对应的时间点的数量。可以但不限于直接对样本集群负载序列集合进行聚类,得到序列类别集合;或者在样本集群负载序列集合中的每个样本集群负载序列的长度不同、或者部分相同的情况下,在样本集群负载序列集合包括每个样本集群负载序列中截取相同长度的子序列。

如图8所示,样本集群负载序列集合包括样本集群负载序列1至4,其中,样本集群负载序列1为:w

样本集群负载序列2为:w

样本集群负载序列3为:w

样本集群负载序列4为:w

在这样的情况下,可以但不限于从样本集群负载序列1至4中截取包括第3个时间点至第7个时间点上的实际负载,得到子序列1至4,其中,子序列1中包括w

通过这样的方式,在对样本集群负载序列集合中的样本集群负载序列进行聚类的情况下,可以先截取包括相同数量的时间点上的存储集群的实际负载,提升了子序列的长度之间的一致性,进而提升了聚类所得到的序列类别的准确性。

作为一种可选的方案,可以但不限于通过以下方式得到序列类别集合:

S41,分别确定所述P个子序列中的每个子序列与所述P个子序列中的每个子序列之间的相似度,得到维度为P×P的相似度矩阵,其中,所述P个子序列中的第a个子序列与所述P个子序列中的第b个子序列之间的相似度是所述第a个子序列中的q个实际负载与所述第b个子序列中的q个实际负载之间的相似度,a和b为大于或等于1、且小于或等于P的正整数;

S42,根据所述P×P的相似度矩阵,确定维度为1×P的类别标签向量,其中,所述1×P的类别标签向量表示所述P个子序列中的每个子序列所属的序列类别,其中,所述序列类别集合包括所述类别标签向量所表示的不同序列类别。

可选的,在本实施例中,可以但不限于通过以下方式确定P个子序列中的每个子序列与P个子序列中的每个子序列之间的相似度:获取P个子序列中的每个子序列与P个子序列中的每个子序列之间的距离,得到P个子序列中的每个子序列与P个子序列中的每个子序列之间的相似度。例如:P个子序列中的每个子序列与P个子序列中的每个子序列之间的欧式距离、余弦相似度、互信息等等距离。

可选的,在本实施例中,还可以但不限于通过以下方式确定P个子序列中的每个子序列与P个子序列中的每个子序列之间的相似度:通过第一算法确定P个子序列中的每个子序列与P个子序列中的每个子序列之间的相似度;或者,通过第二算法对P个子序列中的每个子序列进行降维处理,其中,第二算法用于降低P个子序列中的每个子序列的维度,得到降维后的P个子序列;通过第一算法确定降维后的P个子序列中的每个子序列与降维后的P个子序列中的每个子序列之间的相似度。

如图9所示,P个子序列可以但不限于包括子序列1至4,可以但不限于确定子序列1与子序列1之间的相似度S

可以但不限于根据4×4的相似度矩阵,确定维度为1×4的类别标签向量,维度为1×4的类别标签向量中包括向量L

可选的,在本实施例中,可以但不限于通过聚类算法对P×P的相似度矩阵进行聚类,聚类算法可以但不限于包括:K-means算法、means-shift算法或者K-Medoids算法等等,在本实施例中,可以但不限于以K-means算法为例进行解释和说明。

相关技术中,K-means算法选取所有的类内样本计算平均值作为类簇中心,当样本内异常点较多时,聚类效果变差,类簇中心缺乏代表性,本实施例中,可以但不限于使用类内样本的中位数作为类簇中心,该方法受噪声影响的程度较小。最佳聚类数量可以根据惯性系数和轮廓分数选择,其中,惯性系数是指每个实例与其最接近的中心点之间的均方距离,随着聚类数量的增加,惯性会降低,通常会选择一个下降缓慢的值作为最终的聚类数量。因为较低的数量惯性变化比较大,较高的数量并不利于聚类后的处理。轮廓分数通过计算聚类的内聚度和分离度来衡量聚类的好坏,值域范围为[-1,1],越靠近1表示实例更好的位于自身的类簇中。如图10所示,聚类后的结果包括簇a至簇d,每个簇对应一个序列类别,通过这样的方式,将时序特征相似的负载序列聚合到一起,提升了预测模型提取的特征的效率和准确率。

为了更好的理解本申请实施例中的确定集群负载序列所属的序列类别的过程,下面再结合可选的实施例,对本申请实施例中的确定集群负载序列所属的序列类别的过程进行解释和说明,可以但不限于适用于本申请实施例。

如图11所示,可以但不限于通过PAA算法对原始集群负载序列进行降维,得到降维后的集群负载序列;详细来说,PAA算法的输入是n条长度为m的集群负载序列,其中n是存储集群的数量,PAA算法的输出是n条长度为p的集群负载序列,其中p是降维后的维度,p

然后可以但不限于对降维后的集群负载序列使用DTW算法进行相似度的计算。详细来说,DTW算法的输入是n条长度为p的集群负载序列,DTW算法的输出:维度为n x n的相似度距离矩阵dist,其中dist

基于n x n的相似度矩阵,通过K-Medoids算法对降维后的集群负载序列使用进行聚类,详细来说,K-Medoids算法的输入为维度为n x n的相似度距离矩阵dist,K-Medoids算法的输出为维度为1xn的标签数组label(相当于类别标签向量,其中label

作为一种可选的方案,可以但不限于通过以下方式得到在第i组时间点的下一个时间点上目标存储集群的预测负载:

S51,将所述第i个集群负载序列输入所述目标预测神经网络模型,得到在所述第i组时间点的所述下一个时间点上所述目标存储集群的预测负载均值和预测负载方差;

S52,根据所述预测负载均值和所述预测负载方差,确定在所述第i组时间点的所述下一个时间点上所述目标存储集群的所述预测负载。

可选的,在本实施例中,第i组时间点可以但不限于包括k个时间点,可以但不限于将第i个集群负载序列输入目标预测神经网络模型,得到在k个时间点的下一个时间点(比如:第k+1个时间点)上目标存储集群的预测负载均值和预测负载方差;根据预测负载均值和预测负载方差,确定在k个时间点的下一个时间点(比如:第k+1个时间点)上目标存储集群的预测负载。

在确定了第i个集群负载序列所属于的目标序列类别的情况下,可以但不限于将第i个集群负载序列输入目标序列类别所对应的目标预测神经网络模型,每一组样本的预测结果包括预测负载均值和预测负载方差,通过结合预测负载均值和预测负载方差,确定存储集群的预测负载,提升了确定的存储集群的预测负载的准确性。在存储集群的负载可能发生过载的情况下,预测负载方差较大。在本实施例中,可以但不限于以目标预测神经网络模型为DeepAR为例,进行解释和说明。

如图12所示,DeepAR的网络模型在训练过程中,所有的数据都是已知的,因此可以直接输入预测分布,而对于预测过程,预测分布未知,因此不能像训练过程那样直接给decoder(解码器)输入上一时刻的真实值,只能通过抽样来得到一个估计值,将估计值输入到下一时刻的RNN中,不断迭代得到预测区间的预测结果。

使用DeepAR模型训练之前,需要使用滑动窗口对数据进行处理。如图13所示,对集群负载序列{x

作为一种可选的方案,可以但不限于通过以下方式得到在第i组时间点的下一个时间点上目标存储集群的预测负载:

S61,将所述预测负载确定为等于所述预测负载均值与目标加权值之和,其中,所述目标加权值是预设的方差影响因子与所述预测负载方差之间的乘积。

为了提升预测结果的真实性,即预测到更多的真实过载情况,可以但不限于添加预设的方差影响因子,预设的方差影响因子与预测负载成正比,比如:预设的方差影响因子越大,预测负载越大,可以表明更多的真实过载情况被预测到(即更高的召回率),预设的方差影响因子越小,预测负载越小,可以表明预测到的过载情况更多是真实发生的(即更高的精度)。

如图14所示,将第i个集群负载序列输入目标预测神经网络模型,得到在k个时间点的下一个时间点(例如:第k+1个时间点)上目标存储集群的预测负载均值和预测负载方差,将在第k+1个时间点上目标存储集群的预测负载确定为等于预测负载均值与目标加权值之和,其中,目标加权值是预设的方差影响因子与预测负载方差之间的乘积。

为了更好的解释本申请实施例所达到的提升存储集群的负载预测的准确率的技术效果,下面再结合可选的实施例,对本申请实施例中所达到的提升存储集群的负载预测的准确率的技术效果进行解释和说明,可以但不限于适用于本申请实施例。

如图15所示,基于真实的248个云存储集群的写带宽负载数据,取其中的Top2%和Top4%作为负载阈值,超过该阈值则认为发生过载。调节预测结果中的α(相当于方差影响因子)可以改变预测精度和召回率,随着α的增加,精度降低,召回率增加,意味着更多的真实过载情况被预测到,其代价则是更高的误报率,即预测的过载中真实的过载比例下降。

表1展示了四种方法的预测结果,四种方法分别是聚类后使用DeepAR预测、不聚类使用DeepAR预测、以及聚类后使用RNN和LSTM预测等等。其中DeepAR的结果根据最佳F1分数调参确定,F1指标是精度和召回率的谐波平均值,只有当精度和召回率都很高时才会得到较高的F1分数。可以发现,聚类后使用多个DeepAR进行预测的效果相较于不聚类直接使用一个DeepAR模型预测的效果有很大的提升。当使用Top2%作为过载阈值时,F1值由0.8648提升至0.9142。相较于RNN和LSTM,DeepAR在F1指标上分别由0.8865和0.8896提升至0.9142,由此可见预测负载方差σ可以帮助模型优化整体表现。

表1

作为一种可选的方案,可以但不限于通过以下方式得到目标预测神经网络模型:

S71,使用所述样本集群负载序列子集对所述待训练的预测神经网络模型进行训练,直到所述待训练的预测神经网络模型对应的目标损失值满足预设的收敛条件的情况下,结束训练,并将结束训练时的待训练的预测神经网络模型确定为所述目标预测神经网络模型,其中,所述目标损失值是样本预测负载与样本实际负载之间的损失值,所述样本预测负载是所述待训练的预测神经网络模型根据输入的样本集群负载序列子集确定的在一个时间点上所述多个存储集群中的一个存储集群的预测负载,所述样本实际负载是预先获取到的在所述一个时间点上所述多个存储集群中的一个存储集群的实际负载。

可选的,在本实施例中,样本集群负载序列子集中的每个样本集群负载序列对应一组时间点上多个存储集群中的一个存储集群的实际负载,可以但不限于通过样本集群负载序列子集对待训练的预测神经网络模型进行训练,在待训练的预测神经网络模型输出的样本预测负载与样本实际负载之间的损失值满足预设的收敛条件的情况下,比如:待训练的预测神经网络模型输出的样本预测负载与样本实际负载之间的损失值小于或者等于预设的损失值阈值的情况下,结束训练,并将结束训练时的待训练的预测神经网络模型确定为目标预测神经网络模型。

如图16所示,可以但不限于将样本集群负载序列子集输入待训练的预测神经网络模型,得到待训练的预测神经网络模型输出的样本预测负载,确定样本预测负载与样本实际负载之间的损失值是否满足预设的收敛条件,在确定样本预测负载与样本实际负载之间的损失值是否满足预设的收敛条件的情况下,结束训练,并将结束训练时的待训练的预测神经网络模型确定为目标预测神经网络模型。通过多个存储集群的历史负载数据,对待训练的预测神经网络模型进行训练,扩大了预测神经网络模型训练语料的范围,提升了得到的目标预测神经网络模型的合理性。

作为一种可选的方案,可以但不限于通过以下步骤对所述待训练的预测神经网络模型进行第r轮训练,其中,r为大于或等于2的正整数:

S81,将所述第r轮训练使用的第r个样本集群负载序列输入第r-1轮训练确定的预测神经网络模型,得到所述第r轮训练的样本预测负载,其中,所述第r轮训练的样本预测负载表示在第r+1个时间点上所述多个存储集群中的一个存储集群的预测负载;

S82,确定所述第r轮训练的样本预测负载与所述第r轮训练的样本实际负载之间的损失值,得到所述第r轮训练的所述目标损失值,其中,所述第r轮训练的样本实际负载是预先获取到的在所述第r+1个时间点上所述多个存储集群中的一个存储集群的实际负载;

S83,在所述第r轮训练的所述目标损失值不满足所述预设的收敛条件的情况下,调整所述第r-1轮训练确定的预测神经网络模型中的参数,得到所述第r轮训练确定的预测神经网络模型;

S84,在所述第r轮训练的所述目标损失值满足所述预设的收敛条件的情况下,结束训练,并将所述第r-1轮训练确定的预测神经网络模型确定为所述目标预测神经网络模型。

在对待训练的预测神经网络模型进行第r轮训练的情况下,如图17所示,可以但不限于将第r轮训练使用的第r个样本集群负载序列输入第r-1轮训练确定的预测神经网络模型,也就是说,第r轮训练所使用的模型是第r-1轮训练确定的预测神经网络模型,得到第r轮训练的样本预测负载。可以但不限于确定第r轮训练的样本预测负载与第r轮训练的样本实际负载之间的损失值,得到第r轮训练的目标损失值。

确定第r轮训练的目标损失值是否满足预设的收敛条件,在确定第r轮训练的目标损失值不满足预设的收敛条件的情况下,调整第r-1轮训练确定的预测神经网络模型中的参数,得到第r轮训练确定的预测神经网络模型;可以但不限于将第r+1轮训练使用的第r+1个样本集群负载序列输入第r轮训练确定的预测神经网络模型,对预测神经网络模型进行第r+1轮训练。在确定第r轮训练的目标损失值满足预设的收敛条件的情况下,结束训练,并将第r-1轮训练确定的预测神经网络模型确定为目标预测神经网络模型。

作为一种可选的方案,可以但不限于通过以下方式得到第r轮训练的样本预测负载:

S91,将所述第r轮训练使用的所述第r个样本集群负载序列输入所述第r-1轮训练确定的预测神经网络模型,得到在所述第r+1个时间点上所述多个存储集群中的一个存储集群的预测负载均值和预测负载方差;

S92,根据在所述第r+1个时间点上所述多个存储集群中的一个存储集群的所述预测负载均值和所述预测负载方差,确定所述第r轮训练的样本预测负载。

可选的,在本实施例中,预测神经网络模型输出的结果包括预测负载均值和预测负载方差,可以但不限于根据预测负载均值和预测负载方差确定预测神经网络模型输出的预测负载,相较于相关技术中,预测神经网络模型仅仅输出括预测负载均值的方式,本申请实施例中的存储集群的负载预测方法可以输出多维度的预测值,综合预测神经网络模型的预测负载,提升了预测神经网络模型预测的预测结果的准确性,例如:提升了预测神经网络模型预测的存储集群的负载是否发生过载的准确率。

作为一种可选的方案,可以但不限于通过以下方式确定第r轮训练的样本预测负载:

S101,将所述第r轮训练的样本预测负载确定为等于在所述第r+1个时间点上所述多个存储集群中的一个存储集群的所述预测负载均值与样本加权值之和,其中,所述样本加权值是预设的方差影响因子与在所述第r+1个时间点上所述多个存储集群中的一个存储集群的所述预测负载方差之间的乘积。

如图18所示,可以但不限于将第r轮训练使用的第r个样本集群负载序列输入第r-1轮训练确定的预测神经网络模型,得到第r-1轮训练确定的预测神经网络模型输出的第r+1个时间点上多个存储集群中的一个存储集群的预测负载均值和预测负载方差,将第r轮训练的样本预测负载确定为等于在第r+1个时间点上多个存储集群中的一个存储集群的预测负载均值与样本加权值之和,其中样本加权值是预设的方差影响因子与在第r+1个时间点上多个存储集群中的一个存储集群的预测负载方差之间的乘积。

通过本申请实施例中的方法,可以基于存储集群过去一段时间(例如一天、一周)的负载数据,来预测存储集群未来一段时间(例如半小时、一小时)的负载变化,时间粒度经过的时间长度可根据具体需求而变化,通常是秒级或者分钟级,比如:根据过去存储集群六小时,每5分钟一次的负载数据来预测存储集群在未来半小时内,每5分钟一次的负载数据,不同的存储集群有着不同的性能阈值,负载超过该阈值则认为存储集群发生了负载过载,存储集群的性能可能受到影响。基于目标预测神经网络模型输出的负载平均值(相当于预测负载均值)以及负载波动方差(相当于预测负载方差),去判断未来一段时间内存储集群是否会发生过载。如图19所示,可以但不限于对存储集群的在未来一段时间段内的写带宽进行预测,曲线1表示真实值,曲线2表示预测均值,曲线3和曲线4分别表示存储集群的负载在一倍标准差和二倍标准差以内的波动范围。可以发现,在存储集群的负载可能发生过载的时刻,预测方差较大。用户可以根据具体的场景来调整目标预测神经网络模型的预测准确率和召回率动态,从而获得更好的预测表现。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。

根据本申请实施例的另一个方面,还提供了一种用于实施上述存储集群的负载预测方法的存储集群的负载预测装置。如图20所示,该装置包括:

获取单元2002,用于获取目标存储集群的第i个集群负载序列,其中,所述目标存储集群包括一组存储设备,所述第i个集群负载序列包括第i组时间点上所述目标存储集群的实际负载,i为大于或等于1的正整数;

确定单元2004,用于确定所述第i个集群负载序列所属的目标序列类别,其中,所述目标序列类别是序列类别集合中的序列类别,所述序列类别集合包括至少对样本集群负载序列集合进行聚类所得到的多个序列类别,所述样本集群负载序列集合包括多个存储集群的多个样本集群负载序列,每个样本集群负载序列是在对应的一组时间点上所述多个存储集群中的一个存储集群的实际负载,多个存储集群包括所述目标存储集群,或者,所述目标存储集群与所述多个存储集群不同;

输入单元2006,用于将所述第i个集群负载序列输入与所述目标序列类别对应的目标预测神经网络模型,得到在所述第i组时间点的下一个时间点上所述目标存储集群的预测负载,其中,所述目标预测神经网络是使用样本集群负载序列子集对待训练的预测神经网络模型进行训练得到的模型,所述样本集群负载序列子集包括所述样本集群负载序列集合中属于所述目标序列类别的样本集群负载序列。

通过本申请提供的实施例,将存储集群的集群负载序列输入集群负载序列所属的序列类别所对应的预测神经网络模型中,可以理解的是,属于不同序列类别的集群负载序列所输入的预测神经网络模型可能是不同的,即通过与集群负载序列所属的序列类别所对应的预测神经网络模型对存储集群的负载进行预测,避免了通过相同的预测神经网络模型对不同的存储集群的负载进行预测,提升了存储集群的负载预测的准确率,进而解决了存储集群的负载预测的准确率较低的技术问题。

作为一种可选的方案,所述确定单元,包括:

第一确定模块,用于在所述序列类别集合包括对所述样本集群负载序列集合进行聚类所得到的N个序列类别、且所述N个序列类别与N个参考负载序列具有一一对应的情况下,确定所述第i个集群负载序列分别与所述N个参考负载序列中的每个参考负载序列的相似度,得到N个相似度,其中,所述N个参考负载序列中的第j个参考负载序列是根据所述样本集群负载序列集合中属于第j个序列类别的样本集群负载序列确定得到的序列,所述N个序列类别包括所述第j个序列类别,N为大于或者等于2的正整数,j为大于或者等于1、且小于或者等于N的正整数;

第二确定模块,用于在所述N个相似度中的第p个相似度最大、且所述第p个相似度大于或等于预设阈值的情况下,将所述目标序列类别确定为所述N个序列类别中与所述第p个相似度对应的序列类别,其中,p为大于或等于1、且小于或等于N的正整数。

作为一种可选的方案,所述确定单元,包括:

聚类模块,用于对所述样本集群负载序列集合和所述第i个集群负载序列进行聚类,得到M个序列类别,其中,M为大于或等于2的正整数;

第三确定模块,用于将所述目标序列类别确定为所述M个序列类别中所述第i个集群负载序列所属的序列类别。

作为一种可选的方案,所述装置还包括:

第一聚类单元,用于在确定所述第i个集群负载序列所属的目标序列类别之前,对所述样本集群负载序列集合进行聚类,得到所述序列类别集合;或者

第二聚类单元,用于在所述样本集群负载序列集合包括P个样本集群负载序列的情况下,在所述P个样本集群负载序列中的每个样本集群负载序列中截取相同长度的子序列,得到P个子序列,其中,所述P个子序列中的每个子序列包括q个时间点上所述多个存储集群中的一个存储集群的实际负载;对所述P个子序列进行聚类,得到所述序列类别集合。

作为一种可选的方案,所述第二聚类单元,包括:

第四确定模块,用于分别确定所述P个子序列中的每个子序列与所述P个子序列中的每个子序列之间的相似度,得到维度为P×P的相似度矩阵,其中,所述P个子序列中的第a个子序列与所述P个子序列中的第b个子序列之间的相似度是所述第a个子序列中的q个实际负载与所述第b个子序列中的q个实际负载之间的相似度,a和b为大于或等于1、且小于或等于P的正整数;

第五确定模块,用于根据所述P×P的相似度矩阵,确定维度为1×P的类别标签向量,其中,所述1×P的类别标签向量表示所述P个子序列中的每个子序列所属的序列类别,其中,所述序列类别集合包括所述类别标签向量所表示的不同序列类别。

作为一种可选的方案,所述输入单元,包括:

输入模块,用于将所述第i个集群负载序列输入所述目标预测神经网络模型,得到在所述第i组时间点的所述下一个时间点上所述目标存储集群的预测负载均值和预测负载方差;

第六确定模块,用于根据所述预测负载均值和所述预测负载方差,确定在所述第i组时间点的所述下一个时间点上所述目标存储集群的所述预测负载。

作为一种可选的方案,第六确定模块,用于:

将所述预测负载确定为等于所述预测负载均值与目标加权值之和,其中,所述目标加权值是预设的方差影响因子与所述预测负载方差之间的乘积。

作为一种可选的方案,所述装置还包括:

训练单元,用于在将所述第i个集群负载序列输入与所述目标序列类别对应的目标预测神经网络模型,得到在所述k个时间点的下一个时间点上所述目标存储集群的预测负载之前,使用所述样本集群负载序列子集对所述待训练的预测神经网络模型进行训练,直到所述待训练的预测神经网络模型对应的目标损失值满足预设的收敛条件的情况下,结束训练,并将结束训练时的待训练的预测神经网络模型确定为所述目标预测神经网络模型,其中,所述目标损失值是样本预测负载与样本实际负载之间的损失值,所述样本预测负载是所述待训练的预测神经网络模型根据输入的样本集群负载序列子集确定的在一个时间点上所述多个存储集群中的一个存储集群的预测负载,所述样本实际负载是预先获取到的在所述一个时间点上所述多个存储集群中的一个存储集群的实际负载。

作为一种可选的方案,所述训练单元,用于通过以下步骤对所述待训练的预测神经网络模型进行第r轮训练,其中,r为大于或等于2的正整数:

将所述第r轮训练使用的第r个样本集群负载序列输入第r-1轮训练确定的预测神经网络模型,得到所述第r轮训练的样本预测负载,其中,所述第r轮训练的样本预测负载表示在第r+1个时间点上所述多个存储集群中的一个存储集群的预测负载;

确定所述第r轮训练的样本预测负载与所述第r轮训练的样本实际负载之间的损失值,得到所述第r轮训练的所述目标损失值,其中,所述第r轮训练的样本实际负载是预先获取到的在所述第r+1个时间点上所述多个存储集群中的一个存储集群的实际负载;

在所述第r轮训练的所述目标损失值不满足所述预设的收敛条件的情况下,调整所述第r-1轮训练确定的预测神经网络模型中的参数,得到所述第r轮训练确定的预测神经网络模型;

在所述第r轮训练的所述目标损失值满足所述预设的收敛条件的情况下,结束训练,并将所述第r-1轮训练确定的预测神经网络模型确定为所述目标预测神经网络模型。

作为一种可选的方案,所述训练单元,还用于:

将所述第r轮训练使用的所述第r个样本集群负载序列输入所述第r-1轮训练确定的预测神经网络模型,得到在所述第r+1个时间点上所述多个存储集群中的一个存储集群的预测负载均值和预测负载方差;

根据在所述第r+1个时间点上所述多个存储集群中的一个存储集群的所述预测负载均值和所述预测负载方差,确定所述第r轮训练的样本预测负载。

作为一种可选的方案,所述训练单元,还用于:

将所述第r轮训练的样本预测负载确定为等于在所述第r+1个时间点上所述多个存储集群中的一个存储集群的所述预测负载均值与样本加权值之和,其中,所述样本加权值是预设的方差影响因子与在所述第r+1个时间点上所述多个存储集群中的一个存储集群的所述预测负载方差之间的乘积。

根据本发明实施例的又一个方面,还提供了一种用于实施上述存储集群的负载预测方法的电子设备,该电子设备可以是图1所示的终端设备或服务器。本实施例以该电子设备为服务器为例来说明。如图21所示,该电子设备包括存储器2102和处理器2104,该存储器2102中存储有计算机程序,该处理器2104被设置为通过计算机程序执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述电子设备可以位于计算机网络的多个网络设备中的至少一个网络设备。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

S1,获取目标存储集群的第i个集群负载序列,其中,所述目标存储集群包括一组存储设备,所述第i个集群负载序列包括第i组时间点上所述目标存储集群的实际负载,i为大于或等于1的正整数;

S2,确定所述第i个集群负载序列所属的目标序列类别,其中,所述目标序列类别是序列类别集合中的序列类别,所述序列类别集合包括至少对样本集群负载序列集合进行聚类所得到的多个序列类别,所述样本集群负载序列集合包括多个存储集群的多个样本集群负载序列,每个样本集群负载序列是在对应的一组时间点上所述多个存储集群中的一个存储集群的实际负载,多个存储集群包括所述目标存储集群,或者,所述目标存储集群与所述多个存储集群不同;

S3,将所述第i个集群负载序列输入与所述目标序列类别对应的目标预测神经网络模型,得到在所述第i组时间点的下一个时间点上所述目标存储集群的预测负载,其中,所述目标预测神经网络是使用样本集群负载序列子集对待训练的预测神经网络模型进行训练得到的模型,所述样本集群负载序列子集包括所述样本集群负载序列集合中属于所述目标序列类别的样本集群负载序列。

可选地,本领域普通技术人员可以理解,图21所示的结构仅为示意,电子装置电子设备也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图21并不对上述电子装置电子设备的结构造成限定。例如,电子装置电子设备还可包括比图21中所示更多或者更少的组件(如网络接口等),或者具有与图21所示不同的配置。

其中,存储器2102可用于存储软件程序以及模块,如本发明实施例中的存储集群的负载方法和装置对应的程序指令/模块,处理器2104通过运行存储在存储器2102内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的存储集群的负载方法。存储器2102可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器2102可进一步包括相对于处理器2104远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器2102具体可以但不限于用于存储物品的样本特征与目标虚拟资源账号等信息。作为一种示例,如图21所示,上述存储器2102中可以但不限于包括上述存储集群的负载预测装置中的获取单元2002、确定单元2004和输入单元2006。此外,还可以包括但不限于上述存储集群的负载预测装置中的其他模块单元,本示例中不再赘述。

可选地,上述的传输装置2106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置2106包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置2106为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。

此外,上述电子设备还包括:显示器2108,用于显示上述待处理的订单信息;和连接总线2110,用于连接上述电子设备中的各个模块部件。

在其他实施例中,上述终端设备或者服务器可以是一个分布式系统中的一个节点,其中,该分布式系统可以为区块链系统,该区块链系统可以是由该多个节点通过网络通信的形式连接形成的分布式系统。其中,节点之间可以组成点对点网络,任意形式的计算设备,比如服务器、终端等电子设备都可以通过加入该点对点网络而成为该区块链系统中的一个节点。

根据本申请的一个方面,提供了一种计算机程序产品,该计算机程序产品包括计算机程序/指令,该计算机程序/指令包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分2209从网络上被下载和安装,和/或从可拆卸介质2211被安装。在该计算机程序被中央处理器2201执行时,执行本申请实施例提供的各种功能。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

图22示意性地示出了用于实现本申请实施例的电子设备的计算机系统结构框图。需要说明的是,图22示出的电子设备的计算机系统2200仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。如图22所示,计算机系统2200包括中央处理器2201(Central Processing Unit,CPU),其可以根据存储在只读存储器2202(Read-OnlyMemory,ROM)中的程序或者从存储部分2208加载到随机访问存储器2203(Random AccessMemory,RAM)中的程序而执行各种适当的动作和处理。在随机访问存储器2203中,还存储有系统操作所需的各种程序和数据。中央处理器2201、在只读存储器2202以及随机访问存储器2203通过总线2204彼此相连。输入/输出接口2205(Input/Output接口,即I/O接口)也连接至总线2204。

以下部件连接至输入/输出接口2205:包括键盘、鼠标等的输入部分2206;包括诸如阴极射线管(Cathode Ray Tube,CRT)、液晶显示器(Liquid Crystal Display,LCD)等以及扬声器等的输出部分2207;包括硬盘等的存储部分2208;以及包括诸如局域网卡、调制解调器等的网络接口卡的通信部分2209。通信部分2209经由诸如因特网的网络执行通信处理。驱动器2210也根据需要连接至输入/输出接口2205。可拆卸介质2211,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器2210上,以便于从其上读出的计算机程序根据需要被安装入存储部分2208。

特别地,根据本申请的实施例,各个方法流程图中所描述的过程可以被实现为计算机软件程序。例如,本申请的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分2209从网络上被下载和安装,和/或从可拆卸介质2211被安装。在该计算机程序被中央处理器2201执行时,执行本申请的系统中限定的各种功能。

根据本申请的一个方面,提供了一种计算机可读存储介质,计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述实施例中的各种可选实现方式中提供的方法。

可选地,在本实施例中,上述计算机可读存储介质可以被设置为存储用于执行以下步骤的计算机程序:

S1,获取目标存储集群的第i个集群负载序列,其中,所述目标存储集群包括一组存储设备,所述第i个集群负载序列包括第i组时间点上所述目标存储集群的实际负载,i为大于或等于1的正整数;

S2,确定所述第i个集群负载序列所属的目标序列类别,其中,所述目标序列类别是序列类别集合中的序列类别,所述序列类别集合包括至少对样本集群负载序列集合进行聚类所得到的多个序列类别,所述样本集群负载序列集合包括多个存储集群的多个样本集群负载序列,每个样本集群负载序列是在对应的一组时间点上所述多个存储集群中的一个存储集群的实际负载,多个存储集群包括所述目标存储集群,或者,所述目标存储集群与所述多个存储集群不同;

S3,将所述第i个集群负载序列输入与所述目标序列类别对应的目标预测神经网络模型,得到在所述第i组时间点的下一个时间点上所述目标存储集群的预测负载,其中,所述目标预测神经网络是使用样本集群负载序列子集对待训练的预测神经网络模型进行训练得到的模型,所述样本集群负载序列子集包括所述样本集群负载序列集合中属于所述目标序列类别的样本集群负载序列。

可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

相关技术
  • 一种进馆档案数量预测方法、装置、电子设备及存储介质
  • 一种身体质量指数预测方法、装置、电子设备及存储介质
  • 任务价格预测方法、装置、电子设备及计算机存储介质
  • 预测方法、装置、电子设备及计算机可读存储介质
  • 一种运载火箭数据预测方法及装置、存储介质和电子设备
  • 集群负载的预测方法、装置、电子设备及存储介质
  • 多集群负载均衡方法、装置、电子设备及存储介质
技术分类

06120116500532