一种基于最大熵原理的负载均衡调度方法与流程

文档序号:17720091发布日期:2019-05-22 02:05阅读:255来源:国知局

本发明涉及计算机负载均衡技术领域,特别涉及一种基于最大熵原理的负载均衡调度方法。



背景技术:

随着互联网信息技术及终端技术飞速发展,信息产业需求越来越朝着高服务端低终端方向发展。随之而来的海量数据整合及计算需求成了现阶段服务端集群技术的瓶颈,单台服务器的服务能力已远远无法满足日益增长的需求,于是具有良好可扩展性和高性价比的集群系统便成为了主要的选择。如何在集群系统中进行合理的任务分配,使得任务分配平均,不至于出现一台服务器分配过多,而其他服务器分配过少未能充分发挥作用的情况,就成为集群中研究的一个重点和难点,因此负载均衡机制应运而生,它成为集群系统资源分配追求的一个主要目标。

任务调度通常是以最大化资源利用率为目标,达到均衡分配负载的目的。最早的负载均衡技术是基于dns的负载均衡,它是一种简单有效的方法,但是由于其并没有考虑服务器的性能和实时的负载情况,在服务器存在差异性和负载变动较快时,其负载均衡效果并不理想。

近年来关于负载均衡方面的研究已经很多,且越来越朝着智能化的方向发展。研究者通过更多的已知负载信息和未知预测信息作为负载均衡的评判标准。mohammedamibrahim等[mohammedamibrahim,luxin-da.performanceofdynamicloadbalancingalgorithmonclusterofworkstationsandpcs[c].inproceedingsof5thinternationalconferenceonalgorithmsandarchitecturesforparallelprocessing.nj:ieee,2002,44-47]提出了轮转调度的动态负载均衡算法,使得集群中所有节点都能均等以合理的顺序被选择,从而很好地解决了并行搜索树问题,然而由于该算法未将节点当前时刻负载计算在内,导致对动态负载情况的判断不够精确。戴毅等[戴毅,曹健.基于模糊控制的启发式工作流引擎负载均衡策略[j].通信学报,2006,(11):84-89]将传统控制理论中的模糊控制思想和启发策略应用到工作流负载均衡中,提出了基于模糊控制的启发式工作流引擎负载均衡策略,为解决负载均衡问题提供了新思路。刘漳辉等[刘漳辉,王晓莉.云计算虚拟机群中带遗传算法的负载均衡算法[j].福州大学学报(自然科学版),2012,40(4):453-458.]提出了带遗传算法的负载均衡算法,将人工智能技术应用于解决负载均衡问题,然而该算法只适用于实验环境,只能在理想的环境中执行,无法满足实际应用场景复杂多变的需求。balasubramaniamm等[chauusc,adawcf.loadbalancingbetweencomputingclusters[c].inproceedingsofthe4thinternationalconferenceonparallelanddistributedcomputing,applicationsandtechnologies.ca:ieee,2003,548-551.]提出了一个集群计算的动态负载平衡库,然而该库建立在异构集群之上,无法满足同构集群的需求。

通过以上分析发现在现有的研究工作中,静态分配策略无法满足资源负载的动态变化需求;动态分配策略大多数仅考虑了资源的某一个属性,并不能很好的反应资源的实时负载情况和资源的差异性;将人工智能技术和控制理论引入到负载均衡的求解过程中,使得计算过程过于复杂,加重了系统负担。



技术实现要素:

为了克服上述现有技术的缺点,本发明的目的在于提供一种基于最大熵原理的负载均衡调度方法,能够更好地进行资源的负载均衡调度,具有响应时间短的特点。

为了达到上述目的,本发明采取的技术方案为:

一种基于最大熵原理的负载均衡调度方法,步骤如下:

步骤1:根据收集到的各个服务器节点的cpu利用率、内存利用率以及磁盘空间利用率的信息,在t时刻,计算出各服务器节点的负载量li(si)=k1c(si)+k2m(si)+k3h(si),c(si)、m(si)、h(si)分别表示服务器节点的cpu利用率、内存利用率以及磁盘空间利用率,k1、k2、k3分别表示所占的权重值,进而求得各个服务器节点的相对负载率pi和平均相对负载率公式如下:

