LVS调度算法
- - CSDN博客推荐文章rr 轮询调度(Round-Robin). 它将请求一次分配不同的RS,也就是在RS中均摊请求,算法简单,但是只适合于RS处理性能相差不大的情况(多个服务器硬件配置差不多). wrr加权轮询调度(Weighted Round-Robin). 它根据RS不同的权值分配任务,权值高的RS优先获得请求,分配到的连接数将比权值低的RS更多,权值相同的RS得到的连接数数目相同.
算法
|
说明
|
rr 轮询调度(Round-Robin)
|
它将请求一次分配不同的RS,也就是在RS中均摊请求,算法简单,但是只适合于RS处理性能相差不大的情况(多个服务器硬件配置差不多)
|
wrr加权轮询调度(Weighted Round-Robin)
|
它根据RS不同的权值分配任务,权值高的RS优先获得请求,分配到的连接数将比权值低的RS更多,权值相同的RS得到的连接数数目相同
|
wlc加权最小连接数调度(Weighted Least-Comnection) (WLC)
|
具有较高权值的服务器将承受较大比例的活动连接负载。调度器可以自动问询真实服务器的负载情况,并动态地调整其权值。
假设各台RS的权值一次为Wi(l = 1..n),当前的TCP连接数依次为Ti(l=1..n)一次选取Wi/Ti为最小的RS作为下一个分配的RS
|
dh 目的地址哈希调度(Destination Hashing)
|
以目的地址为关键字查找一个静态hash表来获得需要的RS
|
sh 源地址哈希调度(Source Hashing)
|
以源地址作为关键字查找一个静态hash表来获取需要的RS
|
LBLC 基于局部性的最少链接(Locality-Based Least Connections)
|
针对目标IP地址的负载均衡,目前主要用于Cache集群系统。该算法根据请求的目标IP地址找出该目标IP地址最近使用的服务器,若该服务器是可用的且没有超载,将请求发送到该服务器;若服务器不存在,或者该服务器超载且有服务器处于一半的工作负载,则用“最少链接” 的原则选出一个可用的服务器,将请求发送到该服务器。
|
LBLCR 带复制的基于局部性最少链接(Locality-Based Least Connections with Replication)
|
也是针对目标IP地址的负载均衡,目前主要用于Cache集群系统。它与LBLC算法的不同之处是它要维护从一个目标 IP地址到一组服务器的映射,而LBLC算法维护从一个目标IP地址到一台服务器的映射。该算法根据请求的目标IP地址找出该目标IP地址对应的服务器组,按“最小连接”原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器;若服务器超载,则按“最小连接”原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除,以降低复制的程度。
|
DH 目标地址散列(Destination Hashing)
|
根据请求的目标IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
|
SH 源地址散列(Source Hashing)
|
根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的且未超载,将请求发送到该服务器,否则返回空。
|
SED 最短的期望的延迟(Shortest Expected Delay Scheduling SED)
|
基于wlc算法
ABC三台机器分别权重123 ,连接数也分别是123。那么如果使用WLC算法的话一个新请求进入时它可能会分给ABC中的任意一个。使用sed算法后会进行这样一个运算
A(1+1)/1
B(1+2)/2
C(1+3)/3
根据运算结果,把连接交给C 。
|
NQ 最少队列调度(Never Queue Scheduling NQ)
|
无需队列。如果有台 realserver的连接数=0就直接分配过去,不需要在进行sed运算
|