zoukankan      html  css  js  c++  java
  • LVS的负载均衡算法

    静态算法

    静态:根据LVS本身自由的固定的算法分发用户请求。

    轮询(Round Robin 简写’rr’):轮询算法假设所有的服务器处理请求的能力都一样的,调度器会把所有的请求平均分配给每个真实服务器。(同Nginx的轮询)
    加权轮询(Weight Round Robin 简写’wrr’):安装权重比例分配用户请求。权重越高,被分配到处理的请求越多。(同Nginx的权重)
    源地址散列(Source Hash 简写’sh’):同一个用户ip的请求,会由同一个RS来处理。(同Nginx的ip_hash)
    目标地址散列(Destination Hash 简写’dh’):根据url的不同,请求到不同的RS。(同Nginx的url_hash)

    动态算法

    动态:会根据流量的不同,或者服务器的压力不同来分配用户请求,这是动态计算的。

    最小连接数(Least Connections 简写’lc’):把新的连接请求分配到当前连接数最小的服务器。
    加权最少连接数(Weight Least Connections 简写’wlc’):服务器的处理性能用数值来代表,权重越大处理的请求越多。Real Server 有可能会存在性能上的差异,wlc动态获取不同服务器的负载状况,把请求分发到性能好并且比较空闲的服务器。
    最短期望延迟(Shortest Expected Delay 简写’sed’):特殊的wlc算法。举例阐述,假设有ABC三台服务器,权重分别为1、2、3 。如果使用wlc算法的话,当一个新请求进来,它可能会分给ABC中的任意一个。使用sed算法后会进行如下运算:
    • A:(1+1)/1=2
    • B:(1+2)/2=3/2
    • C:(1+3)/3=4/3
    最终结果,会把这个请求交给得出运算结果最小的服务器。
    最少队列调度(Never Queue 简写’nq’):永不使用队列。如果有Real Server的连接数等于0,则直接把这个请求分配过去,不需要在排队等待运算了(sed运算)。

    总结:

    LVS在实际使用过程中,负载均衡算法用的较多的分别为wlc或wrr,简单易用。

  • 相关阅读:
    POJ 1325 Machine Schedule(待整理)
    URAL 1109 Conference
    结构体排序初始化最傻最傻的错误
    Radar Installation
    关于Eclipse中插件的安装和文件导出
    贪心算法概述
    今年暑假不AC(水题)
    100197C
    100722C
    树状数组
  • 原文地址:https://www.cnblogs.com/hardy-wang/p/13840345.html
Copyright © 2011-2022 走看看