其中,n为服务器节点的数量;

进而求得此时系统的熵h(t),公式如下:

步骤2:用此时系统的熵值h(t)同阈值h°进行比较:

①若h(t)<h°,则说明此时系统负载平衡状态不好,需要进行负载迁移;将相对负载率的服务器节点按pi的值降序组成队列qs,即需要进行负载迁移的服务器队列;将的服务器节点按pi的值升序组成队列qt,即可以接收负载的服务器队列,转向步骤3执行迁移操作;

②若h(t)≥h°,则说明此时系统负载较均衡,不需要进行迁移,查看是否有新的服务请求需要调度,若没有则返回步骤1重新计算下一时刻;否则,转向步骤4执行服务请求调度操作;

步骤3:依次遍历qs和qt队列,取出节点s和t,在保证迁移之后系统熵值增加的前提下,将s上的负载迁移到t上,对于节点s,若迁移之后则结束,从qs队列中删除该节点s;对于节点t,若迁移之后则结束,则从qt队列中删除该节点t,直到其中某个队列为空时,该次迁移结束,返回步骤1;

步骤4:对新的服务请求进行调度:按相对负载率pi升序排列组成队列q,扫描队列q上的服务器节点,找出该任务放置后熵值增加且最大的节点s,若节点s存在,则将服务请求调度到节点s上,完成服务请求调度,返回步骤1。

本发明与现有技术相比的有益效果为:

本发明将热力学熵的概念引入负载均衡中,提出了一种基于最大熵原理的负载均衡调度算法,将负载的均衡调度问题等效为求解系统的最大熵问题,简化了求解过程,并研究了多属性负载评价方法,为负载均衡调度方法的有效执行提供了技术支撑。同时给出了系统熵值的理论模型和基本性质,用熵值来作为系统负载均衡程度的衡量指标,根据熵值变化对系统负载进行调度和迁移,使系统更快更好地达到负载均衡的目标。因此,在充分考虑服务器的差异性和负载的动态变化情况下,以资源分配的均衡性为目标,通过引入熵的概念,研究熵与负载均衡的内在联系,以资源的均衡性分配为目标,提出了一种基于最大熵原理的负载均衡调度方法,以减少响应时间、增加吞吐率,从而提高集群系统的性能。

具体实施方式

下面结合实施例对本发明做进一步详细说明。

多属性负载评价方法:

负载值的计算:

为了信息获取的方便和突出研究的重点,本发明选取服务器节点的cpu使用率、内存使用率以及磁盘空间使用率作为评价节点负载的指标,这3项指标均与负载水平成正比,节点的负载评价就是这些指标综合作用的结果,同时,为了体现各项指标对负载状态的影响程度,为每一项指标赋予一个权重系数,表示各个负载信息在综合负载中的权重和灵敏度。用si表示系统中服务器中的某一台服务器节点,用c(si)、m(si)和h(si)分别表示服务器节点的cpu利用率、内存利用率以及磁盘空间利用率,用l(si)表示该节点的实时负载情况,则l(si)可以用下式来表示:

其中,k1、k2、k3分别表示节点cpu利用率、内存利用率以及磁盘空间利用率在节点负载计算过程中所占的权重值。从上式不难看出,权值大小的选择在一定程度上将直接影响节点负载的计算值,进而影响负载均衡策略的分配结果。传统的做法是根据管理者的经验进行设定,这种做法具有很大的主观性,为负载均衡的分配带来了不确定性,同时,权值一旦设定好,就很难进行修改,无法满足服务器动态变化的需求,因此,本发明研究的基于信息熵的权值优化算法,使得权值的确定更加客观、准确。

权值的优化:

