LVS的多种调度模式

网友投稿 294 2022-11-02


LVS的多种调度模式

[root@k8s02 ~]# ipvsadm -h--scheduler -s scheduler(ˈskejələr调度) one of rr|wrr|lc|wlc|lblc|lblcr|dh|sh|sed|nq, the default scheduler is wlc.-s rr 轮循法-s wrr 带权重的循环法-s lc 最少连接法-s wlc 带权重的最少连接法-s lblc 基于本地的最少连接法-s dh 目标散列法-s sh 源散列法-s sed 最短预期延迟法-s nq 永不排队法注:调度算法配置后立即生效,就像iptables配置规则一样。

2.3.1 每个调度算法详细说明:

1、rr - round robin --- 在服务器池中无穷的循环中遍历2、wrr - Weighted Round Robin --- 基于集群节点可以处理多少来分配给每个节点一个权重值。权重值为2的服务器将收到权重值为1的服务器的两倍的连接数量。如果服务器的权重为0 ,则不会收到新的连接请求(但当前活动的已经建立的连接将不会丢失)。3、lc - Least-Connection --- 当新的请求到达director时,director查看活动和非活动的连接数量,以确定把请求分发给哪个服务器。 director将集群节点目前的活动连接数量x256 再加上不活动的连接数量,得到节点的开 销值。最低开销值的节点胜出,被分发给新的入站请求。(如果开销一样,则第一个节点被选中)4、wlc - Weighted Least-Connection --- 先如上算出集群节点的开销值,然后除以分配给其的权重值,最小值节点胜出,将入站请求分发给它。5、lblc - Locality-Based Least-Connection --- 基于局部的最小连接,当real server是缓存服务器时用得比较多6、lblcr - Locality-Based Least-Connection with Replication --- 带复制的基于局部的最小连接,当real server是缓存服务器时用得比较多7、dh - Destination Hashing8、sh - Source Hashing --- 同一个ip的客户端总是分发给同一个real server。 让客户端总是能访问到自己的会话信息,这种机制叫会话保持。 基于ip地址标识客户端的缺点:很多内网用户会伪装成公网ip,来访问服务器,不能人为的控制负载均衡。比较高级的方法是基于客户端提供我们的session id来实现会话保持。 haproxy(做负载均衡的软件)可以实现基于会话信息来判断保持会话。扩展:如何保持会话一致: 1、如果总是保持和一个RS会话,这台RS如果故障了,要确定另一个RS也有会话信息,所有的RS保持数据同步。 会话同步的方法: 1、所有的RS把自己的会话信息保存到数据库当中(memcached软件)。9、sed - Shortest Expected Delay最短延时预测 (Ci+1)/Ui Ci连接数 Ui权重值 --- 在wlc方法上做了轻微改进,这些服务使用tcp,而且当群节点在处理每个请求时保持 在活动状态。 计算方法: 每个休群节点的开销值是通过将活动的连接数加1计算的。然后开销值除以 分配 给每个节点的权重,以取得SED值,具有最低SED值的集群节点胜出。10、nq - Never Queue没有队列,分配请求给空闲的服务器,没有空闲的就找响应最快的, --- 如果集群节点中没有活动的连接 ,不管每个集群节点SED计算值的结果,它始终被 分配置服务的新入站请求。HTTP的会话(session)信息:cookies客户端(client)自己保存缓存会话(session)服务器(server)端保存

2.3.2 实例:

