一种分布式系统中最优主机的选择方法及系统与流程

文档序号:14722320发布日期:2018-06-17 20:46阅读:129来源:国知局
本发明涉及一种分布式系统中最优主机的选择方法及系统。
背景技术
:在分布式计算系统中,进程启动,以及主节点主机(或进程)异常后,选择一个备用节点主机(或进程)接替故障节点,都需要当前软件在若干台主机组成的集群中选择出一台最“合适”的主机在其上运行。由于软件是分别独立部署和运行的,选择过程相互之间是并发过程,在软件只知道集群当前资源情况下,会同时都计算出相同的“最合适”的主机,从而造成这台“最合适”的主机上启动过多软件,集群负载出现不均衡的现象。技术实现要素:本发明所要解决的技术问题是,针对分布式系统中,软件在主机集群中选择适合的主机运行时,容易产生因当时某台主机空闲,导致同时寻找主机的软件都选择此台主机,或者从而导致集群整体负载不均衡的现象,提供一种避免出现因为软件并发寻找适合其运行的主机时,出现此问题的分布式系统中最优主机的选择方法及系统。本发明解决上述技术问题的技术方案如下:一种分布式系统中最优主机的选择方法,具体包括以下步骤:步骤1:采集当前时间主机集群内的每台主机的运行状态信息,生成每个主机对应的负载状态评估值;步骤2:所有负载状态评估值构成评估值集合,对评估值集合进行分段得到多个段落评估值,并为每个段落评估值按预设规则赋予一个权值,使每台主机具有一个权值;步骤3:将所有主机按照评估值大小进行排序,将排序后的主机信息和其相对应权值放入一个数组;步骤4:对所有权值进行求和,并将得到的和与[0,1)区间内的一个随机数相乘得到度量值;步骤5:将度量值依次减去数组中的权值,直到得到的差值不大于零时,此时所述数组中的权值对应的主机即为当前时间的最优主机,结束。本发明的有益效果是:本发明避免了集群整体负载不均衡的现象,通过指定权值和度量值的计算,实时根据主机状态选择合适的主机,有效避免同时选中相同主机的情况,使资源分配达到均衡,集群负载均衡。在上述技术方案的基础上,本发明还可以做如下改进。进一步,所述步骤1具体包括以下步骤:步骤1.1:监控主机集群上的每台主机,采集主机集群内的每台主机表示当前时间资源忙闲状态的运行状态信息;步骤1.2:根据每台主机的运行状态信息生成当前时间主机对应的评估值,每台主机对应一个评估值。采用上述进一步方案的有益效果是,根据当前主机内忙闲状态生成评估值,可以设定为越空闲,评估值越大,只要具有相同的规则对每台主机生成评估值即可。进一步,所述步骤2具体包括以下步骤:步骤2.1:对所有负载状态评估值进行排序,排序后的所有负载状态评估值构成评估值集合;步骤2.2:对评估值集合进行分段得到多个段落评估值,并为每个段落评估值按预设规则赋予一个权值,所述段落评估值对应的多个主机均对应此赋予的权值。进一步,所述权值按照以2为指数的升幂的规律进行指定。进一步,所述步骤2.1中对负载状态评估值的按照升序或降序进行排序。进一步,所述步骤5具体包括以下步骤:步骤5.1:按序取数组中的第一个权值为当前权值;步骤5.2:将度量值减去数组中的当前权值,得到度量结果;步骤5.3:判断度量结果是否大于零,如果是,取下一个权值作为当前权值,将度量结果作为度量值,执行步骤5.2;否则,执行步骤5.4;步骤5.4:得到当前权值对应的主机信息,所述主机信息对应的主机即为当前时间的最优主机,结束。本发明解决上述技术问题的技术方案如下:一种分布式系统中最优主机的选择系统,其特征在于,包括监控模块、权值指定模块、排序模块、度量值模块和选择模块;所述监控模块用于采集当前时间主机集群内的每台主机的运行状态信息,生成每个主机对应的负载状态评估值;所述权值指定模块用于将所有负载状态评估值构成评估值集合,对评估值集合进行分段得到多个段落评估值,并为每个段落评估值按预设规则赋予一个权值,使每台主机具有一个权值;所述排序模块用于将所有主机按照评估值大小进行排序,将排序后的主机信息和其相对应权值放入一个数组;所述度量值模块用于对所有权值进行求和,并将得到的和与[0,1)区间内的一个随机数相乘得到度量值;所述选择模块用于将度量值依次减去数组中的权值,直到得到的差值不大于零时,此时所述数组中的权值对应的主机即为当前时间的最优主机。本发明的有益效果是:本发明避免了集群整体负载不均衡的现象,实时根据主机状态选择合适的主机,有效避免同时选中相同主机的情况,使资源分配达到均衡,集群负载均衡。在上述技术方案的基础上,本发明还可以做如下改进。进一步,所述监控模块用于监控主机集群上的每台主机,定时采集主机集群内的每台主机表示当前时间资源忙闲状态的运行状态信息;并根据每台主机的运行状态信息生成当前时间主机对应的评估值,每台主机对应一个评估值。采用上述进一步方案的有益效果是,根据当前主机内忙闲状态生成评估值,可以设定为越空闲,评估值越大,只要具有相同的规则对每台主机生成评估值即可。进一步,所述权值指定模块对所有负载状态评估值进行排序,排序后的所有负载状态评估值构成评估值集合;并对评估值集合进行分段得到多个段落评估值,并为每个段落评估值按预设规则赋予一个权值,所述段落评估值对应的多个主机均对应此赋予的权值。进一步,所述权值按照以2为指数的升幂的规律进行指定。附图说明图1为本发明实施例1所述的一种分布式系统中最优主机的选择方法流程图;图2为本发明实施例1所述的一种分布式系统中最优主机的选择系统结构框图。附图中,各标号所代表的部件列表如下:1、监控模块,2、权值指定模块,3、排序模块,4、度量值模块,5、选择模块。具体实施方式以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。如图1所示,为本发明实施例1所述的一种分布式系统中最优主机的选择方法,具体包括以下步骤:步骤1:采集当前时间主机集群内的每台主机的运行状态信息,生成每个主机对应的负载状态评估值;步骤2:所有负载状态评估值构成评估值集合,对评估值集合进行分段得到多个段落评估值,并为每个段落评估值按预设规则赋予一个权值,使每台主机具有一个权值;步骤3:将所有主机按照评估值大小进行排序,将排序后的主机信息和其相对应权值生成一个数组;步骤4:对所有权值进行求和,并将得到的和与[0,1)区间内的一个随机数相乘得到度量值;步骤5:将度量值依次减去数组中的权值,直到得到的差值不大于零时,此时所述数组中的权值对应的主机即为当前时间的最优主机,结束。本发明实施例2所述的一种分布式系统中最优主机的选择方法,在实施例1的基础上,所述步骤1具体包括以下步骤:步骤1.1:监控主机集群上的每台主机,采集主机集群内的每台主机表示当前时间资源忙闲状态的运行状态信息;步骤1.2:根据每台主机的运行状态信息生成当前时间主机对应的评估值,每台主机对应一个评估值。本发明实施例3所述的一种分布式系统中最优主机的选择方法,在实施例1或2的基础上,所述步骤2具体包括以下步骤:步骤2.1:对所有负载状态评估值进行排序,排序后的所有负载状态评估值构成评估值集合;步骤2.2:对评估值集合进行分段得到多个段落评估值,并为每个段落评估值按预设规则赋予一个权值,所述段落评估值对应的多个主机均对应此赋予的权值。本发明实施例4所述的一种分布式系统中最优主机的选择方法,在实施例1-3任一项的基础上,所述权值按照以2为指数的升幂的规律进行指定。本发明实施例5所述的一种分布式系统中最优主机的选择方法,在实施例3的基础上,所述步骤2.1对负载状态评估值按照升序或降序进行排序。本发明实施例6所述的一种分布式系统中最优主机的选择方法,在实施例1-5任一项的基础上,所述步骤5具体包括以下步骤:步骤5.1:按序取数组中的第一个权值为当前权值;步骤5.2:将度量值减去数组中的当前权值,得到度量结果;步骤5.3:判断度量结果是否大于零,如果是,取下一个权值作为当前权值,将度量结果作为度量值,执行步骤5.2;否则,执行步骤5.4;步骤5.4:得到当前权值对应的主机信息,所述主机信息对应的主机即为当前时间的最优主机,结束。本发明所述的一种分布式系统中最优主机的选择方法,具体示例包括以下步骤:首先,通过部署在主机集群的每台主机上的监控程序,定时收集主机当前资源忙闲状态,最终形成一个表现主机资源忙闲程度的评估值(当前可假定越空闲,此评估值越大);其次,把这些评估值按照大小划分成大的若干区段。对每个区段指定权值作为后续计算依据。区段间权值按指数升幂指定;然后,对每个区段内的主机分别随机排列后,再顺序装入数组A[m]。数组下标为主机排列后的序号,数组内容为对应区段的权值value和主机名name。下一步,设其中Rnd函数随机生成[0,1)的小数。最后,用B=B-A[t].value,t=1..m。当B<=0时A[t].name对应的主机即为选中的主机。本发明所述方法在具体示例中,如下:集群内有6台主机,分别对应负载情况如下:评估值计算根据不同场景获取方式也不同,以仅参考CPU使用率的场景为例。主机名B01B02B03B04B05B06评估值232724362770拆分成3个区间:100~66的区间权值为2;65~33的区间权值为4;32~0的区间权值为16;有两个软件在同时选择“合适”的主机。软件P1选择过程:1、把分成三个区间的主机分别随机排列后装入数组A2、计算数字标尺B=(16+16+16+16+4+2)*rnd()=43.23、数字标尺B循环减A[t],直到B<=0。43.2-16-16-16<0,此时t=24、A[2]对应主机名为B05,即P1选定B05主机并在其上运行。软件P2选择过程:1、把分成三个区间的主机分别随机排列后装入数组A2、计算数字标尺B=(16+16+16+16+4+2)*rnd()=61.923、数字标尺B循环减A[t],直到B<=0。61.92-16-16-16-16<0,此时t=34、A[3]对应主机名为B01,即P1选定B01主机并在其上运行。上述P1和P2两个软件虽然同时启动,但选择了两台都不是很忙的机器作为其运行主机,达到预期效果。如图2所示,为本发明实施例1所述的一种分布式系统中最优主机的选择系统,包括监控模块1、权值指定模块2、排序模块3、度量值模块4和选择模块5;所述监控模块1用于采集当前时间主机集群内的每台主机的运行状态信息,生成每个主机对应的负载状态评估值;所述权值指定模块2用于将所有负载状态评估值构成评估值集合,对评估值集合进行分段得到多个段落评估值,并为每个段落评估值按预设规则赋予一个权值,使每台主机具有一个权值;所述排序模块3用于将所有主机按照评估值大小进行排序,将排序后的主机信息和其相对应权值生成一个数组;所述度量值模块4用于对所有权值进行求和,并将得到的和与[0,1)区间内的一个随机数相乘得到度量值;所述选择模块5用于将度量值依次减去数组中的权值,直到得到的差值不大于零时,此时所述数组中的权值对应的主机即为当前时间的最优主机。本发明实施例2所述的一种分布式系统中最优主机的选择系统,在实施例1的基础上,所述监控模块1用于监控主机集群上的每台主机,定时采集主机集群内的每台主机表示当前时间资源忙闲状态的运行状态信息;并根据每台主机的运行状态信息生成当前时间主机对应的评估值,每台主机对应一个评估值。本发明实施例3所述的一种分布式系统中最优主机的选择方法,在实施例1或2的基础上,所述权值指定模块2对所有负载状态评估值进行排序,排序后的所有负载状态评估值构成评估值集合;并对评估值集合进行分段得到多个段落评估值,并为每个段落评估值按预设规则赋予一个权值,所述段落评估值对应的多个主机均对应此赋予的权值。本发明实施例4所述的一种分布式系统中最优主机的选择方法,在实施例1-3任一项的基础上,所述权值按照以2为指数的升幂的规律进行指定。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1