信息熵方法能够客观地确定权重,权重的确定依据指标的变异性。指标值的变异程度越大,说明这个指标起到的作用越大,则这个指标的信息熵越小,其权重越大;反之,指标值的变异程度越小,说明这个指标的作用越小,则这个指标信息熵越大,其权重越小。权重大小与信息熵大小成反比关系,与指标的变异程度成正比关系。

假定服务器节点的cpu利用率、内存利用率以及磁盘空间利用率分别用c(si)、m(si)和h(si)来表示,则m个服务器节点的属性值构成的决策矩阵d可以表示如下:

对其进行归一化处理得到决策矩阵r:

其中,

定义1记归一化后的决策矩阵r的列向量为a=(a1,a2,a3),即为其属性值(r1j,r2j,...,rmj),j=1,2,3,则aj相对应的属性的熵ej可以表示为:

其中,rij表示归一化后的各属性值,令c=1/lnm。

定义2记aj对于方案的区分度为fj=1-ej,则属性对应的权重值计算公式如下:

由上述定义可知,当某属性的值一致性越高,信息熵确定的权重值会越小,即此属性对总值的影响程度越低;反之,某个属性值差别越大,信息熵确定的权重值越大,此属性对总值的影响度越高。因此,基于信息熵的权值优化算法使得权值的确定更加客观、准确,其计算结果与实际认知基本一致。

基于最大熵原理的负载均衡调度方法:

基于最大熵原理的负载均衡调度模型:

负载均衡的目的就是使得负载分布均匀,于是本发明将热力学中熵的概念引入到负载均衡的研究中,利用最大熵原理研究负载均衡调度问题。对负载均衡中的相关概念重新定义如下:

定义3(熵值的概念)在一个具有n个服务器节点的系统中,在t时刻,记第i个节点的负载为li,其相对负载率为则t时刻此系统的熵h(t)可表示为:

则其最大熵的概率分布为:

即只有概率条件约束下,别无其他的约束,采用拉格朗日乘子法求解,即引入拉格朗日乘子λ,将约束条件转化为无约束目标函数最大化求解,

也即使以下函数最大化求解:pi及λ0

显然应该满足

为了取得简单的结果,在运算中采用了乘子(λ+1),而不是λ0,于是可得λ=lnpi或pi=eλ,i=1,2,...,n。

按约束条件应该为:

说明其解为等概率分布,其最大熵值为:

通过熵值的概念可以知道,在时,即p1=p2=...=pm=1/m,可以使得系统熵值最大,所有可以利用熵最大原理来重新定义资源分配的负载均衡目标如下:

定义4(负载均衡目标)负载均衡的目标就是朝着熵递增的方向发展,负载均衡总是朝着熵值变大的趋势去进行,熵值越大,负载分布越均匀,当集群中的负载完全均匀分布的时候,熵值达到最大。即寻找一组pi的概率分布,使得其分布尽可能均匀,以获得熵值h(t)在约束条件下的最大化求解。

可以对基于最大熵原理的负载均衡调度问题建立如下的合作博弈模型:

定义5基于最大熵原理的负载均衡分配的合作博弈模型可以用一个三元组表示为:

g={r,str,utility}(12)

其中:

r——博弈的参与者,这里是指所有的服务器资源;

str——博弈参与者的策略空间,这里指每个服务器资源的负载分配策略;

utility——博弈的收益函数,这里指负载分配之后的系统整体的熵值。

在该博弈模型中,本发明将负载分配之后的系统整体的熵值作为其收益函数,负载均衡调度的目标就可以用如下的数学公式来表示:

utility=maxh(t)(13)

由此可见,基于最大熵原理的负载均衡调度问题可以转化为求解该合作博弈模型的纳什议价解,因此,本发明提出了一种基于最大熵原理的负载均衡调度方法来作为该问题的解决方案。

模型的相关性质分析:

通过上述定义,可得基于最大熵原理的负载均衡调度模型具有下列性质:

性质1:负载均衡总是朝着熵增大的变化趋势去发展,即熵增加的变化途径决定了负载均衡的途径。

