preface

在明白LVS-DR模式的部署之后,我们看看LVS的几个重要参数:

如有问题,请联系我18500777133@sina.cn

[root@localhost ~]# ls /proc/sys/net/ipv4/vs/ -lrt
'''
-rw-r--r-- 1 root root 0 Nov 19 19:43 sync_threshold
-rw-r--r-- 1 root root 0 Nov 19 19:43 expire_quiescent_template
-rw-r--r-- 1 root root 0 Nov 19 19:43 expire_nodest_conn
'''

expire_quiescent_template和expire_nodest_conn

这两个参数对LVS转发行为有重要的作用

  • expire_nodest_conn

    这个值有2种:0 表示禁用,非0表示启用。默认值是0,在负载均衡器发现目标后端服务器不可用时边丢包。举个例子,某个后端服务器闪断之后,马上恢复了与LV的S连接,如果这个是值为0,那么表示这个闪断后的服务器连接还可以和LVS继续连接,如果启用了这个特性,那么LVS会立即使这个连接过期,然后client也会等到通知连接已经关闭。
  • expire_quiescent_template

    这个值也是有2种,0为禁用,非0为启用。如果是启用状态,那么负载均衡器当发现调度的后端服务器处于静止期(权重为0)会立即使持久连接过期,并被发送到新的服务器上。

LVS-DR模式的核心提示与优化

  1. LVS-DR模式,因为后端服务器上同样配置了VIP,如果客户端进行ARP请求的时候,后端服务器以自身的MAC地址进行回复,则起不到负载均衡的效果,此时客户端直接连接到了后端某台real-server上了。
  2. 后端服务器的虚拟IP必须绑定到lo:0上,同事子网掩码是255.255.255.255,否则APR禁用会出现异常。
  3. 持久连接(Persistence)的问题。持久连接使一个客户端在超时时间内(ipvsadmin -p参数指定,keepalived的配置文件persistence_timeout指令)会持续连接到同一台后端服务器,这个是4层上的持久连接,来自客户端的每个新的连接会被重置该超时时间。
  4. keepalived对后端服务器的健康检查,推荐使用应用层检测方式,另外可以配置自定义监控监控,通过vrrp_script参数指定.
  5. keepalived通过vrrp协议通信,那么lvs之间建议关闭防火墙,如果需要开启防火,请放行该协议。
  6. LVS服务器推荐使用16GB以及以上的内存,同时采用多队列网卡来提高网卡的吞吐量,减少延迟。
  7. LVS后端服务器根据业务倾向的不同,根据IO密集型和CPU密集型2类,可以使用raid5以及多核高频处理器。

多组LVS设定的注意事项。

  1. 虚拟路由器的ID(keepalived配置文件的router_id参数),这个在相同组的LVS集群里面,必须设置为一致,不同组LVS集群里面必须不同。
  2. 是优先级,master的priority必须比backup的值更高。
  3. 虚拟IP地址,不同组的LVS集群不同。
  4. 同一组LVS里面认证的密钥,同一组必须相同。不同组建议采用不同的值。

性能采集与监控

对于LVS的性能采集,可以查看proc的文件:

[root@localhost ~]# cat /proc/net/ip_vs
IP Virtual Server version 1.2.1 (size=4096)
Prot LocalAddress:Port Scheduler Flags
-> RemoteAddress:Port Forward Weight ActiveConn InActConn
TCP C0A801C8:0050 wrr
-> C0A80104:0050 Route 1 0 0
-> C0A80106:0050 Route 1 0 0 [root@localhost ~]# cat /proc/net/ip_vs_stats
Total Incoming Outgoing Incoming Outgoing
Conns Packets Packets Bytes Bytes
66 18EA39B 0 4EC6436F 0 Conns/s Pkts/s Pkts/s Bytes/s Bytes/s
0 0 0 0 0

zabbix监控可以参考这个资料:https://share.zabbix.com/cat-app/high-availability-ha/linux-virtual-server-statictics

