lvs 輪詢調度詳解


固定調度算法: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,並以它為下一次分配的首先考慮。

lblcr:基於地址的帶重復最小連接數調度 (Locality-Based Least-Connection with Replication)
這個用得少,可以略過。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM