讲师中心 微信公众号
AI工具推荐 视频效率加速

如何通过调优 Keepalived 的 lvs_method 优化四层负载均衡转发性能

雨敏吖_5677

雨敏吖_5677

发布时间:2026-05-24 22:08:59

|

777人浏览过

|

来源于php中文网

原创

Keepalived的lvs_method应优先选DR模式,因其性能最优;次选NAT(需优化conntrack);TUN仅作兜底。三者分别对应IPVS的DR、NAT、TUN模型,差异在于转发路径、网络约束与开销。

如何通过调优 keepalived 的 lvs_method 优化四层负载均衡转发性能

Keepalived 本身不直接处理四层流量转发,真正执行 LVS 转发的是 Linux 内核的 IPVS 模块;lvs_method 是 Keepalived 配置中用于指定 IPVS 工作模式的关键参数,它的选择直接影响转发路径长度、连接保持能力、NAT 开销和后端服务器网络拓扑适配性。调优它不是“改个值就变快”,而是根据实际网络结构和业务特征匹配最轻量、最直接的转发路径。

明确 lvs_method 的三种取值与核心差异

Keepalived 的 lvs_method 实际对应 IPVS 的三种工作模型:DR(Direct Routing)、NAT(Network Address Translation)、TUN(IP Tunneling)。它们在数据包处理层面有本质区别:

  • DR 模式:负载均衡器仅修改请求报文的目标 MAC 地址为真实服务器的 MAC,IP 不变;响应由真实服务器直接返回客户端(绕过负载均衡器)。性能最高,但要求所有节点在同一物理网段,且真实服务器需配置 VIP 的 lo 接口并禁用 ARP 响应。
  • NAT 模式:负载均衡器同时修改请求报文的目标 IP 和端口(DNAT),并将响应报文的源 IP 和端口做反向转换(SNAT)。所有流量双向经过负载均衡器,适合跨网段部署,但会成为带宽和连接跟踪(conntrack)瓶颈。
  • TUN 模式:负载均衡器将原始 IP 包封装进新的 IP 包(隧道),发往真实服务器;服务器解封装后响应直回客户端。无需同网段,但增加封装/解封装开销,且需内核支持 IPIP 模块,运维复杂度高。

优先选用 DR 模式提升吞吐与并发

在满足前提条件下,DR 是四层转发性能最优解。它避免了 NAT 的地址转换和连接状态维护,内核路径最短,单机可轻松支撑 10 万+ 并发连接。启用前必须确认:

  • 所有 LVS 节点(Master/Backup)与 RealServer 在同一二层广播域(如 VLAN 或物理交换机直连);
  • RealServer 上已配置 VIP 到 loopback 接口(如 ip addr add 192.168.199.119/32 dev lo);
  • RealServer 禁用对 VIP 的 ARP 响应(echo 1 > /proc/sys/net/ipv4/conf/all/arp_ignore 和 echo 2 > /proc/sys/net/ipv4/conf/all/arp_announce);
  • Keepalived 配置中明确指定 lvs_method DR,并在 virtual_server 块中正确设置 real_server 的 IP 和端口。

慎用 NAT 模式,规避 conntrack 性能陷阱

若网络结构强制使用 NAT(如 RealServer 分布在不同子网),需重点优化内核 conntrack 行为,否则高并发下易出现丢包或新建连接延迟:

  • 增大连接跟踪表上限:net.netfilter.nf_conntrack_max = 655360;
  • 缩短超时时间以快速释放空闲连接:net.netfilter.nf_conntrack_tcp_timeout_established = 300;
  • 关闭对非 SYN 包的连接跟踪(适用于纯转发场景):net.netfilter.nf_conntrack_tcp_be_liberal = 1;
  • 确保负载均衡器 CPU 核心数充足,conntrack 是强 CPU 密集型操作。

避免无谓封装,TUN 模式仅作兜底方案

TUN 模式因额外 IP 封装带来约 20–30μs 延迟,且隧道 MTU 易引发分片,实际生产中极少作为首选。仅在以下情况考虑:

  • RealServer 完全无法调整网络配置(如云厂商托管实例,不允许配置 lo:VIP 或禁用 ARP);
  • DR 和 NAT 均不可行,且对延迟不敏感(如后台批处理接口);
  • 已启用内核 ipip 模块并验证隧道连通性(modprobe ipip + ip tunnel add tunl0 mode ipip remote <rs-ip> local <lvs-ip></lvs-ip></rs-ip>)。

选对 lvs_method 是四层性能调优的第一步,它决定了流量是否绕过内核协议栈冗余处理。DR 最快但约束多,NAT 最通用但需防 conntrack 瓶颈,TUN 最灵活但代价明确。没有“万能模式”,只有“最适合当前网络拓扑的模式”。

数码产品性能查询
数码产品性能查询

该软件包括了市面上所有手机CPU,手机跑分情况,电脑CPU,电脑产品信息等等,方便需要大家查阅数码产品最新情况,了解产品特性,能够进行对比选择最具性价比的商品。

下载

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

AionClaw
AionClaw Hot

AionClaw是一款面向办公、创作和编程任务的AI桌面智能体。

Lovart
Lovart Hot

一款面向视觉设计创作的AI设计平台,可通过智能体和画布工作流辅助制作海报、Logo、网页、PPT及其他视觉内容。

超级麦吉

一款通过数字员工协作完成调研、数据分析与文档制作的AI办公平台。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

相关专题

更多
Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

60

2026.10.28

Vite 如何搭配 Vue.js
Vite 如何搭配 Vue.js

Vite搭配Vue.js专题汇集创建Vue 3项目、配置开发环境、路径别名、Vue插件、代理、多环境构建与调试的已审核文章,帮助读者完成从初始化到日常开发的配置。

40

2026.10.28

Vite 项目目录怎么看
Vite 项目目录怎么看

Vite项目目录专题汇集入口文件、src源码、public静态资源、路径别名、项目根目录和构建输出目录相关的已审核文章,帮助读者理解各文件夹的用途与引用方式。

160

2026.10.28

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

140

2026.10.22

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

120

2026.10.22

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

80

2026.10.22

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

60

2026.10.22

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

80

2026.10.22

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

40

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn