LB常用调度算法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
1) 轮询: RR(Round Robin)
最基本的调度算法,把请求连接依次轮流分配到RS机器,缺点是如果机器性能不一致便会导致资源浪费

2) 加权轮询: WRR(Weighted Round Robin)
在RR的基础上添加了设置机器权重,按照权重比例调度请求

3) 源地址哈希: SH (Source Hash)
将请求的客户端IP地址进行Hash计算并调度,后面此IP地址发出的请求便会被永久的调度到同一台RS机器上

4) 目标地址哈希: DH (Destination Hash)
通过一个散列函数将来自同一个源IP的请求地址映射到一台服务器或链路上

5) 最少连接数: LC(Least Connection)
根据当前各服务器的连接数来估计服务器的负载情况,把新的连接分配给连接数最小的服务器;负载率=active*256+inactive,值小的优先分配请求

6)加权最少连接数: WLC(Weighted Least Connection)
与LC类似,根据当前各服务器的连接数来估计服务器的负载情况,把新的连接分配给连接数最小的服务器;负载率=(active*256+inactive)/weight,值小的优先分配请求

7)最短期望延迟: SED(Shortest Expect Delay)
这个算法主要是优化LC的,在服务均在请求少的时候避免负载到一台服务器上做的优化;负载率=(active+1)*256/weight,值小的优先分配请求

8) 永不排队: NQ (Nerver Queue)
在负载低时,请求直接分配到空闲服务器上,不会产生请求等待;当服务器都很忙时,将轮询

9) 基于本地最少连接: LBLC(Locality-Based Least Connection)
根据请求的目标IP地址找出该目标IP地址最近使用的RealServer,若该Real Server是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用“最少链接”的原则选出一个可用的服务器,将请求发送到该服务器