• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      Nginx負(fù)載均衡技術(shù)的研究

      2019-07-10 09:23:40
      關(guān)鍵詞:輪詢(xún)均衡器哈希

      梁 劍

      (太原工業(yè)學(xué)院 計(jì)算機(jī)工程系,山西 太原 030008)

      隨著互聯(lián)網(wǎng)應(yīng)用的發(fā)展,由多臺(tái)服務(wù)器分擔(dān)客戶(hù)的HTTP請(qǐng)求已經(jīng)廣泛部署到現(xiàn)實(shí)中.但是我們很難做出一個(gè)完美方案能解決合理分配負(fù)載.一般來(lái)說(shuō),服務(wù)器的資源包括CPU、內(nèi)存、硬盤(pán)IO等,如何充分利用這些資源是個(gè)難點(diǎn)。首先,很難根據(jù)一個(gè)URL來(lái)判斷是消耗了哪種資源,比如說(shuō)圖片、HTML文檔這樣的靜態(tài)內(nèi)容主要消耗硬盤(pán)IO資源.如果是動(dòng)態(tài)內(nèi)容,可能主要消耗CPU或內(nèi)存.第二,如何對(duì)后端資源進(jìn)行價(jià)值度量,各種資源的值簡(jiǎn)單相加并不合理.第三,合理利用所有資源未必是最優(yōu)選,比如當(dāng)訪問(wèn)的是熱數(shù)據(jù)時(shí),結(jié)果會(huì)從緩存中取出而節(jié)約時(shí)間,任務(wù)分配不合理,可能會(huì)出現(xiàn)更多的鎖等待時(shí)間.

      1 Nginx負(fù)載均衡機(jī)制簡(jiǎn)介

      Nginx是由俄羅斯人Igor Sysoev開(kāi)發(fā)的一款高性能Web服務(wù)器,同時(shí)還支持反向代理和負(fù)載均衡.由于使用了epoll這樣的多路復(fù)用IO技術(shù),Nginx所消耗的資源比傳統(tǒng)的Apache服務(wù)器要小,因此能支持更高的并發(fā)連接數(shù),根據(jù)NETCRAFT調(diào)查,在2018年1月占有25.39%的份額,并且還在快速增長(zhǎng)中[5].

      1.1 Nginx反向代理模塊

      Nginx的反向代理是在ngx_http_upstream_module模塊中實(shí)現(xiàn)的[4],配置文件如下所示:

      upstream backserver {

      server backend.server.com weight=5;

      server 127.0.0.1:1234 weight=10;}

      upstream模塊可以通過(guò)proxy_pass被引用,配置如下所示:

      server {

      listen 8080;

      proxy_pass backserver;}

      1.2 Nginx的負(fù)載均衡算法

      1.2.1 輪詢(xún)算法

      輪詢(xún)(round-robin)是Nginx的默認(rèn)負(fù)載均衡算法,根據(jù)請(qǐng)求到來(lái)的順序,依次將任務(wù)分配給后端服務(wù)器,此算法的優(yōu)點(diǎn)是實(shí)現(xiàn)簡(jiǎn)單,但是分配任務(wù)上沒(méi)有任何優(yōu)化,無(wú)法充分利用后端服務(wù)器資源.

      1.2.2 會(huì)話(huà)保持算法

      又稱(chēng)IP_HASH方式,采用輪詢(xún)或共他負(fù)載均衡算法會(huì)造成同一用戶(hù)的請(qǐng)求分配到不同的服務(wù)器上,這種情況下必須使用session共享技術(shù),不同的服務(wù)器訪問(wèn)來(lái)自同一源的session,可使用redis等技術(shù)來(lái)實(shí)現(xiàn).在Nginx中可以使用ip_hash指令配置此算法.此方法的好處是不需要解決不同服務(wù)器間的共享session問(wèn)題,但其缺點(diǎn)是缺乏對(duì)任務(wù)分配的優(yōu)化.

      1.2.3 加權(quán)輪詢(xún)負(fù)載均衡算法

      加權(quán)輪詢(xún)負(fù)載均衡(Weighted Load Balancing)是在輪詢(xún)的基礎(chǔ)上根據(jù)服務(wù)器的負(fù)載能力來(lái)調(diào)整任務(wù)分配,前面提到的兩種算法中對(duì)待后端服務(wù)器是一視同仁,而現(xiàn)實(shí)中后端服務(wù)器的能力是有差別的.在Nginx輪詢(xún)方式的配置后面加上weight命令來(lái)指定服務(wù)器的權(quán)重.此算法的優(yōu)點(diǎn)是考慮了后端服務(wù)器能力的差異,其缺點(diǎn)是這種任務(wù)分配方式是靜態(tài)的,無(wú)法根據(jù)實(shí)際負(fù)載動(dòng)態(tài)調(diào)整.

      1.2.4 最少連接數(shù)負(fù)載均衡算法

      最少連接數(shù)負(fù)載均衡(Least connected load balancing)就是根據(jù)前端任務(wù)分配器與后端服務(wù)器的連接數(shù)做為分配的依據(jù),連接數(shù)少的負(fù)荷小,連接數(shù)多的負(fù)荷大.新到的任務(wù)會(huì)分配到連接數(shù)少的服務(wù)器上.其優(yōu)點(diǎn)是考慮了服務(wù)器的動(dòng)態(tài)負(fù)荷狀況,但其缺點(diǎn)是依賴(lài)連接數(shù)判斷負(fù)荷是不夠準(zhǔn)確的,比如說(shuō)連接數(shù)多并不能表明負(fù)荷重,也許是因?yàn)榈却i資源,或者是在等待其他服務(wù)器(如數(shù)據(jù)庫(kù)服務(wù)器)完成任務(wù).

      2 Nginx負(fù)載均衡的研究狀況

      國(guó)內(nèi)外負(fù)載均衡算法的研究都比較多,總體上分為靜態(tài)和動(dòng)態(tài)兩種類(lèi)型.靜態(tài)類(lèi)型就是不考慮后端服務(wù)器的工作狀況,根據(jù)預(yù)先設(shè)定的方式分配任務(wù),如Nginx中自帶的輪詢(xún)、加權(quán)輪詢(xún)以及會(huì)話(huà)保護(hù)方式.動(dòng)態(tài)類(lèi)型是根據(jù)后端服務(wù)器的負(fù)載狀況分配任務(wù),這其中又有兩種方式,一是根據(jù)連接數(shù)推測(cè)服務(wù)器的運(yùn)行狀況;二是根據(jù)后端服務(wù)器將自身的負(fù)荷狀況反饋給任務(wù)分配器,以此信息做為任務(wù)分配依據(jù).

      在文獻(xiàn)中提出了一種動(dòng)態(tài)自適應(yīng)權(quán)重輪詢(xún)隨機(jī)負(fù)載均衡算法,將后端服務(wù)器的CPU、內(nèi)存、磁盤(pán)IO、網(wǎng)絡(luò)使用經(jīng)過(guò)加權(quán)計(jì)算得到資源使用率,將其反饋給任務(wù)分配服務(wù)器.但也應(yīng)該看到,其相比于加權(quán)最少連接數(shù)算法只有10%左右的性能提升,付出的代價(jià)是大大提高了系統(tǒng)復(fù)雜性.在文獻(xiàn)中提出了一種具有實(shí)時(shí)反饋能力的負(fù)載均衡算法,選擇了與文獻(xiàn)中近似的方法,通過(guò)計(jì)算后端服務(wù)器中CPU、內(nèi)存、IO的負(fù)荷情況反饋回前端負(fù)載均衡器.在文獻(xiàn)中提出了負(fù)載均衡算法,并且結(jié)合memcache,將CPU、網(wǎng)絡(luò)等資源使用情況反饋給前端負(fù)載均衡器.

      綜上文獻(xiàn)看出現(xiàn)有的研究主要集中在后端服務(wù)器向前端反饋資源占用狀況,這種方式能一定程度準(zhǔn)確反應(yīng)實(shí)際情況.但其問(wèn)題有三,一是增加了復(fù)雜性;二是占用了資源,性能提升并不明顯.三是負(fù)載反饋具有滯后性,當(dāng)短連接數(shù)較多時(shí),無(wú)法反映出實(shí)際負(fù)載情況.

      3 基于熱數(shù)據(jù)的最少連接數(shù)負(fù)載均衡算法

      相比于依賴(lài)于后端服務(wù)器反饋負(fù)載情況,在負(fù)載均衡器上也能采集到負(fù)載情況的相關(guān)信息,如連接數(shù)、時(shí)延等.熱數(shù)據(jù)是指一段時(shí)間內(nèi)頻繁訪問(wèn)的數(shù)據(jù),對(duì)于Web訪問(wèn)來(lái)說(shuō),可以簡(jiǎn)單地認(rèn)為,相同的URL訪問(wèn)出現(xiàn)熱數(shù)據(jù)的幾率要高得多.

      設(shè)W(Ni)是為第i個(gè)后服務(wù)器的權(quán)重,W(Ni)權(quán)重主要考慮三個(gè)因素連接數(shù)、時(shí)延和URL的哈希.URL的哈希權(quán)值代表與熱數(shù)據(jù)的接近程度,按URL的哈希分配更能接近熱數(shù)據(jù).設(shè)URL經(jīng)過(guò)哈希運(yùn)算后結(jié)果會(huì)落到[0,H)的區(qū)間上,則H(Ni)是URL相對(duì)于第i個(gè)服務(wù)器的權(quán)值,則有如下公式:

      設(shè)C(Ni)為第i個(gè)的服務(wù)器的連接數(shù),D(Ni)為第i個(gè)服務(wù)器的平均延時(shí)值,則連接數(shù)與時(shí)延的聯(lián)合加權(quán)值W(Li)為:

      設(shè)Ccnt為預(yù)先設(shè)定的常量,W(Ni)的值為:

      圖1 實(shí)驗(yàn)示意圖

      那么第i個(gè)服務(wù)器分配到負(fù)載的概率Pi為:

      4 實(shí)驗(yàn)驗(yàn)證

      實(shí)驗(yàn)開(kāi)發(fā)環(huán)境是使用五臺(tái)計(jì)算機(jī),操作系統(tǒng)為CentOS6.9,一臺(tái)安裝Nginx作為負(fù)載均衡器,四臺(tái)作為后端服務(wù)器,安裝php_fpm服務(wù)軟件.壓力測(cè)試軟件使用Apache AB實(shí)驗(yàn)圖如圖1所示.

      實(shí)驗(yàn)測(cè)試分別測(cè)試輪詢(xún)算法(RR),最少連接數(shù)算法(LC),基于熱數(shù)據(jù)的最少連接數(shù)算法(HLC),實(shí)驗(yàn)做了5次取平均值.在表1中列出了三種算法的平均響應(yīng)時(shí)間,可以看到,使用LC算法要比傳統(tǒng)的輪詢(xún)算法響應(yīng)時(shí)間要少,而使用基于HLC算法,響應(yīng)時(shí)間更好.

      表2測(cè)試了連接成功數(shù),可以看到相比于傳統(tǒng)的RR算法,LC算法的連接成功次數(shù)有了一定的提高,而使用HLC算法在連接成功數(shù)上與LC算法相當(dāng).

      表1 平均響應(yīng)時(shí)延 ms

      表2 連接成功數(shù)

      5 總結(jié)

      相比于傳統(tǒng)的輪詢(xún)算法,最少連接數(shù)能夠提高負(fù)載均衡的性能,使用熱數(shù)據(jù)的最少連接數(shù)算法比較依賴(lài)于是否能讀到熱的數(shù)據(jù),所以不同的環(huán)境下可能性能表現(xiàn)會(huì)有差距.

      猜你喜歡
      輪詢(xún)均衡器哈希
      基于等概率的ASON業(yè)務(wù)授權(quán)設(shè)計(jì)?
      依托站點(diǎn)狀態(tài)的兩級(jí)輪詢(xún)控制系統(tǒng)時(shí)延特性分析
      基于OpenCV與均值哈希算法的人臉相似識(shí)別系統(tǒng)
      利用時(shí)間輪詢(xún)方式操作DDR3實(shí)現(xiàn)多模式下數(shù)據(jù)重排
      無(wú)線(xiàn)傳感網(wǎng)OFDM系統(tǒng)中信道均衡器的電路實(shí)現(xiàn)
      電子器件(2015年5期)2015-12-29 08:42:39
      一種基于LC振蕩電路的串聯(lián)蓄電池均衡器
      基于維度分解的哈希多維快速流分類(lèi)算法
      基于同態(tài)哈希函數(shù)的云數(shù)據(jù)完整性驗(yàn)證算法
      一種基于Bigram二級(jí)哈希的中文索引結(jié)構(gòu)
      基于LMS 算法的自適應(yīng)均衡器仿真研究
      株洲市| 新乐市| 平陆县| 墨竹工卡县| 洛川县| 阿尔山市| 阳信县| 萨嘎县| 海晏县| 河池市| 张掖市| 吉木乃县| 台南市| 雷州市| 波密县| 嘉义市| 万山特区| 汕头市| 安仁县| 将乐县| 莒南县| 大余县| 三门县| 怀来县| 延吉市| 手机| 马尔康县| 塘沽区| 宁南县| 兰西县| 临沭县| 巴南区| 鄂尔多斯市| 绍兴市| 浮梁县| 家居| 沁阳市| 隆化县| 乐陵市| 玉门市| 伊金霍洛旗|