发明内容
本发明提供了一种基于综合效用的计算单元迁移方法,通过对计算机节点以及计算单元的CPU利用率预测,避免资源竞争突出时才进行目标计算单元的迁出,以缓解分布式系统中计算机节点负载状况,使计算单元可以高效的迁移。
本发明基于综合效用的计算单元迁移方法,包括:
S1.采用BP神经网络预测分布式系统中各计算机节点的计算单元的CPU利用率;
S2.将S1预测得到的各计算单元CPU利用率进行聚合,得到下一个时刻各计算机节点CPU利用率的预测值,然后确定需要迁移计算单元的计算机节点,所有在下一时刻CPU利用率≥所属计算机节点的CPU利用率预测值的计算单元集合为需要迁移的计算单元集合;
S3.由于计算单元的CPU利用率与内存大小两项指标的取值范围和量化方式不同,即它们具有不同的量纲。如果不统一进行无量纲化处理,则在后续过程中,将无法准确进行计算处理,因此对所述计算单元集合内所有计算单元的CPU利用率预测值与对应的内存大小归一化处理,使其具有相同的量纲;
S4.计算下一个时刻计算单元集合内所有计算单元CPU利用率预测值与其内存大小的比值,并按比值大小排序,得到计算单元序列;
S5.对所述计算单元序列进行划分,确定需要迁移的目标计算单元集合;
S6.在所述目标计算单元集合中,根据计算单元的内存大小选择相应的计算单元进行迁移。
本发明通过使用BP神经网络对计算机节点上的所有计算单元运行状态进行预测,采用聚合方式得到计算机节点的状态描述,获取计算机节点下一个时刻运行情况的具体量化表现。选择计算单元时,充分考虑了哪些计算单元在竞争有限的资源,因为迁移出空闲的计算单元并不能缓解分布式系统中计算机节点的状况。通过计算机节点上所有计算单元与整体运行状态的预测比较,选择只有计算单元CPU利用率大于计算机节点CPU利用率的计算单元作为目标计算单元的集合。由于在方法中综合考虑了迁移过程中所产生的迁移代价,采用了对归一化后的CPU利用率和内存大小进行综合权衡的方式,因此能够选择出迁移代价最低的目标计算单元进行迁移。同时,针对决策过程中存在的时间延迟而造成迁移不及时的问题,通过本发明的BP神经网络对计算机节点以及计算单元的CPU利用率进行预测,即当前时刻可预测得到下一时刻的状态信息,为当前时刻的选择策略提供决策依据,由此避免了因时间延迟所造成的迁移不及时。
其中,步骤S1的一种可选具体步骤为,通过监控所有计算机节点上的计算单元CPU利用率,得到BP神经网络的训练样本,利用收集到的样本数据对BP神经网络进行训练,使用训练完成的BP神经网络对计算机节点上的每个计算单元的CPU利用率进行预测。
进一步的,在利用收集到的样本数据对BP神经网络进行训练的过程中,需要根据隐藏层的误差值对各神经层的连接权重和偏置值进行更新。
进一步的,步骤S2所述的聚合为计算所有计算机节点的平均CPU利用率预测值。聚合得到的聚合值预测了下一个时刻计算机节点的运行情况。
优选的,步骤S6中,选择内存最小的计算单元进行迁移,也可以根据实际情况对若干内存偏小的计算单元进行迁移。
本发明基于综合效用的计算单元迁移方法,能够对计算机节点以及计算单元的CPU利用率准确的预测,有效避免了资源竞争突出时才进行目标计算单元的迁出的情况,极大程度缓解了分布式系统中计算机节点负载状况,能够选择出迁移代价最低的目标计算单元进行高效的迁移。
以下结合实施例的具体实施方式,对本发明的上述内容再作进一步的详细说明。但不应将此理解为本发明上述主题的范围仅限于以下的实例。在不脱离本发明上述技术思想情况下,根据本领域普通技术知识和惯用手段做出的各种替换或变更,均应包括在本发明的范围内。
具体实施方式
如图1所示本发明基于综合效用的计算单元迁移方法,首选对具体参数进行初始化,设定分布式系统由l个计算机节点构成。每个计算机节点上计算单元的个数为n,每个计算机节点的CPU利用率U,计算机节点上某个计算单元i的CPU利用率ui,计算单元CPU利用率的合理化性能区间是[s1,s2],计算机节点上某个计算单元i的内存大小mi,计算机节点上所有计算单元中内存的最大值为mmax,内存的最小值为mmin,某个计算单元i的CPU利用率与其内存的比值为UMRi。
本发明的具体步骤包括:
S1.利用BP神经网络预测下一个时刻所有计算机节点上的计算单元CPU利用率。
要利用BP神经网络预测计算单元CPU利用率,必须要对BP神经网络进行训练,才能进行数据预测。
如图2示,BP神经网络具体训练及预测步骤为:
S11.通过监控得到d个时刻,所有计算机节点上每个计算单元的CPU利用率uij,i=1,2,3…,l,j=1,2,3…,n,以及每个时刻对应的计算机节点CPU利用率u′i,i=1,2,3,…,l,构建得到BP神经网络的训练样本。第k个计算机节点的所有计算单元的CPU利用率构建的BP神经网络训练样本矩阵A(k)为:
第k个计算机节点d个时刻对应的计算机节点CPU利用率构建的BP神经网络训练样本矩阵B(k)为:
S12.利用得到的训练样本矩阵,对多层前馈BP神经网络进行训练。设定所采用BP神经网络三部分的情况分别为:输入层n个神经元、隐含层m个神经元、输出层l个神经元。采集到的样本矩阵作为输入层的输出。隐藏层第i个神经元的输入Ih(i)和输出Oh(i)通过以下方式得到:
其中i=1,2,…,m
其中wki是输入层神经元k到隐藏层神经元i之间的权重,Oin(k)是输入层神经元k的输出。
输出层的输入Iout(j)和输出Oout(j)通过以下方式得到:
其中j=1,2,…,l
wkj是隐藏层神经元k到输出层神经元j之间的权重。
输出层的误差值ΔOout(j)为
其中j=1,2,…,l
其中为输出层的期望输出值。
隐藏层的误差值ΔOh(i)为
其中i=1,2,…,m
S13.不断重复训练后,根据隐藏层的误差值对各神经层的连接权重和偏置值进行更新。其具体更新过程如下:
Δwsi=λΔOh(i)Oin(s),其中i=1,2,…,m,s=1,2,…,n
wsi=w′si+Δwsi,其中i=1,2,…,m,s=1,2,…,n
Δθh(i)=λΔOh(i),其中i=1,2,…,m
θh(i)=θ′h(i)+Δθh(i),其中i=1,2,…,m
其中w′si是上一轮训练中输入层神经元s与隐藏层神经元i的连接权值,θ′h(i)是上一轮训练中隐藏层神经元i的偏置值。
根据输出层的误差值对各神经层的连接权重和偏置值进行更新。其具体更新过程如下:
Δwij=λΔOout(j)Oh(i),其中i=1,2,…,m,j=1,2,…,l
wij=w′ij+Δwij,其中i=1,2,…,m,j=1,2,…,l
Δθout(j)=λΔOout(j),其中j=1,2,…,l
θout(j)=θ′out(j)+Δθout(j),其中j=1,2,…,l
上述公式中的wsi和wij为神经网络相邻层之间结点的连接权重,并且wsi、wij∈[-1,1]。λ为学习速率,且λ∈(0,0.1),θh(i)、θout(j)∈[0,1]。w′ij是上一轮训练中隐藏层神经元i与输出层神经元j的连接权值,θout(j)是输出层第j个神经元的偏置值,θ′out(j)是上一轮训练中输出层神经元j的偏置值。。
通过不断的训练更新,所产生的误差会不断变小。当误差ξ≤0.01时,实际计算单元的CPU利用率与预测值大致相同,整个学习训练过程结束。其中:
S14.利用训练好的BP神经网络,预测第d+1时刻每个计算机节点上n个计算单元的CPU利用率,构建预测矩阵P。
P=[u1 u2 u3 u4…un]
S2.确定需要迁移计算单元的计算机节点,并对需要进行计算单元迁移的计算机节点,建立CPU利用率超过计算机节点CPU利用率的计算单元集合。
如图3示出了CPU利用率超过计算机节点CPU利用率的计算单元集合的选择过程,其步骤包括:
S21.按照求平均的计算方式得到l个计算机节点第d+1时刻的CPU利用率U,其计算方法为:
求得所有计算机节点的平均CPU利用率:
S22.根据筛选条件选择出所有需要迁移计算单元的计算机节点;
S23.比较预测后的所有需要迁移计算单元的计算机节点上计算单元的CPU利用率与该计算机节点CPU利用率的大小;
S24.根据筛选条件ui≥U,选择出所有满足该条件的计算单元,组成计算单元集合。即所有CPU利用率预测值不低于计算机节点CPU利用率预测值的计算单元所组成的集合就是目标计算单元集合。
S3.对目标集合内所有计算单元的CPU利用率以及其内存进行归一化处理。
通过查询得到该计算机节点上为每个计算单元所分配的内存大小mi,i=1,2,3…n,并进行不同的归一化处理。根据实际情况,对于计算单元的内存大小而言,其分配值越大,用户的服务满意度越高,服务效果越好;对于CPU利用率而言,数值应当适中,不宜过高或过低,这样才能够达到合理的效益比。
对于某个计算单元i的内存大小mi的归一化处理方式为:
对于某个计算单元i的CPU利用率ui的归一化处理方式为:
其中s1和s2分别为所述的计算单元CPU利用率的合理化性能区间[s1,s2]的两端值。
S4.计算得到集合内所有计算单元的CPU利用率与内存的比值UMR,并进行排序;
通过计算求得目标集合内所有计算单元的CPU利用率与内存的比值,其计算公式如下:
将集合内的所有计算单元按照其UMR值从大到小进行排序,得到计算单元序列S={v1,v2,v3,…,vj},j=1,2,3,…,vj表示计算单元。
S5.确定需要迁移的目标计算单元集合R。
设|S|为计算单元序列S中计算单元的个数,|R|为需要迁移的目标计算单元集合R中计算单元的个数。对任意的实数x,可记x=[x]+{x},其中[x]为x的整数部分。本实施例中选择计算单元序列S中前面1/3的计算单元组成需要迁移的计算单元集合R。则:
确定需要迁移的目标计算单元集合R为:
R={v1,v2,v3,…,vr}
S6.在目标计算单元集合R中,选择内存最小的计算单元进行迁移操作。
设计算单元v是最终需要迁移的目标计算单元,则:
如上所述,本发明提供了一种基于综合效用的计算单元迁移策略,通过对计算机节点上计算单元的CPU利用率与内存的归一化比值进行比较,并根据实际的情况设定必要的选择条件,采用BP神经网络对计算机节点和计算单元的CPU利用率进行预测,最终选择合适的计算单元进行迁移,既达到了高效迁移的实际效果,同时大幅度降低了迁移过程中所带来的代价。