一种基于朴素贝叶斯分类的负载均衡算法

文档序号:8301700阅读:306来源:国知局
一种基于朴素贝叶斯分类的负载均衡算法
【技术领域】
[0001]本算法是涉及到计算机中涉及到一种算法领域。
【背景技术】
[0002]云计算是继分布式处理、并行处理、网格计算之后的一种新的计算模式,其核心是将大型数据中心的计算资源进行虚拟化,并向用户提供以计算资源为形式的服务。随着互联网中的数据量与日俱增,云计算环境(简称云环境)必须具备提供大量并发访问服务的能力,如何将云环境中的总体处理负载“合理”分配到各个节点上,避免各节点的处理能力和I/o能力成为云环境提供服务的瓶颈,是云计算研究领域的热点问题之一。目前,主要采用负载均衡技术,通过调整各个节点上的处理负载分配情况,进行节点间的负载平衡,从而最大限度地利用系统资源,以实现用户服务和扩展性能的最大化在现有的负载均衡技术研究中,根据其实现负载均衡策略方式的不同,主要可以分为静态负载均衡技术和动态负载均衡技术。静态负载均衡利用现有任务信息,根据系统硬件等参数,通过调度算法来选择合适的节点,分配、执行任务。动态负载均衡技术则根据系统当前状态或最近状态去决定如何给分布式系统的每个节点分配任务,若节点任务超载,超载任务将被转移至其他节点执行,如基于蚁群算法的负载均衡算法,基于贪心算法的负载均衡算法M等。另外,文献[6]提出了一种基于虚拟机实时迁移的自适应负载均衡算法,通过当前数据和历史数据,预测虚拟机迁移后对系统影响程度,从而选择有效迁移策略。文献[7]则将分布式系统中基于移动代理的负载均衡策略应用于云环境,利用agent轮询机制收集节点信息,进行节点间负载迁移。由于每个任务占用资源难以预测,且各节点处理能力不同,动态负载均衡技术与静态负载均衡技术相比,更能根据系统性能的变化,动态地调整各节点的负载分配情况,负载均衡效果较好。但在实现动态调度时,由于未对云环境中各节点的负载情况进行有效评估,使得任务的分配调度不合理,容易造成任务在各集群节点间的大范围“抖动”情况,给系统造成大量额外开销。本文将针对上述问题,结合云计算分布式并行的特点,提出了一种基于朴素贝叶斯分类的负载均衡技术。首先,对云环境中的心跳包信息进行定期收集,并采用朴素贝叶斯算法对各节点负载状态进行划分;然后,根节点根据划分结果,实现任务和资源分配的合理调度,有效实现云环境中的各节点负载均衡,提高集群的性能。

【发明内容】

