Keepalived 进阶秘籍:全方位配置优化
创作时间:
作者:
@小白创作中心
Keepalived 进阶秘籍:全方位配置优化
引用
CSDN
1.
https://m.blog.csdn.net/qq_40477248/article/details/144957698
Keepalived是一种用于实现服务器高可用性的软件,广泛应用于负载均衡和故障切换场景。本文将详细介绍Keepalived的高级配置优化,包括内核参数优化、资源限制优化以及Keepalived核心模块的配置说明。此外,还将对比Keepalived与Heartbeat、Corosync在集群管理方面的异同,帮助读者更好地理解这三种工具的特点和适用场景。
1. sysctl.conf参数优化
为了确保Keepalived服务器在生产环境中的稳定运行,需要对内核参数进行合理的优化。以下是一些关键参数的配置建议:
# /etc/sysctl.conf
# timewait的数量,默认是180000。
net.ipv4.tcp_max_tw_buckets = 6000
# 支持更大的TCP窗口,如果TCP窗口超过65535(64K)必须设置为1
net.ipv4.tcp_window_scaling = 1
# 允许系统打开的端口范围。
net.ipv4.ip_local_port_range = 1024 65000
# 启用timewait 快速回收。
net.ipv4.tcp_tw_recycle = 1
# 开启重用。允许将TIME-WAIT sockets 重新用于新的TCP 连接。
net.ipv4.tcp_tw_reuse = 1
# 开启SYN Cookies,当出现SYN 等待队列溢出时,启用cookies 来处理。
net.ipv4.tcp_syncookies = 1
# 函数的backlog 默认会给我们内核参数的net.core.somaxconn 限制到128,而,所以有必要调整这个值。
net.core.somaxconn = 32768
# 表示当每个网络接口 接受数据包的速率比内核处理这些包的速率快时,允许发送到队列的数据包的最大数目,一般默认值128。
net.core.netdev_max_backlog = 32768
# 记录的那些尚未收到客户端确认信息的连接请求的最大值。对于有128M 内存的系统而言,缺省值是1024,小内存的系统则是128。
net.ipv4.tcp_max_syn_backlog = 65535
# 系统中最多有多少个TCP 套接字不被关联到任何一个用户文件句柄上。如果超过这个数字,连接将即刻被复位并打印出警告信息。这个限制仅仅是为了防止简单的DoS 攻击,不能过分依靠它或者人为地减小这个值,更应该增加这个值(如果增加了内存之后)。
net.ipv4.tcp_max_orphans = 262144
# 时间戳可以避免序列号的卷绕。一个1Gbps 的链路肯定会遇到以前用过的序列号。时间戳能够让内核接受这种“异常”的数据包。这里需要将其关掉。
net.ipv4.tcp_timestamps = 0
# 为了打开对端的连接,内核需要发送一个SYN 并附带一个回应前面一个SYN 的ACK。也就是所谓三次握手中的第二次握手。这个设置决定了内核放弃连接之前发送SYN+ACK 包的数量。
net.ipv4.tcp_synack_retries = 1
# 在内核放弃建立连接之前发送SYN 包的数量。
net.ipv4.tcp_syn_retries = 1
# 如果套接字由本端要求关闭,这个参数决定了它保持在FIN-WAIT-2 状态的时间。对端可以出错并永远不关闭连接,甚至意外当机。缺省值是60 秒。2.2 内核的通常值是180 秒,3你可以按这个设置,但要记住的是,即使你的机器是一个轻载的WEB 服务器,也有因为大量的死套接字而内存溢出的风险,FIN- WAIT-2 的危险性比FIN-WAIT-1 要小,因为它最多只能吃掉1.5K 内存,但是它们的生存期长些。
net.ipv4.tcp_fin_timeout = 1
# 当keepalive 起用的时候,表示保活时间是 60 秒(默认2小时),也就60秒内如果没有任何连接相关的活动,则会启动保活机制。
net.ipv4.tcp_keepalive_time = 60
# 表示检测 2 次无响应,认为对方是不可达的,从而中断本次的连接。
net.ipv4.tcp_keepalive_probes = 2
# 表示每次检测间隔 2秒。
net.ipv4.tcp_keepalive_intvl = 2
2. limits参数优化
为了支持高并发连接,需要调整系统资源限制。以下是在/etc/security/limits.d/limits.conf
中的配置示例:
# 设置宿主机接受高并发连接数nproc
* soft nofile 65536
* hard nofile 65536
* soft nproc 163840
* hard nproc 163840
3. global_defs模块区域
global_defs
模块用于定义全局参数,主要包括:
notification_email
:故障发生时给谁发邮件通知。notification_email_from
:通知邮件从哪个地址发出。smtp_server
:通知邮件的smtp地址。smtp_connect_timeout
:连接smtp服务器的超时时间。router_id
:标志本节点的字符串,通常为ip地址,故障发生时邮件会通知到。
4. vrrp_script模块区域
vrrp_script
模块用于健康检查,当检查失败时会将vrrp_instance
的priority减少相应的值。实际生产中通常会配置如下:
vrrp_script chk_nginx {
script "/etc/keepalived/check_nginx.sh"
interval 2
weight 2
}
5. vrrp_instance VI_1实例定义配置模块区域
vrrp_instance
模块用于定义VRRP实例,以下是一个示例配置:
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1234
}
virtual_ipaddress {
192.168.1.100
}
track_script {
chk_nginx
}
}
6. virtual_server模块区域
virtual_server
模块用于定义虚拟服务器,以下是一个示例配置:
virtual_server 192.168.1.100 80 {
delay_loop 6
lb_algo rr
lb_kind NAT
persistence_timeout 50
protocol TCP
real_server 192.168.1.101 80 {
weight 1
SSL_GET {
url {
path /
digest 123456
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
real_server 192.168.1.102 80 {
weight 1
SSL_GET {
url {
path /
digest 123456
}
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
}
}
}
7. Keepalived与Heartbeat、Corosync比较
在选择集群组件时,Keepalived、Heartbeat和Corosync各有优劣:
特征 | Keepalived | Heartbeat | Corosync |
---|---|---|---|
通信协议 | 使用VRRP协议 | 使用心跳协议 | 使用心跳协议 |
应用场景 | 前端高可用 | 服务高可用 | 服务高可用 |
共享存储 | 不需要 | 需要 | 需要 |
节点数量 | 适合两节点 | 适合多节点 | 适合多节点 |
常见组合 | LVS+Keepalived、Nginx+Keepalived、HAproxy+Keepalived | Heartbeatv+Pacemaker+NFS | Corosync+Pacemaker+NFS |
部署复杂度 | 简单 | 复杂 | 类似Heartbeat |
性能 | 满足生产需求 | 需要共享存储 | 需要共享存储 |
应用场景 | 应用广泛 | 主要为后端服务提供高可用 | 类似Heartbeat |
在实际生产环境中,Keepalived因其部署简单、前端高可用使用多、不需要共享存储、性能完全满足生产需求等特点,成为更受欢迎的选择。
热门推荐
赤子是什么意思?解读“赤子”一词的含义与用法
赤子什么意思赤子之心理解
基础解剖:人的颅骨有几个孔?分别有那些神经穿过?
最适合高个子的10款摩托车
高钙食品有哪些推荐
研究证实:低钠盐可显著降低中风复发和死亡风险
“癌王”胰腺癌的高危因素、早期症状和三级预防
“宇宙”一词的起源与演变
1928年鲁迅被批为资产阶级作家,毛主席评价:他是第一圣人!
生物计算机的原理与优势
素食者被脂肪肝关注?这5点需记住,及时调养,远离脂肪肝之扰
基于可再生能源的碱水电解制氢的局限性和解决途径
双玻组件:让太阳能发电更高效、更可靠
五步搞定外贸市场调研指南:从桌面调研到实地考察
设备管理系统调研方案怎么写
个体户的税务问题如何进行合法咨询
关爱留守儿童:建立完善的工作机制
意甲前瞻:拉齐奥vs乌迪内斯,蓝鹰军团能否延续主场优势?
心理学必看6部经典电影,讲透一个人从心灵创伤到自我治愈的全过程
流黄鼻涕是风寒还是风热?专家权威解答
当下多种“感冒”并发选中成药仔细辨
医生能识破装病的普通人吗?
夏季蚊蝇防制指南:从源头治理到个人防护,全方位守护健康生活环境
下水道苍蝇消灭方法
个税申报中税优识别码是什么
个税申报税优识别码是什么?如何获取?
“倒锤头线”:准确率极高的K线反转信号,坚决捂股,后市必有一波大级别的上涨行情
倒锤阳线的形态特征有哪些?倒锤阳线在技术分析中的意义是什么?
25%的关税对钢铁上市企业的影响有多大?
汽车厂内部员工买车优惠大吗?