一种基于负载率分级触发的分布式负载调度方法

xiaoxiao2021-2-23  115

一种基于负载率分级触发的分布式负载调度方法
【技术领域】
[0001] 本发明设及网络流量控制及负载均衡领域,具体设及一种基于负载率分级触发的 分布式负载调度方法。
【背景技术】
[0002] 近年来,由于信息技术的发展、网络的日益普及,爆炸的互联网和万维网已经明显 的为用户增加了大量的在线信息和可能的服务。受欢迎网站的流量已经远远超出了单个 Web服务器所能够承受的能力。日益增长的信息和服务依赖于一个能够抵抗戏剧性压力的 互联网基础结构,一个能提供大量Web请求的Web服务器系统。因此,考虑到系统的可扩展性 和成本效益,出现了分布式设计的Web服务器系统(Web集群)来代替一台像大型机运样具有 高性能的Web服务器,运些最受欢迎的网站采用分布式/并行架构W减轻单一服务器的负 载。分布式计算系统所提供高性能环境能够提供巨大的处理能力。分布式系统通过有效的 任务划分实现各节点服务器系统之间的任务平衡,使各计算机系统资源能够得到有效地利 用。
[0003] 目前数百台电脑连接起来构建成一个分布式计算系统。分布式计算系统为了获得 最大的效率,系统的整个工作负载必须分配到网络上的各个节点。因此,由于多处理器计算 机系统的分布式存储使得负载均衡问题成为研究的热点。负载分配到各处理器节点被简单 地称为负载均衡问题。在一个多节点系统里,存在一些节点闲置而其它节点处于过载的高 可能性。负载均衡算法的目标就是维护每个处理器节点的负载,使得所有的处理器节点既 不过载也不空闲。现有技术普遍存在的缺陷是:负载均衡器调度表中,不能及时更新服务器 真实的负载情况。此外类似于基于最小连接数调度策略不能有效衡量服务器的负载。运就 意味着每个处理器节点在理想的情况下,在任何时刻具有相等的负载,做到系统在执行时 获得最大的性能(最小的执行时间)。所W合理的设计一个负载均衡算法可W显著提高系统 的性能。

【发明内容】

