IPVS中實現的連接調度算法

簡介

IPVS已經實現了十種連接調度:

  • 輪叫調度(Round-Robin Scheduling)
  • 加權輪叫調度(Weighted Round-Robin Scheduling)
  • 最小連接調度(Least-Connection Scheduling)
  • 加權最小連接調度(Weighted Least-Connection Scheduling)
  • 基于局部性的最少鏈接(Locality-Based Least Connections Scheduling)
  • 帶復制的基于局部性最少鏈接(Locality-Based Least Connections with Replication Scheduling)
  • 目標地址散列調度(Destination Hashing Scheduling)
  • 源地址散列調度(Source Hashing Scheduling)
  • 最短預期延時調度(Shortest Expected Delay Scheduling)
  • 不排隊調度(Never Queue Scheduling)

下面分別對每一種算法做詳細的說明。

輪叫調度(Round-Robin Scheduling)

輪詢:調度器通過”輪詢”調度算法將外部請求按順序輪流分配到集群中的真實服務器上,它均等地對待每一臺服務器,而不管服務器上實際的連接數和系統負載。

加權輪叫調度(Weighted Round-Robin Scheduling)

Weighted Round Robin(加權輪詢):調度器通過”加權輪詢”調度算法根據真實服務器的不同處理能力來調度訪問請求。這樣可以保證處理能力強的服務器處理更多的訪問流量。調度器可以自動問詢真實服務器的負載情況,并動態地調整其權值。

最小連接調度(Least-Connection Scheduling)

最少連接:當有新的作業到達時,調度器選擇一個當前作業量較少的真實服務器,并把新到達的作業分配給它。如果集群系統的真實服務器具有相近的系統性能,采用”最小連接”調度算法可以較好地均衡負載。

加權最小連接調度(Weighted Least-Connection Scheduling)

加權最小連接:將更多的作業分配給作業較少且相對于權重較高(Ci / Wi)的服務器。這是默認值。

在集群系統中的服務器性能差異較大的情況下,調度器采用”加權最少鏈接”調度算法優化負載均衡性能,具有較高權值的服務器將承受較大比例的活動連接負載。調度器可以自動問詢真實服務器的負載情況,并動態地調整其權值。

基于局部性的最少鏈接(Locality-Based Least Connections Scheduling)

基于局部性的最少連接:該算法根據請求的目標IP地址找出該目標IP地址最近使用的服務器,若該服務器 是可用的且沒有超載,將請求發送到該服務器;若服務器不存在,或者該服務器超載且有服務器處于一半的工作負載,則用”最少鏈接”的原則選出一個可用的服務器,將請求發送到該服務器。

帶復制的基于局部性最少鏈接(Locality-Based Least Connections with Replication Scheduling)

帶復制的基于局部性的最少鏈接:它與LBLC算法的不同之處是它要維護從一個目標IP地址到一組服務器的映射,而LBLC算法維護從一個目標IP地址到一臺服務器的映射。該算法根據請求的目標IP地址找出該目標IP地址對應的服務器組,按”最小連接”原則從服務器組中選出一臺服務器,若服務器沒有超載,將請求發送到該服務器,若服務器超載;則按”最小連接”原則從這個集群中選出一 臺服務器,將該服務器加入到服務器組中,將請求發送到該服務器。同時,當該服務器組有一段時間沒有被修改,將最忙的服務器從服務器組中刪除,以降低復制的程度。

目標地址散列調度(Destination Hashing Scheduling)

目標地址散列:調度算法根據請求的目標IP地址,作為散列鍵(Hash Key)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發送到該服務器。

源地址散列調度(Source Hashing Scheduling)

源地址散列:調度算法根據請求的源IP地址,作為散列鍵(Hash Key)從靜態分配的散列表找出對應的服務器,若該服務器是可用的且未超載,將請求發送到該服務器。

最短預期延時調度(Shortest Expected Delay Scheduling)

最短預期延時調度:將預計延遲最短的傳入作業分配給服務器。如果發送到第i個服務器,則作業將經歷的預期延遲是(C i + 1)/ U i,其中C i是第i個服務器上的作業數量,并且U i是第i個服務器的固定服務速率。

不排隊調度(Never Queue Scheduling)

不排隊調度:如果有進來的作業,則分配一個空閑的服務器,而不是等待一個快速的服務器; 如果所有服務器都忙,則采用最短期望延遲策略分配作業。

說明

本文章并非原創,而是在網上學習的過程中綜合各家之長做的筆記,方便之前自己查閱也為其他學習LVS的朋友提供一個參考。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容