LVS 之 调度算法介绍

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LVS 之 调度算法介绍相关的知识,希望对你有一定的参考价值。

1  概述


LVS中ipvs scheduler总共有10中调度算法:RR,WRR,LC,WLC,LBLC,LBLCR,DH,SH,SED,NQ,

VS根据其调度时是否考虑各RS当前的负载状态,分成两大类:静态方法和动态方法,其中,算法越复杂,会影响服务器的效率(性能)


2  静态方法

静态方法仅根据算法本身进行调度,关心的是起点公平。相对LVS而言的,而不关心RS是否可以处理请求,如RS的负载状态。

有如下4类算法

RRroundrobin

轮询,后端RS均摊所有的请求

WRRWeighted RR

加权轮询,根据权值来分配请求的数量

SHSource Hashing

源地址hash,实现session sticky,源IP地址hash;将来自于同一个IP地址的请求始终发往第一次挑中的RS,从而实现会话绑定

但是,这种方式问题比较多,如源地址是nat后的公网地址,如果该地址对应的后端机器很多,这样同一ip的访问可能会对同一服务器造成负担。

DHDestination Hashing

目标地址哈希,将发往同一个目标地址的请求始终转发至第一次挑中的RS,典型使用场景是正向代理缓存场景中的负载均衡,如:宽带运营商


3  动态方法


动态主要根据每RS当前的负载状态及调度算法进行调度Overhead=value较小的RS将被调度

动态调度关心的是最终的结果,要考虑到后端服务器RS的负载情况

有如下6类算法

LCleast connections

适用于长连接应用

Overhead=activeconns*256+inactiveconns

活动连接表示正在传送数据

非活动连接表示建立连接了,但是没有传送数据

WLCWeighted LC

WLC是默认调度方法

Overhead=(activeconns*256+inactiveconns)/weight

这里如果是第一次连接,活动和非活动连接的值都是0.,这样同LCWL的算法计算结果都是0,需要通过SED来解决这个问题。因为初始+1,就会有数值的对比

SEDShortest Expection Delay

初始连接高权重优先,Overhead=(activeconns+1)*256/weight

NQNever Queue

第一轮均匀分配,后续SED,解决了第一次分配不均匀的问题。使得所有的服务器都会执行一定的任务

LBLCLocality-Based LC

动态的DH算法,使用场景:根据负载状态实现正向代理

LBLCRLBLC with Replication

带复制功能的LBLC,解决LBLC负载不均衡问题,从负载重的复制到负载轻的RS



本文出自 “阳光运维” 博客,请务必保留此出处http://ghbsunny.blog.51cto.com/7759574/1975009

以上是关于LVS 之 调度算法介绍的主要内容,如果未能解决你的问题,请参考以下文章

应用负载均衡之LVS:加权调度算法的规律

LVS介绍LVS调度算法LVS NAT模式搭建

负载均衡集群介绍 LVS介绍 LVS调度算法 LVS NAT模式搭建

负载均衡集群介绍,LVS介绍,LVS的调度算法,LVS的NAT模式搭建

六十负载均衡集群介绍LVS介绍LVS的调度算法LVS NAT模式搭建

18.6 负载均衡集群介绍 18.7 LVS介绍 18.8 LVS调度算法 18.9/18.10 L