F5 LTM 知识点和实验 3-负载均衡中的负载算法
第三章:负载均衡中的负载算法
负载算法分为静态的和动态的。静态的连接分布模式是预先设置的,流量处理中是不会变化的,动态的连接分布模式也是预先设置的,但是连接分布会根据某些因素的改变而调整。
轮询(round robin):
将新建的链接逐一转发到每一个后端服务器上。静态的。

比率轮询(ratio):
可以根据赋予的权重将流量分不到后端服务器上,ratio可以根据member或者node为单位进行赋予。静态的。

最小连接数(least connnection):
将新建的链接分发到当前连接最少的后端。对于长连接场景有很好的均衡效果,随着时间推移,设备的连接数会比较均匀。

最快(fastest):
将新连接分配给当前拥有最少未完成的第7层请求的应用节点,如果关联的vs同时不具备tcp和7层的profile,就会使用最少连接算法,进行负载。此方式对于流量分配到响应时间可能不同的设备非常有用。

最少会话(least sessions):
将新建连接转发到持久化表中最少记录的后端服务器上,这种方式必须关联persistence的profile,且persistence的profile必须使用持久化表。

加权最少连接数(weight least connection):
要求每个成员或节点分配一个非零连接限制,然后,请求被分配到使用其容量的最小百分比设备,其中容量是当前连接数与允许的最大连接数的比率。

观察(observed):
此算法计算一个动态比率(ratio)值,这个值基于四层连接数,bigip系统每秒钟都会统计每个后端的连接数,并分配一个比率值,当有一个新连接,会根据分配的比率值来进行连接分配,优选比率值最大的后端。

预测(predictive):
该算法对服务器性能随时间的推移进行排名,并优选性能有所提高的后端服务器,bigip系统根据一段时间内到每个成员的四层连接数计算动态比率值,每秒钟,bigip系统会观察到每个后端服务器的四层连接数,并与之前的连接数进行对比,以确定性能趋势,并为每一个成员分配一个比率值,如果连接数保持不变,则系统不更改比率值,如果连接数增加,则比率值减少,反之增加,新建连接会根据比率值进行分配,优选比率值最大的后端服务器。

动态比率(dynamic ratio):
此算法专门用于RealNetwork RealSystem服务器平台,配置了windows management instrumentation的windows平台或者配置了snmp代理的服务器。
优先组(priority group ):
优先组的概念允许你在单个池子内定于主要成员和备用成员。你需要对组进行赋值,同时要配置这个组最小成员数,当小于可用成员小于这个数的时候,会启用备用组。
举个例子:一个pool有6个member。3个在组10,3个在组5,同时配置最少可用成员为2,当接收到流量的时候,只有组10的3个成员会收到流量,组5的三个成员不会被分配流量。

如果此时组10内的两个成员健康检测失败或者手工配置为不可用,bigip系统将会激活下一个低优先级的组,这里就是组5的三个成员,此时流量将会分配到4个后端服务器上。

一般优先组使用有两种场景,第一种,在主用出现大量故障的情况时,需要启用道歉服务器。第二种,如果后端服务器被多种业务使用,比如同一个服务器同时具备web和ftp程序,正常时候服务器承载ftp,如果优先组的web服务器大量故障,承载了ftp的服务器被激活,也可以充当web服务器。
优先组取值范围:0-4294967295。
备用主机( fallback host):
如果池中的成员都不能正常提供服务了,vs将会直接发送一个http回应报文到客户端,将他们重定向到其他的主机上,比如道歉服务器,备用主机的能力是在http profile中配置,且只能应用在http场景里。

实验:
配置优先组:
1、清除http_pool的统计值

2、给http_pool配置少于2个成员时候,激活优先组
- 路径:Local Traffic ›› Pools : Pool List ›› http_pool,member tab ›› Priority Group Activation
- tmsh:
modify ltm pool http_pool min-active-members 2

3、更改http_pool的所属组
| memebr | ratio | priority group |
|---|---|---|
| 172.16.20.1:80 | 1 | 0 |
| 172.16.20.2:80 | 2 | 4 |
| 172.16.20.3:80 | 3 | 4 |
- 路径:Local Traffic ›› Pools : Pool List ›› http_pool ›› Current Members
- tmsh:
modify ltm pool http_pool members modify { 172.16.20.2:http { priority-group 4 } }
modify ltm pool http_pool members modify { 172.16.20.3:http { priority-group 4 } }

