Linux-lvs-调度算法-总结
LVS调度算法
ipvs scheduler:根据其调度时是否考虑各RS当前的负载状态
分为两种:静态方法和动态方法
静态方法
仅根据算法本身进行调度
- RR: roundrobin, 轮询,较常用
- WRR: weighted RR ,加权轮询,较常用
- SH: source hashing,实现session sticky,源IP地址hash;将来同一个IP地址的请求始终发往第一次挑中的RS,从而实现会话绑定
- DH: Destination Hashing ;目标地址哈希,第一次轮询调度至RS,后续将发往同一个目标地址的请求始终转发至第一次挑中的RS,典型使用场景是正向代理缓存场景中的负载均衡:web缓存
动态方法
主要根据RS当前的负载状态及调度算法进行调度Overhead=value较小的RS将被调度
- LC: least connections 使用于长连接应用
- WLC: weighted LC,默认调度方法较常用
- SED: shortest expection delay, 初始连接高权重优先,只检查活动连接,而不考虑非活动连接
- NQ: Never Queue,第一轮均匀分配,后续SED
- LBLC: Locality-Based LC,动态的DH算法,使用场景:根据负载状态实现正向代理,实现Web Cache等
- LBLCR: LBLC with Replication,带复制功能的LBLC,解决LBLC负载不均衡问题,从负载重的复制 到负载轻的RS,,实现Web Cache等
内核版本 4.15 版本后新增调度算法:FO和OVF
- FO(Weighted Fail Over)调度算法,在此FO算法中,遍历虚拟服务所关联的真实服务器链表,找到还未 过载(未设置IP_VS_DEST_F_OVERLOAD标志)的且权重最高的真实服务器,进行调度,属于静态算法
- OVF(Overflow-connection)调度算法,基于真实服务器的活动连接数量和权重值实现。将新连接调度 到权重值最高的真实服务器,直到其活动连接数量超过权重值,之后调度到下一个权重值最高的真实服 务器,在此OVF算法中,遍历虚拟服务相关联的真实服务器链表,找到权重值最高的可用真实服务器。,属 于动态算法
一个可用的真实服务器需要同时满足以下条件:
- 未过载(未设置IP_VS_DEST_F_OVERLOAD标志)
- 真实服务器当前的活动连接数量小于其权重值
- 其权重值不为零
算法调用选项
选项: lvs类型: -g: gateway, dr类型,默认 -i: ipip, tun类型 -m: masquerade, nat类型 -w weight:权重
ipvsadm -a -t 10.0.0.100:80 -r 10.0.0.8:8080 -m -w 3
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· .NET10 - 预览版1新功能体验(一)