固定排程演算法:rr,wrr,dh,sh
動態排程演算法:wlc,lc,sed,nq,lblc,lblcr
固定排程演算法:即排程器不會去判斷後端伺服器的繁忙與否,一如既往得將請求派發下去。
動態排程演算法:排程器會去判斷後端伺服器的繁忙程度,然後依據排程演算法動態得派發請求。
rr:輪詢(round robin)
這種演算法是最簡單的,就是按依次迴圈的方式將請求排程到不同的伺服器上,該演算法最大的特點就是簡單。輪詢演算法假設所有的伺服器處理請求的能力都是一樣的,排程器會將所有的請求平均分配給每個真實伺服器,不管後端 rs 配置和處理能力,非常均衡地分發下去。這個排程的缺點是,不管後端伺服器的繁忙程度是怎樣的,排程器都會講請求依次發下去。如果a伺服器上的請求很快請求完了,而b伺服器的請求一直持續著,將會導致b伺服器一直很忙,而a很閒,這樣便沒起到均衡的左右。
wrr:加權輪詢(weight round robin)
這種演算法比 rr 的演算法多了乙個權重的概念,可以給 rs 設定權重,權重越高,那麼分發的請求數越多,權重的取值範圍 0 – 100。主要是對rr演算法的一種優化和補充, lvs 會考慮每台伺服器的效能,並給每台伺服器新增要給權值,如果伺服器a的權值為1,伺服器b的權值為2,則排程到伺服器b的請求會是伺服器a的2倍。權值越高的伺服器,處理的請求越多。
dh:目標位址雜湊排程演算法 (destination hash)
簡單的說,即將同一型別的請求分配給同乙個後端伺服器,例如將以 .jgp、.png等結尾的請求**到同乙個節點。這種演算法其實不是為了真正意義的負載均衡,而是為了資源的分類管理。這種排程演算法主要應用在使用了快取節點的系統中,提高快取的命中率。
sh:源位址雜湊排程演算法(source hash)
即將來自同乙個ip的請求發給後端的同乙個伺服器,如果後端伺服器工作正常沒有超負荷的話。這可以解決session共享的問題,但是這裡有個問題,很多企業、社群、學校都是共用的乙個ip,這將導致請求分配的不均衡。
lc:最少連線數(least-connection)
這個演算法會根據後端 rs 的連線數來決定把請求分發給誰,比如 rs1 連線數比 rs2 連線數少,那麼請求就優先發給 rs1。這裡問題是無法做到會話保持,即session共享。
wlc:加權最少連線數(weight least-connection)
這個比最少連線數多了乙個加權的概念,即在最少連線數的基礎上加乙個權重值,當連線數相近,權重值越大,越優先被分派請求。
sed:演算法基於wlc演算法。舉個例子吧,abc三颱伺服器的權重分別為1、2、3 。那麼如果使用wlc演算法的話乙個新請求進入時它可能會分給abc中的任意乙個。使用sed演算法後會進行乙個運算
a:(1+1)/1=2 b:(1+2)/2=3/2 c:(1+3)/3=4/3 就把請求交給得出運算結果最小的伺服器。
lblc:基於區域性性的最少連線排程演算法(locality-based least-connection)
將來自同一目的位址的請求分配給同一臺rs如果這台伺服器尚未滿負荷,否則分配給連線數最小的rs,並以它為下一次分配的首先考慮。
lvs的排程演算法有幾種 LVS
lvs是linux virtual server的簡寫,意即linux虛擬伺服器,是乙個虛擬的伺服器集群系統,使用負載均衡技術將多台伺服器組成乙個虛擬伺服器。它為適應快速增長的網路訪問需求提供了乙個負載能力易於擴充套件,而 低廉的解決方案。internet的快速增長使多 網路伺服器面對的訪問數量快速...
LVS學習筆記
2 lvs linux virtual server linux虛擬伺服器 3 lvs 實現負載均衡的一種軟體 nginx harproxy也可以實現負載均衡 4 模型 clients lvs伺服器 真正用來分攤壓力 處理請求的伺服器 realserver 5 lvs伺服器和realserver組成...
LVS的排程演算法
負載均衡器演算法 演算法規定了客戶端的請求應該到哪個後台伺服器響應 lvs的工作模式 工作模式規定的是資料報如何流轉 就是這個路怎麼走 常用命令 ipvsadm a t 192.168.226.167 80 s rr 新增乙個虛擬服務192.168.226.167 80,使用輪詢演算法 ipvsad...