4、在浏览器中输入10.10.10.100,刷新10次,看统计信息。

5、清除http_pool的统计值,并把172.16.20.2:80这个rs配置为disable,在浏览器中输入10.10.10.100,刷新10次,看统计信息。

6、将172.16.20.3:80这个rs配置为disable,确保流量完全打到172.16.20.1这台机器上,并给http_vs添加基于source_addr的持久化配置。在浏览器中输入10.10.10.100并刷新10次。此时在将172.16.20.2和3配置成enable,在浏览器中请求10.10.10.100,看数据流达到那台rs上。


7、删除http_vs的持久化配置
实验预期:
将优先级组激活设置为少于2个成员并启用所有池成员,172.16.20.1:80应该没有收到流量。流量以2:3的比例分配给成员172.16.20.2和172.16.20.3。
如果将优先级组激活设置为少于2个成员,并且禁用池成员172.16.20.2:80,则激活下一个较低优先级组(0)。然后将流量按1:3的比例分配给成员172.16.20.1和172.16.20.3。
当向http_vs添加源地址关联持久性配置文件,并强制连接进行负载平衡并持久化到最低优先级组(172.16.20.1:80)中的池成员时,即使在重新启用其他两个成员并且池中再次有两个成员可用之后,仍然持久化到172.16.20.1:80,并且将继续这样转发,直到持久性记录过期。
配置比率负载均衡:
将负载均衡算法从Ratio(member)调整成为Ratio(node),调整node节点172.16.20.3的权重为5.

2、在网页中请求10.10.10.100,刷新10次,查看http_pool的统计值,
实验预期:
由于优先级组仍然在http_pool上配置,因此只需激活两个池成员即可满足最小值。成员172.16.20.2:80和172.16.20.3:80在最高优先级组中,并且是BIG-IP系统负载平衡连接的唯一成员。但是,即使池成员172.16.20.2:80的比率为2,池成员172.16.20.3:80的比率为3,BIG-IP系统也会忽略这些比率,而使用关联节点上配置的比率。节点172.16.20.3的比值为5,节点172.16.20.2的比值为1。因此,地址172.16.20.3:80的连接数大约是地址172.16.20.2:80的连接数的5倍.
测试连接限制对优先组激活的影响
1、清除http_pool的统计值,调整172.16.20.3:80的connection limit值为3.

