首页 > 编程语言 >LVS调度算法总结

LVS调度算法总结

时间:2023-10-07 15:25:46浏览次数:33  
标签:权重 LVS RS 调度 算法 服务器 连接

 

ipvs scheduler:根据其调度时是否考虑各RS当前的负载状态,分为两种:静态方法和动态方法

静态方法:
仅根据算法本身进行调度

1、RR:roundrobin,轮询。较常用

2、WRR:Weighted RR,加权轮询。较常用

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

4、DH:Destination Hashing,目标地址哈希。第一次轮询调度至RS,后续将发往同一个目标地址的请求始终转发至第一次挑中的RS,典型使用场景是正向代理缓存场景中的负载均衡,如: Web缓存

动态方法
主要根据每RS当前的负载状态及调度算法进行调度Overhead=value 较小的RS将被调度
活动连接:连接上并在传输数据,活动链接压力等于非活动链接的256倍
非活动链接:连接上但没有传输数据

1、LC:least connections最少连接。将新的连接请求,分配给连接数最少的服务器,适用于长连接应用
Overhead=activeconns*256+inactiveconns
如:服务器 RS1 RS2
活动/非活动连接数
RS1:10/100
RS2: 20/0
压力值 :
RS1: 10x256+100 = 2660
RS2: 20*256+ 0 = 5120
RS1服务器压力值更小,更应该被分配新的访问请求。

2、WLC:Weighted LC,加权最少连接。默认调度方法,较常用
Overhead=(activeconns*256+inactiveconns)/weight
特殊的最少连接算法,权重越大承担的请求数越多

3、SED:Shortest Expection Delay,最短期望延迟。初始连接高权重优先,只检查活动连接,而不考虑非活动连接
Overhead=(activeconns+1)*256/weight
特殊的WLC算法,为了解决连接数(访问)是0的情况,来确定分给哪台服务器

4、NQ:Never Queue,永不排队。特殊的SED算法,无需等待,如果有真实服务器的连接数等于0那就直接分配不需要运算,第一轮均匀分配,后续SED

5、LBLC:Locality-Based LC,动态的DH算法。使用场景:根据负载状态实现正向代理,实现Web Cache等

6、LBLCR:LBLC with Replication,带复制功能的LBLC,解决LBLC负载不均衡问题,从负载重的复制到负载轻的RS,实现Web Cache等

内核版本 4.15 版本后新增调度算法:FO和OVF
1、FO(Weighted Fail Over)调度算法,在此FO算法中,遍历虚拟服务所关联的真实服务器链表,找到还未过载(未设置IP_VS_DEST_F_OVERLOAD标志)的且权重最高的真实服务器,进行调度,属于静态算法

2、OVF(Overflow-connection)调度算法,基于真实服务器的活动连接数量和权重值实现。将新连接调度到权重值最高的真实服务器,直到其活动连接数量超过权重值,之后调度到下一个权重值最高的真实服务器,在此OVF算法中,遍历虚拟服务相关联的真实服务器链表,找到权重值最高的可用真实服务器,属于动态算法

一个可用的真实服务器需要同时满足以下条件:
未过载(未设置IP_VS_DEST_F_OVERLOAD标志)
真实服务器当前的活动连接数量小于其权重值
其权重值不为零

 

标签:权重,LVS,RS,调度,算法,服务器,连接
From: https://www.cnblogs.com/tanll/p/17746372.html

相关文章

  • nginx负载均衡中常见的算法及原理有哪些?
     #1)轮询(round-robin) 轮询为负载均衡中较为基础也较为简单的算法,它不需要配置额外参数。假设配置文件中共有台服务器,该算法遍历服务器节点列表,并按节点次序每轮选择一台服务器处理请求。当所有节点均被调用过一次后,该算法将从第一个节点开始重新一轮遍历。 特点:由于......
  • Lnton羚通视频分析算法开发平台监控区域自动识别人员闯入行为 危险区域闯入算法预警系
    Lnton羚通的算法算力云平台是一款卓越的解决方案,具备出众的特点。它提供高性能、高可靠性、高可扩展性和低成本的优势,使用户能够高效地执行复杂计算任务。此外,该平台还提供广泛的算法库和工具,并支持用户上传和部署自定义算法,以增强平台的灵活性和个性化能力。危险区域闯入识别预警......
  • ClickHouse选择正确的join算法
    支持的JOIN类型 JOIN算法概览clickhouse提供了6种JOIN算法:1.直接连接(Directjoin)2.哈希连接(Hashjoin)3.并行哈希连接(Parallelhashjoin)4.优雅哈希连接(Gracehashjoin)5.全排序合并连接(Fullsortingmergejoin)6.部分合并连接(Partialmergejoin) 这......
  • 输入若干个数值存入数组中,采用冒泡算法进行升序或降序排序
    [12:38:09root@centos8~]#bashsort.shbeforesort:1475626459133973060324422175901602255661082520888121022092421146668557255975852542867817400aftersort:3060328678264592442220888175901740016022147561339711466108259758924272......
  • 探索程序员需要掌握的算法?
    文章目录一:引言二:常见算法介绍三:重点算法总结......
  • 10.7算法
    将有序数组转换为二叉搜索树给你一个整数数组nums,其中元素已经按升序排列,请你将其转换为一棵高度平衡二叉搜索树。高度平衡二叉树是一棵满足「每个节点的左右两个子树的高度差的绝对值不超过1」的二叉树。 示例1:输入:nums=[-10,-3,0,5,9]输出:[0,-3,9,-10,null,5]......
  • ATPG的D算法介绍
    ATPG算法实现测试向量自动化生成的算法,其中包含D算法、PODEM算法和FAN算法等。D算法为测试某一节点单固定故障,将其故障信息传递反映到输出中体现出来,我们把用穷举得出正确路径的方法称之为D算法。每个节点分为四种状态,1、0、X、D和D(-)。其中,X为0或1,意思是该节点值不影响最终......
  • 聊聊前端算法复杂度
    算法复杂度前端开发一般:重时间轻空间什么是复杂度程序执行时需要的计算量和内存空间(和代码简洁度无关)复杂度是数量级,不是具体的数字一般针对一个具体的算法,而非一个完整的系统时间复杂度程序执行时需要的计算量(cpu)O(1)一次就够"可数的",和输入量无关,无论输入量......
  • manacher 回文串处理算法
    忘了具体什么时候写的,应该是2023.8初这算是个算法复习,因为我太菜了以前学的都不会了。manacher回文串处理算法其实这个我已经看两天了却一直没有看懂,觉得自己很愚笨,结果发现是自己一直不想去理解吧,然后今天仔细研究了以后发现就是那么个东西,没有什么很深奥的东西,那就自己整......
  • 10 对比不同的优化算法
    importnumpyasnpimportmatplotlib.pyplotaspltimportscipy.ioimportmathimportsklearnimportsklearn.datasetsfromopt_utilsimportload_params_and_grads,initialize_parameters,forward_propagation,backward_propagationfromopt_utilsimportcomp......