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因其部署简单、前端高可用使用多、不需要共享存储、性能完全满足生产需求等特点,成为更受欢迎的选择。
热门推荐
《原神》高效回血秘籍大揭秘
博德之门3血量恢复秘籍大公开
教你轻松掌握苹果设备内存管理:告别卡顿
浙江游客进云南:飞机最快2.5小时,高铁自驾等方案全解析
户口本婚姻状态变更指南:材料清单及最新政策解读
秘鲁人在全球过圣诞的花样百出
揭秘圣诞节:耶稣、圣尼古拉斯和圣诞树的传奇故事
民国军阀史之粤系:孙中山抱憾而亡蒋介石因之崛起反骨仔陈炯明
海参黑豆汤:冬季滋补养生的完美选择
海参:海洋人参的养生秘密
海参的神奇健康功效揭秘
从吉安前往西双版纳的乘车全指南
崩坏:星穹铁道 大黑塔的立绘公布,你们觉得她的颜值能打几分?
崩坏星穹铁道缇宝将至 崩铁量子队3.1版本有望复兴
《崩坏星穹铁道》万敌角色前瞻 万敌技能及星魂介绍
颈部鼓包是预警,专家教你防治羊肝片吸虫病
对胃黏膜好的10种食物,吃好,脾胃一天比一天棒
语音大模型:AI语言处理的新纪元
NLP技术:重塑生活与工作的智能引擎
从作息到护理:专家详解眼袋问题改善指南
维生素C是关键,柑橘类水果助力告别眼袋
个人养老金来袭,年金险怎么选?
告别“大舌头”:口肌训练方法与科学原理详解
清晰发音有妙招:成人儿童训练方案详解
全过滤烟嘴:真的能减少吸烟危害吗?
聚乳酸静电纺丝膜:烟嘴技术的革新者
过滤烟嘴不能帮你戒烟
如何调整底盘高度以提升驾驶体验?这种调整对车辆性能有何影响?
清洗汽车火花塞:清洗剂、砂纸、超声波等四种方法
餐厅级酥脆干炸蘑菇:在家也能做出完美复炸口感