一种集群负载均衡的方法及其系统与流程

文档序号:12039406阅读:203来源:国知局
一种集群负载均衡的方法及其系统与流程
本发明属于计算机通信技术领域,具体涉及一种集群负载均衡的方法及其系统。

背景技术:
计算机集群是指多台普通的计算机通过局域网络连接成为的一个整体,计算机集群内的每个计算机称为一个节点,计算机集群内的所有节点共同为接收到的连接请求对应的应用程序提供服务。计算机集群通过各个节点之间的快速信息交流和负载均衡处理为多个节点分配任务,从而提高整个计算机集群的处理能力。计算机集群中各个节点的处理能力并不完全相同,每个应用程序所需要的资源也是千差万别。因此,均衡调度每一个节点、使每个节点都发挥出最大的性能,即负载均衡处理但当了非常重要的角色。目前,现有的均衡处理器大多采用单一资源优先算法(如最小响应时间优先算法或者最小连接数优先算法)或者随机分配算法等实现。但是,单一资源优先算法仅根据计算机集群中节点的单一资源(如响应时间或者存活请求连接数等)使用情况分配与应用程序对应的连接请求,不能根据需要灵活的派发请求;采用随机分配算法时,系统中各个节点被选中的概率相等,但是随机分配算法具有一定的盲目性,往往会造成计算机集群中某些节点被多次重复选择、而另一些节点未被选择(即选择呈现出局部聚集性),从而导致计算机集群整体性能和吞吐量不高。为解决上述问题,目前较多的采用部分负载均衡算法。部分负载均衡算法综合考虑了集群中各个节点的性能参数(其中性能参数可以包括多个参数值,这些参数值例如可以是内存利用率、CPU利用率、网络带宽、响应时间、存活请求连接数等)对该节点的影响。部分负载均衡算法中各个节点的性能参数是一次获得的,在负载均衡过程中这些性能参数无法及时准确地反映对应节点的当前处理能力,造成无法根据集群内节点的当前处理能力合理分配接收到的与应用程序对应的连接请求,进而影响整个计算机集群的处理性能。

