LVS 多种调度模式

[root@zh75 ~]# ipvsadm -h

-s rr

轮循法

-s wrr

带权重的循环法

-s lc

最少连接法

-s wlc

带权重的最少连接法

-s lblc

基于本地的最少连接法

-s dh

目标散列法

-s sh

源散列法

-s sed

最短预期延迟法

-s nq

永不排队法

注:调度算法配置后立即生效,就像iptables配置规则一样

详细说明

rr  -  round robin

在服务器池中无穷的循环中遍历
--------------------------------------------------------------------------------------

wrr  -  Weighted Round Robin

基于集群节点可以处理多少来分配给每个节点一个权重值。权重值为2的服务器将收到权重值为1的服务器的两倍的连接数量。如果服务器的权重为0 ,则不会收到新的连接请求(但当前活动的已经建立的连接将不会丢失)
--------------------------------------------------------------------------------------

lc  -  Least-Connection 

当新的请求到达director时,director查看活动和非活动的连接数量,以确定把请求分发给哪个服务器。
director将集群节点目前的活动连接数量x256 再加上不活动的连接数量,得到节点的开 销值。最低开销值的节点胜出,被分发给新的入站请求。(如果开销一样,则第一个节点被选中)
--------------------------------------------------------------------------------------

wlc  -  Weighted Least-Connection

先如上算出集群节点的开销值,然后除以分配给其的权重值,最小值节点胜出,将入站请求分发给它
--------------------------------------------------------------------------------------

lblc - Locality-Based  Least-Connection

基于局部的最小连接,当real server是缓存服务器时用得比较多
--------------------------------------------------------------------------------------

lblcr  -  Locality-Based Least-Connection with Replication

带复制的基于局部的最小连接,当real server是缓存服务器时用得比较多
--------------------------------------------------------------------------------------

dh  -  Destination Hashing
--------------------------------------------------------------------------------------

sh  -  Source  Hashing

同一个ip的客户端总是分发给同一个real server。

让客户端总是能访问到自己的会话信息,这种机制叫会话保持。

基于ip地址标识客户端的缺点:很多内网用户会伪装成公网ip,来访问服务器,不能人为的控制负载均衡

比较高级的方法是基于客户端提供我们的session id来实现会话保持。

haproxy(做负载均衡的软件)可以实现基于会话信息来判断保持会话。
--------------------------------------------------------------------------------------

扩展:

如何保持会话一致:

如果总是保持和一个RS会话,这台RS如果故障了,要确定另一个RS也有会话信息,所有的RS保持数据同步。

会话同步的方法:

所有的RS把自己的会话信息保存到数据库当中(memcached软件)。
--------------------------------------------------------------------------------------

sed  - Shortest Expected Delay最短延时预测  (Ci+1)/Ui  Ci连接数  Ui权重值

在wlc方法上做了轻微改进,这些服务使用tcp,而且当群节点在处理每个请求时保持在活动状态。

计算方法: 每个休群节点的开销值是通过将活动的连接数加1计算的。然后开销值除以分配 给每个节点的权重,以取得SED值,具有最低SED值的集群节点胜出。


nq  -  Never  Queue没有队列,分配请求给空闲的服务器,没有空闲的就找响应最快的,

如果集群节点中没有活动的连接 ,不管每个集群节点SED计算值的结果,它始终被分配置服务的新入站请求
--------------------------------------------------------------------------------------

测试LVS 其它调度算法  -->  LVS-DR  wrr

[root@zh75 ~]# ipvsadm -C
[root@zh75 ~]# ipvsadm -A -t 192.168.1.66:80 -s wrr
[root@zh75 ~]# ipvsadm -a -t 192.168.1.66:80 -r 192.168.1.133 -g -w 10
[root@zh75 ~]# ipvsadm -a -t 192.168.1.66:80 -r 192.168.1.128 -g -w 20
[root@zh75 ~]# ipvsadm -L -n --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
  -> RemoteAddress:Port
TCP  192.168.1.66:80                     0        0        0        0        0
  -> 192.168.1.128:80                    0        0        0        0        0
  -> 192.168.1.133:80                    0        0        0        0        0

测试 刷新三次  2:1 关系 说明权重越大,获得的连接说越多

[root@zh75 ~]# ipvsadm -L -n --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
  -> RemoteAddress:Port
TCP  192.168.1.66:80                     3       44        0    10468        0
  -> 192.168.1.128:80                    2       36        0     9052        0
  -> 192.168.1.133:80                    1        8        0     1416        0

将一个real server 的权重是0,将不再分配给他客户端的请求

[root@zh75 ~]# ipvsadm -C
[root@zh75 ~]# ipvsadm -A -t 192.168.1.66:80 -s wrr
[root@zh75 ~]# ipvsadm -a -t 192.168.1.66:80 -r 192.168.1.128 -g -w 0
[root@zh75 ~]# ipvsadm -a -t 192.168.1.66:80 -r 192.168.1.133 -g -w 10
[root@zh75 ~]# ipvsadm -L -n --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
  -> RemoteAddress:Port
TCP  192.168.1.66:80                     1       46        0    13234        0
  -> 192.168.1.128:80                    0        0        0        0        0
  -> 192.168.1.133:80                    1       46        0    13234        0

- Z --zero   虚拟服务计数器清零 (清空当前连接数量)

[root@zh75 ~]# ipvsadm -Z 
[root@zh75 ~]# ipvsadm -L -n --stats
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
  -> RemoteAddress:Port
TCP  192.168.1.66:80                     0        0        0        0        0
  -> 192.168.1.128:80                    0        0        0        0        0
  -> 192.168.1.133:80                    0        0        0        0        0

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值