【问题标题】:What is the meaning of the "Load" column in Apache balancer-manager?Apache balancer-manager 中的“Load”列是什么意思?
【发布时间】:2017-08-03 09:53:59
【问题描述】:

我已经设置了运行正常的 Apache (2.4) 负载平衡器。为了监控它的性能,我启用了 balancer-manager 处理程序,它显示了平衡器的状态。

我注意到一个“加载”列,它在 2.2 版中不存在,其值可能为负数,但我不明白它的含义,也找不到与此相关的文档。

谁能解释该值的含义或指出正确的文档?

【问题讨论】:

    标签: apache load-balancing mod-proxy-balancer


    【解决方案1】:

    我现在明白了,“负载”的计算是如何工作的。这是一个我认为比 apache 文档页面更简单的示例。

    假设我们有 3 个工作人员,配置的负载因子为 1。

    1) 开始

    a | b | c
    --+---+---
    0 | 0 | 0
    

    将负载因子 1 添加到所有工作人员

    a | b | c
    --+---+---
    1 | 1 | 1
    

    现在选择具有最高值的那个 --> a 并减少所有因子的总和 (=3) - 这是选定的工人

    a  | b | c
    ---+---+---
    -2 | 1 | 1
    

    2) 下一轮,再加1

    a  | b | c
    ---+---+---
    -1 | 2 | 2
    

    现在选择具有最高值的那个 --> b 并减少所有因子的总和 (=3) - 这是选定的工人

    a  | b  | c
    ---+----+----
    -1 | -1 | 2
    

    3) 下一轮,再加1

    a  | b  | c
    ---+----+----
     0 | 0  | 3
    

    现在选择具有最高值的那个 --> c 并减少所有因子的总和 (=3) - 这是选定的工人

    a  | b  | c
    ---+----+----
     0 | 0  | 0
    

    重新开始:)

    我希望这对其他人有所帮助。

    【讨论】:

      【解决方案2】:

      Load 值由lbstatus 根据这行代码填充:

                      ap_rprintf(r, "<td>%d</td><td>", worker->s->lbstatus);
      

      in https://svn.apache.org/viewvc/httpd/httpd/trunk/modules/proxy/mod_proxy_balancer.c?view=markup#l1767(代码修改时行可能会改变)

      由于您的方法是按请求的,因此 lbstatus 由 mod_lbmethod_byrequests 指定,它定义:

      lbstatus 是该工作人员为完成其配额而必须工作的紧迫程度 工作。

      算法的详细信息可以在这里找到:https://httpd.apache.org/docs/2.4/mod/mod_lbmethod_byrequests.html

      【讨论】:

        【解决方案3】:

        我也想知道其他列的描述,如 BUSY、ELECTED 等。我的 LB 已经 BUSY 超过 100 了。我虽然 BUSY 不应该超过 100(如 100% 服务器繁忙或其他情况)

        【讨论】:

        • 你发现了吗?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-04-12
        • 1970-01-01
        • 1970-01-01
        • 2019-09-14
        • 2011-01-01
        • 2022-06-12
        相关资源
        最近更新 更多