lvs 理论2--算法

在内核中的连接调度算法上,IPVS已实现了以下十种调度算法

1.轮叫调度

2.加权轮叫调度

3.最小连接调度

4.加权最小连接调度

5.基于局部性的最小链接

6.带复制的基于局部性最少链接

7.目标地址三列调度

8.源地址散列调度

9.最短预期延时调度

10.不排队调度

LVS的调度方法分为两种,一种是静态方法,一种是动态方法:

静态方法:仅根据算法本身实现调度;实现起点公平,不管服务器当前处理多少请求,分配的数量一致;
动态方法:根据算法及后端RS当前的负载状况实现调度;不管以前分了多少,只看分配的结果是不是公平;

一,静态调度算法(4种)

(1) rr : round robin :轮叫,轮询

每一次把来自用户的请求轮流分配给内部中的服务器,从1开始,直到N(内部服务器个数),然后重新开始循环。算法的优点是其简洁性,它无需记录当前所有连接的状态,所以它是一种无状态调度。缺点:是不考虑每台服务器的处理能力。

(2) wrr: weight round robin :加权轮询(以权重之间的比例实现在各主机之间进行调度) 

由于每台服务器的配置、安装的业务应用等不同,其处理能力会不一样。所以,我们根据服务器的不同处理能力,给每个服务器分配不同的权值,使其能够接受相应权值数的服务请求。

(3) sh : source hashing : 源地址hash实现会话绑定sessionaffinity  

将同一客户端的请求发给同一个real server,源地址散列调度算法正好与目标地址散列调度算法相反,它根据请求的源IP地址,作为散列键(Hash Key)从静态分配的散列表找出对应的服务器,若该服务器是可用的并且没有超负荷,将请求发送到该服务器,否则返回空。它采用的散列函数与目标地址散列调度算法的相同。它的算法流程与目标地址散列调度算法的基本相似,除了将请求的目标IP地址换成请求的源IP地址。

(4) dh : destination hashing : 目标地址hash

将同样的请求发送给同一个server,一般用于缓存服务器,简单的说,LB集群后面又加了一层,在LB与realserver之间加了一层缓存服务器,当一个客户端请求一个页面时,LB发给cache1,当第二个客户端请求同样的页面时,LB还是发给cache1,这就是我们所说的,将同样的请求发给同一个server,来提高缓存的命中率。

动态调度算法(6种):

(1) lc :leash-connection 最少连接 

把新的连接请求分配到当前连接数最小的服务器,最小连接调度是一种动态调度短算法,它通过服务器当前所活跃的连接数来估计服务器的负载均衡,调度器需要记录各个服务器已建立连接的数目,当一个请求被调度到某台服务器,其连接数加1,当连接中止或超时,其连接数减一,在系统实现时,我们也引入当服务器的权值为0时,表示该服务器不可用而不被调度。此算法忽略了服务器的性能问题,有的服务器性能好,有的服务器性能差,通过加权重来区分性能,所以有了下面算法wlc。
简单算法:active*256+inactive (谁的小,挑谁)

(2) wlc :加权最少连接  

加权最小连接调度算法是最小连接调度的超集,各个服务器用相应的权值表示其处理性能。服务器的缺省权值为1,系统管理员可以动态地设置服务器的权限,加权最小连接调度在调度新连接时尽可能使服务器的已建立连接数和其权值成比例。由于服务器的性能不同,我们给性能相对好的服务器,加大权重,即会接收到更多的请求。
简单算法:(active*256+inactive)/weight(谁的小,挑谁)
(3) sed :最少期望延迟 
说明:不考虑非活动连接,谁的权重大,我们优先选择权重大的服务器来接收请求,但会出现问题,就是权重比较大的服务器会很忙,但权重相对较小的服务器很闲,甚至会接收不到请求,所以便有了下面的算法nq。
基于wlc算法,简单算法:(active+1)*256/weight (谁的小选谁)
(4) nq :never queue 永不排队   
说明:在上面我们说明了,由于某台服务器的权重较小,比较空闲,甚至接收不到请求,而权重大的服务器会很忙,所此算法是sed改进,就是说不管你的权重多大都会被分配到请求。简单说,无需队列,如果有台real server的连接数为0就直接分配过去,不需要在进行sed运算。
(5)  LBLC :基于局部性的最少连接  
说明:基于局部性的最少连接算法是针对请求报文的目标IP地址的负载均衡调度,主要用于Cache集群系统,因为Cache集群中客户请求报文的目标IP地址是变化的,这里假设任何后端服务器都可以处理任何请求,算法的设计目标在服务器的负载基本平衡的情况下,将相同的目标IP地址的请求调度到同一个台服务器,来提高服务器的访问局部性和主存Cache命中率,从而调整整个集群系统的处理能力。
(6) LBLCR :基于局部性的带复制功能的最少连接   
说明:基于局部性的带复制功能的最少连接调度算法也是针对目标IP地址的负载均衡,该算法根据请求的目标IP地址找出该目标IP地 址对应的服务器组,按“最小连接”原则从服务器组中选出一台服务器,若服务器没有超载,将请求发送到该服务器;若服务器超载,则按“最小连接”原则从这个集群中选出一台服务器,将该服务器加入到服务器组中,将请求发送到该服务器。同时,当该服务器组有一段时间没有被修改,将最忙的服务器从服务器组中删除, 以降低复制的程度。

注:LVS默认调度算法是 wlc 。

时间: 2024-09-30 10:32:47

lvs 理论2--算法的相关文章

张正友标定算法理论及算法实现

