簡介
IPVS已經(jīng)實現(xiàn)了十種連接調(diào)度:
- 輪叫調(diào)度(Round-Robin Scheduling)
- 加權(quán)輪叫調(diào)度(Weighted Round-Robin Scheduling)
- 最小連接調(diào)度(Least-Connection Scheduling)
- 加權(quán)最小連接調(diào)度(Weighted Least-Connection Scheduling)
- 基于局部性的最少鏈接(Locality-Based Least Connections Scheduling)
- 帶復(fù)制的基于局部性最少鏈接(Locality-Based Least Connections with Replication Scheduling)
- 目標(biāo)地址散列調(diào)度(Destination Hashing Scheduling)
- 源地址散列調(diào)度(Source Hashing Scheduling)
- 最短預(yù)期延時調(diào)度(Shortest Expected Delay Scheduling)
- 不排隊調(diào)度(Never Queue Scheduling)
下面分別對每一種算法做詳細(xì)的說明。
輪叫調(diào)度(Round-Robin Scheduling)
輪詢:調(diào)度器通過”輪詢”調(diào)度算法將外部請求按順序輪流分配到集群中的真實服務(wù)器上,它均等地對待每一臺服務(wù)器岔冀,而不管服務(wù)器上實際的連接數(shù)和系統(tǒng)負(fù)載袋坑。
加權(quán)輪叫調(diào)度(Weighted Round-Robin Scheduling)
Weighted Round Robin(加權(quán)輪詢):調(diào)度器通過”加權(quán)輪詢”調(diào)度算法根據(jù)真實服務(wù)器的不同處理能力來調(diào)度訪問請求。這樣可以保證處理能力強的服務(wù)器處理更多的訪問流量呼股。調(diào)度器可以自動問詢真實服務(wù)器的負(fù)載情況阳啥,并動態(tài)地調(diào)整其權(quán)值沸移。
最小連接調(diào)度(Least-Connection Scheduling)
最少連接:當(dāng)有新的作業(yè)到達(dá)時床牧,調(diào)度器選擇一個當(dāng)前作業(yè)量較少的真實服務(wù)器荣回,并把新到達(dá)的作業(yè)分配給它。如果集群系統(tǒng)的真實服務(wù)器具有相近的系統(tǒng)性能戈咳,采用”最小連接”調(diào)度算法可以較好地均衡負(fù)載心软。
加權(quán)最小連接調(diào)度(Weighted Least-Connection Scheduling)
加權(quán)最小連接:將更多的作業(yè)分配給作業(yè)較少且相對于權(quán)重較高(Ci / Wi)的服務(wù)器。這是默認(rèn)值著蛙。
在集群系統(tǒng)中的服務(wù)器性能差異較大的情況下删铃,調(diào)度器采用”加權(quán)最少鏈接”調(diào)度算法優(yōu)化負(fù)載均衡性能,具有較高權(quán)值的服務(wù)器將承受較大比例的活動連接負(fù)載册踩。調(diào)度器可以自動問詢真實服務(wù)器的負(fù)載情況泳姐,并動態(tài)地調(diào)整其權(quán)值。
基于局部性的最少鏈接(Locality-Based Least Connections Scheduling)
基于局部性的最少連接:該算法根據(jù)請求的目標(biāo)IP地址找出該目標(biāo)IP地址最近使用的服務(wù)器暂吉,若該服務(wù)器 是可用的且沒有超載,將請求發(fā)送到該服務(wù)器缎患;若服務(wù)器不存在慕的,或者該服務(wù)器超載且有服務(wù)器處于一半的工作負(fù)載,則用”最少鏈接”的原則選出一個可用的服務(wù)器挤渔,將請求發(fā)送到該服務(wù)器肮街。
帶復(fù)制的基于局部性最少鏈接(Locality-Based Least Connections with Replication Scheduling)
帶復(fù)制的基于局部性的最少鏈接:它與LBLC算法的不同之處是它要維護從一個目標(biāo)IP地址到一組服務(wù)器的映射,而LBLC算法維護從一個目標(biāo)IP地址到一臺服務(wù)器的映射判导。該算法根據(jù)請求的目標(biāo)IP地址找出該目標(biāo)IP地址對應(yīng)的服務(wù)器組嫉父,按”最小連接”原則從服務(wù)器組中選出一臺服務(wù)器,若服務(wù)器沒有超載眼刃,將請求發(fā)送到該服務(wù)器绕辖,若服務(wù)器超載;則按”最小連接”原則從這個集群中選出一 臺服務(wù)器擂红,將該服務(wù)器加入到服務(wù)器組中仪际,將請求發(fā)送到該服務(wù)器。同時昵骤,當(dāng)該服務(wù)器組有一段時間沒有被修改树碱,將最忙的服務(wù)器從服務(wù)器組中刪除,以降低復(fù)制的程度变秦。
目標(biāo)地址散列調(diào)度(Destination Hashing Scheduling)
目標(biāo)地址散列:調(diào)度算法根據(jù)請求的目標(biāo)IP地址成榜,作為散列鍵(Hash Key)從靜態(tài)分配的散列表找出對應(yīng)的服務(wù)器,若該服務(wù)器是可用的且未超載蹦玫,將請求發(fā)送到該服務(wù)器赎婚。
源地址散列調(diào)度(Source Hashing Scheduling)
源地址散列:調(diào)度算法根據(jù)請求的源IP地址刘绣,作為散列鍵(Hash Key)從靜態(tài)分配的散列表找出對應(yīng)的服務(wù)器,若該服務(wù)器是可用的且未超載惑淳,將請求發(fā)送到該服務(wù)器额港。
最短預(yù)期延時調(diào)度(Shortest Expected Delay Scheduling)
最短預(yù)期延時調(diào)度:將預(yù)計延遲最短的傳入作業(yè)分配給服務(wù)器。如果發(fā)送到第i個服務(wù)器歧焦,則作業(yè)將經(jīng)歷的預(yù)期延遲是(C i + 1)/ U i移斩,其中C i是第i個服務(wù)器上的作業(yè)數(shù)量,并且U i是第i個服務(wù)器的固定服務(wù)速率绢馍。
不排隊調(diào)度(Never Queue Scheduling)
不排隊調(diào)度:如果有進(jìn)來的作業(yè)向瓷,則分配一個空閑的服務(wù)器,而不是等待一個快速的服務(wù)器; 如果所有服務(wù)器都忙舰涌,則采用最短期望延遲策略分配作業(yè)猖任。
說明
本文章并非原創(chuàng),而是在網(wǎng)上學(xué)習(xí)的過程中綜合各家之長做的筆記瓷耙,方便之前自己查閱也為其他學(xué)習(xí)LVS的朋友提供一個參考朱躺。