4

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

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

在此处输入图像描述

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

4

3 回答 3

1

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

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

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

于 2018-09-12T07:36:31.830 回答
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

重新开始 :)

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

于 2019-09-26T09:17:36.033 回答
0

i too want to know to description for others column like BUSY, ELECTED etc.. my LB has BUSY over 100 already.. i though BUSY should not exceed 100 ( as in 100% server busyness or something )

于 2018-09-12T06:32:25.303 回答