<-
Apache > HTTP 伺服器 > 文件 > 2.4 版 > 模組

Apache 模組 mod_lbmethod_byrequests

可用的語言:  en  |  fr 

說明用於 mod_proxy_balancer 的依據要求數目計算的負載平衡排程演算法
狀態擴充
模組識別碼lbmethod_byrequests_module
原始檔案mod_lbmethod_byrequests.c
相容性在 2.3 版中從 mod_proxy_balancer 分離

摘要

這個模組不提供任何的設定指令。它需要 mod_proxy_balancer 的服務,並提供 byrequests 的負載平衡方法。

Support Apache!

主題

指令

這個模組沒有提供任何指令。

修正錯誤檢查清單

另請參閱

top

依據要求數目計算演算法

可透過 lbmethod=byrequests 來啟用,這個排程器的概念基本上是,我們依序將要求分派到各個工作模組,以確保每個模組都能依據設定的比例取得一定數目的要求。其運作方式如下

lbfactor 是我們預期這個工作模組會處理的量,或稱工作模組的工作配額。這是一個正規化的數值,代表工作模組所分配的工作量「比例」。

lbstatus這個工作模組為了完成其工作配額,必須處理的急迫程度

工作模組 是負載平衡器的成員,通常是一個遠端主機,使用某一支援的通訊協定運作。

我們分派工作配額到每個工作模組,然後再確認哪一個工作模組的工作急迫程度最高(最大的 lbstatus)。這個工作模組隨即被選定來進行工作,而它的 lbstatus 也會減少,減去的量是我們分派給所有工作模組的工作配額總和。因此,所有 lbstatus 的總和不會改變(*),而且我們也會依據需求來分派要求。

如果某些工作模組停用,其他工作模組仍然會受到正確的排程。

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

candidate lbstatus -= total factor

如果負載平衡器的設定如下

工作模組 a b c d
lbfactor 25 25 25 25
lbstatus 0 0 0 0

並且 b 停用,就會產生下列排程

工作模組 a b c d
lbstatus -50 0 25 25
lbstatus -25 0 -25 50
lbstatus 0 0 0 0
(重複)

這是它的排程:a c d a c d a c d ... 請注意

工作模組 a b c d
lbfactor 25 25 25 25

具有與以下相同的行為

工作模組 a b c d
lbfactor 1 1 1 1

這是因為所有 lbfactor 值會針對其他值進行正規化。對於

工作模組 a b c
lbfactor 1 4 1

b 工作器平均來說將收到 ac 的 4 倍要求

以下非對稱設定會如預期運作

工作模組 a b
lbfactor 70 30
 
lbstatus -30 30
lbstatus 40 -40
lbstatus 10 -10
lbstatus -20 20
lbstatus -50 50
lbstatus 20 -20
lbstatus -10 10
lbstatus -40 40
lbstatus 30 -30
lbstatus 0 0
(重複)

在經過 10 次排程後,排程會重複,7 個 a 會被選取,3 個 b 會穿插在其中

可用的語言:  en  |  fr 

top

意見

請注意
此處並非問答區。放置於此處的留言應針對改善文件或伺服器的建議,若留言已被實作或被認為無效/離題,我們的版主可能會將其移除。關於如何管理 Apache HTTP 伺服器的問題應發佈在我們的 IRC 頻道 #httpd(在 Libera.chat 上)或傳送到我們的 郵寄清單