本发明涉及cpu资源负载调度,并且更具体地,涉及一种用于异构cpu资源负载调度预测方法及系统。
背景技术:
1、近年来,随着国家开启了cpu芯片自主研发之路,开始构建自主创新的产业体系,大量不同架构的cpu涌入市场之中。针对目前存在的多种cpu架构的服务器,如何实现对资源的有效调度是目前亟待解决的问题,需要资源负载的预测算法通过对已知内容的学习来预测未来态的情况,从而更好地为底层cpu调度异构资源。目前,主要是通过时间序列算法实现对资源负载的预测,但目前已知的时间序列算法模型受制于推理精度和速度的限制。因此,如何能够更加有效地挖掘时序数据的内部逻辑成为了目前构建时间序列算法的研究热点。
2、当前学者们主要集中于对传统时序模型和神经网络推理模型进行研究。
3、在传统时序模型中,现有的模型分为三类,第一类是以arima模型为主,通过arima模型预测未来时间段内的资源负载,然后通过资源分配算法来实现将任务分配到最合适的虚拟机上。它通过将arima模型的预测和资源分配算法的调度相结合,实现了对云计算的资源调度优化以及负载均衡。第二类是通过稀疏回归分析模型对过去特定时间段内的服务器负载进行建模,来预测未来特定时间段内的平均服务器负载。相比于传统的最小二乘法算法,该模型可以减少预测误差。第三类是种基于二次指数平滑的资源预测模型来对未来时间段内的资源负载进行预测。该算法不仅考虑了当前的资源状态,还考虑了历史的资源记录,将两者相结合,从而获得较高的预测精度。
4、以上算法有一个共同的特点就是不需要大量的历史数据,并且不需要较高的计算环境,因此存在一个共同的问题就是预测精度不高,从而会导致资源不足或过度配置。因为传统的时序算法往往只能挖掘序列中某种线性信息特征,并且由于捕捉数据有限,往往只能用于短期预测,无法进行中长期预测。
5、在神经网络模型中,主要分为cnn神经网络和rnn神经网络两类。现有的基于cnn卷积神经网络的研究可以很好的挖掘了数据内部的非线性规律,提供了高精度的预测,cnn算法的效果要优于传统的时间序列分析方法。传统的rnn在进行反向传播的时候由于过长的序列会导致梯度的计算异常,造成梯度消失或爆炸,因此很少在中长序列中使用。改进rnn循环神经网络中的lstm和gru算法模型可以有效的存储和访问历史序列信息,通过控制记忆单元的信息流,对模型情况进行实时预测,可以应用于中长期预测。通过非线性计算提取出cpu资源负载特征,解决cpu资源使用率不平稳的带来的预测难题。
6、虽然cnn和rnn可以有效的对数据进行预测,挖掘数据中的非线性规律。但也存在着一些缺点。cnn的最大问题是参数数量过于庞大,调参复杂度较高,模型不容易收敛,需要较高轮次的迭代训练。而rnn算法虽然能够有效地降低参数数量并且在一定程度上解决梯度的问题,但当输入的序列较长时,该网络容易导致序列信息的丢失,使建模所用数据间结构的信息出现问题,最终使模型预测准确度受到影响。相比于由遗忘门、记忆门和输出门构成的lstm算法,由更新门和重置门构成的gru算法存储了更少的模型参数,因此在训练过程中模型更容易收敛。
7、attention机制可以有效弥补lstm和gru算法对于序列信息丢失的问题,attention制实质是计算注意力的概率分布,它能为不同信息赋予权重,以高权重来聚焦重要信息,以低权重忽视关联度较低的信息,最终为不同信息分配不同的权重,从而对模型进行优化。
技术实现思路
1、针对上述问题,本发明提出了一种用于异构cpu资源负载调度预测方法,包括:
2、在异构cpu服务器中获取与cpu资源相关的利用数据,并记录所述异构cpu服务器的标志位字段;
3、对所述利用数据进行预处理,并对所述预处理后的利用数据以预设比例划分为训练集和测试集;
4、基于所述训练集、测试集及标志位字段对单层gru神经网络层和attention层进行训练,得到attention-gru模型,并基于所述attention-gru模型输出所述训练集、测试集及标志位字段的特征序列,并将所述特征序列带入至bagging算法模块进行学习,得到用于异构cpu资源负载调度预测的预测模型
5、获取目标异构cpu服务器的与cpu资源相关的目标利用数据,将所述目标利用数据输入至预测模型进行计算,输出目标异构cpu服务器的资源负载调度预测结果。
6、可选的,利用数据,包括:进程cpu利用率和io资源利用率。
7、可选的,记录所述异构cpu服务器的标志位字段,包括:
8、获取异构cpu服务器当前时刻数据,根据当前时刻数据计算得到,当前时刻进程cpu利用率阈值和io资源利用率阈值;
9、将进程cpu利用率与进程cpu利用率阈值进行对比,并将io资源利用率与io资源利用率阈值进行对比,若所述cpu利用率大于进程cpu利用率阈值且io资源利用率大于io资源利用率阈值,则记录异构cpu服务器的标志位字段为告警状态,否则记录异构cpu服务器的标志位字段为非告警状态。
10、可选的,对所述利用数据进行预处理,包括:对所述利用数据进行平滑处理。
11、可选的,attention-gru模型,包括:单层gru神经网络层和attention层。
12、可选的,基于所述训练集、测试集及标志位字段对单层gru神经网络层和attention层进行训练,得到attention-gru模型,包括:
13、将训练集及标志位字段输入至单层gru神经网络层进行训练,包括:基于所述单层gru神经网络层捕捉训练集及标志位字段的内在逻辑关系,以得到每个时步的输出结果;
14、所述训练集及标志位字段为时序数据;
15、将所述每个时步的输出结果输入到attention层进行训练,包括:基于attention层提取出输出结果的显著特征信息,基于所述显著性信息对所述单层gru神经网络层和attention层的网络参数进行调整,得到初始attention-gru模型;
16、将所述测试集及标志位字段输入至初始attention-gru模型,对所述初始attention-gru模型的正确性进行验证,若正确性大于attention-gru模型要求,则将初始attention-gru模型作为attention-gru模型。
17、可选的,将所述特征序列带入至bagging算法模块进行学习,得到用于异构cpu资源负载调度预测的预测模型,包括:
18、将特征序列带入至bagging算法模块,生成多组基学习器对带入的特征序列进行学习,并对每组基学习器赋予权重,并根据损失函数更新基学习器的权重,选择bagging算法模块中权重最大的top-k个基学习器,作为用于异构cpu资源负载调度预测的预测模型。
19、可选的,异构cpu资源负载调度预测为异构cpu资源告警预测。
20、再一方面,本发明还提出了一种用于异构cpu资源负载调度预测系统,包括:
21、数据采集单元,用于在异构cpu服务器中获取与cpu资源相关的利用数据,并记录所述异构cpu服务器的标志位字段;
22、预处理单元,用于对所述利用数据进行预处理,并对所述预处理后的利用数据以预设比例划分为训练集和测试集;
23、训练单元,用于基于所述训练集、测试集及标志位字段对单层gru神经网络层和attention层进行训练,得到attention-gru模型,并基于所述attention-gru模型输出所述训练集、测试集及标志位字段的特征序列,并将所述特征序列带入至bagging算法模块进行学习,得到用于异构cpu资源负载调度预测的预测模型;
24、预测单元,用于获取目标异构cpu服务器的与cpu资源相关的目标利用数据,将所述目标利用数据输入至预测模型进行计算,输出目标异构cpu服务器的资源负载调度预测结果。
25、可选的,利用数据,包括:进程cpu利用率和io资源利用率。
26、可选的,数据采集单元记录所述异构cpu服务器的标志位字段,包括:
27、获取异构cpu服务器当前时刻数据,根据当前时刻数据计算得到,当前时刻进程cpu利用率阈值和io资源利用率阈值;
28、将进程cpu利用率与进程cpu利用率阈值进行对比,并将io资源利用率与io资源利用率阈值进行对比,若所述cpu利用率大于进程cpu利用率阈值且io资源利用率大于io资源利用率阈值,则记录异构cpu服务器的标志位字段为告警状态,否则记录异构cpu服务器的标志位字段为非告警状态。
29、可选的,预处理单元对所述利用数据进行预处理,包括:对所述利用数据进行平滑处理。
30、可选的,attention-gru模型,包括:单层gru神经网络层和attention层。
31、可选的,训练单元基于所述训练集、测试集及标志位字段对单层gru神经网络层和attention层进行训练,得到attention-gru模型,包括:
32、将训练集及标志位字段输入至单层gru神经网络层进行训练,包括:基于所述单层gru神经网络层捕捉训练集及标志位字段的内在逻辑关系,以得到每个时步的输出结果;
33、所述训练集及标志位字段为时序数据;
34、将所述每个时步的输出结果输入到attention层进行训练,包括:基于attention层提取出输出结果的显著特征信息,基于所述显著性信息对所述单层gru神经网络层和attention层的网络参数进行调整,得到初始attention-gru模型;
35、将所述测试集及标志位字段输入至初始attention-gru模型,对所述初始attention-gru模型的正确性进行验证,若正确性大于attention-gru模型要求,则将初始attention-gru模型作为attention-gru模型。
36、可选的,训练单元将所述特征序列带入至bagging算法模块进行学习,得到用于异构cpu资源负载调度预测的预测模型,包括:
37、将特征序列带入至bagging算法模块,生成多组基学习器对带入的特征序列进行学习,并对每组基学习器赋予权重,并根据损失函数更新基学习器的权重,选择bagging算法模块中权重最大的top-k个基学习器,作为用于异构cpu资源负载调度预测的预测模型。
38、可选的,异构cpu资源负载调度预测为异构cpu资源告警预测。
39、再一方面,本发明还提供了一种计算设备,包括:一个或多个处理器;
40、处理器,用于执行一个或多个程序;
41、当所述一个或多个程序被所述一个或多个处理器执行时,实现如上述所述的方法。
42、再一方面,本发明还提供了一种计算机可读存储介质,其上存有计算机程序,所述计算机程序被执行时,实现如上述所述的方法。
43、与现有技术相比,本发明的有益效果为:
44、本发明提出了一种基于attention-gru和bagging的异构cpu资源负载调度预测方法,包括:在异构cpu服务器中获取与cpu资源相关的利用数据,并记录所述异构cpu服务器的标志位字段;对所述利用数据进行预处理,并对所述预处理后的利用数据以预设比例划分为训练集和测试集;基于所述训练集、测试集及标志位字段对单层gru神经网络层和attention层进行训练,得到attention-gru模型,并基于所述attention-gru模型输出所述训练集、测试集及标志位字段的特征序列,并将所述特征序列带入至bagging算法模块进行学习,得到用于异构cpu资源负载调度预测的预测模型;获取目标异构cpu服务器的与cpu资源相关的目标利用数据,将所述目标利用数据输入至预测模型进行计算,输出目标异构cpu服务器的资源负载调度预测结果。本发明可以快速的对异构cpu的资源负载调度进行预测。