LVS负载均衡对udp流量进行参数调整一例

news/2024/7/10 2:08:30 标签: lvs, 负载均衡, 运维

本文记录一套百万会话级的LVS软负载均衡系统,从加权最少链接均衡算法调整为源主机散列算法并增加会话保持时间的配置过程。

一、调整原由

业务侧为了提升平台的设备连接会话保持能力,希望将LVS软负载均衡系统的均衡算法从加权最少链接均衡算法wlc调整为源主机散列算法sh,并将会话保持时间从1秒增加到180秒。

二、调整分析

1、负载调度算法

LVS的lb_algo 是负载调度算法的选项,可以设置以下几种算法:

  1. rr(轮询调度算法):按照轮询的方式依次将请求调度到不同的服务器上,即每次选择下一个服务器进行调度。
  2. wrr(加权轮询算法):根据服务器的不同处理能力进行调度,权重大的服务器会收到更多的请求。
  3. lc(最少连接算法):动态地将网络请求调度到已建立的链接数最少的服务器上。
  4. wlc(加权最少连接算法):结合了最少连接和加权轮叫的算法,根据服务器的处理能力和当前连接数进行调度。
  5. lblc(基于局部性的最少连接算法):针对目标IP地址的负载均衡,主要用于Cache集群系统。
  6. sh(源主机散列算法):通过散列函数将源IP地址映射到不同的服务器上,以实现基于源IP地址的负载均衡
  7. dh(目标主机散列算法):通过散列函数将目标IP地址映射到不同的服务器上,以实现基于目标IP地址的负载均衡
2、会话保持时间

LVS的persistence_timeout 会话保持时间,主要作用是将来自同一个客户端IP的请求转发到同一个真实服务器(Real Server)的时间。通过设置persistence_timeout,可以在一定时间内保证所有来自同一个客户端的TCP请求都被发送到同一个真实服务器。这样可以确保会话的持续性,使得客户端和服务器之间的通信能够在同一台服务器上保持。

在设置的persistence_timeout 时间段内,当前IP地址下所有的TCP连接数据包都会被发送到同一个真实服务器。这样可以确保客户端与服务器之间的通信能够保持连续性,特别是在需要保持长时间会话的应用场景中,如数据库连接、文件传输等。

具体来说,设置多长的会话保持时间,主要还是根据后端会话的业务场景来定。

三、配置实操

1、原配置
[root@lvs-1 ~]# cat /etc/keepalived/keepalived.conf
! Configuration File for keepalived

global_defs {
   notification_email {
     acassen@firewall.loc
     failover@firewall.loc
     sysadmin@firewall.loc
   }
   notification_email_from Alexandre.Cassen@firewall.loc
   smtp_server 127.0.0.1
   smtp_connect_timeout 30
   router_id lvs231
   vrrp_skip_check_adv_addr
   vrrp_garp_interval 0.001
   vrrp_gna_interval 0.00001
}

vrrp_instance VI_1 {
    state MASTER
    interface ens192
    virtual_router_id 231
    priority 100
    advert_int 1
    authentication {
        auth_type PASS
        auth_pass 1111
    }
    virtual_ipaddress {
        192.168.1.231
    }
}


virtual_server 192.168.1.231 9007 {
    delay_loop 6
    lb_algo wlc
    lb_kind NAT

http://www.niftyadmin.cn/n/5360380.html

相关文章

Ray on ACK 实践探索之旅 - RayCluster 篇

作者:张杰、霍智鑫、行疾 什么是 Ray? Ray 是一个开源框架,专为构建可扩展的分布式应用程序而设计,旨在通过提供简单直观的 API,简化分布式计算的复杂性,让开发者能够便捷高效地编写并行和分布式 Python …

【MySQL】MySQL库

使用C/C语言链接MySQL 一、mysql connect二、mysql 接口介绍1. 初始化 mysql_init()2. 链接数据库 mysql_real_connect()3. 执行 mysql 命令 mysql_query()4. 获取执行结果 mysql_store_result()5. 释放空间5. 关闭 mysql 链接 mysql_close() 一、mysql connect 要使用C语言连…

如何使用Linux Archcraft结合内网穿透实现SSH远程连接

📑前言 本文主要是使用Linux Archcraft结合内网穿透实现SSH远程连接的文章,如果有什么需要改进的地方还请大佬指出⛺️ 🎬作者简介:大家好,我是青衿🥇 ☁️博客首页:CSDN主页放风讲故事 &#…

react 之 UseReducer

UseReducer作用: 让 React 管理多个相对关联的状态数据 import { useReducer } from react// 1. 定义reducer函数,根据不同的action返回不同的新状态 function reducer(state, action) {switch (action.type) {case INC:return state 1case DEC:return state - 1de…

走进CSS过渡效果的奇妙世界:详解CSS Transition

你是否曾在网页上看到一些酷炫的元素在状态变化时平滑而流畅地过渡?这就是CSS过渡效果的魔力所在!在这篇博客中,我们将深入探讨CSS Transition,揭示其神奇的原理和如何在你的网页中运用这项技术。 什么是CSS Transition&#xff…

大数据平台-可视化面板介绍-Echarts

应对现在数据可视化的趋势,越来越多企业需要在很多场景(营销数据,生产数据,用户数据)下使用,可视化图表来展示体现数据,让数据更加直观,数据特点更加突出。 目录 01-使用技术 02- 案例适配方案 03-基础…

再识C语言 DAY13 【递归函数(超详细)】

文章目录 前言一、函数递归什么是递归递归的两个重要条件练习一练习二 递归与迭代练习三练习四在练习三、四中出现的问题 如果您发现文章有错误请与我留言,感谢 前言 本文总结于此文章 一、函数递归 什么是递归 函数调用自身的编程技巧称为递归 (函数自…

Linux一些实用操作

学习笔记,记录以下课程中关于Linux的一些实用操作。黑马程序员新版Linux零基础快速入门到精通,全涵盖linux系统知识、常用软件环境部署、Shell脚本、云平台实践、大数据集群项目实战等_哔哩哔哩_bilibili 目录 1 各类小技巧(快捷键&#xff…