LVS 排程演算法

2021-09-24 17:00:36 字數 2205 閱讀 8850

根據前面的介紹,我們了解了lvs的三種工作模式,但不管實際環境中採用的是哪種模式,排程演算法進行排程的策略與演算法都是lvs的核心技術,lvs在核心中主要實現了一下十種排程演算法。

1.輪詢排程

輪詢排程(round robin 簡稱』rr』)演算法就是按依次迴圈的方式將請求排程到不同的伺服器上,該演算法最大的特點就是實現簡單。輪詢演算法假設所有的伺服器處理請求的能力都一樣的,排程器會將所有的請求平均分配給每個真實伺服器。

2.加權輪詢排程

加權輪詢(weight round robin 簡稱』wrr』)演算法主要是對輪詢演算法的一種優化與補充,lvs會考慮每台伺服器的效能,並給每台伺服器新增乙個權值,如果伺服器a的權值為1,伺服器b的權值為2,則排程器排程到伺服器b的請求會是伺服器a的兩倍。權值越高的伺服器,處理的請求越多。

3.最小連線排程

最小連線排程(least connections 簡稱』lc』)演算法是把新的連線請求分配到當前連線數最小的伺服器。最小連線排程是一種動態的排程演算法,它通過伺服器當前活躍的連線數來估計伺服器的情況。排程器需要記錄各個伺服器已建立連線的數目,當乙個請求被排程到某台伺服器,其連線數加1;當連線中斷或者超時,其連線數減1。

(集群系統的真實伺服器具有相近的系統效能,採用最小連線排程演算法可以比較好地均衡負載。)

4.加權最小連線排程

加權最少連線(weight least connections 簡稱』wlc』)演算法是最小連線排程的超集,各個伺服器相應的權值表示其處理效能。伺服器的預設權值為1,系統管理員可以動態地設定伺服器的權值。加權最小連線排程在排程新連線時盡可能使伺服器的已建立連線數和其權值成比例。排程器可以自動問詢真實伺服器的負載情況,並動態地調整其權值。

5.基於區域性的最少連線

基於區域性的最少連線排程(locality-based least connections 簡稱』lblc』)演算法是針對請求報文的目標ip位址的 負載均衡排程,目前主要用於cache集群系統,因為在cache集群客戶請求報文的目標ip位址是變化的。這裡假設任何後端伺服器都可以處理任一請求,演算法的設計目標是在伺服器的負載基本平衡情況下,將相同目標ip位址的請求排程到同一臺伺服器,來提高各台伺服器的訪問區域性性和cache命中率,從而提公升整個集群系統的處理能力。lblc排程演算法先根據請求的目標ip位址找出該目標ip位址最近使用的伺服器,若該伺服器是可用的且沒有超載,將請求傳送到該伺服器;若伺服器不存在,或者該伺服器超載且有伺服器處於一半的工作負載,則使用』最少連線』的原則選出乙個可用的伺服器,將請求傳送到伺服器。

6.帶複製的基於區域性性的最少連線

帶複製的基於區域性性的最少連線(locality-based least connections with replication 簡稱』lblcr』)演算法也是針對目標ip位址的負載均衡,目前主要用於cache集群系統,它與lblc演算法不同之處是它要維護從乙個目標ip位址到一組伺服器的對映,而lblc演算法維護從乙個目標ip位址到一台伺服器的對映。按』最小連線』原則從該伺服器組中選出一一台伺服器,若伺服器沒有超載,將請求傳送到該伺服器;若伺服器超載,則按』最小連線』原則從整個集群中選出一台伺服器,將該伺服器加入到這個伺服器組中,將請求傳送到該伺服器。同時,當該伺服器組有一段時間沒有被修改,將最忙的伺服器從伺服器組中刪除,以降低複製的程度。

7.目標位址雜湊排程

目標位址雜湊排程(destination hashing 簡稱』dh』)演算法先根據請求的目標ip位址,作為雜湊鍵(hash key)從靜態分配的雜湊表找出對應的伺服器,若該伺服器是可用的且並未超載,將請求傳送到該伺服器,否則返回空。

8.源位址雜湊排程

源位址雜湊排程(source hashing 簡稱』sh』)演算法先根據請求的源ip位址,作為雜湊鍵(hash key)從靜態分配的雜湊表找出對應的伺服器,若該伺服器是可用的且並未超載,將請求傳送到該伺服器,否則返回空。它採用的雜湊函式與目標位址雜湊排程演算法的相同,它的演算法流程與目標位址雜湊排程演算法的基本相似。

9.最短的期望的延遲

最短的期望的延遲排程(shortest expected delay 簡稱』sed』)演算法基於wlc演算法。舉個例子吧,abc三颱伺服器的權重分別為1、2、3 。那麼如果使用wlc演算法的話乙個新請求進入時它可能會分給abc中的任意乙個。使用sed演算法後會進行乙個運算

a:(1+1)/1=2 b:(1+2)/2=3/2 c:(1+3)/3=4/3 就把請求交給得出運算結果最小的伺服器。

10.最少佇列排程

最少佇列排程(never queue 簡稱』nq』)演算法,無需佇列。如果有realserver的連線數等於0就直接分配過去,不需要在進行sed運算。

LVS排程演算法

演算法 說明 rr 輪詢排程 round robin 它將請求一次分配不同的 rs,也就是在rs中均攤請求,演算法簡單,但是只適合於rs處理效能相差不大的情況 多個伺服器硬體配置差不多 wrr加權輪詢排程 weighted round robin 它根據rs不同的權值分配任務,權值高的rs優先獲得請...

LVS 排程演算法

排程器通過 輪叫 排程演算法將外部請求按順序輪流分配到集群中的真實伺服器上,它均等地對待每一台伺服器,而不管伺服器上實際的連線數和系統負載。排程器通過 加權輪叫 排程演算法根據真實伺服器的不同處理能力來排程訪問請求。這樣可以保證處理能力強的伺服器能處理更多的訪問流量。排程器可以自動問詢真實伺服器的負...

LVS 排程演算法

負載均衡排程演算法 1 輪詢 round robin 簡稱 rr 將客戶端請求平均分發到real server 2加權輪詢 weighted round robin 簡稱 wrr 根據real server 的效能設定權重,在進行輪詢排程 3最少連線 least connections 簡稱 lc ...