負載調度器:調度算法

調度算法(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算法,都會分配給BA就空閑了。所有就有了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轉給BBA處取得緩存資源,并處理。

總結

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

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

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

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

(1)
m20-吳清玲m20-吳清玲
上一篇 2016-10-28
下一篇 2016-10-28

相關推薦

  • linux基礎之用戶管理

    介紹了一些基礎命令,比如cut、head傳輸到管道時的使用,并通過詳細的介紹、大量的習題完成了用戶管理的相關知識

    Linux干貨 2017-12-15
  • 前三天基礎-Linux文件系統概論

    Linux之我見     在2016農歷丙申年2016年猴年,對于小白的我來說接觸到了江湖流傳的武功秘籍之-Linux心法,第一次接觸到命令行,知道在鍵盤上隨便敲擊命令就可以滿屏跑數據,就像看過的美國大片里黑客帝國里面的畫面,感覺學會好后可以裝逼了,廢話不多說了,允許在下斗膽介紹Linux文件系統。     &nbsp…

    Linux干貨 2016-03-24
  • 計劃任務與啟動流程

    一、任務計劃 未來的某時間點執行一次任務:    at:在指定的時間執行任務    batch:系統自行選擇空閑時間去執行此處指定的任務周期性運行某任務:    cron:在指定的時間執行任務 1、at任務at [option] TIME  常用選項:&nbs…

    Linux干貨 2016-09-13
  • linux文件目錄詳解

    linux目錄結構   (且看且不看) 歷史上 /usr和 /etc文件夾下既保存靜態文件,也保存可變文件,后來有了/var層次結構,/usr下面的可變文件被轉移到/var下面。因而/usr現在可以只讀的方式掛載(如果它在單獨的文件系統上)。 /etc下的可變文件早已轉移到/var,因為技術上允許/ 根是系統內核啟動后掛載的第一個分區,掛載到根上的…

    Linux干貨 2017-05-31
  • OPenSSL

    OPenSSL   OpenSSL 是一個安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及SSL協議,并提供豐富的應用程序供測試或其它目的使用.   SSL是Secure Sockets Layer(安全套接層協議)的縮寫,可以在Internet上提供秘密性傳輸。Netscape公司在推出第一個Web瀏覽器的同時,提出了SSL協議標準?!?/p>

    Linux干貨 2016-11-07
  • Memcached命令

    Memcache 的命令行用法: 1、啟動Memcache 常用參數    memcached 1.4.3      -p <num>      設置端口號(默認不設置為: 11211)      -U <num> &nbsp…

    Linux干貨 2015-05-18
欧美性久久久久