张正友标定算法理论及算法实现 理论基础 1999年,微软研究院的张正友提出了基于移动平面模板的相机标定方法.此方法是介于传统标定方法和自标定方法之间的一种方法,传统标定方法虽然精度高设备有较高的要求,其操作过程也比较繁琐,自标定方法的精度不高,张正友标定算法克服了这两者的缺点同时又兼备二者的优点,因此对办公.家庭的场合使用的桌面视觉系统(DVS)很适合. 设三维世界中坐标的点为:和二维相机平面坐标的点为: 为方便运算,模板被定义在世界坐标系中与X-y平面平行(即Z=0)的平面上,为模板平面上点的

lvs 理论1

LVS 理论知识 Lvs ,集群技术,采用IP负载均衡技术和基于内容请求分发技术.调度器具有和好的吞吐率,将请求均衡的转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的.高可用的虚拟服务器. Lvs 主要组成:负载调度器 对外的前端机 服务器池 真正执行请求的服务器 共享存储 为服务器池提供一个共享的存储器,使服务器池具有相同的内容,提供相同的服务 VS/NAT (virtual server/ network address translation) 在

lvs 理论3

LVS理论 LVS ( linux virtual server ) ,linux 虚拟服务器,是一个虚拟的服务器集群系统,实现一个高性能,高可用的服务器,具有良好的可伸缩性,可靠性和可管理性. LVS 集群采用IP 负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率,将请求均衡的转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障. 虚拟服务器是负载均衡体系的基本架构,它分两层结构:转发器(Director)和真实服务器 (1)客户端访问集群的vip,请求web服务.(请求报文:源

分享《自然语言处理理论与实战》PDF及代码+唐聃+《深入浅出Python机器学习》PDF及代码+段小手+《深度学习实践:计算机视觉》PDF+缪鹏+《最优化理论与算法第2版》高清PDF+习题解答PDF+《推荐系统与深度学习》PDF及代码学习

<自然语言处理理论与实战>高清PDF,362页,带书签目录,文字可以复制:配套源代码.唐聃等著. <大数据智能互联网时代的机器学习和自然语言处理技术>PDF,293页,带书签目录,文字可以复制,彩色配图.刘知远等著.  下载: https://pan.baidu.com/s/1waP6C086-32_Lv0Du3BbNw 提取码: 1ctr <自然语言处理理论与实战>讲述自然语言处理相关学科知识和理论基础,并介绍使用这些知识的应用和工具,以及如何在实际环境中使用它们.由

深度学习数学《矩阵分析与应用第2版》资料+《最优化理论与算法第2版》电子书资料+《人工智能一种现代的方法第3版》资料学习

理性模型的建模和算法,经验模型的决策建模和算法,构成了目前人工智能的基础,基于学习反馈的模型构成了它的进化.学习人工智能,必须有较好的数学基础. <矩阵分析与应用第2版>电子书中总结了大量线性代数的知识,是一本很不错的书,数学专业可以跳过,主要是给工科生用的.归纳了不少论文中的解法,是做信号处理的一本很不错的工具书,建议认真学习,做电子笔记,对书的重点内容要好好研究. <矩阵分析与应用第2版>系统.全面地介绍矩阵分析的主要理论.具有代表性的方法及一些典型应用,包括矩阵代数基础.特殊

Lvs 理论知识和实践

    LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统.本项目在1998年5月由章文嵩博士成立,是中国国内最早出现的自由软件项目之一. LVS集群采用IP负载均衡技术和基于内容请求分发技术.调度器具有很好的吞吐率,将请求均衡地转移到不同的服务器上执行,且调度器自动屏蔽掉服务器的故障,从而将一组服务器构成一个高性能的.高可用的虚拟服务器.整个服务器集群的结构对客户是透明的,而且无需修改客户端和服务器端的程序.为此,在设计时需要考虑系统的

集群——LVS理论(转)

原文:http://caduke.blog.51cto.com/3365689/1544229 当单个服务器性能 不能满足日益增多访问流量时,服务器的扩展策略: Scale Up :向上扩展,提升单个物理主机的性能,比如增加CPU.内存等. Scale Out:向外扩展,将相互依赖的服务器(LAMP等)做层次上的划分,然后将各个层次的服务器分别安装在不同的层次的物理主机上.当哪个层次的服务器无法承受压力时只要增加其层次的主机即可. 划分层次的过程也叫做解耦的过程,也就是将此程序之间的耦合度.不同

负载均衡介绍、LVS介绍、算法介绍、LVS_NAT负载均衡模式配置

负载均衡 主流开源软件:LVS.keepalived.haproxy.nginx等:OSI层:LVS(4).nginx(7).haproxy(4.7):keepalived的负载均衡功能其实就是lvsLVS负载均衡可以分发除了80以外的其他端口通信,比如MySQL,而nginx仅仅支持http.https.mail: LVS介绍 最新版本:基于Linux内核2.6常见三种模式:NAT.DR.IP TunnelLVS架构中有一个核心角色叫分发器(Load Balance),用来分发用户的请求,还有

001.LVS简介及算法

一 LVS简介 1.1 LVS介绍 LVS是linux virtual server的简写linux虚拟服务器,是一个虚拟的服务器集群系统,可以再unix/linux平台下实现负载均衡集群功能. 使用LVS需要达到的目标是:通过LVS提供的负载均衡技术和Linux操作系统实现一个高性能.高可用的服务器群集,它具有良好的可靠性,可扩展性和可操作性,从而以低廉的成本实现最优的服务性能. 1.2 LVS主要作用 作用:提供一种廉价.有效.透明的方法,来扩展网络设备和服务器的负载带宽.增加吞吐量,加强网