調度算法(ipvs
scheduler)
起點公平:平均分配,不管分別干的怎么樣。
結果公平:誰現在還剩下的在處理的少,就分配給誰。
根據其調度時是否考慮各RS當前的負載狀態,可分為靜態方法和動態方法兩種:
靜態方法
靜態方法:僅根據算法本身進行調度;
RR
RR:roundrobin,輪詢;
輪詢調度也叫1:1調度,調度器通過輪詢調度算法將外部用戶請求按順序1:1的分配到集群中的每個Real Server上,,而不管服務器上實際的負載狀況和連接狀態。
注重“起點公平”。
WRR
WRR:Weighted RR,加權輪詢;
根據Real Server的不同處理能力來調度訪問請求??梢詫γ颗_Real Server設置不同的調度權值,對于性能相對較好的Real Server可以設置較高的權值,而對于處理能力較弱的Real Server,可以設置較低的權值,這樣保證了處理能力強的服務器處理更多的訪問流量。充分合理的利用了服務器資源。同時,調度器還可以自動查詢Real Server的負載情況,并動態地調整其權值。
注重“結果公平”。
SH
SH:Source Hashing,主要用于實現session sticky(基于IP或者基于Cookie,這里SH使用的是基于IP的),源IP哈希
調度器自己維護一個IP表,將第一次請求被調度到哪里,記錄下來。而第一次去到哪一個RS,就是使用WRR調度算法。SH方法,就是在WRR基礎上,做了會話綁定。
這個方法的粒度,過于粗糙。只有需要維持會話(會話綁定)的場景,才會這么實現。
DH
DH:Destination Hashing;目標地址哈希。
如果調度器背后是兩臺緩存服務器。那么如何提高緩存命中率呢?
只要訪問的目標網站相同,調度器就轉給同一個RS。比如所有需要新浪的資源,始終都轉發到同一個服務器來處理。該服務器處理完后,進行緩存,這樣之后請求同樣內容的請求,就直接從緩存返回了。
這種應用場景,多數為緩存代理。
第一次訪問時,使用WRR算法來決定調度到哪一個RS。
動態方法
動態方法:主要根據每RS當前的負載狀態來調度算法進行調度。
LC
LC:Least Connection 最少連接
計算當前的負載Overhead=Active*256+Inactive來實現
分別給兩個服務器50個鏈接做處理,第一個有40個,10個非活動,第二個50個,但是只有10個活動,40個非活動。
WLC
WLC:Weighted LC:加權LC
Overhead=(Active*256+Inactive)/weight
不同的服務器,有可能處理能力不同。那么就給他們不同的權值,處理能力高的,給高的權值,這樣在分配的時候,處理能力高的服務器就會獲得較多的請求數量。
SED
SED:Shortest Expect Delay 最短期望延遲
Overhead=(Active+1)*256/weight
在WLC算法中,如果計算結果相同時(比如說active和inactive都為0),LVS有一個“自上而下”的挑選方法。但是權重更大的,說明處理能力更強,應該給處理能力強的。而WLC不能夠做到,但是SED算法能夠做到。
非活動鏈接,占用資源非常小,所以不加非活動資源了。
NQ
Nq:Nerver Queus: 永不排隊
在SED算法中,A和B計算結果相同時(假設都為0),新的前幾個鏈接請求來時,根據SED算法和WLC算法,都會分配給B,A就空閑了。所有就有了NQ。
NQ讓每一個服務器都來至少有一個活動的鏈接在處理。
以上幾種算法中,最常用的是WLC。因為服務器處理性能是很重要的指標,而計算結果相同的概率并不高卻要浪費多一些的CPU資源。
LBLC
LBLC:Locality-based least connection(其實就是動態的DH算法) 基于本地的最少連接
相當于DH+LC
DH在做調度時,只根據目標站點進行調度,并不考慮RS的承受能力。是基于WRR算法的。而LBLC也是根據目標站點進行調度,但是第一次訪問時,使用LC算法決定調度到哪一個RS。
LBLCR
LBLCR:Replicated and Locality-based least
connection:帶復制功能的LBLC
假設一種情況,這一段時間得到請求訪問的都是曾經訪問過的資源的(比如是新浪的資源,而該資源緩存在A中),按照LBLC或者DH算法,他們直接在調度器中調度到A來處理。那么A的壓力就會非常大,而B就非常輕松。這種情況下LBLCR算法就顯示出了他的好處。
LBLCR算法,要求A和B的緩存內容共享,并且在極不均衡的情況下,將一些鏈接從A轉給B,B從A處取得緩存資源,并處理。
總結
Dh、LBLC、LBLCR被調度的主機通常是緩存服務器。
SH只是用來做會話綁定的。
其他算法更多的考慮的是公平調度。
原創文章,作者:m20-吳清玲,如若轉載,請注明出處:http://www.www58058.com/55234