企業級負載均衡集羣LVS—八種調度算法

企業級負載均衡集羣LVS—八種調度算法

LVS有兩種類型的調度算法:

  • 靜態的調度算法。這種算法一經實現,後續就不會發生變化,是既定的規則,後續數據包的流轉都會按照這種規則進行按部就班的流轉
  • 動態的調度算法。這種算法是基於網絡狀況,或者後端服務器的狀況,連接的狀況等來進行實時的調整,算法的規則會根據實際情況而發生一定的變化。

1. 常用的靜態調度算法

  • RR:輪叫調度(Round Robin)
    調度器通過”輪叫”調度算法將外部請求按順序輪流分配到集羣中的真實服務器上,它均等地對待每一臺服務器,而不管服務器上實際的連接數和系統負載。
  • WRR:加權輪叫(Weight RR)
    調度器通過“加權輪叫”調度算法根據真實服務器的不同處理能力來調度訪問請求。這樣可以保證處理能力強的服務器處理更多的訪問流量。調度器可以自動問詢真實服務器的負載情況,並動態地調整其權值。
  • DH:目標地址散列調度(Destination Hash )
    根據請求的目標IP地址,作爲散列鍵(HashKey)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發送到該服務器,否則返回空。
  • SH:源地址 hash(Source Hash)
    源地址散列”調度算法根據請求的源IP地址,作爲散列鍵(HashKey)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發送到該服務器,否則返回空。

2. 常用的動態調度算法

  • LC:最少鏈接(Least Connections)
    調度器通過”最少連接”調度算法動態地將網絡請求調度到已建立的鏈接數最少的服務器上。如果集羣系統的真實服務器具有相近的系統性能,採用”最小連接”調度算法可以較好地均衡負載。
  • WLC:加權最少連接(Weighted Least Connections)
    在集羣系統中的服務器性能差異較大的情況下,調度器採用“加權最少鏈接”調度算法優化負載均衡性能,具有較高權值的服務器將承受較大比例的活動連接負載。調度器可以自動問詢真實服務器的負載情況,並動態地調整其權值。(默認採用這種)
  • SED:最短延遲調度(Shortest Expected Delay)
    在WLC基礎上改進,Overhead = (ACTIVE+1)*256/加權,不再考慮非活動狀態,把當前處於活動狀態的數目+1來實現,數目最小的,接受下次請求,+1的目的是爲了考慮加權的時候,非活動連接過多缺陷:當權限過大的時候,會倒置空閒服務器一直處於無連接狀態。
  • NQ永不排隊/最少隊列調度(Never Queue Scheduling NQ)
    無需隊列。如果有臺 realserver的連接數=0就直接分配過去,不需要再進行sed運算,保證不會有一個主機很空間。在SED基礎上無論+幾,第二次一定給下一個,保證不會有一個主機不會很空閒着,不考慮非活動連接,才用NQ,SED要考慮活動狀態連接,對於DNS的UDP不需要考慮非活動連接,而httpd的處於保持狀態的服務就需要考慮非活動連接給服務器的壓力。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章