高可用与负载均衡(8)之聊聊 LVS重要参数和优化以及监控的更多相关文章

  1. 高可用与负载均衡(7)之聊聊Lvs-DR+Keepalived的解决方案

    今天直接开门见山了,直接说配置吧.首先介绍下我这的环境 如有问题,请联系我18500777133@sina.cn IP 安装软件 192.168.1.7 lvs1+keepalived master角 ...

  2. Mycat - 高可用与负载均衡实现,满满的干货!

    前言 开心一刻 和朋友去吃小龙虾,隔壁桌一个小女孩问妈妈:"妈妈,小龙虾回不了家,它妈妈会不会着急?" 她妈妈愣住了,我扒虾的手停下了,这么善良的问题,怎么下得了口.这是老板急忙过 ...

  3. Keepalived+HAProxy实现RabbtiMQ高可用的负载均衡

    HAProxy提供高可用性.负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费.快速并且可靠的一种解决方案,包括Twitter,Reddit,StackOverflow,GitHub在 ...

  4. PostgreSQL 9.5 高可用、负载均衡和复制

    高可用.负载均衡和复制 1. 不同方案的比较 共享磁盘故障转移 共享磁盘故障转移避免了只使用一份数据库拷贝带来的同步开销. 它使用一个由多个服务器共享的单一磁盘阵列.文件系统(块设备)复制 DRBD是 ...

  5. Mysql读写分离 及高可用高性能负载均衡实现

    什么是读写分离,说白了就是mysql服务器读的操作和写的操作是分开的,当然这个需要两台服务器,master负责写,slave负责读,当然我们可以使用多个slave,这样我们也实现了简单意义上的高可用和 ...

  6. 搭建Keepalived+LNMP架构web动态博客 实现高可用与负载均衡

    环境准备: 192.168.193.80  node1 192.168.193.81 node2 关闭防火墙 [root@node1 ~]# systemctl stop firewalld #两台都 ...

  7. Dubbo入门到精通学习笔记(十六):Keepalived+Nginx实现高可用Web负载均衡

    文章目录 Keepalived+Nginx实现高可用Web负载均衡 Keepalived+Nginx实现高可用Web负载均衡 高可用架构篇 Keepalived + Nginx 实现高可用 Web 负 ...

  8. EMQ集群搭建实现高可用和负载均衡(百万级设备连接)

    一.EMQ集群搭建实现高可用和负载均衡 架构服务器规划 服务器IP 部署业务 作用 192.168.81.13 EMQTTD EMQ集群 192.168.81.22 EMQTTD EMQ集群 192. ...

  9. Keepalived + Nginx 实现高可用 Web 负载均衡

    一.Keepalived 简要介绍 Keepalived 是一种高性能的服务器高可用或热备解决方案, Keepalived 可以用来防止服务器单点故障的发生,通过配合 Nginx 可以实现 web 前 ...

随机推荐

  1. 《深入理解Spark:核心思想与源码分析》(第2章)

    <深入理解Spark:核心思想与源码分析>一书前言的内容请看链接<深入理解SPARK:核心思想与源码分析>一书正式出版上市 <深入理解Spark:核心思想与源码分析> ...

  2. Nodejs爬虫进阶=>异步并发控制

    之前写了个现在看来很不完美的小爬虫,很多地方没有处理好,比如说在知乎点开一个问题的时候,它的所有回答并不是全部加载好了的,当你拉到回答的尾部时,点击加载更多,回答才会再加载一部分,所以说如果直接发送一 ...

  3. Ubuntu backlight

    我们可以通过键盘来调节亮度,但是那样亮度无法微调,每次变亮变得太多. 在 /sys/class/backlight/nv_backlight 这个目录下,brightness 是最主要的.backli ...

  4. github page 和 hexo 搭建在线博客

    目录: 安装node.js与git 常用git命令 安装hexo 配置hexo hexo发布到github 1.安装node.js和git工具 https://nodejs.org/en/ 直接下载安 ...

  5. background-image 和 img

    一:解决div里面的img图像宽度不变,高度不变!   超出div部分设置隐藏! 图片:1920x526 div容器: 1423x526 1. background-image:样式实现 img: 标 ...

  6. if -else 条件语句原理

    #!/usr/bin/python # coding utf-8 name = '?' if name == 'python': print('欢迎BOSS') else: print('输入错误')

  7. 创建mysql 存储过程

    CREATE PROCEDURE `test_insert_stu`() BEGIN DECLARE num INT; SET num = 0; WHILE (num<10) DO insert ...

  8. eclipse中maven install和build,clean

    eclipse插件,m2eclipse 1.maven install相当于maven原生的命令: mvn install 2.aven build是 m2eclipse这个插件自己创造的概念,需要你 ...

  9. Linux网卡的相关配置总结

    当有多个网卡的时候,我们需要进行相关的配置. 一.如何改变网卡的名字? 修改/etc/udev/rules.d/70-persistent-net.rules 进去之后的效果是 根据mac地址,把没用 ...

  10. asp.net mvc web api 可跨域方法

    1.直接修改 web.config ,不过这是针对所有 Action. <location path="Sample.txt"> <system.webServe ...