我已经设置了运行正常的 Apache (2.4) 负载平衡器。为了监控它的性能,我启用了 balancer-manager 处理程序,它显示了平衡器的状态。
我注意到版本 2.2 中不存在“加载”列,其值可能为负数,但我不明白它的含义,也无法找到与此相关的文档。
谁能解释该值的含义或将我指向正确的文档?
我已经设置了运行正常的 Apache (2.4) 负载平衡器。为了监控它的性能,我启用了 balancer-manager 处理程序,它显示了平衡器的状态。
我注意到版本 2.2 中不存在“加载”列,其值可能为负数,但我不明白它的含义,也无法找到与此相关的文档。
谁能解释该值的含义或将我指向正确的文档?
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
我现在明白了,“负载”的计算是如何工作的。这是一个我认为比 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
重新开始 :)
我希望这对其他人有帮助。
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 )