技术实现要素:
有鉴于此,本发明的目的在于提供一种基于集群内节点的当前性能参数的集群负载均衡的方法及其系统,以提高整个计算机集群的处理性能。为实现上述目的,本发明的一个实施例提供一种集群负载均衡的方法,所述方法包括:每隔固定时间获取所述集群内每个节点的性能参数;根据所述性能参数获取该节点的综合负载冗余值,其中所述节点的综合负载冗余值为该节点的性能参数的加权和,所述性能参数对应的权数跟与其对应的应用程序有关;接收到所述应用程序对应的连接请求后,将所述连接请求分配至所述综合负载冗余值大于其综合负载冗余阈值的节点,所述综合负载冗余阈值为所述节点的最小剩余空间量。优选地,所述将所述连接请求分配至所述综合负载冗余值大于其综合负载冗余阈值的节点,包括:选取所述综合负载冗余值大于其综合负载冗余阈值的节点;根据所述综合负载冗余值大于其综合负载冗余阈值的节点的综合负载冗余值及所述集群的总综合负载冗余值获取这些节点中单个节点的综合负载冗余率,其中所述集群的总综合负载冗余值为所述集群内所有节点的综合负载冗余值的和;设定所述综合负载冗余率不小于第一预定冗余率的节点属于第一低负载组,所述综合负载冗余率小于所述第一预定冗余率且不小于第二预定冗余率的节点属于第一中负载组,其中所述节点的综合负载冗余率为该节点的所述综合负载冗余值与所述集群的总综合负载冗余值之间的比值;根据轮转法将所述连接请求分配至属于所述第一中负载组的节点,或者,根据轮转法将所述连接请求分配至属于所述第一低负载组的节点。优选地,所述将所述连接请求分配至所述综合负载冗余值大于其综合负载冗余阈值的节点,包括:选取所述综合负载冗余值大于其综合负载冗余阈值的节点;设定综合负载冗余剩余量不小于第一预定剩余量的节点属于第二低负载组,所述综合负载冗余剩余量小于第一预定剩余量且不小于第二预定剩余量的节点属于第二中负载组,其中节点的综合负载冗余剩余量为该节点的所述综合负载冗余值超出其综合负载冗余阈值的量;根据轮转法将所述连接请求分配至属于所述第二中负载组的节点,或者,根据轮转法将所述连接请求分配至属于所述第二低负载组的节点。优选地,所述将所述连接请求分配至所述综合负载冗余值大于其综合负载冗余阈值的节点,具体为:采用轮转法将所述连接请求分配至所述综合负载冗余值大于其综合负载冗余阈值的节点。优选地,所述每个节点的性能参数包括两个以上参数值,所述将所述连接请求分配至所述综合负载冗余值大于其综合负载冗余阈值的节点前,所述方法还包括:确定所述节点的每个所述参数值的冗余值大于所述参数值的冗余阈值。优选地,所述节点的性能参数包括响应时间,所述将所述连接请求分配至所述综合负载冗余值大于其综合负载冗余阈值的节点前,所述方法还包括:获取该节点的响应时间;双通道示波器的两个通道与该节点的并口相连、且信号发生器连接在双通道示波器的一个通道上;所述获取该节点的响应时间,包括:记录所述双通道示波器接收第一脉冲信号的第一时刻,所述第一脉冲信号由所述信号发生器产生并通过所述双通道示波器的一个通道传送至所述双通道示波器和所述节点的并口;记录所述双通道示波器接收第二脉冲信号的第二时刻,所述第二脉冲信号由所述节点的并口接收并通过所述双通道示波器的另一通道传送至所述双通道示波器,其中所述第二脉冲信号与所述第一脉冲信号相同;获取所述第二时刻与所述第一时刻之间的差值,令所述差值为所述节点的响应时间。相应地,本发明实施例还提供一种集群负载均衡的系统,所述系统包括:第一获取单元,用于每隔固定时间获取所述集群内每个节点的性能参数;第二获取单元,用于根据所述第一获取单元获取的所述性能参数获取该节点的综合负载冗余值,其中所述节点的综合负载冗余值为该节点的性能参数的加权和,所述性能参数对应的权数跟与其对应的应用程序有关;分配单元,用于在接收到所述应用程序对应的连接请求后,将所述连接请求分配至所述综合负载冗余值大于其综合负载冗余阈值的节点,所述综合负载冗余阈值为所述节点的最小剩余空间量。优选地,所述分配单元包括:第一选取单元,用于选取所述综合负载冗余值大于其综合负载冗余阈值的节点;第一获取子单元,用于根据所述综合负载冗余值大于其综合负载冗余阈值的节点的综合负载冗余值及所述集群的总综合负载冗余值获取这些节点中单个节点的综合负载冗余率,其中所述集群的总综合负载冗余值为所述集群内所有节点的综合负载冗余值的和;设定所述综合负载冗余率不小于第一预定冗余率的节点属于第一低负载组,所述综合负载冗余率小于所述第一预定冗余率且不小于第二预定冗余率的节点属于第一中负载组,其中所述节点的综合负载冗余率为该节点的所述综合负载冗余值与所述集群的总综合负载冗余值之间的比值;第一分配子单元,用于根据轮转法将所述连接请求分配至属于所述第一中负载组的节点;第二分配子单元,用于根据轮转法将所述连接请求分配至属于所述第一低负载组的节点。优选地,所述分配单元包括:第二选取单元,用于选取所述综合负载冗余值大于其综合负载冗余阈值的节点;设定综合负载冗余剩余量不小于第一预定剩余量的节点属于第二低负载组,所述综合负载冗余剩余量小于第一预定剩余量且不小于第二预定剩余量的节点属于第二中负载组,其中节点的综合负载冗余剩余量为该节点的所述综合负载冗余值超出其综合负载冗余阈值的量;第三分配子单元,用于根据轮转法将所述连接请求分配至属于所述第二中负载组的节点;第四分配子单元,用于根据轮转法将所述连接请求分配至属于所述第二低负载组的节点。优选地,所述分配单元具体用于:采用轮转法将所述连接请求分配至所述综合负载冗余值大于其综合负载冗余阈值的节点。优选地,所述每个节点的性能参数包括两个以上参数值,所述系统还包括:确定单元,用于确定所述节点的每个所述参数值的冗余值大于所述参数值的冗余阈值。优选地,所述节点的性能参数包括响应时间,所述系统还包括:获取子单元,用于获取该节点的响应时间;双通道示波器的两个通道与该节点的并口相连、且信号发生器连接在双通道示波器的一个通道上;所述获取子单元包括:第一记录单元,用于记录所述双通道示波器接收第一脉冲信号的第一时刻,所述第一脉冲信号由所述信号发生器产生并通过所述双通道示波器的一个通道传送至所述双通道示波器和所述节点的并口;第二记录单元,用于记录所述双通道示波器接收第二脉冲信号的第二时刻,所述第二脉冲信号由所述节点的并口接收并通过所述双通道示波器的另一通道传送至所述双通道示波器,其中所述第二脉冲信号与所述第一脉冲信号相同;计算单元,用于计算所述第二时刻与所述第一时刻之间的差值,令所述差值为所述节点的响应时间。根据本发明实施例提供的集群负载均衡的方法及其系统,采用动态反馈机制每隔固定时间获取集群内每个节点的性能参数、并根据性能参数以及性能参数对应的权数获得每个节点的综合负载冗余值,最后依照获得的每个节点的综合负载冗余值以及综合负载冗余阈值对接收到的与应用程序对应的连接请求进行分配。鉴于获取节点的性能参数能够及时准确地反映该节点的当前处理能力,所以这种集群负载均衡的方法能够根据集群内节点的当前处理能力合理分配接收到的与应用程序对应的连接请求,避免计算机集群内某些节点负载过重而某些节点处于空闲状态,进而提高整体计算机集群的处理性能。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例一提供的集群负载均衡的方法的流程示意图;图2是本发明实施例二提供的集群负载均衡的方法的流程示意图;图2(a)是本发明实施例二中获取节点的响应时间的方法的流程示意图;图2(b)是本发明实施例二中获取节点的响应时间的模型图;图3是本发明实施例三提供的集群负载均衡的方法的流程示意图;图4是本发明实施例提供的集群负载均衡的系统的结构示意图。具体实施方式为提高计算机集群整体的处理性能,本发明提供了以下技术方案,下面将结合附图通过具体实施方式对本发明的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。实施例一本发明实施例一提供一种集群负载均衡的方法,图1示出了该方法的流程图,该方法包括以下步骤:步骤S11:每隔固定时间获取集群内每个节点的性能参数。本发明实施例中的集群是多台普通的计算机通过局域网络连接成的一个整体。集群内的每台普通的计算机称为一个节点。节点的性能参数反映了该节点当前的负载情况和剩余处理能力。本发明实施例中节点的性能参数可以包括一个参数值或者两个以上参数值,这些参数值可以是内存利用率、CPU利用率、响应时间、网络带宽以及存活请求连接数(即等待处理的连接请求)等,当然节点的性能参数还可以包括其他参数值,在此不再一一列举。本发明实施例中的“固定时间”可以是用户根据需要设置的一段时间,例如该“固定时间”可以是10s~15s范围内某个长度的时间,或者30s~50s范围内某个长度的时间,或者其他范围内某个长度的时间等等,本发明对此不做限定。若节点的性能参数仅包括一个参数值,例如该参数值是内存利用率。以Linux系统为例,内存利用率可以从/proc/meminfo文件中读取相应数据,并依据这些数据计算获得,例如可以采用如下公式计算内存利用率:内存利用率=(MemTotal-MemFree)/MemTotal,其中MemTotal为总的内存大小、MemFree为空闲的内存大小;步骤S12:根据集群内节点的性能参数获取该节点的综合负载冗余值,其中节点的综合负载冗余值为该节点的性能参数的加权和,且节点的性能参数对应的权数跟与其对应的应用程序有关。综合负载冗余值表示集群中的某个节点当前的剩余处理能力(例如可以是该节点的当前剩余空间量)。当节点的性能参数仅包括一个参数值时,综合负载冗余值可以为该参数值与其权数(即权重值)的乘积。针对不同的应用程序,集群内相同节点的相同性能参数的权数可能不同,性能参数的权数可以反映该性能参数对节点的处理能力的影响程度。针对不同的应用程序,用户可以根据使用经验或者实际需求设定节点的性能参数的权数,在此不做限定。在一个具体示例中,该参数值可以为内存利用率,令Mi为集群中第i个节点的内存利用率的剩余量,ki为该节点对应于某个应用程序的内存利用率的权数,Wi为第i个节点的权数,则当前集群中第i个节点的综合负载冗余值Li的计算公式为Li=Wi×(ki×Mi),(1≤i≤n);其中,第i个节点的权数Wi表示集群中第i个节点对应于某个应用程序的自身处理能力。可以采用如下方式确定集群中第i个节点的权数:确定某个应用程序后,在集群中选择一个节点作为参照节点,假设该参照节点的处理能力为A、将该节点的权数记为1,Bi表示集群内第i个节点的处理能力,则集群内第i个节点的权数为Wi=Bi/A。步骤S13:接收到与应用程序对应的连接请求后,将该连接请求分配至集群中综合负载冗余值大于其综合负载冗余阈值的节点。本发明中节点的综合负载冗余阈值代表该节点的最小剩余空间量,为保证集群中的所有节点负载均衡、避免集群内的某个节点过度负载,集群中的每个节点可以留有一定的空间,定义该一定的空间为最小剩余空间量。节点的当前剩余空间量(即综合负载冗余值)小于该节点的最小剩余空间量时该节点无法再接收与应用程序对应的连接请求,只有当其当前剩余空间量大于其最小剩余空间量时该节点才能接收与应用程序对应的连接请求。集群中综合负载冗余值不小于其综合负载冗余阈值的节点可能有多个,此时可以采用随机方式将与应用程序对应的连接请求分配至满足条件的任一节点,也可以采用轮转法将与应用程序对应的连接请求分配至满足条件的任一节点。另外,也可以采用其他方式将与应用程序对应的连接请求分配至满足条件的节点,这点将在后续详细介绍。本发明实施例一提供的集群负载均衡的方法,采用动态反馈机制每隔固定时间获取集群内每个节点的性能参数、并根据性能参数以及性能参数对应的权数获得每个节点的综合负载冗余值,最后依照获得的每个节点的综合负载冗余值以及综合负载冗余阈值对接收到的与应用程序对应的连接请求进行分配。鉴于获取节点的性能参数能够及时准确地反映该节点的当前处理能力,所以这种集群负载均衡的方法能够根据集群内节点的当前处理能力合理分配接收到的与应用程序对应的连接请求,避免计算机集群内某些节点负载过重而某些节点处于空闲状态,进而提高整体计算机集群的处理性能。上述实施例一介绍了节点的性能参数仅包括一个参数值的情况,实际上,集群内节点的性能参数还可以包括多个参数值,实施例二将对性能参数包括多个参数值的情况做详细介绍。需要说明的是,实施例二仅示出了性能参数包括多个参数值时的一个示例,节点的性能参数还可以包括除实施例二所列出的参数值以外的其他参数值,这些都在本发明的保护范围之内。实施例二与实施例一有所不同的是,本发明实施例二中集群内节点的性能参数可以包括多个参数值,这些参数值例如可以是内存利用率、CPU利用率、响应时间、网络带宽以及存活请求连接数等。图2为本发明实施例二的集群负载均衡的方法的流程示意图,该方法包括以下步骤:步骤S21:每隔固定时间获取集群内每个节点的性能参数。该步骤与上述步骤S11类似,有所不同的是,本实施例中节点的性能参数包括多个参数值,这些参数值可以是内存利用率、CPU利用率、响应时间、网络带宽以及存活请求连接数。(1)内存利用率:以Linux系统为例,内存利用率可以从/proc/meminfo文件中读取相应数据,并依据这些数据计算获得,例如可以采用如下公式计算内存利用率:内存利用率=(MemTotal-MemFree)/MemTotal,其中MemTotal为总的内存大小、MemFree为空闲的内存大小;(2)CPU利用率:在Linux系统中,CPU的执行时间分为系统内核执行时间、用户态执行时间和空闲系统进程执行时间,这三者的和就是CPU的执行时间。CPU的时间分配信息保存在/proc/stat文件中,由于该文件中的数值是从系统启动开始累积到当前时刻的积累值,所以需要在不同时间点取值进行比较运算,当两个时间点(如T1和T2)的间隔较短时,就可以把这个计算结果作为当前的CPU利用率,例如可以采用如下公式计算当前的CPU利用率:T=(user2+nice2+system2+idle2)-(user1+nice1+system1+idle1),t=(idle2-idle1)-(user2-user1),其中user2代表在T2时刻处于用户态的时间、nice2代表在T2时刻负的进程所占用的CPU时间、system2代表在T2时刻处于核心态的时间、idle2代表在T2时刻除IO等待时间以外的其他等待时间,user1代表在T1时刻处于用户态的时间、nice1代表在T1时刻负的进程所占用的CPU时间、system1代表在T1时刻处于核心态的时间、idle1代表在T1时刻除IO等待时间以外的其他等待时间;则其中T为CPU在T1到T2时间段内总的使用时间,t为CPU在T1到T2时间段内空闲使用时间。(3)响应时间:响应时间是Linux系统实时性能的重要指标,也是衡量该节点负载的一个重要因素,系统的实时性能越强、响应时间越短。响应时间可以通过如下方式计算:响应时间=延迟时间+保存CPU内部寄存器时间;其中,延迟时间是指与应用程序对应的连接请求发出到该连接请求完成的时间。保存CPU内部寄存器的时间为将CPU内部寄存器内容压入堆栈的时间。本步骤中可以采用现有技术中获取响应时间的方式获取响应时间这一参数值。另外,还可以采用其他方式获取响应时间这一参数值。在一个具体示例中,响应时间可以采用双通道示波器检测方法测量获得,图2(a)示出了该检测方法的流程图、图2(b)示出了该检测过程的模型图,一并结合图2(a)和图2(b),在该检测方法中双通道示波器的两个通道与节点的并口相连、且信号发生器连接在双通道示波器的一个通道上,可以采用如下方式获取响应时间:步骤S211:信号发生器产生第一脉冲信号并通过与该信号发生器连接的一个通道M将该第一脉冲信号分别传送至双通道示波器和节点的并口;步骤S212:双通道示波器接收到第一脉冲信号后记录接收该第一脉冲信号的第一时刻;步骤S213:双通道示波器接收节点的并口通过双通道示波器的另一通道N传送至双通道示波器第二脉冲信号后记录接收该第二脉冲信号的第二时刻;其中,步骤S213具体可以采用如下方式进行:节点的并口接收到第一脉冲信号后,触发外部中断RQ7,之后RQ7唤醒Linux系统中的read命令,该命令驱动程序并口驱动/dev/lpv,通过并口返回与第一脉冲信号相同的第二脉冲信号,并通过双通道示波器的另一通道N将该第二脉冲信号传送至双通道示波器之后记录接收该第二脉冲信号的第二时刻;步骤S214:计算第二时刻与第一时刻之间的差值,令该差值为该节点的响应时间。即,双通道示波器前后两次显示脉冲信号之间的时间间隔即为Linux系统的响应时间。(4)网络带宽:Linux系统中,可以通过查看/proc/net/dev文件得到每个接口的网路吞吐量,但是查看该文件无法获取实时网络带宽。实时网络带宽可以通过基于ncurses库的bmon程序实现。(5)存活请求连接数:Linux系统中,存活请求连接数可以通过netstat命令获取。步骤S22:根据每个节点的性能参数获取该节点的综合负载冗余值,其中该节点的综合负载冗余值为该节点的性能参数的加权和。节点的性能参数包括上述步骤S21中的五个参数值时,可以采用如下方法计算节点的综合负载冗余值:假设集群内共有n个节点,令Ci为第i个节点的CPU利用率的剩余量、Mi为第i个节点的内存利用率的剩余量、Bi为第i个节点的网络带宽剩余量、Ri为第i个节点的响应时间的倒数、Si为第i个节点的存活请求连接数的倒数、Wi为第i个节点的性能参数的权数、k1为CPU常量系数、k2为内存常量系数、k3为网络带宽常量系数、k4为响应时间常量系数、k5为存活请求连接数常量系数(即k1、k2、k3、k4、k5分别为第i个节点对应于某个应用程序的CPU利用率的权数、内存利用率的权数、网络带宽的权数、响应时间的权数、存活连接请求数的权数),其中用户可以根据使用经验或者实际需求设置上述五个参数值的权数k1、k2、k3、k4、k5。其中k1、k2、k3、k4、k5均大于零,且k1+k2+k3+k4+k5=1。此时当前集群中第i个节点的综合负载冗余值Li的计算公式如下所示:Li=Wi(k1×Ci+k2×Mi+k3×Bi+k4×Ri+k5×Si),其中1≤i≤n步骤S23:判断节点的综合负载冗余值是否大于其综合负载冗余阈值,如果是执行步骤S24,如果否返回执行步骤S21。本发明实施例中节点的综合负载冗余阈值代表该节点的最小剩余空间量,为保证集群中的所有节点负载均衡、避免集群内的某个节点过度负载,用于可以根据实际需要为节点设置综合负载冗余阈值。节点的综合负载冗余值小于等于该节点的综合负载冗余阈值时该节点无法再接收与应用程序对应的连接请求,只有当其综合负载冗余值大于其综合负载冗余阈值时该节点才能接收与应用程序对应的连接请求。如果节点的综合负载冗余值小于等于其综合负载冗余阈值,则需要返回步骤S21重新查找集群内满足条件的节点、执行负载均衡操作。步骤S24:判断节点的所有参数值的冗余值是否大于其对应的冗余阈值,如果是执行步骤S25,如果否返回执行步骤S21。为保证集群内的节点能够有效运行,可以针对节点的性能参数中的每个参数值设置一个冗余阈值,当所有参数值的冗余值大于其对应的冗余阈值时,该节点可以继续接收连接请求,当有一个参数值的冗余值不大于其对应的冗余阈值时该节点不再继续接收连接请求,以避免集群中某个节点负载过重。这些参数值的冗余阈值可以由用户根据使用经验或者实际需求设定。步骤S25:将连接请求分配至综合负载冗余值大于其综合负载冗余阈值、且所有参数值的冗余值大于其对应的冗余阈值的节点。进一步确定节点的性能参数的所有参数值的冗余值都大于其对应的冗余阈值之后,才将连接请求分配至该节点,能够有效避免在节点的单一资源(如内存利用率、CPU利用率等)缺乏的情况下继续向该节点分配连接请求,避免集群内节点负载过重,有效提高计算机集群的整体处理性能。如果节点的性能参数中某个参数值的冗余值小于或者等于其对应的冗余阈值,则需要返回步骤S21重新查找集群内满足条件的节点、执行负载均衡操作。本发明实施例二首先找出综合负载冗余值大于其综合负载冗余阈值、且性能参数的参数值的冗余值大于其对应的冗余阈值的节点,之后才将接收到的与应用程序对应的连接请求分配至满足上述条件的节点。能够有效避免在节点的单一资源(如内存利用率、CPU利用率等)缺乏的情况下继续向该节点分配连接请求,避免集群内节点负载过重,从而有效提高计算机集群的整体处理性能。上述实施例一和实施例二采用动态反馈机制获取节点的性能参数,从而有效提高计算机集群的整体处理性能。但是,由于动态反馈机制获取节点的性能参数的周期缩短,调度器和节点之间的通信开销负担增大,可能影响计算机集群服务的质量。为此,本发明还提供一种动态反馈机制与静态轮转法相结合的方案,以节约调度器与节点之间的通信开销。实施例三中将对该方案进行详细阐述。实施例三本发明实施例三提供一种集群负载均衡的方法,与实施例二有所不同的是,本实施例中采用静态轮转法分配节点,以下对该部分内容作详细描述。图3示出了该方法的流程图,该方法包括以下步骤:鉴于步骤S31~步骤S34与上述实施例二中的步骤S21~步骤S24相同,在此不再赘述,具体内容请参见实施例二中的步骤S21~步骤S24。步骤S35:根据每个节点的综合负载冗余值及集群的总综合负载冗余值获取每个节点的综合负载冗余率。具体可以采用如下步骤A和B获取节点的综合负载冗余率:A:获取集群的总综合负载冗余值L(即集群内所有节点的总综合负载冗余值);设集群内共有n个节点,集群中所有节点的总综合负载容余值为:L=∑Li(1≤i≤n)其中,L为集群内所有节点的总综合负载容余值,总综合负载冗余值表示集群中的所有节点当前的总剩余处理能力。B:获取集群内节点的综合负载冗余率;第i个节点的综合负载冗余率Ri为:Ri=Li/L(1≤i≤n)其中,与不同的应用程序对应的连接请求占用的节点的性能参数的参数值的比例不同,所以k1、k2、k3、k4、k5根据连接请求对应的应用程序不同而不同。设定综合负载冗余率不小于第一预定冗余率的节点属于第一低负载组,综合负载冗余率小于第一预定冗余率且不小于第二预定冗余率的节点属于第一中负载组,其中节点的综合负载冗余率为该节点的综合负载冗余值与集群的总综合负载冗余值之间的比值,其中第一预定冗余率大于第二预定冗余率。在一个具体示例中,第一预定冗余率可以为70%、第二预定冗余率可以为30%;当然第一预定冗余率和第二预定冗余率还可以为其他数值,在此不再一一列举。步骤S36:根据轮转法将与应用程序对应的连接请求分配至属于第一中负载组的节点。第一中负载组的节点的综合负载冗余率介于第一预定冗余率和第二预定冗余率之间,属于第一中负载组的节点的剩余空间量较大,将与应用程序对应的连接请求分配至该组中的节点不会造成节点的负载过重,能够保证节点的有效运行。优选地,步骤S36还可以采用如下方式执行:根据轮转法将所述连接请求分配至属于第一低负载组的节点。第一低负载组中的节点的综合负载冗余率大于第一预定冗余率,这些节点的剩余空间量非常大,将与应用程序对应的连接请求分配至该组中的节点能够既不会造成节点的负载过重还有利用实现负载均衡。需要说明的是,本实施例中的步骤S35~S36还可以采用如下方式执行:设定综合负载冗余剩余量不小于第一预定剩余量的节点属于第二低负载组,综合负载冗余剩余量小于第一预定剩余量且不小于第二预定量的节点属于第二中负载组,其中节点的综合负载冗余剩余量为该节点的综合负载冗余值超出其综合负载冗余阈值的量,其中第一预定剩余量大于第二预定剩余量。该处的第一预定剩余量和第二预定剩余量可以是用户根据实际需求或者使用经验设定的值,例如在一个示例中,第一预定剩余量可以为200M、第二预定剩余量可以为100M,当然第一预定剩余量和第二剩余预定量还可以为其他值,在此不再一一列举。根据轮转法将与应用程序对应的连接请求分配至属于第二中负载组的节点,或者,根据轮转法将与应用程序对应的连接请求分配至属于第二低负载组的节点。上述实施例三主要介绍了实施例二中的方案与静态轮转法相结合的方案,实际上,本发明实施例一中的方案也可以与上述提到的静态轮转法相结合得到新的技术方案,在此不再详细描述。此外,本发明实施例还提供一种集群负载均衡系统,图4示出了该系统的结构示意图,该系统包括以下结构:第一获取单元401,用于每隔固定时间获取所述集群内每个节点的性能参数;第二获取单元402,用于根据第一获取单元401获取的所述性能参数获取该节点的综合负载冗余值,其中所述节点的综合负载冗余值为该节点的性能参数的加权和,所述性能参数对应的权数跟与其对应的应用程序有关;分配单元403,用于在接收到所述应用程序对应的连接请求后,将所述连接请求分配至所述综合负载冗余值大于其综合负载冗余阈值的节点,所述综合负载冗余阈值为所述节点的最小剩余空间量。本发明实施例提供的集群负载均衡的系统,采用动态反馈机制每隔固定时间获取集群内每个节点的性能参数、并根据性能参数以及性能参数对应的权数获得每个节点的综合负载冗余值,最后依照获得的每个节点的综合负载冗余值以及综合负载冗余阈值对接收到的与应用程序对应的连接请求进行分配。鉴于获取节点的性能参数能够及时准确地反映该节点的当前处理能力,所以这种集群负载均衡的方法能够根据集群内节点的当前处理能力合理分配接收到的与应用程序对应的连接请求,避免计算机集群内某些节点负载过重而某些节点处于空闲状态,进而提高整体计算机集群的处理性能。优选地,分配单元403包括:第一选取单元,用于选取所述综合负载冗余值大于其综合负载冗余阈值的节点;第一获取子单元,用于根据所述综合负载冗余值大于其综合负载冗余阈值的节点的综合负载冗余值及所述集群的总综合负载冗余值获取这些节点中单个节点的综合负载冗余率,其中所述集群的总综合负载冗余值为所述集群内所有节点的综合负载冗余值的和;设定所述综合负载冗余率不小于第一预定冗余率的节点属于第一低负载组,所述综合负载冗余率小于所述第一预定冗余率且不小于第二预定冗余率的节点属于第一中负载组,其中所述节点的综合负载冗余率为该节点的所述综合负载冗余值与所述集群的总综合负载冗余值之间的比值;第一分配子单元,用于根据轮转法将所述连接请求分配至属于所述第一中负载组的节点;第二分配子单元,用于根据轮转法将所述连接请求分配至属于所述第一低负载组的节点。优选地,分配单元403包括:第二选取单元,用于选取所述综合负载冗余值大于其综合负载冗余阈值的节点;设定综合负载冗余剩余量不小于第一预定剩余量的节点属于第二低负载组,所述综合负载冗余剩余量小于第一预定剩余量且不小于第二预定剩余量的节点属于第二中负载组,其中节点的综合负载冗余剩余量为该节点的所述综合负载冗余值超出其综合负载冗余阈值的量;第三分配子单元,用于根据轮转法将所述连接请求分配至属于所述第二中负载组的节点;第四分配子单元,用于根据轮转法将所述连接请求分配至属于所述第二低负载组的节点。优选地,分配单元403具体用于:采用轮转法将所述连接请求分配至所述综合负载冗余值大于其综合负载冗余阈值的节点。优选地,所述每个节点的性能参数包括两个以上参数值,所述系统还包括:确定单元,用于确定所述节点的每个所述参数值的冗余值大于所述参数值的冗余阈值。优选地,所述节点的性能参数包括响应时间,所述系统还包括:获取子单元,用于获取该节点的响应时间;双通道示波器的两个通道与该节点的并口相连、且信号发生器连接在双通道示波器的一个通道上;所述获取子单元包括:第一记录单元,用于记录所述双通道示波器接收第一脉冲信号的第一时刻,所述第一脉冲信号由所述信号发生器产生并通过所述双通道示波器的一个通道传送至所述双通道示波器和所述节点的并口;第二记录单元,用于记录所述双通道示波器接收第二脉冲信号的第二时刻,所述第二脉冲信号由所述节点的并口接收并通过所述双通道示波器的另一通道传送至所述双通道示波器,其中所述第二脉冲信号与所述第一脉冲信号相同;计算单元,用于计算所述第二时刻与所述第一时刻之间的差值,令所述差值为所述节点的响应时间。根据本发明实施例提供的集群负载均衡的方法及其系统,采用动态反馈机制每隔固定时间获取集群内每个节点的性能参数、并根据性能参数以及性能参数对应的权数获得每个节点的综合负载冗余值,最后依照获得的每个节点的综合负载冗余值以及综合负载冗余阈值对接收到的与应用程序对应的连接请求进行分配。鉴于获取节点的性能参数能够及时准确地反映该节点的当前处理能力,所以这种集群负载均衡的方法能够根据集群内节点的当前处理能力合理分配接收到的与应用程序对应的连接请求,避免计算机集群内某些节点负载过重而某些节点处于空闲状态,进而提高整体计算机集群的处理性能。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1