LVS的12种调度算法详解

news2024/11/24 20:53:56

1.lvs调度算法类型

1.1静态方法

        仅根据算法本身进行调度,不考虑RS的负载情况

1.2动态方法

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

1.1lvs静态调度算法

1.1.1RR(轮询算法):

        roundrobin 轮询 RS分别被调度,当RS配置有差别时不推荐

1.1.2WRR(加权轮询算法):

        Weighted RR,加权轮询根据RS的配置进行加权调度,性能差的RS被调度的次数少

1.1.3SH(原地址哈希算法):

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

1.1.4DH(目标地址哈希算法):

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

1.2lvs动态调度算法 

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

1.2.1LC:least connections(最少链接算法)

         适用于长连接应用Overhead(负载值)=activeconns(活动链接数) x 256+ inactiveconns(非活 动链接数)

1.2.2WLC:Weighted LC(权重最少链接算法)

        默认调度方法Overhead=(activeconns x 256+inactiveconns)/weight

1.2.3SED:Shortest Expection Delay(最短期望延迟算法)

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

        但是,当node1的权重为1,node2的权重为10,经过运算前几次的调度都会被node2承接

1.2.4NQ:Never Queue(最少队列算法)

        如果有RS的连接数为0,就直接分配过去。第一轮均匀分配,后续SED

1.2.5LBLC:Locality-Based LC(基于局部的最少连接算法)

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

6、LBLCR:LBLC with Replication(带复制的基于局部的最少连接算法)

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

1.3在4.15版本以后新增的调度算法

1.3.1FO(Weighted Fai Over)调度算法

        在此FO算法中,遍历虚拟服务所关联的真实服务器链表,找到还未过载(未设置IP_VS_DEST_F OVERLOAD标志)的且权重最高的真实服务器,进行调度

        当服务器承接大量链接,我们可以对此服务器进行过载标记(IP_VS_DEST_F OVERLOAD),那么vs调度 器就不会把链接调度到有过载标记的主机中。

1.3.2OVF(Overflow-connection)调度算法

        基于真实服务器的活动连接数量和权重值实现。将新连接调度到权重值最高的真实服务器,直到其活动 连接数量超过权重值,之后调度到下一个权重值最高的真实服务器,在此OVF算法中,遍历虚拟服务相关联的真实服务器链表,找到权重值最高的可用真实服务器。一个可用的真实服务器需要同时满足以下条件:

        1.未过载(未设置IP_VS_DEST_F OVERLOAD标志)

        2.真实服务器当前的活动连接数量小于其权重值

        3.其权重值不为零

# 查看支持的算法
[root@haproxy boot]# cd
[root@haproxy ~]# cd /boot/

[root@haproxy boot]# ls
config-5.14.0-162.6.1.el9_1.x86_64
efi
grub2
initramfs-0-rescue-4748448370474b72a05bc780ede57860.img
initramfs-5.14.0-162.6.1.el9_1.x86_64.img
initramfs-5.14.0-162.6.1.el9_1.x86_64kdump.img
loader
symvers-5.14.0-162.6.1.el9_1.x86_64.gz
System.map-5.14.0-162.6.1.el9_1.x86_64
vmlinuz-0-rescue-4748448370474b72a05bc780ede57860
vmlinuz-5.14.0-162.6.1.el9_1.x86_64

[root@haproxy boot]# less config-5.14.0-162.6.1.el9_1.x86_64

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2036120.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Linuxu-引导过程与服务控制

系列文章目录 提示:仅用于个人学习,进行查漏补缺使用。 1.Linux介绍、目录结构、文件基本属性、Shell 2.Linux常用命令 3.Linux文件管理 4.Linux 命令安装(rpm、install) 5.Linux账号管理 6.Linux文件/目录权限管理 7.Linux磁盘管理/文件系统 8.Linu…

阿里云Serverless 框架产品体验

阿里云Serverless 框架产品体验 首先,极简!Serverless 框架的基本概念Serverless 框架的主要特点Serverless 框架的应用场景阿里云Serverless框架的优势部署过程中的问题竞争力与推荐度云产品体验未来展望 首先,极简! 一键部署过…

嵌入式day26

进程创建好之后: 1.任务 --- 子进程做的事情和父进程差不多 //子承父业 多任务 2.shell 程序 ---bash 父进程创建出子进程之后,子进程做的事情与父进程完全不同 //自力更生 //进程运行时,典型的应用场景 exec int exec l(const char *pa…

QtExa001自动包装流水线的框架设计vs2019QT

QtExa001自动包装流水线的框架设计 工程代码: https://download.csdn.net/download/txwtech/89636815https://download.csdn.net/download/txwtech/89636815 主界面: 设置:进行参数配置,保存ini文件 调试:tcp/ip&…

SLAM相关数据集下载地址

参考1: SLAM公开数据集_suland数据集下载-CSDN博客 https://www.codetd.com/article/11675863 (重庆大学, 机器人与智慧系统实验室 (Robot Intelligence System-LAB)) SLAM 14讲 单目稠密重建的数据集 ch13 用于单目稠密重建的数据集, remode_test_da…

解决中国式报表难题,这款工具真的免费且好用