2、在浏览器中请求10.10.10.100多次。
3、查看统计值。
4、调整http_pool的算法为轮询算法,并关闭优先组。
5、设置172.16.20.3:80的connection limit值为0
6、调整http_pool的成员,优先组的数值为0,ratio均为1.
实验预期:
在对池成员172.16.20.3:80设置连接限制之前,流量只在优先级组4中的两个成员172.16.20.2:80和172.16.20.3:80之间进行负载分担。到池成员172.16.20.3:80的最大并发连接数远远超过3。
在将池成员172.16.20.3:80的连接限制设置为3后,流量在所有池成员之间进行负载均衡,因为该池成员将周期性地达到其最大连接数,从而触发激活优先级组0,其中172.16.20.1:80是其成员。激活后,BIG-IP系统在所有三个池成员之间负载均衡流量,直到172.16.20.3:80上的连接数低于3。当查看http_pool的统计信息时,到172.16.20.3:80的最大并发连接数应该是3。到其他池成员的最大并发连接数将可能比3大。
相关文章:
F5 LTM 知识点和实验 3-负载均衡中的负载算法
第三章:负载均衡中的负载算法 负载算法分为静态的和动态的。静态的连接分布模式是预先设置的,流量处理中是不会变化的,动态的连接分布模式也是预先设置的,但是连接分布会根据某些因素的改变而调整。 轮询(round robi…...
多线程(JavaEE初阶系列2)
目录 前言: 1.什么是线程 2.为什么要有线程 3.进程与线程的区别与联系 4.Java的线程和操作系统线程的关系 5.多线程编程示例 6.创建线程 6.1继承Thread类 6.2实现Runnable接口 6.3继承Thread,使用匿名内部类 6.4实现Runnable接口,使…...
Ubuntu20.04点Ubuntu software没反应,打不开的解决方案(Ubuntu笔记)
首先检查Ubuntu Software的状态,在终端输入:systemctl status snap.ubuntu-software.ubuntu-software.service 如果状态显示为inactive,则需要启动snap.ubuntu-software.ubuntu-software.service,在终端输入:sudo sys…...
力扣1114.按序打印-----题目解析
题目描述 解析: class Foo {public int a 0;public Foo() {}public void first(Runnable printFirst) throws InterruptedException {// printFirst.run() outputs "first". Do not change or remove this line.printFirst.run();a;}public void second…...
Centos7.9安全部署_防火墙配置_端口配置_协议配置_IP配置_全部亲测---记录022_大数据工作笔记0182
在我们平时搭建大数据平台的时候,由于防火墙的限制,会让搭建集群的时候,报各种错误,但是,有些网络环境要求比较严格的地方,防火墙又要求必须要放开,尤其是.. 有些网络环境会安全组进行定时扫描,说实话,我们用的很多开源软件,一般都是低版本的话都有漏洞,但是升级的话又会很容易…...
Tik Tok海外公会是什么?
在数字社交媒体领域,TikTok已成为全球性的热门应用之一,印尼市场也不例外。作为全球第四人口最多的国家,印尼的年轻人口众多,是一个极具潜力的市场。对于希望在印尼市场进行TikTok公会申请的机构来说,了解市场发展趋势…...
elasticsearch批量导入问题
Testvoid bulkIndex() throws IOException{List<Product> products new ArrayList<Product>();products.add(new Product("香烟",135,1)); // products.add(new Product("瓜子",154,2)); // products.add(new Product("矿…...
SAP安装笔记
1、准备安装介质,SWPM10SP25,51050829_NW750_JavaExport、SAP_HANA_CLIENT、kernel放到/sapcd/NetWeaver目录下 进入SWPM10SP25执行./sapinst安装 2、待出现 “Open your browser and paste the following URL address to access the G…...
速速收藏!程序员副业赚钱的8种模式
程序员副业赚钱的方式有很多,我总结了程序员兼职赚钱,增加收入的八种模式,希望能够给在迷茫的程序员一点参考! 投资理财 很多程序员多少都会买买基金、炒炒股作为一个小副业,由于程序员大多是理科生,有比…...
2、基于redis实现分布式锁
目录 2.1. 基本实现2.2. 防死锁2.3. 防误删2.4. redis中的lua脚本2.4.1 redis 并不能保证2.4.2 lua介绍 2.5. 使用lua保证删除原子性 2.1. 基本实现 借助于redis中的命令setnx(key, value),key不存在就新增,存在就什么都不做。同时有多个客户端发送setn…...
【问题记录】Ubuntu 22.04 环境下,程序报:段错误(核心已转储)怎么使用 core 文件和GDB调试器 解决?
目录 环境 问题情况 解决思路 原因分析 解决方法 番外知识 环境 VMware Workstation 16 Pro (版本:16.1.2 build-17966106)ubuntu-22.04.2-desktop-amd64 问题情况 本人在运行百万并发的服务端程序时,程序运行报:…...
9 Linux实操篇-实用指令
9 Linux实操篇-实用指令 文章目录 9 Linux实操篇-实用指令9.1 指定和修改运行级别-init/systemctl9.2 找回root密码9.3 Linux的指令说明9.3 帮助类-man/help9.4 文件目录类-pwd/ls/cd/mkdir/...9.5 时间日期类-date/cal9.6 搜索查找类-find/locate/which/grep9.7 压缩和解压类-…...
Hbase基础概念
HBase 一、HBase的数据模型1.HBase数据存储结构2.HBase存储概念3.HBase基本架构 二、HBase Shell1.DDL(Data Definition Language)1.namespace2.table 2.DML(Data Manipulation Language)1.写入数据2.读取数据3.删除数据 三、HBase组成架构1. Master架构…...
JTS-Angle角度类
目录: 获取AB连线与正北方向的角度求距离此点一定距离、一定夹角的点经纬度判断point点 在线段startPoint-etartPoint的左侧或者右侧米转换为弧度弧度转换为米 定义Point点 public class LatLngPoint {final static double RC 6378137;final static double RJ …...
pytest---环境切换(base-url)
前言 前面小编介绍了如何通过pytest的插件来实现自动化测试的环境的切换,当时使用的方法是通过钩子函数进行获取命令行参数值,然后通过提前配置好的参数进行切换测试环境地址,今天小编再次介绍一种方法,通过pytest的插件ÿ…...
linux跑代码,程序终止了,但资源没有释放。
linux跑代码,程序终止了,但资源没有释放。 程序终止,但是资源没有释放. kill -9 5062完成。 linux终止进程...
数据结构--线性表2-1
目录 一、线性结构的定义 二、线性表的表示 三、顺序表的实现(或操作) 1、修改: 2、插入: 四、顺序表的运算效率分析:时间效率分析: 一、线性结构的定义 若结构时非空有限集,则有且仅有一个…...
网访问内网机器:基于frp的内网穿透
随缘更新些我自己的博客网站里的文章吧 因为经常需要远程访问自己的机器,所以写一个博客记录一下 公网访问内网机器:基于frp的内网穿透 从公网中访问自己的私有设备向来是一件难事儿。 1. 为什么需要内网穿透? A. 计算机网络 如何在自己的机…...
【Spring框架】Spring读取与存储综合练习
练习 在 Spring 项⽬中,通过 main ⽅法获取到 Controller 类,调⽤ Controller ⾥⾯通过注⼊的⽅式调⽤ Service 类,Service 再通过注⼊的⽅式获取到 Repository 类,Repository 类⾥⾯有⼀个⽅法构建⼀个 User 对象,返…...
Python实现指定区域桌面变化监控并报警
在这篇博客中,我们将使用Python编程语言和一些常用的库来实现一个简单的区域监控和变化报警系统。我们将使用Tkinter库创建一个图形界面,允许用户选择监控区域,并使用OpenCV库进行图像处理和相似性比较,以检测区域内的变化&#x…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...
零门槛NAS搭建:WinNAS如何让普通电脑秒变私有云?
一、核心优势:专为Windows用户设计的极简NAS WinNAS由深圳耘想存储科技开发,是一款收费低廉但功能全面的Windows NAS工具,主打“无学习成本部署” 。与其他NAS软件相比,其优势在于: 无需硬件改造:将任意W…...
day52 ResNet18 CBAM
在深度学习的旅程中,我们不断探索如何提升模型的性能。今天,我将分享我在 ResNet18 模型中插入 CBAM(Convolutional Block Attention Module)模块,并采用分阶段微调策略的实践过程。通过这个过程,我不仅提升…...
DockerHub与私有镜像仓库在容器化中的应用与管理
哈喽,大家好,我是左手python! Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库,用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...
以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:
一、属性动画概述NETX 作用:实现组件通用属性的渐变过渡效果,提升用户体验。支持属性:width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项: 布局类属性(如宽高)变化时&#…...
(二)TensorRT-LLM | 模型导出(v0.20.0rc3)
0. 概述 上一节 对安装和使用有个基本介绍。根据这个 issue 的描述,后续 TensorRT-LLM 团队可能更专注于更新和维护 pytorch backend。但 tensorrt backend 作为先前一直开发的工作,其中包含了大量可以学习的地方。本文主要看看它导出模型的部分&#x…...
vue3 字体颜色设置的多种方式
在Vue 3中设置字体颜色可以通过多种方式实现,这取决于你是想在组件内部直接设置,还是在CSS/SCSS/LESS等样式文件中定义。以下是几种常见的方法: 1. 内联样式 你可以直接在模板中使用style绑定来设置字体颜色。 <template><div :s…...
Linux-07 ubuntu 的 chrome 启动不了
文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...
C++.OpenGL (10/64)基础光照(Basic Lighting)
基础光照(Basic Lighting) 冯氏光照模型(Phong Lighting Model) #mermaid-svg-GLdskXwWINxNGHso {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-GLdskXwWINxNGHso .error-icon{fill:#552222;}#mermaid-svg-GLd…...
高防服务器能够抵御哪些网络攻击呢?
高防服务器作为一种有着高度防御能力的服务器,可以帮助网站应对分布式拒绝服务攻击,有效识别和清理一些恶意的网络流量,为用户提供安全且稳定的网络环境,那么,高防服务器一般都可以抵御哪些网络攻击呢?下面…...
