From fe39ffb8b90ae4e002ed73fe98617cd590abb467 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 27 Apr 2024 08:33:50 +0200 Subject: Adding upstream version 2.4.56. Signed-off-by: Daniel Baumann --- docs/manual/mod/mod_lbmethod_byrequests.html.en | 255 ++++++++++++++++++++++++ 1 file changed, 255 insertions(+) create mode 100644 docs/manual/mod/mod_lbmethod_byrequests.html.en (limited to 'docs/manual/mod/mod_lbmethod_byrequests.html.en') diff --git a/docs/manual/mod/mod_lbmethod_byrequests.html.en b/docs/manual/mod/mod_lbmethod_byrequests.html.en new file mode 100644 index 0000000..52fd1f1 --- /dev/null +++ b/docs/manual/mod/mod_lbmethod_byrequests.html.en @@ -0,0 +1,255 @@ + + + + + +mod_lbmethod_byrequests - Apache HTTP Server Version 2.4 + + + + + + + + +
<-
+ +
+

Apache Module mod_lbmethod_byrequests

+
+

Available Languages:  en  | + fr 

+
+ + + + +
Description:Request Counting load balancer scheduler algorithm for mod_proxy_balancer
Status:Extension
Module Identifier:lbmethod_byrequests_module
Source File:mod_lbmethod_byrequests.c
Compatibility:Split off from mod_proxy_balancer in 2.3
+

Summary

+ +

This module does not provide any configuration directives of its own. +It requires the services of mod_proxy_balancer, and +provides the byrequests load balancing method.

+
+
Support Apache!

Topics

+

Directives

+

This module provides no + directives.

+

Bugfix checklist

See also

+
+
top
+
+

Request Counting Algorithm

+ +

Enabled via lbmethod=byrequests, the idea behind this + scheduler is that we distribute the requests among the + various workers to ensure that each gets their configured share + of the number of requests. It works as follows:

+ +

lbfactor is how much we expect this worker + to work, or the workers' work quota. This is + a normalized value representing their "share" of the amount of + work to be done.

+ +

lbstatus is how urgent this worker has to work + to fulfill its quota of work.

+ +

The worker is a member of the load balancer, + usually a remote host serving one of the supported protocols.

+ +

We distribute each worker's work quota to the worker, and then look + which of them needs to work most urgently (biggest lbstatus). This + worker is then selected for work, and its lbstatus reduced by the + total work quota we distributed to all workers. Thus the sum of all + lbstatus does not change(*) and we distribute the requests + as desired.

+ +

If some workers are disabled, the others will + still be scheduled correctly.

+ +
for each worker in workers
+    worker lbstatus += worker lbfactor
+    total factor    += worker lbfactor
+    if worker lbstatus > candidate lbstatus
+        candidate = worker
+
+candidate lbstatus -= total factor
+ +

If a balancer is configured as follows:

+ + + + + + + + + + + + + + + + +
workerabcd
lbfactor25252525
lbstatus0000
+ +

And b gets disabled, the following schedule is produced:

+ + + + + + + + + + + + + + + + + + + + + + +
workerabcd
lbstatus-5002525
lbstatus-250-2550
lbstatus0000
(repeat)
+ +

That is it schedules: a c d + a c d a c + d ... Please note that:

+ + + + + + + + + + + +
workerabcd
lbfactor25252525
+ +

Has the exact same behavior as:

+ + + + + + + + + + + +
workerabcd
lbfactor1111
+ +

This is because all values of lbfactor are normalized + with respect to the others. For:

+ + + + + + + + + +
workerabc
lbfactor141
+ +

worker b will, on average, get 4 times the requests + that a and c will.

+ +

The following asymmetric configuration works as one would expect:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
workerab
lbfactor7030
 
lbstatus-3030
lbstatus40-40
lbstatus10-10
lbstatus-2020
lbstatus-5050
lbstatus20-20
lbstatus-1010
lbstatus-4040
lbstatus30-30
lbstatus00
(repeat)
+ +

That is after 10 schedules, the schedule repeats and 7 a + are selected with 3 b interspersed.

+
+
+
+

Available Languages:  en  | + fr 

+
top

Comments

Notice:
This is not a Q&A section. Comments placed here should be pointed towards suggestions on improving the documentation or server, and may be removed by our moderators if they are either implemented or considered invalid/off-topic. Questions on how to manage the Apache HTTP Server should be directed at either our IRC channel, #httpd, on Libera.chat, or sent to our mailing lists.
+
+ \ No newline at end of file -- cgit v1.2.3