一种基于长短时记忆网络的主机负载预测方法与流程

文档序号:12123318阅读:343来源:国知局
一种基于长短时记忆网络的主机负载预测方法与流程

本发明属于云计算和深度学习领域,主要针对云计算环境中主机负载变化剧烈、噪声大等特点,提出了一种新的基于长短时记忆网络的主机负载预测的方法。



背景技术:

在云计算数据中心,负载的变化通常很激烈,为了能够及时应对各种复杂情况,我们需要对数据中心中各种资源的情况进行预测。在云计算数据中心,CPU资源的使用情况反应了主机上应用程序的运行情况,因此在进行虚拟机调度时,CPU资源是首要考虑的资源。当某台主机的负载超过阈值时,运行在该主机上的虚拟机的性能会受到严重影响,因此可以将此主机上的一些虚拟机迁移到其他空闲主机上,从而减轻主机的负载;当某些主机上的负载低于阈值时,可以将这些主机上的虚拟机合并到其他主机或关闭,从而降低云计算中心的能耗。

目前存在的一些负载预测方法主要针对网格(Grid)计算中主机的负载情况,但是在云计算环境中主机的类型各不相同,主机上运行的任务也各不相同,这就导致云环境中主机负载变化情况更加复杂,之前的一些方法并不能很好的对云环境中主机的负载情况进行预测。

为了解决现有技术中存在的问题,本文提出了一种基于长短时记忆网络(Long Short-Term Memory)的方法对负载数据的前后关系进行建模,输出即为最终的预测结果。



技术实现要素:

本发明的目的:针对现在云计算中心将各种类型的主机进行集中化的管理,统一提供给各种类型的用户使用,导致在云计算环境下,各台主机上运行的任务各不相同,其负载的变化情况更加复杂的情况,提出了一种能够精确预测未来一段时间内负载变化情况的方法,为下一步的虚拟机调度,资源综合管理奠定了基础。

针对现有技术中存在的问题,本发明提出了一种新的主机负载预测方法,能够有效的对未来一段时间内的主机负载进行预测,整个系统由以下两个主要模块组成:

模块一、采集云计算主机负载一个月的历史数据,将很长的负载序列分成很多固定大小的、连续的历史数据及预测数据,选择合适的模型来对数据进行建模。

模块二、利用训练集来使长短时记忆网络学习对应的参数,并通过交叉验证集选择泛化性最好的模型,输出即为最终的预测结果。

对于模块一,云计算当中主机的负载本质上是前后相关的一维时间序列,可以通过很多时间序列分析的方法来进行负载的预测。在本模块中,我们通过将负载划分固定大小的子序列以便网络进行建模。网络某时刻t的输入是一组负载的历史数据x=(dt-1,dt-2,…,dt-n),其中每个x表示t时刻之前长度为n的负载历史序列数据。对应的输出为其中o是长度为t时刻之后长度为m的未来负载的预测数据。假设真实的数据为y=(dt+1,dt+2,…,dt+m),我们想要解决的问题是寻找一个历史值到未来值之间的映射f:

直观上,越接近当前时刻t的历史值,与预测值越相关。但是,与当前时刻距离较远的历史负载也有可能提供一些有用的信息,比如变化的趋势等,来帮助我们进行负载的预测。所以我们想构建出一个模型,既能利用近距离的负载信息,也能利用远距离的负载信息。

f(x;n)=f(g1(xt-1,xt-2,…,xt-k),g2(xt-(k+1),…,xt-n))

循环神经网络(Recurrent Neural Networks)正是基于这个简单的思想,和传统前向传播网络不同的是,循环神经网络通过反馈的机制拥有一个中间状态层,使得它很适宜来做时间序列建模。另外,为了对长期记忆进行建模,我们将循环神经网络的中间状态层替换为长短时记忆单元,整个模型的架构如图1所示。

模块二利用长短时记忆网络进行负载预测。

考虑到一旦某个信息已经被使用过,忘记这个旧的状态对于网络来说可能会很有用。另外,相比于人工确定什么时候删除旧的状态,我们希望网络能自己决定什么时候删除。在这种情况下,长短时记忆网络无疑是一个很好的选择。

长短时记忆网络的架构如图2所示,假设网络某时刻t的输入为历史负载xt,输出为ht(再经过一个全连接层得到最终的预测ot)。为了使网络能够对负载序列的前后关系进行建模,我们定义一个中间单元st用于存储记忆。同时,为了能使负载预测能获取到长时间的信息,我们利用长短时记忆网络的特性定义了三个门函数(输入层,中间层,输出层):

来控制信息的传递。其中,σ为sigmoid非线性激活函数,W、U、b为网络的权重和偏移。然后,我们在此基础上得到每个时刻网络的最终输入,中间值,输出:

it=σ(b+Uxt+Wht-1)

在计算输出时,我们选择ReLu非线性激活函数来加速神经网络的训练。

则对于某一组训练数据(x,y),我们将其对应的代价函数定义为其中N是预测的长度,oi是预测值,yi是真实值。

附图说明

附图说明用于提供对本发明技术方案的进一步理解,并构成说明书的一部分,与本发明的实施一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。附图说明如下:

图1为整个模型的架构图。

图2为长短时记忆网络的架构图。

具体实施方式

以下将结合附图来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决问题,并达成技术效果的实现过程能充分理解并据以实施。在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的不同计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

下面具体说明算法的执行过程

步骤1-1、数据采集。采集前n天主机负载的历史数据。利用主机上的CPU检测工具每隔5分钟获取CPU的负载数据,将其按照一定比例分为Training Set(训练数据集)、Validation Set(交叉验证集)和Test Set(测试数据集),并把很长的负载序列分成很多固定大小的、连续的历史数据及预测数据。

步骤1-2、网络学习。利用训练集来使长短时记忆网络学习到对应的参数,通过最小化代价函数,得到的权重系数和偏置项的值,并通过交叉验证集选择泛化性最好的模型。

步骤1-3、进行负载预测。利用从长短时记忆网路学习得到网络的参数,输入数据集,输出即为主机负载。

本领域的技术人员应该明白,上述的本发明的系统结构和各个步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将他们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

虽然本发明所示出和描述的实施方式如上,但是所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上以及细节上做任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1