[0004] 有鉴于此,本发明提供的一种基于负载率分级触发的分布式负载调度方法,该方 法有效减少网络通信量,降低负载均衡器的负担,于此同时负载均衡器调度表可W相对准 确的反映服务器的真实负载;不仅可W保证剩余计算资源最多的服务器被作为选择对象, 同时可W使CPUW及内存利用率保持相对平衡,避免单一资源过度消耗。
[0005] 本发明的目的是通过W下技术方案实现的:
[0006] -种基于负载率分级触发的分布式负载调度方法,所述方法包括如下步骤:
[0007] 步骤1.筛选出能够将任务消耗量化的服务器;
[000引步骤2.将所述服务器的负载率在0-100%之间等分为若干区间;
[0009] 步骤3.服务器节点实时且持续监测所述服务器的负载率;
[0010] 若所述服务器节点监测到所述服务器的负载率所在的区间发生变化,则进入步骤 4;
[0011] 否则,则继续监测;
[0012] 步骤4.所述服务器节点向负载均衡器发送所述服务器的负载率状态变化;
[0013] 步骤5.所述负载均衡器更新负载率情况表;并对分布式负载进行调度。
[0014] 优选的,所述步骤1包括:
[0015] 1-1.获取目标任务所需要消耗的计算资源;
[0016] 1-2.筛选满足所述目标任务且剩余资源最多的服务器集合;
[0017] 1-3.针对所述服务器集合,求得消耗各项所述目标任务的计算资源最均衡的目标 服务器;
[0018] 1-4.负载均衡器将所述目标任务分发给为第二步所述目标服务器。
[0019] 优选的,所述步骤1-1包括:
[0020] 获取目标任务化sk非片需要消耗的计算资源;所计算资源包括计算量化和消耗内存 民j。
[0021 ]优选的,所述步骤1-2包括:
[0022] a.计算满足所述目标任务的最大富余的所述计算资源的服务器剩余资源率化:
[0023]
(1)
[0024] 式(1)中,CiWi为服务器序列号为i的CPU剩余性能,RiYi为服务器编号为i的剩余内 存资源;CiWi/Q功i服务器CPU计算资源处理Task維任能力,RiYi/R功i服务器内存处理 Taskj胜任能力;
[0025] b.根据服务器剩余资源率化值的大小,将待选的所述服务器的按服务器剩余资源 率化从高到低排序,筛选出剩余资源最多的服务器集合。
[00%]优选的,所述步骤1-3包括:
[0027] C.针对所述服务器集合,求得消耗各项所述目标任务的最均衡的计算资源:
[002引
(2)
[0029] 式(2)中,出为计算参数且
[0030] d.筛选出消耗各项所述目标任务的最均衡的计算资源对应的所述服务器。
[0031] 优选的,所述步骤5包括:
[0032] 5-1.所述负载均衡器根据接收到的所述服务器的负载率状态变化;
[0033] 5-2.所述负载均衡器在负载率情况表中将所述服务器的负载率区间更改为修订 值;所述修订值为所述服务器的负载率当前所在区间的中间值;
[0034] 5-3.根据负载率情况表中在的所述修订值对分布式负载进行调度。
[0035] 从上述的技术方案可W看出,本发明提供了一种基于负载率分级触发的分布式负 载调度方法,包括筛选出能够将任务消耗量化的服务器;将服务器的负载率在0-100 %之间 等分为若干区间;服务器节点实时且持续监测服务器的负载率;服务器节点向负载均衡器 发送服务器的负载率状态变化;负载均衡器更新负载率情况表;并对分布式负载进行调度。 本发明提出的方法有效减少网络通信量,降低负载均衡器的负担,于此同时负载均衡器调 度表可W相对准确的反映服务器的真实负载;不仅可W保证剩余计算资源最多的服务器被 作为选择对象,同时可W使CPUW及内存利用率保持相对平衡,避免单一资源过度消耗。
[0036] 与最接近的现有技术比,本发明提供的技术方案具有W下优异效果:
[0037] 1、本发明所提供的技术方案中,通过筛选出能够将任务消耗量化的服务器;将服 务器的负载率在0-100%之间等分为若干区间;服务器节点实时且持续监测服务器的负载 率;服务器节点向负载均衡器发送服务器的负载率状态变化;负载均衡器更新负载率情况 表;并对分布式负载进行调度;有效减少网络通信量,降低负载均衡器的负担,于此同时负 载均衡器调度表可W相对准确的反映服务器的真实负载;不仅可W保证剩余计算资源最多 的服务器被作为选择对象,同时可W使CPUW及内存利用率保持相对平衡,避免单一资源过 度消耗。
[0038] 2、本发明提供的技术方案,应用广泛,具有显著的社会效益和经济效益。
【附图说明】
[0039] 图1是现有技术的任务分配队列的静态负载均衡原理图;
[0040] 图2是现有技术的LVS集群系统体系结构图;
[0041] 图3是本发明的一种基于负载率分级触发的分布式负载调度方法的流程图;
[0042] 图4是本发明分布式负载调度方法中步骤1的流程示意图;
[0043] 图5是本发明分布式负载调度方法中步骤5的流程示意图;
[0044] 图6是本发明的具体应用例的服务器节点发送负载情况的模式图;
[0045] 图7是本发明的具体应用例的负载均衡器的模型图。
【具体实施方式】
[0046] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发 明一部分实施例,而不是全部的实施例。基于 本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实 施例,都属于本发明保护的范围。
[0047] 现有技术包括静态负载均衡模型及LVS动态负载均衡模型:
[004引一、静态负载均衡模型:
[0049] 在静态算法中,根据每个节点服务器的性能,在程序编译时将进程分配给处理器。 一旦进程被分配了,程序运行时就不可能改变或重新分配。在静态负载均衡算法中,每个节 点的任务数是固定的。静态算法不能收集各节点的任何信息。对于每个节点进程来说,分配 任务的完成受如下基本因素影响:任务到来时间、任务资源的大小、平均的执行时间和内部 的通信处理。既然运些因素应该在任务分配前被测量,那么静态负载均衡也被称为概率性 算法。运是因为在程序运行过程中没有任务迁移,没有开销发生或少量的开销发生。对于静 态负载均衡,当任务数多于处理器数量时,负载均衡性能更好。
[0050] 图1显示了局部任务到达任务分配队列的静态负载均衡原理图。一个任务从任务 分配队列要么被分配到远程的服务器节点,要么被分配到阀值队列里。一个任务也能够从 远程节点分配到阀值队列。一旦一个任务被分配到阀值队列,它就不能被迁移到其它的节 点。一个任务到达任何一个节点,要么被运个节点给处理,要么通过网络通信被转移到其他 节点进行远程处理。静态负载均衡算法能够划分为两个子类,最优静态负载均衡和次优静 态负载均衡。
[0051]静态负载均衡存在的问题:在一个广泛的实时应用程序运行时产生负载,或者程 序运行时发生了戏剧性的负载变化,甚至一些预先未知的运行行为。在运样的应用环境下, 静态负载均衡方法就会效率低下。对于向淘宝、京东运些流量访问大,随机性访问强的网 站,采用静态负载均衡模型显然不合适。
[0化2]二、LVS动态负载均衡模型:
[0053] LVS是由国防科技大学的章文嵩博±发起,并经过多年的发展,现在已经成熟应用 于构建高性能、可扩展的负载均衡系统。采用LVS搭建负载均衡集群时,需要有一个虚拟的 IP作为整个系统对外提供服务的请求地址。运个虚拟IP-般配置在负载均衡器上,用于建 立客户端请求与服务器端的相应连接。当客户端向集群系统发起任务请求时,任务请求数 据包先到达集群系统的负载均衡器,在负载均衡器上根据管理人员配置的负载均衡调度算 法进行请求任务的调度分配,再进一步将请求任务分配到具体的后端服务器上进行处理。 整个过程对用户来说是透明的,用户不用关屯、集群系统内是怎么实现的,只需要关屯、系统 响应给用户的信息是否准确及时。
[0054] 图2为LVS集群系统的体系结构图。LVS集群由Ξ部分构成,分别是负载均衡器、月良 务器池和共享存储。
[0055] 负载均衡器:它实际是集群对外的一个前端机。作用是把用户发来的请求,发送到 服务器上执行。让用户认为始终是一个IP地址为其提供的服务。
[0化6] 服务器池:它可W执行不同类型的请求,例如Web、Mail、DNS、F化等类型的请求。月良 务器池是真正执行请求的服务器。
[0057]共享存储:它可W提供与服务器池相同的服务。其工作原理是开辟一个共享存储 区提供给服务器池使用,从而共享存储区会获得与服务器池相同的内容。
[005引用户发送请求到虚拟服务器,接到请求后,负载均衡器根据事先设定好的算法将 此
[0059] 请求发送到真实服务器,真实服务器将请求处理好后,直接返回用户或者通过负 载均衡器发送给用户。
[0060] Linux内核的IPVS模块内嵌入了十种负载均衡调度算法,包括轮询调度、加权轮询 调度、目的地址散列调度、源地址散列调度、最小连接调度、加权最小连接调度、基于局部性 的最小连接数调度、带复制的基于局部性的最小连接数调度、最短预期延迟调度算法、不排 队调度算法。它们普遍存在的缺陷是:负载均衡器调度表中,不能及时更新服务器真实的负 载情况。此外类似于基于最小连接数调度策略不能有效衡量服务器的负载。
[0061] 如图3所示,本发明提供一种基于负载率分级触发的分布式负载调度方法,包括如 下步骤:
[0062] 步骤1.筛选出能够将任务消耗量化的服务器;
[0063] 步骤2.将服务器的负载率在0-100%之间等分为若干区间;
[0064] 步骤3.服务器节点实时且持续监测服务器的负载率;
[0065] 若服务器节点监测到服务器的负载率所在的区间发生变化,则进入步骤4;
[0066] 否则,则继续监测;
[0067] 步骤4.服务器节点向负载均衡器发送服务器的负载率状态变化;
[0068] 步骤5.负载均衡器更新负载率情况表;并对分布式负载进行调度。
[0069] 如图4所示,步骤1包括:
[0070] 1-1.获取目标任务所需要消耗的计算资源;
[0071] 1-2.筛选满足目标任务且剩余资源最多的服务器集合;
[0072] 1-3.针对服务器集合,求得消耗各项目标任务的计算资源最均衡的目标服务器;
[0073] 1-4.负载均衡器将目标任务分发给为第二步目标服务器。
[0074] 其中,步骤1-1包括:
[0075] 获取目标任务化sk非片需要消耗的计算资源;所计算资源包括计算量化和消耗内存 民j。
[0076] 其中,步骤1-2包括:
[0077] a.计算满足目标任务的最大富余的计算资源的服务器剩余资源率化:
[007引
(1)
[0079] 式(1)中,CiWi为服务器序列号为i的CPU剩余性能,RiYi为服务器编号为i的剩余内 存资源;CiWi/Q功i服务器CPU计算资源处理Task維任能力,RiYi/R功i服务器内存处理 Taskj胜任能力;
[0080] b.根据服务器剩余资源率化值的大小,将待选的服务器的按服务器剩余资源率化 从高到低排序,筛选出剩余资源最多的服务器集合。
[0081] 其中,步骤1-3包括:
[0082] C.针对服务器集合,求得消耗各项目标任务的最均衡的计算资源:
[0083]
(2)
[0084] 式(2)中,出为计算参数丑
[0085] d.筛选出消耗各项目标任务的最均衡的计算资源对应的服务器。
[0086] 如图5所示,步骤5包括:
[0087] 5-1.负载均衡器根据接收到的服务器的负载率状态变化;
[0088] 5-2.负载均衡器在负载率情况表中将服务器的负载率区间更改为修订值;修订值 为服务器的负载率当前所在区间的中间值;
[0089] 5-3.根据负载率情况表中在的修订值对分布式负载进行调度。
[0090] 本发明提供一种基于负载率分级触发的分布式负载调度方法的具体应用例,具体 如下:
[0091] (1)把服务器的负载率情况按照0-100%分成若干区间;
[0092] (2)服务器节点一直在检测服务器的负载率;
[0093] (3)若在某时刻其负载率处于某一区间,当监测到负载率突破某一区间,即向负载 均衡器发送该服务器的负载情况;
[0094] (4)负载均衡器中负载率情况表相应服务器的负载率为该区间的中间值;
[00%]图6为服务器节点发送负载情况的模式图。首先,我们可W把服务器负载率分为多 个区间,下面举例为10个区间,表一为某一服务器负载区间表。
[0096] 表一负载区间表
[0097]
[00 9引例如:某一服务器的CPU负载率在某时刻为30 %-40 %之间,若检测到负载率突破 到40%-50%之间,则服务器向负载均衡器发送负载变化。负载均衡器中负载情况表中该服 务器的CPU负载率改写为45%,概括说每次负载率或内存利用率突破每一个区间,就会向负 载均衡器发送负载变化。且发送的报文不需要具体的数值,只需要发送负载所在的区间,且 负载均衡器中某服务器负载情况表负载率为该区间的中间值。运样做的优势就是:可W有 效的减小通信开销W及负载均衡器的负担,且可W相对准确的反映服务器的负载情况。下 面对负载率取负载区间的中间值进行说明。服务器在某一段时间内的负载率X满足区间[a, b]均匀分布,设连续型随机变量X的分布函数为F(X)=常,侧均匀分布的均值
.所W在负载率X取负载率区间的中间值其偏差最小。
[0099] 其中,一种任务消耗量化的服务器选择策略:
[0100] 为了克服不能真实衡量服务器的负载的问题,本篇从考虑服务器节点的处理能力 方面,我们利用计算机系统性能的一些基本参数来作为考核服务器性能的指标。利用各性 能指标参数的利用情况来作为服务器节点负载值的参数,负载均衡器利用运些性能参数来 W及任务所需消耗动态计算服务器的适用值,调度器根适用值进行任务分配,均衡后端各 服务器的执行任务。
[0101] -般情况下,任务有好多种类型,有消耗CPU的进程,有消耗内存的进程。有些程序 消耗CPU较大,但是内存消耗小,有些消耗内存,但是CPU消耗小。因而,把任务CPU消耗W及 内存消耗量化,有助于负载均衡器合理分配任务。本方案基于W上情况设计了一种合理的 负载均衡调度算方案,该方案能够动态的考虑后端各服务器节点的实时处理能力和实时的 负载情况,负载均衡器利用运个方案来分配客户端向负载均衡集群系统请求任务。
[0102] 图7是一种任务细化的的负载均衡模型。
[0103] 该模型中会把每一个任务分为的消耗量在客户端进行估算,并发送给负载均衡 器。负载均衡器首先会根据负载调度表中服务器的负载率,进行相关计算筛选出剩余资源 最大的服务器集合,然后再通过相关算法计算出CPU负载和内存负载均衡服务器集合,选出 目标服务器。表二为到达负载均衡器中的任务列表,表Ξ为负载均衡器中服务器负载情况 表。
[0104] 表二负载均衡器中的任务列表
[0105]
[0109] 表二说明:任务所需内存W及计算量分别用Rj和Qj表示。表Ξ说明:其中CPU的性 能为Ci、W及内存大小为Ri已经归一化处理。CPU负载率、内存利用率分别用Wi和Yi表示。
[0110] 某一任务化Sk j筛选目标服务器过程:设一个任务所需内存为Rj,所需的计算量 为Oj。
[0111] 第一步:计算
<'=1,2,~,",按照1]1的大小,列出前20个服务器的序 号。该方案用每个服务器剩余计算资源除W任务所需的的计算资源,其中CiWi为服务器编号 为i的CPU剩余性能,RiYi为服务器编号为i的剩余内存资源。通过该公式可W筛选出剩余资 源最多的服务器集合,但是该方案有缺陷:当CPU计算资源多,而内存资源少的服务器也有 可能被选入作为目标服务器。因而需要进一步筛选。
[0112] 第二步:则令
计算+^,i为第一步中所求出的服务器序 列},所得的i即为该服务器的序列。第二步筛选目标为第一步的服务器集合,其CiWi/Qj为i 服务器CPU计算资源处理化skj生任能力,RiYi/Rj为i服务器内存处理化sk非生任能力。计算 ~为第一步中所求出的服务器序列},可W求出CPU和内存均衡的消耗的服务 器。
[0113] 第Ξ步:负载均衡器则将化sk j分发给为第二步所求得序号的服务器。
[0114] W上实施例仅用W说明本发明的技术方案而非对其限制,尽管参照上述实施例对 本发明进行了详细的说明,所属领域的普通技术人员依然可W对本发明的【具体实施方式】进 行修改或者等同替换,而运些未脱离本发明精神和范围的任何修改或者等同替换,其均在 申请待批的本发明的权利要求保护范围之内。
【主权项】
1. 一种基于负载率分级触发的分布式负载调度方法,其特征在于,所述方法包括如下 步骤: 步骤1.筛选出能够将任务消耗量化的服务器; 步骤2.将所述服务器的负载率在0-100 %之间等分为若干区间; 步骤3.服务器节点实时且持续监测所述服务器的负载率; 若所述服务器节点监测到所述服务器的负载率所在的区间发生变化,则进入步骤4; 否则,则继续监测; 步骤4.所述服务器节点向负载均衡器发送所述服务器的负载率状态变化; 步骤5.所述负载均衡器更新负载率情况表;并对分布式负载进行调度。2. 如权利要求1所述的方法,其特征在于,所述步骤1包括: 1-1.获取目标任务所需要消耗的计算资源; 1-2.筛选满足所述目标任务且剩余资源最多的服务器集合; 1-3.针对所述服务器集合,求得消耗各项所述目标任务的计算资源最均衡的目标服务 器; 1-4.负载均衡器将所述目标任务分发给为第二步所述目标服务器。3. 如权利要求2所述的方法,其特征在于,所述步骤1-1包括: 获取目标任务Taskj所需要消耗的计算资源;所计算资源包括计算量仏和消耗内存Rj。4. 如权利要求3所述的方法,其特征在于,所述步骤1-2包括: a. 计算满足所述目标任务的最大富余的所述计算资源的服务器剩余资源率U1:式(1)中,C1W1为服务器序列号为i的CPU剩余性能,R1Y 1为服务器编号为i的剩余内存资 源;CiWi/Qj为i服务器CPU计算资源处理Taskj胜任能力,RiYi/Rj为i服务器内存处理Task j胜 任能力; b. 根据服务器剩余资源率仏值的大小,将待选的所述服务器的按服务器剩余资源率U1 从高到低排序,筛选出剩余资源最多的服务器集合。5. 如权利要求4所述的方法,其特征在于,所述步骤1-3包括: c. 针对所述服务器集合,求得消耗各项所述目标任务的最均衡的计算资源:式(2)中,Hi为计算参数且d. 筛选出消耗各项所述目标任务的最均衡的计算资源对应的所述服务器。6. 如权利要求1所述的方法,其特征在于,所述步骤5包括: 5-1.所述负载均衡器根据接收到的所述服务器的负载率状态变化; 5-2.所述负载均衡器在负载率情况表中将所述服务器的负载率区间更改为修订值;所 述修订值为所述服务器的负载率当前所在区间的中间值; 5-3.根据负载率情况表中在的所述修订值对分布式负载进行调度。
【专利摘要】本发明提供一种基于负载率分级触发的分布式负载调度方法,包括筛选出能够将任务消耗量化的服务器;将服务器的负载率在0-100%之间等分为若干区间;服务器节点实时且持续监测服务器的负载率;服务器节点向负载均衡器发送服务器的负载率状态变化;负载均衡器更新负载率情况表;并对分布式负载进行调度。本发明提出的方法有效减少网络通信量,降低负载均衡器的负担,于此同时负载均衡器调度表可以相对准确的反映服务器的真实负载;不仅可以保证剩余计算资源最多的服务器被作为选择对象,同时可以使CPU以及内存利用率保持相对平衡,避免单一资源过度消耗。
【IPC分类】H04L29/08
【公开号】CN105491138
【申请号】CN201510930997
【发明人】张涛, 华晔, 戴造建, 费稼轩, 时坚, 黄秀丽, 陈牧, 李勇
【申请人】国网智能电网研究院, 国网天津市电力公司, 江苏省电力公司信息通信分公司, 国网浙江省电力公司, 国家电网公司
【公开日】2016年4月13日
【申请日】2015年12月15日

最新回复(0)