一种云计算环境中的主机负载预测方法与流程

文档序号:12008853阅读:312来源:国知局
一种云计算环境中的主机负载预测方法与流程
本发明主要针对云计算环境中的主机调度和负载均衡问题,提出了一种预测主机负载的方法。

背景技术:
云计算是一种通过互联网以服务的方式提供动态可伸缩的虚拟化的资源计算模式。对云服务的提供者而言,各种底层资源(计算、存储、网络等)被统一管理和调度,成为所谓的“资源池”,从而为用户提供服务;而对于用户而言,这些资源是透明的,用户无须了解云计算中心的内部结构,只关心自己的需求是否得到满足。对于云服务提供者而言,将资源集中起来统一管理可以有效的提高资源的利用率,但是由于云计算中心各种底层资源的异构性以及各个用户应用程序的不同,资源的合理调度和负载均衡成为一个具有挑战性的问题。一种有效的提高资源利用率的方法就是进行虚拟机的调度,即根据主机的负载情况进行虚拟机的迁移。当某台主机的负载超过一定值时,运行在该主机上的虚拟机的性能必然受到影响,因此此时选择将此主机上的一些虚拟机迁移到其他空闲主机上,从而减轻主机的负载;当某些主机上的负载低于一定值时,说明这些主机处于空闲状态,可以将这些主机上的虚拟机合并到其他主机上,然后关闭那些不用的主机,从而达到降低能耗的目的。然而,由于进行虚拟机的在线迁移需要一定的时间,如果在主机的过载时再进行迁移必然会导致用户的虚拟机的性能下降。因此,需要对主机的负载进行预测,从而提前进行虚拟机的迁移以保证服务水平协议(ServiceLevelAgreement,SLA)。目前对主机负载进行预测的方法主要是自回归模型(Auto-Regression,AR)以及局部线性回归(LocalLinearRegression)。这些方法的缺点在于主机负载的变化一般是非线性的,用线性的方法很难对主机的负载进行预测,当主机的负载变化剧烈时,预测值与实际值之间会有很大的偏差。本文提出了一种将相空间重构(PhaseSpaceReconstruction,PSR)与基于遗传算法的数据分组处理方法(GroupMethodofDataHandlingbasedonEvolutionaryAlgorithm,EA-GMDH)相结合的主机负载预测算法,能够准确的对主机的负载进行预测。

