天天看點

LVS通用算法(二)動态算法

動态算法:(active活動 inactive非活動)

這個算法了解的http連結是:

活動連結:傳輸資料

非活動連結:剛建立握手還沒有傳輸資料,傳輸資料完畢還沒有來得及斷開

LC(Least-Connection):最少連接配接

最少連接配接排程算法是把新的連接配接請求配置設定到目前連接配接數最小的伺服器,最小連接配接排程是一種動态排程短算法,它通過伺服器目前所活躍的連接配接數來估計伺服器的負載均衡,排程器需要記錄各個伺服器已建立連接配接的數目,當一個請求被排程到某台伺服器,其連接配接數加1,當連接配接中止或逾時,其連接配接數減一,在系統實作時,我們也引入當伺服器的權值為0時,表示該伺服器不可用而不被排程。

簡單算法:active*256+inactive(誰的小,挑誰)

LVS通用算法(二)動态算法

WLC(Weighted Least-Connection Scheduling):權重最少連接配接。

權重最小連接配接排程算法是最小連接配接排程的超集,各個伺服器用相應的權值表示其處理性能。伺服器的預設權值為1,系統管理者可以動态地設定伺服器的權限,權重最小連接配接排程在排程新連接配接時盡可能使伺服器的已建立連接配接數和其權值成比例。

簡單算法:(active*256+inactive)/weight【(活動的連接配接數+1)/除以權重】(誰的小,挑誰)

LVS通用算法(二)動态算法

SED(Shortest Expected Delay):最短期望延遲

基于wlc算法

簡單算法:(active+1)*256/weight 【(活動的連接配接數+1)*256/除以權重】

NQ(never queue):永不排隊(改進的sed)特殊的SED算法

無需隊列,如果有台realserver的連接配接數=0就直接配置設定過去,不需要在進行sed運算。

LBLC(Locality-Based Least Connection):基于局部性的最少連接配接,特殊的DH算法,即考慮伺服器性能又呢能提高緩存 命中率。

“基于局部性的最少連結”排程算法是針對目标IP位址的負載均衡,目前主要用于Cache叢集系統。

該算法根據請求的目标IP位址找出該目标IP位址最近使用的伺服器,若該伺服器是可用的且沒有超載,将請求發送到該伺服器;若伺服器不存在,或者該伺服器超載且有伺服器處于一半的工作負載,則用“最少連結” 的原則選出一個可用的伺服器,将請求發送到該伺服器。

LVS通用算法(二)動态算法

這個隻是我們的實驗而已,但是如果是一個真實環境,通路量是很大的,我們還要考慮并發量,如果隻這個資源通路突然加大這個squid會癱瘓的,是以可以采用LBLC算法,當一台太大的時候,可以再加一台squid…

LBLCR(Locality-Based Least Connections withReplication):帶複制的基于局部性最少連結,LBLC+緩存,盡可能提高負載均衡和緩存命中率的折中方案

“帶複制的基于局部性最少連結”排程算法也是針對目标IP位址的負載均衡,目前主要用于Cache叢集系統。它與LBLC算法的不同之處是它要維護從一個目标 IP位址到一組伺服器的映射,而LBLC算法維護從一個目标IP位址到一台伺服器的映射。該算法根據請求的目标IP位址找出該目标IP位址對應的伺服器組,按“最小連接配接”原則從伺服器組中選出一台伺服器,若伺服器沒有超載,将請求發送到該伺服器;若伺服器超載,則按“最小連接配接”原則從這個叢集中選出一台伺服器,将該伺服器加入到伺服器組中,将請求發送到該伺服器。同時,當該伺服器組有一段時間沒有被修改,将最忙的伺服器從伺服器組中删除,以降低複制的程度。

LVS通用算法(二)動态算法

這隻是一個子元素,但是公司可能會有成千上億的元素,不能都放在一個apache上,是以采用了LBLCR技術

繼續閱讀