負載調度器:調度算法

調度算法(ipvs
scheduler

起點公平:平均分配,不管分別干的怎么樣。

結果公平:誰現在還剩下的在處理的少,就分配給誰。

     根據其調度時是否考慮各RS當前的負載狀態,可分為靜態方法和動態方法兩種:

靜態方法

靜態方法:僅根據算法本身進行調度;

RR

     RRroundrobin,輪詢;

輪詢調度也叫1:1調度,調度器通過輪詢調度算法將外部用戶請求按順序1:1的分配到集群中的每個Real Server上,,而不管服務器上實際的負載狀況和連接狀態。

注重“起點公平”。

WRR

     WRRWeighted RR,加權輪詢;

根據Real Server的不同處理能力來調度訪問請求??梢詫γ颗_Real Server設置不同的調度權值,對于性能相對較好的Real Server可以設置較高的權值,而對于處理能力較弱的Real Server,可以設置較低的權值,這樣保證了處理能力強的服務器處理更多的訪問流量。充分合理的利用了服務器資源。同時,調度器還可以自動查詢Real Server的負載情況,并動態地調整其權值。

     注重“結果公平”。

SH

SHSource Hashing,主要用于實現session sticky(基于IP或者基于Cookie,這里SH使用的是基于IP的),源IP哈希

調度器自己維護一個IP表,將第一次請求被調度到哪里,記錄下來。而第一次去到哪一個RS,就是使用WRR調度算法。SH方法,就是在WRR基礎上,做了會話綁定。

這個方法的粒度,過于粗糙。只有需要維持會話(會話綁定)的場景,才會這么實現。

DH

     DHDestination Hashing;目標地址哈希。

負載調度器:調度算法

如果調度器背后是兩臺緩存服務器。那么如何提高緩存命中率呢?

只要訪問的目標網站相同,調度器就轉給同一個RS。比如所有需要新浪的資源,始終都轉發到同一個服務器來處理。該服務器處理完后,進行緩存,這樣之后請求同樣內容的請求,就直接從緩存返回了。

這種應用場景,多數為緩存代理。

     第一次訪問時,使用WRR算法來決定調度到哪一個RS。

動態方法

動態方法:主要根據每RS當前的負載狀態來調度算法進行調度。

LC

LCLeast Connection 最少連接

    計算當前的負載Overhead=Active*256+Inactive來實現

     分別給兩個服務器50個鏈接做處理,第一個有40個,10個非活動,第二個50個,但是只有10個活動,40個非活動。

WLC

WLCWeighted LC:加權LC

     Overhead=Active*256+Inactive/weight

     不同的服務器,有可能處理能力不同。那么就給他們不同的權值,處理能力高的,給高的權值,這樣在分配的時候,處理能力高的服務器就會獲得較多的請求數量。

SED

SEDShortest Expect Delay  最短期望延遲

Overhead=Active+1*256/weight

WLC算法中,如果計算結果相同時(比如說activeinactive都為0),LVS有一個“自上而下”的挑選方法。但是權重更大的,說明處理能力更強,應該給處理能力強的。而WLC不能夠做到,但是SED算法能夠做到。

負載調度器:調度算法

非活動鏈接,占用資源非常小,所以不加非活動資源了。

NQ

NqNerver Queus 永不排隊

負載調度器:調度算法

SED算法中,AB計算結果相同時(假設都為0),新的前幾個鏈接請求來時,根據SED算法和WLC算法,都會分配給B,A就空閑了。所有就有了NQ

     NQ讓每一個服務器都來至少有一個活動的鏈接在處理。

 

以上幾種算法中,最常用的是WLC。因為服務器處理性能是很重要的指標,而計算結果相同的概率并不高卻要浪費多一些的CPU資源。

LBLC

LBLCLocality-based least connection(其實就是動態的DH算法) 基于本地的最少連接

    相當于DH+LC

     DH在做調度時,只根據目標站點進行調度,并不考慮RS的承受能力。是基于WRR算法的。而LBLC也是根據目標站點進行調度,但是第一次訪問時,使用LC算法決定調度到哪一個RS。

LBLCR

LBLCRReplicated and Locality-based least
connection
:帶復制功能的LBLC

負載調度器:調度算法

假設一種情況,這一段時間得到請求訪問的都是曾經訪問過的資源的(比如是新浪的資源,而該資源緩存在A中),按照LBLC或者DH算法,他們直接在調度器中調度到A來處理。那么A的壓力就會非常大,而B就非常輕松。這種情況下LBLCR算法就顯示出了他的好處。

LBLCR算法,要求AB的緩存內容共享,并且在極不均衡的情況下,將一些鏈接從A轉給B,BA處取得緩存資源,并處理。

總結

DhLBLC、LBLCR被調度的主機通常是緩存服務器。

SH只是用來做會話綁定的。

其他算法更多的考慮的是公平調度。

原創文章,作者:m20-吳清玲,如若轉載,請注明出處:http://www.www58058.com/55234

(1)
m20-吳清玲m20-吳清玲
上一篇 2016-10-28 19:56
下一篇 2016-10-28 21:55

相關推薦

  • 啟動和內核管理2

    五、自制linux系統     分區并創建文件系統         fdisk /dev/sdb         分兩個必要的分區   &n…

    Linux干貨 2016-09-18
  • Linux系統程序包管理工具-RPM

    一、rpm是什么 RPM 是RPM Package Manager(RPM軟件包管理器)的縮寫,這一文件格式名稱雖然打上了RedHat的標志,但是其原始設計理念是開放式的。RPM包管理器(RPM)是一個強大的命令行驅動的包管理系統能夠安裝、卸載、驗證、查詢和更新計算機軟件包。每個軟件包包括存檔的文件連同包和它的版本信息,描述等。還有一個庫API,允…

    Linux干貨 2015-11-19
  • 8.8作業

    4、如何設置tab縮進為4個字符?    set tabstop=4     5、復制/etc/rc.d/init.d/functions文件至/tmp目錄;替換/tmp/functions文件中的/etc/sysconfig/init為/var/log; cp /etc/rc.d/init.d/functi…

    Linux干貨 2016-08-11
  • 第二周博客作業

    1.linux上的文件管理類命令都用哪些,其常用的使用方法及其相關示例演示。 常用命令有:cp, mv, rm 復制命令:cp cp [OPTION]… [-T] SOURCE DEST                 cp [OPTION]… SOURC…

    Linux干貨 2016-06-23
  • Ansible中文權威

    福利貼 運維神器 Ansible 本土化在際,除了每日分享,定期更新外,還有大蝦不定期解惑,更多福利可關注  http://www.www58058.com/doc/ansible/  或 掃描二維碼入( 372011984 )群關注.

    Linux干貨 2015-08-13
  • 第十二周作業

    1、請描述一次完整的http請求處理過程;     1)建立或處理連接:接收請求或拒絕請求;     2)接收請求:接收來自于網絡的請求報文中對某資源的一次請求的過程;接收請求的方式通常是并發訪問響應模型;     3)處理請求:對請求報文進行解析,并獲取請求的資源及請求方法等相關信息,解析后的報文…

    2017-03-27
欧美性久久久久