有效
Gaia系统中基于资源反馈的负载均衡任务调度方法及系统
李文佳、王国仁、赵宇海、郑军、李博扬
北京理工大学
李
李文佳机构 暂无
技术领域 暂无
王
王国仁机构 暂无
技术领域 暂无
赵
赵宇海机构 暂无
技术领域 暂无
郑
郑军机构 暂无
技术领域 暂无
李
李博扬机构 暂无
技术领域 暂无
摘要
本发明公开了Gaia系统中基于资源反馈的负载均衡任务调度方法及系统,能够提高集群资源利用率,同时减少系统任务的执行时间。该方法可以在集群出现负载不均时,重新分配每个资源节点的任务,提高集群资源利用率的同时减少系统任务的执行时间。该方法通过实现的实时监控系统Monitor来监控资源节点的负载情况,并根据区域划分算法把集群划分为过负载、轻负载、近饱和以及差饱和四个区域,由于过负载区域的机器负载过重而影响整个集群的执行效率,因此用基于人工萤火虫算法的调度策略,把过负载区域中资源节点的任务调度给差饱和区域的资源节点,提高了系统的集群利用率、执行效率以及吞吐量效率。
1.一种Gaia系统中基于资源反馈的负载均衡任务调度方法,其特征在于,包括如下步骤;步骤1、针对Gaia集群系统中的所有资源节点进行实时资源性能监控,并计算每个资源节点的负载值,进而得到整个Gaia集群的负载值;将每个资源节点的负载值和集群的负载均衡值存入MongoDB数据库中;步骤2、依据每个资源节点相对于整个Gaia集群的负载值的偏移量以及预先设定的高低阈值,对Gaia集群进行区域划分,将整个Gaia集群划分为过负载、轻负载、近饱和和差饱和四个区域,依次记为UPGroup、LPGroup、NSGroup以及DSGroup;步骤3、基于人工萤火虫算法把过负载区域UPGroup中的节点j上的任务i调度到差饱和区域DSGroup上的节点p上,UPGroup上按照负载值的大小做降序排序,依次调度到DSGroup上,直到集群负载值C_Load小于预设阈值;在所述人工萤火虫算法中把过负载区域UPGroup中的节点j上的任务i作为萤火虫,DSGroup区域上的节点p作为萤火虫的目标区域,任务的目标函数由UPGroup上的节点j的任务数量、节点j中的任务i的优先级、目标节点p的负载值以及目标节点p上高优先级任务的数量共同决定。
2.如权利要求1所述的负载均衡任务调度方法,其特征在于,所述步骤1,具体包括如下步骤:步骤1.1:Gaia集群中的资源监控系统每10秒统计一次Gaia集群中各个资源节点的CPU核数、CPU利用率、内存利用率以及总内存大小的性能指标,四个指标构成的综合值来代表当前资源节点的实时资源性能;步骤1.2:根据四个性能指标计算出资源节点的负载值;步骤1.3:把计算得出的资源节点的负载值放入MongoDB数据库中;步骤1.4:基于每个资源节点的负载值计算得到整个Gaia集群的负载值,放入MongoDB数据库中,判断如果Gaia集群的负载值小于设定的均衡阈值则负载均衡任务调度方法结束,否则,进入步骤2。
3.如权利要求1或2所述的负载均衡任务调度方法,其特征在于,所述步骤2,具体包括如下步骤:步骤2.1:根据Gaia集群中的各资源节点的负载值计算出Gaia集群的平均负载值;步骤2.2:根据各资源节点的负载值和Gaia集群的平均负载值,计算出每个资源节点的负载偏差以及相对于阈值的偏移量;步骤2.3:设定Gaia集群的高阈值和低阈值,将所有资源节点根据自身偏移量分别分配到过负载、差负载、过饱和以及近饱和四个区域中,依次记为UPGroup、LPGroup、NSGroup以及DSGroup;Gaia集群的高低阈值是启发式经验值。
4.如权利要求3所述的负载均衡任务调度方法,其特征在于,设定高阈值为h_threshold≥0;如果资源节点j的偏移量大于等于高阈值h_threshold,则节点j属于过负载UPGroup区域;如果资源节点j的偏移量小于高阈值h_threshold且大于等于0,则节点j属于轻负载LPGroup区域;设定低阈值l_threshold≤0;如果资源节点j的偏移量小于低阈值l_threshold,则节点j属于差饱和DSGroup区域;如果资源节点j的偏移量大于低阈值l_threshold且小于0,则节点j属于近饱和NSGroup区域。
5.如权利要求1~4任一所述的负载均衡任务调度方法,其特征在于,所述步骤3包括如下具体步骤:步骤3.1:把分配到过负载区域UPGroup的资源节点按照负载值由高到低排序,同时一个资源节点中的任务按照优先级由高到底进行排序;步骤3.2:把位于过负载区域UPGroup的资源节点中位于等待队列中的任务依次调度到差饱和区域DSGroup;步骤3.3:每10秒从MongoDB数据库中读取当前的实时资源性能指标;步骤3.4:更新当前的区域划分,并重复步骤3.1、3.2和3.3,直到过负载区域UPGroup为空或者差饱和区域DSGroup为空为止,负载均衡任务调度方法完成。
6.如权利要求1~4任一所述的负载均衡任务调度方法,其特征在于,所述步骤3包括如下具体步骤:S301:输入萤火虫集合N={n 1 ,n 2 ,…,n m }、m为萤火虫总数;迭代次数M以及上一节区域划分算法产生的过负载区域UPGroup、轻负载区域LPGroup、近饱和区域NSGroup、差饱和区域DSGroup集合,把UPGroup中的任务按照负载值高低进行排序,把UPGroup中的任务设定为萤火虫,DSGroup区域设定为发光区域,在发光区域中寻找最优解并把任务调度到最优的资源节点上;首先初始化萤火虫的步长s,荧光素的消失率ρ、荧光素的更新率γ、以及决策域的更新率β,对于萤火虫集合中的每个萤火虫初始化其荧光素为l 0 、初始决策域为r 0 以及初始位置为x i (t),萤火虫i在时刻t的荧光素值为l i (t),ρ代表萤火虫中荧光色的消失率,γ代表荧光素的更新率,f(x i (t))表示萤火虫i在时间t时位置的目标函数值,l i (t-1)为萤火虫i在时刻t-1的荧光素值;l i (t) =(1- ρ) l i (t-1)+γf (x i (t)), i=1,2, …,m (7)萤火虫i在t时刻的邻居集合G i (t),其中x i (t)表示萤火虫i在t时刻所在的位置,r d i (t)表示萤火虫i在时间t时决策域范围,x j (t)表示萤火虫j在t时刻所在的位置,萤火虫j在时刻t的荧光素值为l j (t);G i (t) =() {j :|| x j (t)- x i (t)|| < r d i (t); l i (t)< l j (t)} (8)萤火虫在时间t时的决策域r d i (t)更新公式为公式(9),其中r s 表示萤火虫的感知域范围,β表示决策域的更新率,g t-1 表示萤火虫在t-1时刻的邻域阈值,G i (t-1)表示萤火虫在t-1时的邻域;r d i (t) = min{r s , max{0, r d i (t-1), β(g t-1 -|G i (t-1)|)}} (9)对于集合中的萤火虫i需要分别根据公式(7)、公式(8)以及公式(9)去更新萤火虫的荧光素值、邻域集合以及决策域半径,对于当前萤火虫i的邻域集合G i (t)去计算得到每个萤火虫i移向邻域集合G i (t)内每个个体j的概率p ij (t),并选出概率最大的j方向作为萤火虫i的移动方向,更新位置以及萤火虫t+1时刻的决策域范围r d i (t+1),直到完成迭代次数M,选出全局最优解,即差饱和区域中最合适的资源节点;当UPGroup和DSGroup都不为空时,把过负载区域UPGroup中的资源节点根据负载值由高到低进行排序,并把该资源节点中任务按照优先级进行由高到低的排序,对于UPGroup中的节点对应的分配任务模拟为萤火虫,DSGroup定义为萤火虫的区域移动范围;S302:把位于过负载区域节点中位于等待队列中的任务依次调度到差饱和区域,把萤火虫i移到全局最优解的位置;其中萤火虫i对应UPGroup中的任务i,全局最优解的位置对应DSGroup中的资源节点j;S303:每10秒从MongoDB读取当前的资源性能指标;此时系统实时性能发生改变,从MongoDB数据库中获取实时的资源节点负载值信息,并根据资源节点当前的任务队列的数量区域重新进行区域分区;S304:更新当前的区域划分,并重复S301、S302和S303,直到过负载区域为空或者差饱和区域为空为止,整体算法调度完成。
7.Gaia系统中基于资源反馈的负载均衡任务调度系统,其特征在于,包括实时资源监控模块、区域划分模块以及调度模块;所述实时资源监控模块,用于针对Gaia集群系统中的所有资源节点进行实时资源性能监控,并计算每个资源节点的负载值,进而得到整个Gaia集群的负载值;并将每个资源节点的负载值和集群的负载均衡值存入MongoDB数据库中;所述区域划分模块,用于依据每个资源节点相对于整个Gaia集群的负载值的偏移量以及预先设定的高低阈值,对Gaia集群进行区域划分,将整个Gaia集群划分为过负载、轻负载、近饱和和差饱和四个区域,依次记为UPGroup、LPGroup、NSGroup以及DSGroup;所述调度模块,基于人工萤火虫算法把过负载区域UPGroup中的节点j上的任务i调度到差饱和区域DSGroup上的节点p上,UPGroup上按照负载值的大小做降序排序,依次调度到DSGroup上,直到集群负载值C_Load小于预设阈值;在所述人工萤火虫算法中把过负载区域UPGroup中的节点j上的任务i作为萤火虫,DSGroup区域上的节点p作为萤火虫的目标区域,任务的目标函数由UPGroup上的节点j的任务数量、节点j中的任务i的优先级、目标节点p的负载值以及目标节点p上高优先级任务的数量共同决定。
8.如权利要求7所述的负载均衡任务调度系统,其特征在于,所述实时资源监控模块包括实时监控集群性能单元、计算负载值单元以及MongoDB存储单元;所述实时监控集群性能单元,每10秒统计一次Gaia集群中各个资源节点的CPU核数、CPU利用率、内存利用率以及总内存大小的性能指标,四个指标构成的综合值来代表当前资源节点的实时资源性能;所述计算负载值单元,用于根据四个性能指标计算出资源节点的负载值,并基于每个资源节点的负载值计算得到整个Gaia集群的负载值;所述MongoDB存储单元,用于存储资源节点的负载值和整个Gaia集群的负载值;所述实时资源监控模块在判断如果Gaia集群的负载值大于或等于设定的均衡阈值时,调用区域划分模块。