因为熵表示物质混乱程度,熵值的增加代表物质趋于稳定,而负载均衡的目标就是负载的平均分配,所以熵值的增加可以达到负载均衡的目标,所以熵增加的变化途径也就是负载均衡趋于分布均匀的途径。

性质2:当且仅当负载完全均衡时,熵值达到最大,即熵最大值的状态就是系统负载最均衡的状态。

由性质1可以得出负载均衡总是朝着熵增大的变化趋势去发展,所以当负载均衡达到完全均衡的时候,熵值增加到最大值。

性质3:熵值的变化规律呈现出先递增,达到一个最大值稳定一段时间后,再递减。

在系统的开始阶段,负载开始被调度的时候,集群的负载分布是不均衡的,所以此时的熵值较小,随着时间的推移,负载被平均的分配到各个服务器上,系统达到平衡,熵值达到最大值,但由于服务请求的差异性,有些服务器的任务执行完毕,而有些还仍在执行,就使得平衡状态被破坏,系统负载分布不平均,熵值由最大值逐渐减少。

性质4:最大相对负载率随着熵值得递增而递减,当且仅当负载完全均衡时,熵值达到最大值。

定理1假设相对负载率记为p1,p2,...,pn,则熵h(t)最大的充要条件是p1=p2=…=pn=1/n。

证明:由于所以借助拉格朗日乘子法可以求得熵值最大的pi满足的条件。考虑

将g对pi求偏导,并令其为0,得到方程组:

pi=e(λ-1)(16)

由于所以:

即p1=p2=…=pn=1/n,此时相应的熵值为

通过以上定义、性质以及定理可以看出,熵可以作为衡量负载均衡程度的一个很好的量度,而最大熵原理又可以准确表明负载均衡的目标,所以本发明提出一种基于最大熵原理的负载均衡调度方法,即朝着熵增大的变化趋势,可以使得系统的负载在较短的时间内达到平衡,当系统熵值达到最大时,各个服务器的负载分布均匀,从而充分利用服务器资源,避免负载分配不均造成的系统资源的浪费。

基于最大熵原理的负载均衡调度方法:

为了达到负载均衡的目标,可以分为两个阶段进行:第一阶段是在服务请求调度的时候,根据调度策略将服务请求分配到相应的服务器上面,使系统达到平衡;第二阶段是在请求全部分配完成之后,进行局部的调整,将负载过重的服务器节点上的服务请求迁移到负载较轻的服务器节点上,使系统达到平衡。

调度策略的选择:

目前已经有很多成熟的调度算法,如:轮转调度算法,最小连接调度算法、加权轮转调度算法、目的地址散列调度算法等,本文提出的是基于最大熵理论的资源均衡分配策略,即以熵值的变化为服务请求调度的依据,最终达到系统熵值最大化的目标。在负载均衡器从监控节点获得各服务器节点的相对负载率以及系统熵值之后,在下次调度前,先根据需要调度的服务请求去计算调度到各服务器节点后熵值的变化,然后选择一个系统熵值增加且增量最大化的服务器作为服务请求调度的目标机器完成本次的调度,这样在每次调度的时候都保证系统熵值是增加且最大,在完成服务请求调度后,系统熵值就增加到最大值,根据前述的性质2可知,此时系统达到负载最均衡的状态,此调度算法可以保证系统在较快的时间内达到负载均衡,避免服务器资源的浪费。

迁移策略的选择:

由于服务请求具有的差异性,完成请求所需的时间不一样,有些服务请求完成了,而有些还在进行,就导致各服务器节点的相对负载率发生变化,造成熵值的变化。根据性质3可知此时熵值将减少,意味着系统的负载变得不均衡,需要对负载进行重新分配,也就是对负载进行迁移,以使其重新趋于平衡。而负载迁移需要占用一定的系统资源和消耗系统时间,若任意无规则的迁移则会得不偿失,不仅不会改善系统的负载情况,反而会加重系统的负担。因此,何时进行负载迁移是问题的关键。本发明提出的是一种基于熵最大原理的负载均衡调度方法,所以将熵值作为负载是否迁移的判断条件。

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