简述LVS调度方案及应用场景

Lvs的调度算法可分为静态调度和动态调度。
静态调度即根据算法本身的结果来进行调度,包括:

  • 1、轮询调度算法(RR),轮询算法适用于所有服务器的处理性能相近的应用场景,因为轮询算法相对简单,其调度方式是不管服务器当前的连接数和响应速度如何的。因此当后端服务器的处理性能残次不齐,请求服务的时间变化较大时,轮询算法很容易导致服务器间的负载不均衡。因此轮询算法只适用于后端服务器性能相近,请求时间变化不大的场景使用。

  • 2、加权轮询调度算法(WRR)可以理解为轮询算法的进阶版。通过设置权重来表示后端服务器的处理型男,权重越大表示服务器能的处理能力越强。但是当请求时间变化很大时,加权轮询算法依然会导致服务器间的负载不平滑。

  • 3、目标地址哈希调度算法(DH)是指针对通过计算目前地址的散列(HASH)函数来将一个目标IP地址映射到一台服务器。DH算法首先根据请求的目标Ip地址作为散列键(Hask key),从静态分配的散列表中找出对应的服务器。若该服务器是可用且未超载,则将请求发送到该服务器,否则返回为空。此调度算法可保证用户访问同一个应用服务时,请求均被送往同一个后端服务器。典型应用场景为正向代理缓存场景中的负载均衡。

  • 4、源地址散列调度算法(SH)是指根据请求的源Ip地址作为散列键(Hash key),从静态分配的散列表中找出其对应的服务器。若服务器是可能且未超载,否则将返回空。SH算法可将来自于同一个IP地址的请求始终发往同一个后端服务器,从而实现会话绑定。

动态调度算法即指结合算法及当前每个后端服务器的负载状态进行计算调整选出最优的后端服务器进行分配负载,其包括:

  • 1、最小连接调度算法(LCS)是指把新的连接请求分配到当前连接数最小的服务器。调度器会记录各个服务器已建立连接的数目,当一个请求被调度分配到一个后端服务器,其连接数就加一;当连接超时或终止时,其连接数减一。LCS算法则会把新的连接请求到分分配到已建立连接数最小的服务器上,保证后端服务器,每一个都始终处于工作状态。此算法适用于后端服务器性能差不多,请求时间不一样的情况下使用。
  • 2、加权最小连接调度算法(WLC)是在一个服务器性能差异较大的集群中,根据最小连接数及服务器的权重来分配新的连接请求。对比LCS算法来说,WLC可优化负载均衡的性能,使得具有较高权重的服务器承受较大比例的活动连接负载。
  • 3、最小期望延迟调度算法(SED)是WLC算法的改进版,根据算法(active+1)*256/weight的结果,将请求分配给计算结果最小的服务器。
  • 4、从不排队调度(NQ),增强改进的sed算法,即在sed算法结果之后增加了轮询的机制。如果有台real Server的连接数=0直接分配,不需要再进行sed运算,而是直接分配请求连接到指定的服务器。因此这种算法就会尽量不然请求出现排队的情况,即避免了某个节点非常繁忙而其他节点相对空闲的情况。避免了权重小的节点不会出现没有请求被调度的情况。
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,774评论 19 139
  • 【摘要】 面对大量用户访问、高并发请求,海量数据,可以使用高性能的服务器、大型数据库,存储设备,高性能Web服务器...
    静修佛缘阅读 4,845评论 0 24
  • 本文观点部分来自:http://blog.csdn.net/pi9nc/article/details/98837...
    BossHuang阅读 1,381评论 0 2
  • 一、软件负载均衡概述 硬件负载均衡性能优越,功能全面,但是价格昂贵,一般适合初期或者土豪级公司长期使用。因此软件负...
    程序员技术圈阅读 659评论 0 0
  • 似乎每个人的自我介绍中都会有一项“热爱旅行”。旅行对于我们的意义早已普遍到,它既是一种解压方式,又是一种生活享受,...
    温水鱼阅读 2,651评论 12 49

友情链接更多精彩内容