例1:测试LVS 其它调度算法,如LVS-DR wrr diào dù[root@k8s02 ~]# ipvsadm -C[root@k8s02 ~]# ipvsadm -A -t 192.168.1.63:80 -s wrr[root@k8s02 ~]# ipvsadm -a -t 192.168.1.63:80 -r 192.168.1.62 -g -w 10[root@k8s02 ~]# ipvsadm -a -t 192.168.1.63:80 -r 192.168.1.64 -g -w 20[root@k8s02 ~]# ipvsadm -L -n --statsIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes -> RemoteAddress:PortTCP 192.168.1.63:80 0 0 0 0 0 -> 192.168.1.62:80 0 0 0 0 0 -> 192.168.1.64:80 0 0 0 0 0测试:在物理机上,刷新9次这个链接:~]# ipvsadm -L -n --statsIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes -> RemoteAddress:PortTCP 192.168.1.63:80 9 45 0 6111 0 -> 192.168.1.62:80 3 15 0 2037 0 -> 192.168.1.64:80 6 30 0 4074 0# 一共9次连接, xuegod62:xuegod64 是 1:2 关系。 说明权重越大,获得的连接说越多。例2:如果一个real server 的权重是0,将不再分配给他客户端的请求[root@k8s02 ~]# ipvsadm -C[root@k8s02 ~]# ipvsadm -A -t 192.168.1.63:80 -s wrr-s wrr 加权轮循[root@k8s02 ~]# ipvsadm -a -t 192.168.1.63:80 -r 192.168.1.62 -g -w 0[root@k8s02 ~]# ipvsadm -a -t 192.168.1.63:80 -r 192.168.1.64 -g -w 20在物理机上,刷新9次这个链接:~]# ipvsadm -L -n --statsIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes -> RemoteAddress:PortTCP 192.168.1.63:80 8 40 0 5432 0 -> 192.168.1.62:80 0 0 0 0 0 #62的请求数为0 -> 192.168.1.64:80 8 40 0 5432 0另外: ipvsadm -L -n --stats 发现进来的包是有的,但是出去的包为0 InPkts OutPkts 有 0 因为数据包出去时,直接交给了real server,而没有交给Director扩展:ipvsadm 更多参数说明 -L -n ==> 查看规则,显示内核虚拟服务器表 -L -n -c ==> 查看客户端连接分发器和real server 的情况例1:[root@k8s02 ~]# ipvsadm -L -n -cIPVS connection entriespro expire state source virtual destinationTCP 01:33 TIME_WAIT 192.168.1.100:49698 192.168.1.70:80 192.168.1.62:80TCP 01:26 TIME_WAIT 192.168.1.100:49690 192.168.1.70:80 192.168.1.64:80TCP 01:57 TIME_WAIT 192.168.1.100:49739 192.168.1.70:80 192.168.1.62:80-L -n --stats ==> 查看分发情况 -L -n --rate ==> 查看速率• -Z --zero 虚拟服务表计数器清零(清空当前的连接数量等)例1:[root@k8s02 ~]# ipvsadm -Z[root@k8s02 ~]# ipvsadm -L -n --statsIP Virtual Server version 1.2.1 (size=4096)实例2:删除一条记录[root@k8s02 ~]# ipvsadm -d -t 192.168.1.63:80 -r 192.168.1.64[root@k8s02 ~]# ipvsadm -L -nIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Scheduler Flags -> RemoteAddress:Port Forward Weight ActiveConn InActConnTCP 192.168.1.63:80 rr -> 192.168.2.62:80 Masq 1 0 0 -C --clear 清除内核虚拟服务器表中的所有记录。例3: 清空所有记录[root@k8s02 ~]# ipvsadm -C其他查看方式:--stats 显示统计信息[root@k8s02 ~]# ipvsadm -L -n --stats IP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port Conns InPkts OutPkts InBytes OutBytes -> RemoteAddress:PortTCP 192.168.1.63:80 0 0 0 0 0 -> 192.168.2.62:80 0 0 0 0 0--rate 显示速率信息[root@k8s02 ~]# ipvsadm -L -n --rateIP Virtual Server version 1.2.1 (size=4096)Prot LocalAddress:Port CPS InPPS OutPPS InBPS OutBPS -> RemoteAddress:PortTCP 192.168.1.63:80 0 0 0 0 0 -> 192.168.2.62:80 0 0 0 0 0-c --connection 显示LVS 目前的连接[root@k8s02 ~]# ipvsadm -L -n -cIPVS connection entriespro expire state source virtual destinationLVS的规则配置文件:/etc/sysconfig/ipvsadm配置文件方法:[root@k8s02 ~]# ipvsadm-save>/etc/sysconfig/ipvsadm 可以保存。LVS的规则存储配置文件:/etc/sysconfig/ipvsadm[root@k8s02 ~]# cat /etc/sysconfig/ipvsadm-A -t 192.168.1.63:80 -s rr-a -t 192.168.1.63:80 -r 192.168.1.62:80 -m -w 1-a -t 192.168.1.63:80 -r 192.168.1.64:80 -m -w 1


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:java 异常被catch后 将会继续执行的操作
下一篇:Go 文件读取 不带缓冲区读取,带缓冲区读取
相关文章

 发表评论

暂时没有评论,来抢沙发吧~