一、概述 报表,对于任何企业或组织来说都不陌生。它将复杂的数据信息以简洁明了的方式展现出来,帮助决策者快速理解数据背后的趋势和问题。无论是财务报表、销售报表,还是库存报表,都是日常工作中不可或缺的部分。然而&#xff0…

ISO 26262中的失效率计算:IEC 61709-Clause 6_Integrated semiconductor circuits

目录 概要 1 元器件分类和基准温度 2 Digital CMOS and bipolar analog ICs 失效率的计算 2.1 失效率预测模型 2.2 电压应力系数 2.2.1 电压应力系数计算模型 2.2.2 电压应力系数计算 2.3 温度应力系数 2.3.1 温度应力系数计算模型 2.3.2 温度应力系数计算 3 Other …

学习记录第二十四天

exec函数族 exec函数族是一系列在Linux系统中用于替换当前进程映像的系统调用。这些函数允许一个进程加载并执行一个新的程序,同时保留当前进程的进程ID和其他属性。exec函数族的成员包括多种函数,它们在语法和功能上有所不同,以适应不同的使…

【QT】静态库与动态库

文章目录 开始之前一、静态库(static Library)定义使用场景特点程序示例 二、动态库(dynamic Library)定义使用场景特点。程序示例第二种调用 开始之前 测试环境:Qt 5.15.2 Based on Qt 6.4.3(MSVC 2019, x86_64) 操作系统:Windows11 专业版 编程语言&am…

vue打包更新packge.json版本号

VUE项目打包自动更新版本号 此方法只针对 Vue 如果使用其他框架,可以此参照作为参考 一、先看效果 二、创建 buildVersion.js 文件 文件内容 目前只针对3位版本号 递增规则是 每次更新 加一次小版本,10次小版本向前递增一个版本。如:1.0.9 递…

【自用】Python爬虫学习(一):爬虫基础与四个简单案例

Python爬虫学习(一) 基础知识四个简单的爬虫案列1.使用urlopen获取百度首页并保存2.获取某翻译单词翻译候选结果3.获取某网页中的书名与价格4.获取某瓣排名前250的电影名称 基础知识 对于一个网页,浏览器右键可以查看页面源代码,…

通过xshell使用密钥连接阿里云服务器

目录 步骤1:创建密钥对 步骤2:连接服务器 步骤3:连接服务器 连接阿里云服务器有几种方式,例如有密码进行连接,但是密码连接安全风险较大,所以我们选择密钥方式进行连接。操作简单且安全性高 步骤1&…

Element-plus中的el-input无法输入空格和Enter事件无法触发问题

摘要 因为在项目中经常遇到但是又经常忘记是什么原因&#xff0c;记录一下留着自用。 原因&#xff1a;在 el-input 外层包了一层 el-tooltip 导致的。 解决&#xff1a;设置 el-tooltip 的 trigger-keys 属性为空数组&#xff0c;<el-tooltip v-bind"$tooltipConfig&…

【测评】最好用的素材管理软件?3素材管理神器简单对比丨eagle、billfish、千鹿设计助手总有一款适合你

当电脑中的文件堆积如山&#xff0c;寻找特定素材变得耗时费力时&#xff0c;一款优秀的素材管理软件就显得尤为重要。本文将为您介绍三款备受推崇的素材管理工具&#xff1a;Eagle、Billfish和千鹿设计助手&#xff0c;它们各具特色&#xff0c;能有效提升您的工作效率。 今天…

26-原理图的PDF的输出

1. 2.输出完成后&#xff0c;查看

UDP协议与TCP协议的具体区别

在网络通信中&#xff0c;传输层协议扮演着至关重要的角色&#xff0c;它们负责将数据从发送端安全、高效地传输到接收端。UDP&#xff08;用户数据报协议&#xff09;和TCP&#xff08;传输控制协议&#xff09;作为两种最基础的传输层协议&#xff0c;各自在不同的应用场景中…

力扣45:跳跃游戏2题解

题目链接&#xff1a; https://leetcode.cn/problems/jump-game-ii/description/?envTypestudy-plan-v2&envIdtop-100-liked 参考的代码随想录里面的题解&#xff1a; 题目 难度 中等&#xff0c;标的是中等难度&#xff0c;而且我之前做过这道题&#xff0c;但是我没写…

LoRA微调大语言模型Bert

LoRA是一种流行的微调大语言模型的手段&#xff0c;这是因为LoRA仅需在预训练模型需要微调的地方添加旁路矩阵。LoRA 的作者们还提供了一个易于使用的库 loralib&#xff0c;它极大地简化了使用 LoRA 微调模型的过程。这个库允许用户轻松地将 LoRA 层添加到现有的模型架构中&am…

springBoot整合xxl-job开箱即用

一、搭建xxl-job任务调用中心 1. 下载地址&#xff1a; xxl-job: 一个分布式任务调度平台&#xff0c;其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线&#xff0c;开箱即用。 git拉取后&#xff0c;本地打开&#xff0c;并进…

haproxy总结与实验

一、负载均衡 1.1 简述负载均衡 在高并发的业务场景下&#xff0c;解决单个节点压力过大&#xff0c;导致Web服务响应过慢&#xff0c;特别是严重的情况下导致服务瘫痪&#xff0c;无法正常提供服务的问题&#xff0c;而负载均衡的目的就是为了维护系统稳定可靠。负载均衡&…