[0003]定义I负载特征值:云环境中节点s的静态负载特征和动态负载特征,用于反映节点运行时的总体负载状况,记为WV(S)。
[0004]在计算各节点负载特征值时,我们设定节点的负载特征属性主要包括CPU、内存、磁盘及网络等四个方面。其中,CPU和内存属性反映当前节点任务处理过程中的负载情况;磁盘属性反映当前节点I/o负载情况;网络属性则反映了节点任务的接收及传送情况。下面将给出各个负载特征值属性的具体定义:
定义2 CPU负载特征值:设云环境中节点S的CPU的运行队列中任务书为Cp CPU上下文切换率为C2、空闲CPU时间百分比为C3,则其CPU负载特征值WVe(S)为:
其中,为一组权重系数,且,根据不同的应用和需求可动态调整权重。
[0005]定义3内存负载特征值:设云环境中节点s的内存的物理内存大小R1、虚拟内存大小R2、空闲存储器的大小R3,则其内存负载特征值为WVk(S)为:
其中,为一组权重系数,且,根据不同的应用和需求可动态调整权重。
[0006]定义4磁盘负载特征值:设云环境中节点s的磁盘利用率为D1、磁盘访问速度为D2、磁盘队列长度为D3,则其磁盘负载特征值WVd (s)为:
其中,为一组权重系数,且,根据不同的应用和需求可动态调整权重。
[0007]定义5网络负载特征值:设云环境中节点s的网络往返延时为N1和网络带宽N2,则其网络负载特征值WVn(S)为,则有:
其中,为一组权重系数,且,根据不同的应用和需求动态可调整权重。
[0008]另外,为了对节点s的负载情况进行贝叶斯分类,根据上述定义,训练样本的格式定义如下:
定义6训练样本:在云环境系统中,用于对节点s的负载情况进行贝叶斯分类的训练样本格式为 < W。(s),WVk(s),WVd (s),WVn (s),T (s)> 五元组,其中 WVc(S)、WVK(s)、WVd(S)和WVn(S)分别为CPU、内存、磁盘和网络的负载特征值;T(s) e T (T为训练样本分类集,记为T= (T1, T2, T3), T1分别表示空闲状态、T2正常负载状态、T3过载状态)。
[0009]2.2基于朴素贝叶斯的分类算法
朴素贝叶斯(Bayes)分类方法以贝叶斯定理为理论基础,是在已知先验概率与条件概率的情况下的模式识别方法。与其他分类算法比较(如人工神经网络、决策树等),朴素贝叶斯分类算法更为简单有效,更适合于云环境的并行处理机制。
[0010]设样本空间为U,特征属性集合为X={ VVc, VVR, VVd, WVN},训练样本状态分类集合T= {!\,T2,T3},特征值根据正常负载阈值α与过载阈值β,朴素贝叶斯分类的具体步骤如下:
Stepl:计算条件概率密度参数和先验概率;
(I)根据训练样本,计算类条件概率密度参数。
[0011](2)统计样本集合中各状态的样本数为Σ Tp某一状态下不同特征分别属于某区间的样本数Σ (XjtllTj)。
[0012]计算得到各类别的特征属性的先验概率;
其中XiG {C,R,D,N},t表示据特征值划分的不同区间,T# {L,H,M} 表示某负载特征处于不同区间的样本。
[0013]接着,利用公式转换先验概率为后验概率。
[0014](3)本文假设各特征属性是相互独立的,则根据贝叶斯定理算出后验概率:
最后,利用后验概率进行决策分类
(4)决策分类:
综上,整个系统的分类函数可表示为:
根据公式(9),可以得到当前节点状态分类函数,表示为
2.4负载均衡策略对于云环境中的所有子节点node,在每次发送heartbeat心跳包之前,利用空闲时间计算出节点s负载特征值WVis) ,WVE(s) ,WVd(s)和WVn(S);然后,将负载特征值随心跳包发送至根节点,根节点根据负载均衡策略,反馈各子节点的任务请求,实现任务的优化分配,达到集群负载平衡的目的。为提高响应速度,根节点在收到心跳包之后,根据上次的划分结果来反馈指令,而本次收集的信息,则在空闲时间进行计算,下次发送。具体平衡策略如下:
根节点收到node节点发送到心跳包之后,将根据判断节点状态分类,并按以下三种策略进行处理:
(O若节点是空闲状态,则响应该节点的任务请求,并同时发送负载迁移指令——接收者启动策略;
(2)若节点是正常状态,则以一定概率响应任务请求。为提高集群平衡效益,若当前空闲节点占多数时,则适当提高响应概率,加快任务执行速度;若当前过载节点多数,则降低响应概率,控制集群整体负载,避免集群整体负载过重;
(3)若节点是过载状态,则拒绝分配任务。
[0015]2.5负载迁移策略
根据朴素贝叶斯分类器公式(8)的划分结果,根节点对相应子节点采取发送者启动和接收者启动相结合的策略对过载节点进行负载迁移。本文使用的启动和接收策略都是局部性,避免大范围的节点迁移,提高迁移效率。具体策略如下:
(O空闲节点接收者启动策略:
A、空闲节点在距离μ范围内寻找过载节点;
B、发现过载节点,则根据Hadoop迁移策略,将过载节点部分负载迁移至空闲节点;
C、迁移结束后,通知根节点,根节点根据公式(8)重新计算出空闲节点、过载节点的负载,并划分;
D、若过载节点仍过载,且空闲节点仍空闲,则继续执行步骤B;否则,对过载节点启动发送者启动策略;
E、若空闲节点仍空闲,且未遍历范围μ内所有节点,则继续步骤A;否则,执行F ;
F、停止遍历,停止接收者启动策略。
[0016](2)过载节点发送者启动策略:
Α、过载节点在距离P范围内寻找空闲节点;
B、发现空闲节点,则根据Hadoop迁移策略,将自身部分负载转移至空闲节点;
C、迁移结束后,通知根节点,根节点根据公式(8)重新计算出该过载节点和空闲节点的负载,并划分;
D、若过载节点仍过载,且空闲节点仍空闲,则继续执行步骤B;否则,执行步骤Α,寻找新的空闲节点;
Ε、若过载节点已正常或过载节点已遍历距离P范围内所有空闲节点,则停止发送者启动策略。
[0017]其中距离μ和距离P根据集群具体情况进行调节,避免大范围的负载迁移。并且本迁移策略假设空闲节点不会直接转为过载节点。迁移过程中采用distcp并行复制,提高迁移效率。
【主权项】
1.一种基于朴素贝叶斯分类的负载均衡算法,以贝叶斯定理为理论基础,是在已知先验概率与条件概率的情况下的模式识别方法。
2.与其他分类算法比较(如人工神经网络、决策树等),朴素贝叶斯分类算法更为简单有效,更适合于云环境的并行处理机制。
3.根据权利要求1则设样本空间为U,特征属性集合为X={ WV%WVK,WVD,WVN},训练样本状态分类集合T= {!\,T2,T3},特征值根据正常负载阈值α与过载阈值。
【专利摘要】基于朴素贝叶斯分类的算法,给出节点划分特征参数及划分方法,针对不同划分区域的节点采取了相应的任务分配策略及平衡策略,有效的提高了云任务的执行效率,达到了集群平衡负载的目的。
【IPC分类】H04L29-08
【公开号】CN104618406
【申请号】CN201310536971
【发明人】不公告发明人
【申请人】镇江华扬信息科技有限公司
【公开日】2015年5月13日
【申请日】2013年11月5日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1