技术实现要素:
本发明的目的:针对云计算数据中心的资源调度和负载均衡等问题,提出了一种主机负载预测的方法,能够对云计算中心中主机的负载进行预测,根据预测结果进行虚拟机的调度,以达到资源的合理利用以及降低数据中心能耗等目的。云计算实际上是一种资源集中管理的方式,每个用户都可以根据自己的应用需要申请不同的虚拟机使用。因此,在云计算中心的主机上运行着不同应用的虚拟机,这使得主机负载预测的难度大幅增加。针对现有技术中存在的问题,本发明提出了一种新的主机负载预测方法,能够有效的对未来一段时间内的主机负载进行预测,整个系统由以下两个主要模块组成:模块一、由于主机负载是单元时间序列,为了还原整个动力系统以便于我们进行负载预测,我们采用了相空间重构(PhaseSpaceReconstruction,PSR)的方法将单元时间变量变成多维时间变量。模块二、主机负载预测算法采用基于遗传算法的数据分组处理方法(GroupMethodofDataHandlingbasedonEvolutionaryAlgorithm,EA-GMDH),将模块一中得到的多元时间变量作为算法的输入,然后通过学习的方法学习到一个EA-GMDH模型,利用学习到的模型进行负载的预测。对于模块一,假设原来的负载数据是根据Packard和Takens等人提出的延迟坐标法对负载数据进行相空间重构,计算出嵌入维m和时延τ,然后重构出多元时间变量Yj=(Xj,Xj+τ,Xj+2τ,...,Xj+(m-1)τ),其中m为嵌入维,τ为时延。在本方法中,重构得到的多元时间序列Xi=(xT-H-1-(i-1)τ,...,xT-(i-1)τ),i=1,2,...m,T是预测点,H为预测的时间长度。为了预测在未来一段时间内的负载Y,我们利用模块二的学习算法得到一个映射fT,使得Y=fT(X)。将模块一得到的多元时间序列作为模块二EA-GMDH网络的输入,采用监督学习的方法学到一个较好的模型,然后利用该模型进行负载预测。GMDH方法本质是一个自组织的前馈神经网络,在预测领域有着广泛的应用。本系统采用了将遗传算法(GA)与GMDH方法相结合的方式,避免了普通GMDH方法中每个节点只能有两个输入以及每个节点的输入只能是相邻节点等限制,而且加入遗传算法也可以使得算法的收敛速度变快,减少了算法运行的时间。在EA-GMDH算法中,每个染色体代表了一个EA-GMDH网络架构,整个染色体由3个部分组成,第一个部分代表了每个节点的输入变量个数,第二部分代表每个节点的多项式类型,第三个部分代表了每个节点具体有哪些输入变量。图1中展示了一个EA-GMDH网络的架构,其对应的染色体为{2,4,2,3,3,4,2,2,3,3,2,1,3,2,4,3,1,3,2,4,6,7,1,8,9,1,6}。每个节点的系数通过最小化最小均方误差得到,其中最小均方误差表示为Ntr表示训练集的大小,yi是负载的真实值,是负载的预测值。利用训练集的数据,我们可以得到一组线性方程XC=Y,每个节点的系数可以通过解这组线性方程得到,即C=(XTX)-1XTY,对于每个染色体,我们定义了一个评价函数来评估该染色体的优劣,从而决定该染色体在下一次迭代中是否该保留。评价函数的具体形式为:Nva表示测试集的大小,Wi是权重函数,用来表示测试集中每个数据所占权重的大小,Wi的定义为Di是测试集中第i个数据的输入变量与预测集的输入变量之间的欧式距离。根据遗传算法的特点,为了增加种群的多样性,我们还需要加入交叉和变异操作。对于染色体的第一和第二部分,交叉操作的具体做法是随机选择一个交叉点,将两个染色体交叉点后面的部分互换,第三部分根据第一和第二部分的变化而变化。变异操作与交叉操作类似。交叉操作和变异操作的具体过程如图2所示。经过预定次数的迭代后我们会得到最佳的染色体,这个染色体所代表的架构就是我们进行负载预测时所采用的EA-GMDH网络架构。利用学习到的EA-GMDH模型,我们就可以对负载的变化情况进行预测。附图说明附图说明用于提供对本发明技术方案的进一步理解,并构成说明书的一部分,与本发明的实施一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。附图说明如下:图1为本系统中一个具体的EA-GMDH架构图。图2为算法运行中染色体的交叉与变异操作的具体过程。具体实施方式以下将结合附图来详细说明本发明的实施方式,借此对本发明如何应用技术手段来解决问题,并达成技术效果的实现过程能充分理解并据以实施。在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的不同计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。下面具体说明算法的执行过程。步骤一、数据采集。采集前n天主机负载的历史数据。利用主机上的CPU检测工具每隔5分钟获取CPU的负载数据。将采集到的数据集分为训练集(TrainingSet)、验证集(ValidationSet),以及预测集(PredictionSet),其中训练集用来训练得到EA-GMDH网络,验证集用来评估学到模型的优劣,预测集则利用该模型对负载进行预测。步骤二、相空间重构。利用相空间重构的方法对训练集、验证集和预测集进行相空间重构,得到多元时间序列Yj=(Xj,Xj+τ,Xj+2τ,...,Xj+(m-1)τ),其中m为嵌入维,τ为时延。在本系统中,多元时间序列为Xi=(xT-H-1-(i-1)τ,...,xT-(i-1)τ),i=1,2,...m,其中T是预测点,H为预测的时间长度。步骤三、基于遗传算法的数据分组处理。利用训练集计算EA-GMDH模型(图1)的系数,并用验证集的数据评估模型的好坏,通过遗传算法的交叉和变异操作(图2)进行得到更多的染色体,从而进行迭代直到找到合适的模型或者到达预定的迭代次数。步骤四、负载预测。将预测集上重构的多元时间序列作为步骤三中得到的模型的输入,利用该模型对主机的负载情况进行预测,从而得到CPU负载的变化情况。本领域的技术人员应该明白,上述的本发明的系统结构和各个步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,或者将他们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。虽然本发明所示出和描述的实施方式如上,但是所述的内容只是为了便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式上以及细节上做任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1