• 
    

    
    

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

      ?

      Nginx負(fù)載均衡技術(shù)在高速公路視頻云聯(lián)網(wǎng)平臺(tái)中的應(yīng)用

      2021-04-17 05:47:44伍春生
      關(guān)鍵詞:網(wǎng)絡(luò)帶寬磁盤(pán)哈希

      伍春生

      (中遠(yuǎn)海運(yùn)科技股份有限公司,上海 200135)

      0 引 言

      根據(jù)交通運(yùn)輸部發(fā)布的《全國(guó)高速公路視頻聯(lián)網(wǎng)監(jiān)測(cè)工作實(shí)施方案》的要求,全國(guó)高速公路視頻監(jiān)測(cè)設(shè)施要實(shí)現(xiàn)全網(wǎng)聯(lián)通和視頻資源實(shí)時(shí)在線共享,同時(shí)高速公路視頻云聯(lián)網(wǎng)平臺(tái)需具有一定的并發(fā)訪問(wèn)能力。高速公路視頻云聯(lián)網(wǎng)平臺(tái)的用戶比較多,用戶可通過(guò)Web端、APP和微信公眾號(hào)訪問(wèn)該平臺(tái),訪問(wèn)量通常比較大,因此需采用合適的負(fù)載均衡技術(shù)處理客戶端的請(qǐng)求。目前應(yīng)用最廣泛的負(fù)載均衡軟件有Nginx、HAProxy和LVS(Linux Virtual Server)。本文采用Nginx負(fù)載均衡技術(shù)處理客戶端請(qǐng)求,綜合分析Nginx內(nèi)置的多種負(fù)載均衡算法的優(yōu)劣,比選出合適的負(fù)載均衡算法。同時(shí),結(jié)合服務(wù)器的中央處理器(Central Processing Unit,CPU)、內(nèi)存、磁盤(pán)IO和網(wǎng)絡(luò)帶寬等不同性能指標(biāo),綜合計(jì)算出各服務(wù)器初始設(shè)定的權(quán)值,進(jìn)而提高各服務(wù)器的資源利用率和系統(tǒng)的并發(fā)訪問(wèn)能力,為用戶提供更優(yōu)質(zhì)的服務(wù)。

      1 研究現(xiàn)狀

      Nginx是一種高性能的反向代理服務(wù)器,目前很多主流互聯(lián)網(wǎng)公司都采用這種技術(shù)實(shí)現(xiàn)負(fù)載均衡。負(fù)載均衡一直是服務(wù)端研究領(lǐng)域內(nèi)的熱點(diǎn)問(wèn)題[1],當(dāng)前已有很多學(xué)者對(duì)Nginx負(fù)載均衡技術(shù)進(jìn)行研究,通過(guò)對(duì)該技術(shù)的性能進(jìn)行深度優(yōu)化,使其更好地服務(wù)于應(yīng)用系統(tǒng),為用戶提供更好的上網(wǎng)體驗(yàn)。劉振宇[2]和陳大才[3]從影響并發(fā)負(fù)載均衡的因素和服務(wù)器的性能出發(fā),對(duì)歷史數(shù)據(jù)進(jìn)行訓(xùn)練,得到各服務(wù)器的響應(yīng)預(yù)測(cè)時(shí)間模型,通過(guò)將當(dāng)前的請(qǐng)求分配給預(yù)測(cè)響應(yīng)時(shí)間最短的服務(wù)器,提高服務(wù)器集群中請(qǐng)求分配的均衡性。王利萍[4]和余欽水等[5]提出一種動(dòng)態(tài)自適應(yīng)負(fù)載均衡算法,對(duì)后端服務(wù)器集群最近一段時(shí)間內(nèi)的請(qǐng)求響應(yīng)時(shí)間進(jìn)行數(shù)學(xué)分析,根據(jù)分析所得結(jié)果對(duì)各服務(wù)器的權(quán)值進(jìn)行重新計(jì)算,實(shí)現(xiàn)動(dòng)態(tài)調(diào)整請(qǐng)求分配策略。服務(wù)器負(fù)載均衡并不是單一的技術(shù),而是由多種技術(shù)組合而成的體系[6]。當(dāng)客戶端發(fā)送請(qǐng)求時(shí),負(fù)載均衡策略會(huì)將客戶端發(fā)送的請(qǐng)求分配到最空閑的服務(wù)器中處理[7],整個(gè)過(guò)程對(duì)客戶端是完全透明的,用戶只感覺(jué)到是1臺(tái)服務(wù)器在提供服務(wù)。

      本文將當(dāng)前主流的互聯(lián)網(wǎng)負(fù)載均衡技術(shù)應(yīng)用到高速公路視頻云聯(lián)網(wǎng)平臺(tái)中,采用Nginx加權(quán)負(fù)載均衡算法建立高效的權(quán)值計(jì)算數(shù)學(xué)模型,為每個(gè)服務(wù)器設(shè)置最優(yōu)的權(quán)值,進(jìn)而提高整個(gè)系統(tǒng)的負(fù)載均衡能力。圖1為Nginx負(fù)載均衡主要過(guò)程。

      圖1 Nginx負(fù)載均衡主要過(guò)程

      2 Nginx負(fù)載均衡算法分析

      不同的負(fù)載均衡算法對(duì)系統(tǒng)的性能有不同的影響,因此為高效地利用各服務(wù)器資源[8],向用戶提供優(yōu)質(zhì)的服務(wù),應(yīng)選取合適的負(fù)載均衡算法。同時(shí),隨著平臺(tái)用戶量的不斷增多,平臺(tái)的并發(fā)訪問(wèn)量不斷增加,可通過(guò)適當(dāng)增加服務(wù)器節(jié)點(diǎn)提高系統(tǒng)的并發(fā)能力。Nginx內(nèi)置有多種負(fù)載均衡算法,包括輪詢算法、IP哈希算法、最小連接數(shù)算法和加權(quán)負(fù)載均衡算法等。下面詳細(xì)分析這些算法的優(yōu)缺點(diǎn)。

      2.1 輪詢算法

      輪詢算法是按客戶端發(fā)送請(qǐng)求的先后順序逐一將請(qǐng)求分配到后端服務(wù)器的算法,是Nginx中最簡(jiǎn)單的負(fù)載均衡算法,適用于后端服務(wù)器性能均衡的情況。但是,對(duì)于實(shí)際的應(yīng)用場(chǎng)景而言,受硬件等各方面因素的影響,各后端服務(wù)器的性能差異很大,若采用該算法,性能較差的服務(wù)器易出現(xiàn)過(guò)載或宕機(jī)的問(wèn)題,性能較好的服務(wù)器的資源不能得到有效利用,大部分時(shí)間處于空閑狀態(tài)。

      2.2 IP哈希算法

      IP哈希算法的原理是每次對(duì)發(fā)送請(qǐng)求的客戶端的IP地址進(jìn)行哈希計(jì)算,根據(jù)得到的哈希值將其映射到對(duì)應(yīng)的后端服務(wù)器上,在Nginx內(nèi)部默認(rèn)設(shè)置“如果連續(xù)20次以上獲取服務(wù)器失敗,將會(huì)啟動(dòng)輪詢算法分配該請(qǐng)求”。IP哈希算法的優(yōu)點(diǎn)在于,相同的IP地址請(qǐng)求會(huì)被映射到同一臺(tái)服務(wù)器上,從而保持客戶端與后端服務(wù)器的長(zhǎng)連接。然而,該優(yōu)點(diǎn)會(huì)導(dǎo)致IP哈希算法存在非常大的隱患,即當(dāng)同一時(shí)刻大量IP地址相同的客戶端發(fā)送請(qǐng)求時(shí),若這些請(qǐng)求的哈希值相同,則會(huì)被分配到同一臺(tái)服務(wù)器上,此時(shí)該服務(wù)器的壓力非常大,而其他服務(wù)器較為空閑,存在請(qǐng)求負(fù)載不均衡的問(wèn)題。

      2.3 最小連接數(shù)算法

      最小連接數(shù)算法在分配客戶端請(qǐng)求時(shí)始終遵循一條規(guī)則,即將請(qǐng)求分配給當(dāng)前連接數(shù)最小的后端服務(wù)器節(jié)點(diǎn)處理。每臺(tái)服務(wù)器都有一個(gè)記錄請(qǐng)求數(shù)count,接收到請(qǐng)求時(shí)count執(zhí)行加1,處理完一個(gè)請(qǐng)求時(shí)count執(zhí)行減1,因此每次count值最小的服務(wù)器都會(huì)分配到請(qǐng)求。但是,不同請(qǐng)求對(duì)應(yīng)的任務(wù)不同,其資源的消耗也不同,僅依靠服務(wù)器的請(qǐng)求連接數(shù)不能直觀反映服務(wù)器真實(shí)的負(fù)載情況。

      2.4 加權(quán)負(fù)載均衡算法

      加權(quán)負(fù)載均衡算法的原理是在Nginx的upstream模塊中為每臺(tái)服務(wù)器設(shè)定一個(gè)權(quán)值(weight),當(dāng)接收到客戶端發(fā)送的請(qǐng)求時(shí),Nginx會(huì)根據(jù)既定的權(quán)值更配請(qǐng)求。該算法有3個(gè)重要參數(shù),即設(shè)定權(quán)值(effect_weight)、當(dāng)前權(quán)值(current_weight)和總權(quán)值(total_weight),每次執(zhí)行完請(qǐng)求之后,服務(wù)器權(quán)值都執(zhí)行減1操作,當(dāng)服務(wù)器當(dāng)前權(quán)值為0時(shí),對(duì)其標(biāo)志位down進(jìn)行設(shè)置,若所有服務(wù)器的權(quán)值都為0,則當(dāng)前輪詢結(jié)束,系統(tǒng)發(fā)出結(jié)束指令。該算法有很強(qiáng)的適應(yīng)能力,在分配請(qǐng)求過(guò)程中不依賴客戶端的任何信息,完全依靠后端服務(wù)器已設(shè)置的權(quán)值分配請(qǐng)求。對(duì)于該算法無(wú)法保證用戶長(zhǎng)連接的問(wèn)題,可通過(guò)JWT和cookie等方式解決,這樣能同時(shí)具備IP哈希算法的優(yōu)點(diǎn)。該算法的流程見(jiàn)圖2。

      圖2 加權(quán)負(fù)載均衡算法流程

      3 加權(quán)負(fù)載均衡算法權(quán)值計(jì)算數(shù)學(xué)模型建立

      Nginx加權(quán)負(fù)載均衡算法的核心是為不同性能的服務(wù)器設(shè)定權(quán)值。若權(quán)值設(shè)定過(guò)大,會(huì)導(dǎo)致該服務(wù)器出現(xiàn)過(guò)載甚至宕機(jī)的風(fēng)險(xiǎn);若權(quán)值設(shè)定過(guò)小,會(huì)導(dǎo)致該服務(wù)器資源不能得到有效利用。因此,需合理結(jié)合各服務(wù)器性能指標(biāo)計(jì)算出每臺(tái)服務(wù)器的權(quán)值。

      本文采用內(nèi)存、CPU、磁盤(pán)IO和網(wǎng)絡(luò)帶寬作為服務(wù)器權(quán)值計(jì)算的參數(shù)。Sum表示服務(wù)器各部分性能總和,Ni表示第i臺(tái)服務(wù)器,其中i∈(1,2,3,…,n),有

      (1)

      (2)

      (3)

      (4)

      式(1)~式(4)中:Summemory為服務(wù)器內(nèi)存性能總和;SumCPU為服務(wù)器CPU性能總和;Sumdisk為服務(wù)器磁盤(pán)IO性能總和;Sumnet為網(wǎng)絡(luò)帶寬性能總和。

      對(duì)于單個(gè)服務(wù)器權(quán)值的計(jì)算,分別將該服務(wù)器的內(nèi)存、CPU、磁盤(pán)IO和網(wǎng)絡(luò)帶寬與服務(wù)器整體的比值乘以系數(shù)σ,即可得到服務(wù)器的實(shí)際權(quán)值。

      (5)

      式(5)中:Weight(Ni)為第i臺(tái)服務(wù)器的實(shí)際權(quán)值(若有小數(shù),則取整數(shù)部分);A為常數(shù);Summemory(Ni)、SumCPU(Ni)、Sumdisk(Ni)和Sumnet(Ni)分別為第i臺(tái)服務(wù)器的內(nèi)存、CPU、磁盤(pán)IO和網(wǎng)絡(luò)帶寬的情況;i∈(1,2,3,…,n);σmemory、σCPU、σdisk和σnet分別為第i個(gè)服務(wù)器節(jié)點(diǎn)的內(nèi)存、CPU、磁盤(pán)IO和網(wǎng)絡(luò)帶寬占整個(gè)服務(wù)器的比重。σmemory、σCPU、σdisk和σnet滿足

      σmemory+σCPU+σdisk+σnet=1

      (6)

      下面分別計(jì)算服務(wù)器內(nèi)存、CPU、磁盤(pán)IO和網(wǎng)絡(luò)帶寬的使用率。

      1)內(nèi)存使用率。在計(jì)算內(nèi)存使用率時(shí),涉及的主要參數(shù)有總內(nèi)存(MemoryTotal)、緩存(Cache)和文件緩存(BufferFile)等。

      考核成績(jī)?cè)O(shè)置為平時(shí)成績(jī)∶期中成績(jī)∶期末成績(jī)=4∶2∶4的模式(見(jiàn)表1).該模式充分體現(xiàn)了過(guò)程考核和集中考核相結(jié)合的原則,培養(yǎng)了學(xué)生參與意識(shí)、責(zé)任意識(shí)和規(guī)則意識(shí).其假設(shè)的前提是學(xué)生平時(shí)表現(xiàn)直接影響平時(shí)成績(jī),進(jìn)而間接影響期中和期末集中考核成績(jī).線上考核滿足個(gè)性化學(xué)習(xí)需要,培養(yǎng)責(zé)任意識(shí)與規(guī)則意識(shí),課堂考核培養(yǎng)學(xué)生參與意識(shí)、責(zé)任意識(shí)、團(tuán)隊(duì)意識(shí)、擔(dān)當(dāng)意識(shí)及創(chuàng)新意識(shí).考核方式與學(xué)生學(xué)習(xí)狀態(tài)及學(xué)習(xí)效果直接相關(guān).考核過(guò)程公開(kāi)、公正、透明,對(duì)所有學(xué)生一視同仁,才能獲得學(xué)生尊重與合作.

      Usememery=(MemoryTotal-(MemoryFree+Cache+BufferFile))/MemoryTotal

      (7)

      2)CPU使用率。在計(jì)算CPU使用率時(shí),需取2個(gè)時(shí)間間隔足夠短的t1和t2,t1與t2的差值TimeTotal為該時(shí)間段CPU總的使用時(shí)間,有

      TimeTotal=t2-t1

      (8)

      在t1與t2時(shí)間段,CPU的空閑時(shí)間只需將t2時(shí)刻的空閑時(shí)間減去t1時(shí)刻的空閑時(shí)間即可求得,即

      LeisureTime=LeisureTime2-LeisureTime1

      (9)

      式(9)中:LeisureTime為CPU在t1與t2時(shí)間段內(nèi)的空閑時(shí)間;LeisureTime1和LeisureTime2分別為t1和t2時(shí)間段內(nèi)除IO等待時(shí)間外的其他等待時(shí)間。

      綜上可計(jì)算出CPU的使用率UseCPU為

      UseCPU=(TimeTotal-LeisureTime)/TimeTotal

      (10)

      3)磁盤(pán)IO使用率。磁盤(pán)IO相關(guān)數(shù)據(jù)可通過(guò)iostat-d-x-k12命令獲取,如每秒讀寫(xiě)次數(shù)、每秒讀寫(xiě)數(shù)據(jù)量和磁盤(pán)IO使用率。

      4)網(wǎng)絡(luò)帶寬使用率(Usenet)。記錄t1和t2時(shí)刻網(wǎng)絡(luò)中接收和發(fā)送的字節(jié)數(shù)值(此時(shí)以“byte”為單位),t1時(shí)刻發(fā)送和接收的文件大小為OutSize1和InSize1,t2時(shí)刻發(fā)送和接收的文件大小為OutSize2和InSize2,有

      Usenet=(InSize2-InSize1+OutSize2-OutSize1)×8/(1 000 000·BandWidth)

      (11)

      式(11)中:BandWidth為網(wǎng)絡(luò)帶寬,注意t1與t2時(shí)間段網(wǎng)絡(luò)接收和發(fā)送總量的單位與網(wǎng)絡(luò)帶寬的單位不統(tǒng)一,需進(jìn)行轉(zhuǎn)換。

      通過(guò)上述計(jì)算為每臺(tái)服務(wù)器設(shè)置權(quán)值,負(fù)載均衡一段時(shí)間之后,各服務(wù)器節(jié)點(diǎn)資源的使用情況為

      Use(Ni)=σmemory·Usememory(Ni)+σCPU·UseCPU(Ni)+σdisk·Usedisk(Ni)+σnet·Usenet(Ni)

      (12)

      式(12)中:Use(Ni)為第i臺(tái)服務(wù)器資源使用率;Usememory(Ni)、UseCPU(Ni)、Usedisk(Ni)和Usenet(Ni)分別為當(dāng)前服務(wù)器內(nèi)存、CPU、磁盤(pán)IO和網(wǎng)絡(luò)帶寬的使用率;i∈(1,2,3,…,n)。

      4 結(jié)果展示與分析

      寧夏高速公路視頻云聯(lián)網(wǎng)平臺(tái)目前已上線試運(yùn)行,截至2020年12月17日,當(dāng)月平臺(tái)總訪問(wèn)量為4 751次,平臺(tái)運(yùn)行穩(wěn)定,請(qǐng)求響應(yīng)時(shí)間也較為理想。圖3為寧夏高速公路視頻云聯(lián)網(wǎng)平臺(tái)主頁(yè)。通過(guò)查詢后臺(tái)日志可看到,目前部署的124.70.31.141服務(wù)器和124.70.31.55服務(wù)器是按計(jì)算設(shè)定的權(quán)值分配客戶端請(qǐng)求的,為用戶提供可靠的服務(wù),2臺(tái)服務(wù)器后臺(tái)日志狀態(tài)見(jiàn)圖4。

      圖3 寧夏高速公路視頻云聯(lián)網(wǎng)平臺(tái)主頁(yè)

      a)124.70.31.141服務(wù)器

      獲取2020年12月15日09:56—10:36時(shí)間段,在10:24—10:36時(shí)間段出現(xiàn)114個(gè)用戶并發(fā)訪問(wèn),此時(shí)系統(tǒng)的響應(yīng)時(shí)間可有效反映采用本文建立的數(shù)學(xué)計(jì)算模型得出的服務(wù)器權(quán)值分配方案是高效的、可行的。圖5和圖6分別為寧夏高速公路視頻云聯(lián)網(wǎng)平臺(tái)線上并發(fā)連接數(shù)和線上請(qǐng)求響應(yīng)時(shí)間。從圖5和圖6中可看出,在并發(fā)訪問(wèn)用戶為114個(gè)的情況下,系統(tǒng)最長(zhǎng)響應(yīng)時(shí)間為0.651 400 s。

      5 結(jié) 語(yǔ)

      本文從實(shí)際問(wèn)題出發(fā),深入研究了Nginx加權(quán)負(fù)載均衡算法,提出了一種高效的權(quán)值計(jì)算數(shù)學(xué)模型,綜合考慮各服務(wù)器的綜合性能指標(biāo),為其設(shè)定合理的權(quán)值,使系統(tǒng)在分配請(qǐng)求過(guò)程中充分利用各服務(wù)器的性能,大大提升系統(tǒng)的并發(fā)能力,縮短系統(tǒng)的響應(yīng)時(shí)間。目前視頻云聯(lián)網(wǎng)平臺(tái)還處于線上試運(yùn)行階段,系統(tǒng)的并發(fā)最高峰還未到來(lái),考慮到以后正式上線推廣使用,保證平臺(tái)能承受10萬(wàn)個(gè)用戶并發(fā)訪問(wèn),應(yīng)用層會(huì)隨著用戶的增多而適當(dāng)增加服務(wù)器,提升其并發(fā)能力。下一步將對(duì)持久層進(jìn)行優(yōu)化,主要工作是對(duì)數(shù)據(jù)庫(kù)分庫(kù)分表和主從復(fù)制等進(jìn)行優(yōu)化,引入高性能非關(guān)系型數(shù)據(jù)庫(kù)Redis作為緩存,緩解數(shù)據(jù)庫(kù)層的壓力等。

      猜你喜歡
      網(wǎng)絡(luò)帶寬磁盤(pán)哈希
      解決Windows磁盤(pán)簽名沖突
      修改磁盤(pán)屬性
      如何提升高帶寬用戶的感知度
      科技傳播(2017年14期)2017-08-22 02:39:36
      磁盤(pán)組群組及iSCSI Target設(shè)置
      創(chuàng)建VSAN群集
      合理配置QoS改善校園網(wǎng)絡(luò)環(huán)境
      淺析泰州電視臺(tái)超大型高清非編網(wǎng)建設(shè)
      經(jīng)典路由協(xié)議在戰(zhàn)場(chǎng)環(huán)境下的仿真與評(píng)測(cè)
      基于OpenCV與均值哈希算法的人臉相似識(shí)別系統(tǒng)
      基于維度分解的哈希多維快速流分類算法
      通州区| 孝昌县| 垣曲县| 荆州市| 普安县| 蓬安县| 湾仔区| 达日县| 扶余县| 怀远县| 四平市| 公主岭市| 绵阳市| 江津市| 资阳市| 阆中市| 南陵县| 旅游| 通海县| 夹江县| 望城县| 东山县| 怀柔区| 台江县| 湖北省| 溧阳市| 北宁市| 新竹县| 双牌县| 安溪县| 杭锦后旗| 左贡县| 汤阴县| 石首市| 昂仁县| 新余市| 页游| 广州市| 拉孜县| 北票市| 灵山县|