CN107295048A - 负载均衡方法及装置 - Google Patents
负载均衡方法及装置 Download PDFInfo
- Publication number
- CN107295048A CN107295048A CN201610203524.XA CN201610203524A CN107295048A CN 107295048 A CN107295048 A CN 107295048A CN 201610203524 A CN201610203524 A CN 201610203524A CN 107295048 A CN107295048 A CN 107295048A
- Authority
- CN
- China
- Prior art keywords
- server
- weights
- real
- time processing
- processing pressure
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种负载均衡方法及装置,其中,方法包括:循环执行下述步骤,直到确定整体处理吞吐量满足预设均衡条件;根据各个服务器的当前处理权值,确定向各个服务器分发的当前负载流量;将所确定的当前负载流量分发给各个服务器;采集各个服务器的当前实时处理压力参数;根据所采集到的各个服务器的当前实时处理压力参数,确定整体处理吞吐量是否满足预设均衡条件;在确定出整体处理吞吐量未满足预设均衡条件时,调整各个服务器的处理权值,并将调整后的各个服务器的处理权值,作为下一循环的当前处理权值。本发明实施例技术方案解决了在目前的网络或机器环境下,不能将整体的后端处理集群发挥至最佳状态,甚至导致部分机器负载过高的问题。
Description
技术领域
本发明涉及云计算技术,尤其涉及一种负载均衡方法及装置。
背景技术
负载均衡问题在分布式服务中一直是一项热门的关注点,目前常见的负载均衡算法有随机与轮询算法。目前百度云日流量已在百亿级,并且不断在增长。百度云的流量在经过域名解析之后会通过一级反向代理进入百度云的自有接入层(二级反向代理),通过百度云接入层的流量根据请求分布代理到后端的相应处理集群。
在请求处理过程中涉及到的机器、集群、机房较多,后端服务可能存在着各种混布,服务之间会相互影响;同时存在机器性能不一,机房网络情况差异等问题,导致后端处理层各机器负载不均衡以及同一接口处理延时差异较大等情况,如果负载均衡策略采用简单的随机或轮询,在目前百度云的网络或机器环境下,并不能将整体的后端处理集群发挥至最佳状态,甚至容易导致部分机器负载过高。
发明内容
有鉴于此,本发明实施例提供一种负载均衡方法及装置,以解决现有技术中的在目前的网络或机器环境下,不能将整体的后端处理集群发挥至最佳状态,甚至容易导致部分机器负载过高的问题。
第一方面,本发明实施例提供了一种负载均衡方法,包括:
循环执行下述步骤,直到确定整体处理吞吐量满足预设均衡条件;
根据各个服务器的当前处理权值,确定向所述各个服务器分发的当前负载流量;
将所确定的当前负载流量分发给所述各个服务器;
采集所述各个服务器的当前实时处理压力参数;
根据所采集到的各个服务器的当前实时处理压力参数,确定整体处理吞吐量是否满足预设均衡条件;
在确定出整体处理吞吐量未满足预设均衡条件时,调整所述各个服务器的处理权值,并将调整后的各个服务器的处理权值,作为下一循环的当前处理权值。
第二方面,本发明实施例提供了一种负载均衡装置,包括:
循环执行模块,用于循环触发执行下述各模块,直到确定整体处理吞吐量满足预设均衡条件;
流量计算模块,用于根据各个服务器的当前处理权值,确定向所述各个服务器分发的当前负载流量;
流量发送模块,用于将所确定的当前负载流量分发给所述各个服务器;
压力参数采集模块,用于采集所述各个服务器的当前实时处理压力参数;
均衡判断模块,用于根据所采集到的各个服务器的当前实时处理压力参数,确定整体处理吞吐量是否满足预设均衡条件;
权值调整模块,用于在确定出整体处理吞吐量未满足预设均衡条件时,调整所述各个服务器的处理权值,并将调整后的各个服务器的处理权值,作为下一循环的当前处理权值。
本发明实施例提供的负载均衡方法及装置,通过对网络后端处理集群的负载均衡策略进行优化,实时地对后端的处理器的处理权值进行调整,并实时地按调整后的处理权值分配请求信息,将请求信息更为及时、自动地送到后端处理延时时间最短的处理器,减少将请求信息转向处理较慢的机器,直至各机器之间处理延时相对均衡。在本发明实施例所述方案的调度下,处理层的处理器被分配的请求信息虽然不是均衡的,但机器的机器压力是相对均衡的,使整个处理层的整体处理能力得到更好的提升。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明实施例一提供的一种负载均衡方法的流程图;
图2为本发明实施例一适用的一种权重轮询算法的逻辑实现示意图;
图3为本发明实施例一适用的另一种权重轮询算法的逻辑实现示意图;
图4为本发明实施例二提供的一种负载均衡方法的流程图;
图5为本发明实施例四提供的一种负载均衡装置的结构图;
图6为本发明实施例四提供的另一种负载均衡装置的结构图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。
另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
实施例一
图1为本发明实施例一提供的一种负载均衡方法的流程图。本实施例的方法可由负载均衡装置来执行,所述装置可通过软件和/或硬件的方式实现,并一般可集成于负载均衡控制器中。如图1所示,本实施例提供的负载均衡方法包括:
S110、根据各个服务器的当前处理权值,确定向所述各个服务器分发的当前负载流量。
网络的服务器有前端服务器和后端服务器。前端服务器一般与客户端等交互,负责请求信息的接收和分配。相对而言,后端服务器负责请求信息的处理。后端服务器相对的需要大量的运算内存,若其直接处理请求信息,则对请求信息的响应要求不高,所以前端服务器负责缓冲请求信息,然后向后端服务器再请求处理,后端处理完响应后再响应返回,分开处理。
例如,百度云的请求信息会先通过一级反向代理进入百度云的自有接入层(二级反向代理),这里的一级反向代理和二级反向代理的作用即为前端服务器,将请求信息分配到百度云后端服务器。
这里的反向代理也相当于本实施例中的负载均衡控制器,负载均衡控制器可以完成对后端服务器处理请求信息数的检测、处理权值的计算与设置和按照所设置的处理权值将请求信息进行分配。
在本实施例中,所述服务器具体是指后端服务器。
对于网络后端服务器的负载均衡算法常见的有随机、轮询等算法。随机算法为随机的把请求信息分配到各个可用的服务器上,通过随机数生成算法选取一个服务器,然后把请求信息发送给该服务器。此种算法不能有效、及时地处理请求信息。
轮询算法按顺序把每个新的请求信息分配给下一个服务器,最终把所有请求信息平分给所有的服务器。轮询算法在大多数情况下都工作的不错,但是如果负载均衡的设备在处理速度、连接速度和内存等方面不是完全均等,就会影响请求信息处理的速度。轮询算法的优点是其简洁性,它无需记录当前所有请求信息的状态,所以它是一种无状态调度。当请求信息服务的间隔时间变化比较大时,轮询算法容易导致服务器间的负载不平衡。所以此种均衡算法适合于服务器组中的所有服务器都有相同的软硬件配置并且平均服务请求信息相对均衡的情况。
处理权值是指加权平均数中的每个数的频数,也称为权数或权重。在本实施例中,处理权值即为服务器被分配的请求信息占整体请求信息的比例。
现有算法中,在轮询算法的基础上,根据服务器的不同处理能力,给每个服务器分配不同的处理权值,使其能够接受相应处理权值的请求信息,叫做权重轮询算法。例如,参考图2和3,图2为本发明实施例一适用的一种权重轮询算法的逻辑实现示意图,图3为本发明实施例一适用的另一种权重轮询算法的逻辑实现示意图。
图2中,有6个请求信息从客户端发出,经过路由器和负载均衡控制器发送至后端三个服务器A、B和C中。处理权值设置为1:1:1,所以当请求信息1、2和3依次被分配到三个服务器中后,剩下的三个请求信息继续依次被分配。
图3中,假设有10个请求信息从客户端发出,后端服务器还是有3个,处理权值设置为3:1:1。请求信息1、2和3分别依次被分配到三个后端服务器中,请求信息4和5再被分配到服务器A。先按3:1:1的比例,将部分请求信息分配到三个服务器中。然后将剩余请求信息按上述过程再次进行,即请求信息6、7和8分别分配予服务器A、B和C,请求信息9和10再次被分配给服务器A。所以,最终权重轮询算法基本上将请求信息按3:1:1的比例将请求信息分配给三个服务器。
由于权重轮询算法考虑到了后端不同服务器的处理能力,所以这种均衡算法能确保高性能的服务器得到更多的使用率,避免低性能的服务器负载过重。本实施例中初始化的方法可使用上述的权重轮询算法。
S120、将所确定的当前负载流量分发给所述各个服务器。
在本实施例中,可以通过负载均衡控制器向所述服务器分发请求信息。
其中,负载均衡控制器优选可以为代理服务器,可以设置服务器的处理权值并按该处理权值向服务器发送请求信息。在一个具体例子中,百度云网络中,客户端发送的请求信息经由一级反向代理后进入二级反向代理,再由二级反向代理发送连接到百度云后端的服务器进行处理。二级反向代理相当于负载均衡控制器,可对该反向代理进行后端服务器处理权值的设置,且该反向代理可以按上述处理权值向后端的服务器发送请求信息。
S130、采集所述各个服务器的当前实时处理压力参数。
具体的,所述服务器的实时处理压力参数至少包括下述一项:平均处理延时时间、每秒查询率和异常事件发生概率;其中,所述异常事件包括:未响应事件,和/或差错事件。
服务器的对于某个请求信息的处理延时时间包括处理该请求信息的时间和该请求信息在分配给所述服务器后等候处理的时间和,排在越后边位置的请求信息的等候处理的时间越长。而所述服务器的平均处理延时时间为所述服务器对于其被分配和处理的所有请求信息的处理延时时间的平均值。所述服务器的平均处理延时时间反映该服务器的处理请求信息的能力。
每秒查询率是对一个特定的查询服务器在规定时间内所处理流量多少的衡量标准,在本实施例中可以作为判断服务器处理请求信息能力的一种标准。
异常事件发生概率指的是后端服务器在接收处理请求信息的时候出错的概率。当负载均衡控制器将请求信息发送至一服务器时,服务器没有对该连接作出响应,或者服务器处理请求信息时中间出现故障导致无法继续处理该请求信息,上述事件都是异常事件。记录异常事件发生概率有助于对该服务器的性能进行评估,便于进行权值增量的计算,便于对处理权值进行调整。
S140、根据所采集到的各个服务器的当前实时处理压力参数,确定整体处理吞吐量是否满足预设均衡条件:若是,结束流程;否则,执行S150。
为了解决服务器实时处理压力不同,权值固定分配不合理的问题,在本实施例中,创造性的提出了一种动态设置服务器计算权值的方法,因为实时压力参数用于衡量服务器对所分发的请求信息的实时处理能力,所以根据服务器的实时处理压力参数,计算所述服务器的权值增量,动态的调整服务器的计算权重。例如,当某个服务器处理压力大时,减小该服务器的处理权值;当某个服务器处理压力小时,则增大其处理权值,以均衡不同服务器的处理压力,提高后端服务器的整体处理水平。
在本实施例中,可以在确定整体处理吞吐量最大值时,确定满足预设均衡条件;也可以设定一定的误差范围,分别确定各个服务器的平均处理时延与综合各服务器的平均处理时延获取的时延平均值的差值,如果所有差值均位于该误差范围内,则确定满足预设均衡条件,本实施例对此并不进行限制。
S150、调整所述各个服务器的处理权值,并将调整后的各个服务器的处理权值,作为下一循环的当前处理权值,返回执行S110。
若确定出整体处理吞吐量满足预设均衡条件,则结束对服务器的处理权值进行调整。若确定出整体处理吞吐量未满足预设均衡条件,则根据所述平均处理延时时间、每秒查询率和异常事件发生概率进行权值增量的加权与减权计算。然后在现有的处理权值的基础上,加上权值增量即可计算得调整后的处理权值。因为权值增量可为正数也可为负数,所以调整后的权值可能变大也可能变小。
计算得到调整后的处理权值后,将调整后的各个服务器的处理权值,作为下一循环的当前处理权值,负载均衡控制器按照调整后的处理权值将未分配的请求进行分配。
本发明实施例一提供的一种负载均衡方法,通过对网络后端处理集群的负载均衡策略进行优化,实时地对后端的处理器的处理权值进行调整,并实时地按调整后的处理权值分配请求信息,将请求信息更为及时、自动地送到后端处理延时时间最短的处理器,减少将请求信息转向处理较慢的机器,直至各机器之间处理延时相对均衡。在本实施例所述方法的调度下,处理层的处理器被分配的请求信息虽然不是均衡的,但机器的机器压力是相对均衡的,使整个处理层的整体处理能力得到更好的提升。
实施例二
本发明实施例二在上述实施例一的基础上,进一步具体地对负载均衡方法进行详细的说明。尤其是对在确定出整体处理吞吐量未满足预设均衡条件时,调整所述各个服务器的处理权值,并将调整后的各个服务器的处理权值,作为下一循环的当前处理权值的过程进一步优化。
上述过程具体包括:根据所述各个服务器的实时处理压力参数以及所有服务器的实时处理压力参数,计算所述各个服务器的权值增量;将所计算出的权值增量与所述各个服务器的当前权值相加,作为调整后的权值。
更具体的,参考图4,图4为本发明实施例二提供的一种负载均衡方法的流程图,所述方法包括:
S410、对所述各个服务器的处理权值进行初始化。
因为每个服务器处理速度、连接速度等多个方面不完全均等,所以在初始时,根据所述服务器的处理性能参数的差异值,为至少两个服务器的处理权值进行初始化;
其中,所述处理性能参数包括:服务器的CPU(Central Processing Unit,中央处理器)运算速度,和/或服务器的CPU内存容量。
服务器的中央处理器运算速度越快,内存容量越大,则可以为该处理器分配更高的处理权值初始值。根据处理性能参数设定处理权值初始值,使服务器得到更好的分配,并能较容易的对服务器的权值进行调整。
处理权值的初始值可以根据服务器的性能按上述的权重轮询算法确定,然后通过负载均衡控制器设置初始值。
S110、根据各个服务器的当前处理权值,确定向所述各个服务器分发的当前负载流量。
S120、将所确定的当前负载流量分发给所述各个服务器。
S130、采集所述各个服务器的当前实时处理压力参数集。
网络后端的N个服务器分别对应N组实时处理压力参数集。所述N组实时处理压力参数集由负载均衡控制器进行实时的检测和计算,用于辅助权值增量的计算。
所采集的各个服务器的实时处理压力参数包括实时处理压力参数集{Ti,Qi,Pi},i∈[1,N];其中,Ti为第i个服务器的平均处理延时时间、Qi为第i个服务器的每秒查询率、Pi为第i个服务器的异常事件发生概率、N为服务器的总数量,且N为大于1的整数。
S420、根据所述采集到的各个服务器的实时处理压力参数集{Ti,Qi,Pi},计算平均实时处理压力参数集{Tave,Qave,Pave}。
具体包括根据公式:计算所述{Tave,Qave,Pave}。
所述Tave为N个服务器平均的所述平均处理延时时间、Qave为N个服务器的平均每秒查询率、P为N个服务器的平均异常事件发生概率、用于辅助计算所述权值增量。
S430、分别计算各个服务器的Ti与所述Tave之间的差值ΔTi,如果与各个服务器对应的ΔTi均位于设定误差范围内,则确定整体处理吞吐量满足预设均衡条件。
S440、判断与各个服务器对应的ΔTi是否位于设定误差范围内:若是,结束流程;否则,执行S450。
S450、根据公式:ΔDj=K1(Tave-Ti)+K2(Qi-Qave)+K3(Pave-Pi);计算各个服务器的权值增量ΔDj,j∈[1,N],其中,K1、K2、K3为设定比例系数。
S460、将Di与ΔDi相加作为调整后的各个服务器的处理权值,作为下一循环的当前处理权值,并返回执行S110。
Di为各个服务器当前的处理权值,将Di与ΔDi相加为各个服务器调整后的处理权值,即下一个循环的当前处理权值。
调整服务器处理权值是为了让可用的各个服务器的平均处理延时时间相等,来提高后端服务器的整体性能。当某一服务器的平均处理延时时间太长时,就在该服务器原有处理权值上加一个负的权值增量,减少其被分配的请求信息的比例;当某一服务器的每秒查询率很大时,说明该服务器处理请求信息很快,则在该服务器原有处理权值上加一个正的权值增量,增加其被分配的请求信息的比例;当某一服务器的异常事件发生概率比较大时,则在该服务器原有处理权值上加一个负的权值增量,减少请求信息连接错误或不响应的情况,提高请求信息的处理速度。
上述S420~S450为所述根据所述服务器实时处理压力参数,以及由所述服务器实时处理压力参数确定的平均实时处理压力参数,计算所述服务器的权值增量的过程的具体算法。借助所述平均实时处理压力参数辅助权值增量的计算。
本发明实施例二提供的方案,在上述实施例的基础上对负载均衡方法的具体算法进行进一步详细说明。首先,基于平均处理延时时间、每秒查询率和异常事件发生概率这三个影响服务器处理请求信息能力的参数计算得出权值增量,再在现有处理权值的分配的基础上加上所述权值增量,即得到将要分配的处理权值。使最终得到的处理权值分配更加准确合理,并使服务器在同一接口接收的请求信息的平均处理延时时间趋于相等。
实施例三
本发明实施例三在上述实施例的基础上,以示例的形式对整个负载均衡方法进行更加直接而具体的描述。
所述负载均衡方法可应用于基于Nginx(engine x)反向代理的动态负载均衡控制。Nginx是一款轻量级的万维网服务器或反向代理服务器及电子邮件(因特尔邮件访问协议(Internet Mail Access Protocol,IMAP)或者邮局协议版本3(PostOffice Protocol-Version 3,POP3))代理服务器,并在一个BSD-like(开源衍生)协议下发行。
Nginx功能强大,性能超强,bug(漏洞)不多,工作稳定。Nginx可以配置代理多台服务器,当一台服务器宕机之后,自动将该服务器剔除,仍能保持***可用,且可以实现多种分配策略。所以基于Nginx反向代理的负载均衡控制深受用户欢迎。Nginx配置upstream(上游)节点实现负载均衡,upstream节点可实现对于服务器请求的分配。最终将处理权值反应在Nginx的upstream下的服务器的处理权重值。
假设云***后端有两台服务器,服务器A和服务器B。在同一接口下,若负载均衡控制器总共接收了2000个请求信息,可首先采用轮询的算法分发到服务器A和服务器B,在权值相等的情况下,则服务器A和服务器B均处理1000个请求信息,而在当前机器压力或网络环境下,可能因为服务器A和服务器B的网络状况不同或者服务器B还需要处理其它接口的请求信息,服务器A的平均处理延时时间为80ms,服务器B的平均处理延时时间为125ms。在此情况下,从服务器A和服务器B整体完成这2000个请求信息,总需要的时间为125s,整体的吞吐能力为16rps。在本实施例中,整体的吞吐能力为服务器A和服务器B每秒钟总共处理的请求信息数量。若每秒钟处理的请求信息数量越多,则服务器A和服务器B整体的吞吐能力强。
在上述轮询算法的基础上,当服务器的平均处理延时时间大于平均值时,其会获取一个负的权值增量,相应的其对应的处理权值会动态减少,处理权值减少后,后续被分配到该服务器的请求信息会逐渐减少。本实施例中,对服务器A和服务器B进行动态的权值调整,当负载均衡控制器发现服务器A的平均处理延时时间为80ms,服务器B的平均处理延时时间为125ms,服务器A和服务器B的平均处理延时时间的平均值为102.5ms,该服务器B的平均处理延时时间太长,则可不断增加服务器A的处理权值,减少服务器B的处理权值。使后续分配给服务器A的请求信息逐渐增加,分配给服务器B的请求信息逐渐减少,而此时因为机器压力有所改变的原因,服务器A的被分配的请求信息的等候处理的时间可能随之逐渐增加,同时服务器B也会因为压力的逐渐减轻而导致请求信息的等候处理的时间也逐渐减少。经过不断调整,使得服务器A和服务器B的平均处理延时时间尽量平衡,假设均衡值在100ms,此时服务器A在原有的1000个处理请求信息基础上,动态的增加了400个请求信息,总共处理了1400个请求信息,总共使用了100s,而服务器B从原有的1000个请求信息降至600个请求信息,总共使用了80s,在此情况下服务器A和服务器B整体完成这2000个请求信息,总需要时间为100s,整体的吞吐能力为20rps,此时相对静态处理权值的情况,整体吞吐能力提升了40%。
在动态调整权值的同时会根据每秒查询率和异常事件发生概率对当前权值进行加权或减权的计算,因为除了平均处理延时时间,服务器的每秒查询率和异常事件发生概率等也会影响服务器的处理速度和进程。
本发明实施例三在上述实施例的基础上,对一种负载均衡方法进行举例说明,增强了本发明方案的可行性,也是本发明方案简单易懂的一种描述方法。
实施例四
图5为本发明实施例四提供的一种负载均衡装置的结构图,该装置可配置于代理服务器中,参见图5,所述装置包括:
循环执行模块1,用于循环触发执行下述各模块,直到确定整体处理吞吐量满足预设均衡条件;
流量计算模块2,用于根据各个服务器的当前处理权值,确定向所述各个服务器分发的当前负载流量;
流量发送模块3,用于将所确定的当前负载流量分发给所述各个服务器;
压力参数采集模块4,用于采集所述各个服务器的当前实时处理压力参数;
均衡判断模块5,用于根据所采集到的各个服务器的当前实时处理压力参数,确定整体处理吞吐量是否满足预设均衡条件;
权值调整模块6,用于在确定出整体处理吞吐量未满足预设均衡条件时,调整所述各个服务器的处理权值,并将调整后的各个服务器的处理权值,作为下一循环的当前处理权值。
本发明实施例提供的负载均衡装置,通过权值增量计算模块,对网络后端处理集群的负载均衡策略进行优化,并通过权值调整模块实时地对后端的处理器的处理权值进行调整,通过请求信息发送模块实时地按调整后的处理权值分配请求信息,将请求信息更为及时、自动地送到后端处理延时时间最短的处理器,减少将请求信息转向处理较慢的机器,直至各机器之间处理延时相对均衡。在本发明实施例所述装置的调度下,处理层的处理器被分配的请求信息虽然不是均衡的,但机器的机器压力是相对均衡的,使整个处理层的整体处理能力得到更好的提升。
进一步的,负载均衡装置还包括:权值初始化模块7,用于对所述各个服务器的处理权值进行初始化。
具体的,所述服务器的实时处理压力参数至少可以包括下述一项:
平均处理延时时间、每秒查询率和异常事件发生概率;
其中,所述异常事件包括:未响应事件,和/或差错事件。
进一步的,权值调整模块6具体用于:
根据所述各个服务器的实时处理压力参数以及所有服务器的实时处理压力参数,计算所述各个服务器的权值增量;
将所计算出的权值增量与所述各个服务器的当前权值相加,作为调整后的权值。
进一步的,服务器的实时处理压力参数包括实时处理压力参数集{Ti,Qi,Pi},i∈[1,N];其中,Ti为第i个服务器的平均处理延时时间、Qi为第i个服务器的每秒查询率,Pi为第i个服务器的异常事件发生概率,N为服务器的总数量,且N为大于1的整数;
相应的,权值调整模块6具体用于:
根据所述采集到的各个服务器的实时处理压力参数集{Ti,Qi,Pi},计算平均实时处理压力参数集{Tave,Qave,Pave};
根据公式:ΔDj=K1(Tave-Ti)+K2(Qi-Qave)+K3(Pave-Pi);计算各个服务器的权值增量ΔDj,j∈[1,N],其中,K1、K2、K3为设定比例系数。
进一步的,参考图6,均衡判断模块5,包括:
差值计算单元51,用于分别计算各个服务器的Ti与所述Tave之间的差值ΔTi;
均衡判断单元52,用于如果与各个服务器对应的ΔTi均位于设定误差范围内,则确定整体处理吞吐量满足预设均衡条件。
进一步的,权值初始化模块7具体用于:
根据所述服务器的处理性能参数的差异值,为至少两个服务器的处理权值进行初始化;
其中,所述处理性能参数包括:服务器的中央处理器CPU运算速度,和/或服务器的CPU内存容量。
上述装置可执行本发明任意实施例所提供的负载均衡方法,具备执行方法相应的功能模块和有益效果。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
Claims (14)
1.一种负载均衡方法,其特征在于,包括:
循环执行下述步骤,直到确定整体处理吞吐量满足预设均衡条件;
根据各个服务器的当前处理权值,确定向所述各个服务器分发的当前负载流量;
将所确定的当前负载流量分发给所述各个服务器;
采集所述各个服务器的当前实时处理压力参数;
根据所采集到的各个服务器的当前实时处理压力参数,确定整体处理吞吐量是否满足预设均衡条件;
在确定出整体处理吞吐量未满足预设均衡条件时,调整所述各个服务器的处理权值,并将调整后的各个服务器的处理权值,作为下一循环的当前处理权值。
2.根据权利要求1所述的方法,其特征在于,在执行循环操作之前,所述方法还包括:
对所述各个服务器的处理权值进行初始化。
3.根据权利要求1所述的方法,其特征在于,所述服务器的实时处理压力参数至少包括下述一项:
平均处理延时时间、每秒查询率和异常事件发生概率;
其中,所述异常事件包括:未响应事件,和/或差错事件。
4.根据权利要求3所述的方法,其特征在于,所述在确定出整体处理吞吐量未满足预设均衡条件时,调整所述各个服务器的处理权值包括:
根据所述各个服务器的实时处理压力参数以及所有服务器的实时处理压力参数,计算所述各个服务器的权值增量;
将所计算出的权值增量与所述各个服务器的当前权值相加,作为调整后的权值。
5.根据权利要求4所述的方法,其特征在于,所采集的各个服务器的实时处理压力参数包括实时处理压力参数集{Ti,Qi,Pi},i∈[1,N];其中,Ti为第i个服务器的平均处理延时时间、Qi为第i个服务器的每秒查询率、Pi为第i个服务器的异常事件发生概率、N为服务器的总数量,且N为大于1的整数;
所述根据所述各个服务器的实时处理压力参数以及所有服务器的实时处理压力参数,计算所述各个服务器的权值增量包括:
根据所述采集到的各个服务器的实时处理压力参数集{Ti,Qi,Pi},计算平均实时处理压力参数集{Tave,Qave,Pave};
根据公式:ΔDj=K1(Tave-Ti)+K2(Qi-Qave)+K3(Pave-Pi);计算各个服务器的权值增量ΔDj,j∈[1,N],其中,K1、K2、K3为设定比例系数。
6.根据权利要求5所述的方法,其特征在于,根据所采集到的各个服务器的当前实时处理压力参数,确定整体处理吞吐量是否满足预设均衡条件包括:
分别计算各个服务器的Ti与所述Tave之间的差值ΔTi;
如果与各个服务器对应的ΔTi均位于设定误差范围内,则确定整体处理吞吐量满足预设均衡条件。
7.根据权利要求2所述的方法,其特征在于,对至少两个服务器的处理权值进行初始化,具体包括:
根据所述服务器的处理性能参数的差异值,为至少两个服务器的处理权值进行初始化;
其中,所述处理性能参数包括:服务器的中央处理器CPU运算速度,和/或服务器的CPU内存容量。
8.一种负载均衡装置,其特征在于,包括:
循环执行模块,用于循环触发执行下述各模块,直到确定整体处理吞吐量满足预设均衡条件;
流量计算模块,用于根据各个服务器的当前处理权值,确定向所述各个服务器分发的当前负载流量;
流量发送模块,用于将所确定的当前负载流量分发给所述各个服务器;
压力参数采集模块,用于采集所述各个服务器的当前实时处理压力参数;
均衡判断模块,用于根据所采集到的各个服务器的当前实时处理压力参数,确定整体处理吞吐量是否满足预设均衡条件;
权值调整模块,用于在确定出整体处理吞吐量未满足预设均衡条件时,调整所述各个服务器的处理权值,并将调整后的各个服务器的处理权值,作为下一循环的当前处理权值。
9.根据权利要求8所述的装置,其特征在于,还包括:
权值初始化模块,用于对所述各个服务器的处理权值进行初始化。
10.根据权利要求8所述的装置,其特征在于,所述服务器的实时处理压力参数至少包括下述一项:
平均处理延时时间、每秒查询率和异常事件发生概率;
其中,所述异常事件包括:未响应事件,和/或差错事件。
11.根据权利要求10所述的装置,其特征在于,所述权值调整模块具体用于:
根据所述各个服务器的实时处理压力参数以及所有服务器的实时处理压力参数,计算所述各个服务器的权值增量;
将所计算出的权值增量与所述各个服务器的当前权值相加,作为调整后的权值。
12.根据权利要求11所述的装置,其特征在于,所述服务器的实时处理压力参数包括实时处理压力参数集{Ti,Qi,Pi},i∈[1,N];其中,Ti为第i个服务器的平均处理延时时间、Qi为第i个服务器的每秒查询率、Pi为第i个服务器的异常事件发生概率、N为服务器的总数量,且N为大于1的整数;
相应的,所述权值调整模块具体用于:
根据所述采集到的各个服务器的实时处理压力参数集{Ti,Qi,Pi},计算平均实时处理压力参数集{Tave,Qave,Pave};
根据公式:ΔDj=K1(Tave-Ti)+K2(Qi-Qave)+K3(Pave-Pi);计算各个服务器的权值增量ΔDj,j∈[1,N],其中,K1、K2、K3为设定比例系数。
13.根据权利要求12所述的方法,其特征在于,所述均衡判断模块,包括:
差值计算单元,用于分别计算各个服务器的Ti与所述Tave之间的差值ΔTi;
均衡判断单元,用于如果与各个服务器对应的ΔTi均位于设定误差范围内,则确定整体处理吞吐量满足预设均衡条件。
14.根据权利要求9所述的装置,其特征在于,所述权值初始化模块具体用于:
根据所述服务器的处理性能参数的差异值,为至少两个服务器的处理权值进行初始化;
其中,所述处理性能参数包括:服务器的中央处理器CPU运算速度,和/或服务器的CPU内存容量。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610203524.XA CN107295048B (zh) | 2016-04-01 | 2016-04-01 | 负载均衡方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610203524.XA CN107295048B (zh) | 2016-04-01 | 2016-04-01 | 负载均衡方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107295048A true CN107295048A (zh) | 2017-10-24 |
CN107295048B CN107295048B (zh) | 2021-03-23 |
Family
ID=60088163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610203524.XA Active CN107295048B (zh) | 2016-04-01 | 2016-04-01 | 负载均衡方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107295048B (zh) |
Cited By (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108769271A (zh) * | 2018-08-20 | 2018-11-06 | 北京百度网讯科技有限公司 | 负载均衡的方法、装置、存储介质和终端设备 |
CN108933822A (zh) * | 2018-06-28 | 2018-12-04 | 北京百度网讯科技有限公司 | 用于处理信息的方法和装置 |
CN109408227A (zh) * | 2018-09-19 | 2019-03-01 | 平安科技(深圳)有限公司 | 负载均衡方法、装置及存储介质 |
CN109714190A (zh) * | 2018-11-28 | 2019-05-03 | 四川商通实业有限公司 | 一种基于应用级别的负载均衡与故障转移***及其方法 |
CN109995818A (zh) * | 2017-12-29 | 2019-07-09 | 中移(杭州)信息技术有限公司 | 一种服务器负载均衡的方法及装置 |
CN110020061A (zh) * | 2018-08-21 | 2019-07-16 | 广州市城市规划勘测设计研究院 | 一种智慧城市时空信息云平台服务引擎 |
CN110134513A (zh) * | 2019-04-17 | 2019-08-16 | 平安科技(深圳)有限公司 | 负载均衡方法、装置、计算机设备及存储介质 |
CN110995491A (zh) * | 2019-12-05 | 2020-04-10 | 苏州浪潮智能科技有限公司 | 一种自动进行优化及网络压力测试方法及*** |
CN111585831A (zh) * | 2020-03-30 | 2020-08-25 | 福建天泉教育科技有限公司 | 异常应用的处理方法、存储介质 |
WO2020224024A1 (zh) * | 2019-05-09 | 2020-11-12 | 网宿科技股份有限公司 | 一种资源服务器的负载调节方法及***、设备 |
CN112181942A (zh) * | 2020-09-22 | 2021-01-05 | 中国建设银行股份有限公司 | 时序数据库***和数据处理方法及装置 |
CN112787948A (zh) * | 2020-12-30 | 2021-05-11 | 上海微盟企业发展有限公司 | 一种流量负载均衡方法及相关装置 |
CN113486042A (zh) * | 2021-08-11 | 2021-10-08 | 腾讯科技(上海)有限公司 | 数据处理方法、装置、计算机可读介质及电子设备 |
CN113900731A (zh) * | 2021-09-30 | 2022-01-07 | 百度在线网络技术(北京)有限公司 | 请求处理方法、装置、设备和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101730146A (zh) * | 2008-10-13 | 2010-06-09 | 大唐移动通信设备有限公司 | 一种负荷均衡的方法、***及设备 |
CN102394931A (zh) * | 2011-11-04 | 2012-03-28 | 北京邮电大学 | 一种基于云的用户访问请求调度方法 |
CN102611735A (zh) * | 2011-12-21 | 2012-07-25 | 奇智软件(北京)有限公司 | 一种应用服务的负载均衡方法及*** |
CN103118076A (zh) * | 2013-01-11 | 2013-05-22 | 烽火通信科技股份有限公司 | 升级服务器集群***及其负载均衡方法 |
CN104009936A (zh) * | 2014-05-21 | 2014-08-27 | 深圳市邦彦信息技术有限公司 | 一种基于动态权重计算的队列调度方法 |
-
2016
- 2016-04-01 CN CN201610203524.XA patent/CN107295048B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101730146A (zh) * | 2008-10-13 | 2010-06-09 | 大唐移动通信设备有限公司 | 一种负荷均衡的方法、***及设备 |
CN102394931A (zh) * | 2011-11-04 | 2012-03-28 | 北京邮电大学 | 一种基于云的用户访问请求调度方法 |
CN102611735A (zh) * | 2011-12-21 | 2012-07-25 | 奇智软件(北京)有限公司 | 一种应用服务的负载均衡方法及*** |
CN103118076A (zh) * | 2013-01-11 | 2013-05-22 | 烽火通信科技股份有限公司 | 升级服务器集群***及其负载均衡方法 |
CN104009936A (zh) * | 2014-05-21 | 2014-08-27 | 深圳市邦彦信息技术有限公司 | 一种基于动态权重计算的队列调度方法 |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109995818A (zh) * | 2017-12-29 | 2019-07-09 | 中移(杭州)信息技术有限公司 | 一种服务器负载均衡的方法及装置 |
CN108933822A (zh) * | 2018-06-28 | 2018-12-04 | 北京百度网讯科技有限公司 | 用于处理信息的方法和装置 |
CN108933822B (zh) * | 2018-06-28 | 2019-10-18 | 北京百度网讯科技有限公司 | 用于处理信息的方法和装置 |
US10972535B2 (en) | 2018-08-20 | 2021-04-06 | Beijing Baidu Netcom Science And Technology Co., Ltd. | Method and device for load balancing, and storage medium |
CN108769271A (zh) * | 2018-08-20 | 2018-11-06 | 北京百度网讯科技有限公司 | 负载均衡的方法、装置、存储介质和终端设备 |
CN110020061A (zh) * | 2018-08-21 | 2019-07-16 | 广州市城市规划勘测设计研究院 | 一种智慧城市时空信息云平台服务引擎 |
CN109408227A (zh) * | 2018-09-19 | 2019-03-01 | 平安科技(深圳)有限公司 | 负载均衡方法、装置及存储介质 |
CN109408227B (zh) * | 2018-09-19 | 2023-04-14 | 平安科技(深圳)有限公司 | 负载均衡方法、装置及存储介质 |
CN109714190A (zh) * | 2018-11-28 | 2019-05-03 | 四川商通实业有限公司 | 一种基于应用级别的负载均衡与故障转移***及其方法 |
CN110134513A (zh) * | 2019-04-17 | 2019-08-16 | 平安科技(深圳)有限公司 | 负载均衡方法、装置、计算机设备及存储介质 |
CN110134513B (zh) * | 2019-04-17 | 2023-08-22 | 平安科技(深圳)有限公司 | 负载均衡方法、装置、计算机设备及存储介质 |
WO2020224024A1 (zh) * | 2019-05-09 | 2020-11-12 | 网宿科技股份有限公司 | 一种资源服务器的负载调节方法及***、设备 |
US11108695B2 (en) | 2019-05-09 | 2021-08-31 | Wangsu Science & Technology Co., Ltd. | Method, system and device for adjusting load of resource server |
CN110995491A (zh) * | 2019-12-05 | 2020-04-10 | 苏州浪潮智能科技有限公司 | 一种自动进行优化及网络压力测试方法及*** |
CN111585831B (zh) * | 2020-03-30 | 2022-10-21 | 福建天泉教育科技有限公司 | 异常应用的处理方法、存储介质 |
CN111585831A (zh) * | 2020-03-30 | 2020-08-25 | 福建天泉教育科技有限公司 | 异常应用的处理方法、存储介质 |
CN112181942A (zh) * | 2020-09-22 | 2021-01-05 | 中国建设银行股份有限公司 | 时序数据库***和数据处理方法及装置 |
CN112787948A (zh) * | 2020-12-30 | 2021-05-11 | 上海微盟企业发展有限公司 | 一种流量负载均衡方法及相关装置 |
CN113486042A (zh) * | 2021-08-11 | 2021-10-08 | 腾讯科技(上海)有限公司 | 数据处理方法、装置、计算机可读介质及电子设备 |
CN113486042B (zh) * | 2021-08-11 | 2024-03-08 | 腾讯科技(上海)有限公司 | 数据处理方法、装置、计算机可读介质及电子设备 |
CN113900731A (zh) * | 2021-09-30 | 2022-01-07 | 百度在线网络技术(北京)有限公司 | 请求处理方法、装置、设备和存储介质 |
CN113900731B (zh) * | 2021-09-30 | 2023-08-15 | 百度在线网络技术(北京)有限公司 | 请求处理方法、装置、设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107295048B (zh) | 2021-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107295048A (zh) | 负载均衡方法及装置 | |
EP2335154B1 (en) | Distributed data processing system | |
US7243351B2 (en) | System and method for task scheduling based upon the classification value and probability | |
US8484348B2 (en) | Method and apparatus for facilitating fulfillment of web-service requests on a communication network | |
US20110078303A1 (en) | Dynamic load balancing and scaling of allocated cloud resources in an enterprise network | |
CN103369601B (zh) | 为手机客户端提供大并发处理及流量控制的方法 | |
CN109218355A (zh) | 负载均衡引擎,客户端,分布式计算***以及负载均衡方法 | |
CN109308221A (zh) | 一种基于WebSocket长连接的Nginx动态负载均衡方法 | |
CN104902001B (zh) | 基于操作***虚拟化的Web请求负载均衡方法 | |
CN106161552A (zh) | 一种海量数据环境下负载均衡方法及*** | |
CN105208133B (zh) | 一种服务器、负载均衡器以及服务器负载均衡方法和*** | |
CN104580538A (zh) | 一种提高Nginx服务器负载均衡效率的方法 | |
CN108134830A (zh) | 基于消息队列的负载均衡方法、***、装置及存储介质 | |
CN103368864A (zh) | 一种基于c/s架构的智能负载均衡方法 | |
US7512706B2 (en) | Method, computer program product, and data processing system for data queuing prioritization in a multi-tiered network | |
CN106790381A (zh) | 基于加权最小连接的动态反馈负载均衡方法 | |
CN109274710A (zh) | 网络负载均衡方法、装置及集群服务*** | |
CN108259603A (zh) | 一种负载均衡方法及装置 | |
CN102497421B (zh) | 公平性好的Web服务器集群***轮询调度负载均衡方法 | |
CN110266822A (zh) | 一种基于nginx的共享式负载均衡实现方法 | |
CN104301241B (zh) | 一种soa动态负载分发方法与*** | |
CN108093009A (zh) | 一种服务器的负载均衡方法和装置 | |
CN108111567A (zh) | 实现服务器负载均匀的方法及*** | |
CN106970827A (zh) | 信息处理方法、信息处理装置、电子设备 | |
CN105872082A (zh) | 基于容器集群负载均衡算法的细粒度资源响应*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |