• 
    

    
    

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

      大型在線考試系統(tǒng)負載均衡算法的研究與實踐

      2020-08-13 07:17:51楊曉吟
      軟件 2020年6期
      關(guān)鍵詞:在線考試負載均衡算法

      摘 ?要: 隨著網(wǎng)絡(luò)信息技術(shù)的飛速發(fā)展,在線考試系統(tǒng)在各大院校推廣。當(dāng)同時在線考試的人數(shù)達到萬人以上時,服務(wù)器面臨著嚴峻的考驗。本文在分析了常用的負載均衡技術(shù)和負載均衡策略的基礎(chǔ)上,提出了適于大型在線考試系統(tǒng)的應(yīng)用需求和特點的負載均衡算法—TEST算法,該算法根據(jù)服務(wù)器集群中每臺服務(wù)器的CPU占用率、內(nèi)存的利用率、網(wǎng)絡(luò)帶寬占用率作為影響因素,計算服務(wù)器權(quán)值,并引入負載冗余參數(shù),共同來判斷服務(wù)器處理新的請求能力,通過仿真實驗,TEST算法有效地提高了大型在線考試系統(tǒng)的響應(yīng)效率。

      關(guān)鍵詞: 在線考試;負載均衡;服務(wù)器集群;算法

      中圖分類號: TP399 ? ?文獻標(biāo)識碼: A ? ?DOI:10.3969/j.issn.1003-6970.2020.06.006

      本文著錄格式:楊曉吟. 大型在線考試系統(tǒng)負載均衡算法的研究與實踐[J]. 軟件,2020,41(06):2731

      【Abstract】: With the rapid development of information technology and the continuous expansion of network applications, the online examination system has been promoted in universities and colleges. When the number of simultaneous online exams reaches more than 10,000, the server is facing a severe test. This paper is based on the analysis of common load balancing technology and strategy, and proposes a TEST algorithm which is suitable for the application requirements and characteristics of large-scale online examination systems. This algorithm takes CPU usage, memory utilization and network bandwidth occupancy as judgment factors, and calculates the server weight, and introduces parameter load redundancy to judge the servers ability to process new requests. Through simulation experiments, the result confirms that the response time using the TEST algorithm faster and more efficient improving response efficiency for large-scale online examination systems.

      【Key words】: Online examination; Load balancing; Server cluster; Algorithm

      0 ?引言

      隨著教育技術(shù)的不斷進步,傳統(tǒng)的紙質(zhì)考試逐漸被無紙化的在線考試系統(tǒng)取代,為滿足素質(zhì)教育,題目有圖像、音頻、視頻、動畫等多媒體形式。由于在線考試中需要大量多媒體數(shù)據(jù),并且大型在線考試系統(tǒng),一般同時參加的考生數(shù)在五千人左右,甚至達到萬人以上,考生需要將考試信息提交到服務(wù)器,當(dāng)開始考試和結(jié)束考試的時間點里不可避免地出現(xiàn)系統(tǒng)忙碌,而在其他時間段中則比較空閑,一旦服務(wù)器在高峰期出現(xiàn)流量過載現(xiàn)象,造成服務(wù)器負載壓力過大,就會導(dǎo)致在線考試系統(tǒng)的不穩(wěn)定,甚至的這個考試的順利完成造成影響。為解決這一難題,對大型在線考試系統(tǒng)的負載均衡算法的實現(xiàn)進行研究與實踐。

      1 ?常用負載均衡系統(tǒng)

      目前的負載均衡系統(tǒng)主要有四類:基于DNS的負載均衡、基于反向代理的負載均衡、基于HTTP重定向的負載均衡和基于NAT的負載均衡[1]。

      1.1 ?基于DNS的負載均衡

      DNS是域名解析系統(tǒng),當(dāng)我們輸入域名訪問網(wǎng)站時,DNS服務(wù)器會將域名映射成IP地址,這個映射可以是一對多的,不同的IP對應(yīng)不同的服務(wù)器,也就是說DNS將域名請求根據(jù)策略分配到不同的服務(wù)器上,從而達到負載均衡的目的?;贒NS的負載均衡技術(shù)比較適用于廣域網(wǎng)的負載均衡的實現(xiàn)。

      1.2 ?基于反向代理的負載均衡

      基于反向代理的負載均衡系統(tǒng)是指使用代理服務(wù)器來接收客戶端的請求,然后再將用戶請求轉(zhuǎn)發(fā)給其他服務(wù)器,并將服務(wù)器的結(jié)果返回給客戶端,從而達到負載均衡的目的。由于反向代理服務(wù)器隔離了外部對網(wǎng)站服務(wù)器的攻擊,所以方向代理負載均衡系統(tǒng)的一個顯著優(yōu)勢是能提高網(wǎng)站服務(wù)器的安全性。但是每一次代理的過程都需要完成對外和對內(nèi)兩個連接,所以當(dāng)在連接請求數(shù)量激增時,代理服務(wù)器的負載壓力就雙倍增加,最終導(dǎo)致反向代理服務(wù)器成為負載系統(tǒng)中的瓶頸。

      1.3 ?基于HTTP重定向的負載均衡

      在HTTP重定向的負載均衡系統(tǒng)中,HTTP重定向服務(wù)器根據(jù)客戶端的HTTP請求以及據(jù)配置的負載均衡算法計算出真實的服務(wù)器地址,并將此服務(wù)器地址寫進HTTP重定向響應(yīng)中再返回客戶端??蛻舳藶g覽器獲得響應(yīng)后,根據(jù)返回的信息,重新發(fā)送請求到新的服務(wù)器上。其的優(yōu)點是實現(xiàn)方法簡單并且自帶會話保持功能,缺點是后臺服務(wù)器使用的是VIP即真實IP地址,因此某些用戶可能會繞過負載均衡服務(wù)器直接定位到某臺服務(wù)器,降低了服務(wù)器的安全性,同時HTTP重定向負載均衡技術(shù)只能實現(xiàn)HTTP服務(wù)的負載均衡,在網(wǎng)絡(luò)服務(wù)類型的選擇上具有局限性。

      1.4 ?基于NAT的負載均衡

      NAT是Network Address Translation的英文單詞的首字母,中文名稱是網(wǎng)絡(luò)地址轉(zhuǎn)換,NAT可以將外部 IP地址與內(nèi)部IP地址進行一對多的映射,客戶端通過外部IP訪問應(yīng)用,NAT動態(tài)選擇其中一個內(nèi)部地址與外部地址關(guān)聯(lián),從而實現(xiàn)均衡的目標(biāo)[2]。NAT負載均衡是一種比較成熟的負載均衡技術(shù),既可以用軟件實現(xiàn)也可以用硬件的方式來實現(xiàn),同時負載均衡算法也比較靈活多樣。

      2 ?大型在線考試系統(tǒng)負載均衡算法的設(shè)計

      在線考試系統(tǒng)的負載均衡的實現(xiàn)普遍采用的是基于NAT的負載均衡方案。大型在線考試系統(tǒng)的負載均衡系統(tǒng)的搭建時最核心的部分包括:負載均衡算法、會話模式的選擇、應(yīng)用層會話保持機制和健康檢測方法的設(shè)置。下面介紹在實施大型在線考試系統(tǒng)所采用的技術(shù)策略。

      2.1 ?基本工作原理

      基本原理如圖1所示,運行相同應(yīng)用的多臺服務(wù)器組成一個服務(wù)器集群,用一個VIP(Virtural IP)即實際IP來代表此服務(wù)器集群的IP,該地址也是客戶端訪問此服務(wù)的IP。當(dāng)客戶端向服務(wù)器發(fā)送請求時,負載均衡系統(tǒng)將根據(jù)各服務(wù)器的會話狀態(tài)的情況、預(yù)先設(shè)置的負載均衡策略以及健康檢測結(jié)果等參數(shù)來把客戶端請求轉(zhuǎn)發(fā)到合適的服務(wù)器上,最后由負載均衡系統(tǒng)把服務(wù)器的響應(yīng)轉(zhuǎn)發(fā)回給請求服務(wù)的客戶端。

      2.2 ?負載均衡策略

      在負載均衡系統(tǒng)中,負載均衡策略將客戶端請求分配到服務(wù)器集群中最合適的服務(wù)器上,通常負均衡器都支持相當(dāng)豐富的負載均衡策略,主要包括:輪詢和權(quán)重輪詢 、最少連接數(shù)、最小反應(yīng)時間、哈希法等。而在線考試系統(tǒng)采用最小連接數(shù)策略是最合適的,因為在線考試系統(tǒng)實際上就是一個Web服務(wù),服務(wù)器性能主要受請求的客戶端數(shù)量影響。在大型在線考試系統(tǒng)的負載均衡技術(shù)方案中,把負載均衡器的健康檢測方法設(shè)置為HTTP頁面,HTTP頁面檢查的是一個來至于后臺數(shù)據(jù)庫的動態(tài)頁面。這樣通過HTTP頁面的健康檢測方法同時檢測了Web服務(wù)和后臺數(shù)據(jù)庫服務(wù)的可用性。然而,HTTP頁面檢測將會對服務(wù)器資源造成額外的消耗,對Web服務(wù)的性能是較大的考驗,考慮到大型在線考試系統(tǒng)應(yīng)用的特點,最小連接數(shù)加HTTP頁面健康檢測的方案仍有許多不足,因此設(shè)計了一款新算法,該算法從響應(yīng)客戶端請求需要消耗服務(wù)器系統(tǒng)資源程度著手來實現(xiàn)系統(tǒng)的負載均衡。以下稱該算法為TEST算法。

      負載均衡器的實現(xiàn)負載平衡首先需要獲得服務(wù)器集群中各臺服務(wù)器的負載能力的信息,包括服務(wù)器CPU、內(nèi)存的利用率和網(wǎng)絡(luò)帶寬占用率,根據(jù)預(yù)先設(shè)置好的算法計算得出的服務(wù)器權(quán)值并提供給負載均衡器。負載均衡器根據(jù)設(shè)定的周期獲取服務(wù)器的負載能力的信息,但是請求的到達時間是不固定的,若負載均衡器更新負載能力信息不及時,可能會導(dǎo)致單個節(jié)點處理負載的實際情況超過其處理能力[3]。所以,引入一個新的負載能力值指標(biāo)——負載冗余參數(shù) L,利用這個參數(shù)來衡量在某時刻某服務(wù)器的負載均衡能力[4]。

      2.3 ?改進的負載均衡TEST算法的描述

      服務(wù)器的負載能力的計算主要包括CPU占用率、內(nèi)存的利用率、網(wǎng)絡(luò)帶寬占用率三個參數(shù)。當(dāng)負載均衡器收到這三個參數(shù)后,計算每臺服務(wù)器的負載值Load(Si),并參考每臺服務(wù)器的最大負載能力C(Si),計算每臺服務(wù)器的當(dāng)前負載比例值P(Si),負載比例值越大,說明服務(wù)器剩余的處理能力越小,因此當(dāng)有新的客戶端請求到達時,優(yōu)先分配到負載比例值小的服務(wù)器。同時還為為負載比例值設(shè)定一個閾值,如90%,當(dāng)負載比例值達到90%時,該服務(wù)器被認定為過載,用戶請求不再分配到該服務(wù)器,同時為上述3個關(guān)鍵參數(shù)各設(shè)定一個獨立的單項閾值,如果每臺服務(wù)器上述3個關(guān)鍵參數(shù)中的任意一項參數(shù)值超過其單項閾值,用戶請求將不再給這個服務(wù)器[6]。

      (1)計算每臺服務(wù)器最大負載能力:假設(shè)服務(wù)器集群為S={S0,S1,…,Sn–1},Si為集群中第i個服務(wù)器節(jié)點。R(Si)為集群中第i臺服務(wù)器的最大負載均衡能力值,Ki為各服務(wù)器性能指標(biāo)的比重系數(shù), = 1。其中RCPU表示CPU頻率,Rm表示內(nèi)存總量,Rnet表示網(wǎng)絡(luò)帶寬占用率,則R(Si)的計算公式為:

      R(Si)= k1*RCPU(Si)+k2*Rm(Si)+k3*Rnet(Si)(1)

      F(Si)為服務(wù)器當(dāng)前的負載能力值,qi為各負載能力指標(biāo)的比重系數(shù), = 1。其中 FCPU表示CPU 利用率,F(xiàn)m表示內(nèi)存使用率,F(xiàn)net表示網(wǎng)絡(luò)帶寬,則F(Si)的計算公式為:

      F(Si)= q1*FCPU(Si)+ q2*Fm(Si)+q3*Fnet(Si) (2)

      (2)CPU利用率FCPU(Si)和內(nèi)存使用率Fm(Si)的計算

      可以從/proc/stat文件中讀取的值計算得出FCPU(Si)。獲取得到的值包括:用戶占用CPU的時間、系統(tǒng)內(nèi)核占用時間和空閑進程占用時間,可通過空閑進程占用時間可以計算出CPU的未利用率,進而計算得出CPU的使用率,再設(shè)定兩個時刻t1和t2,用Ii表示ti時刻的空閑進程,Ci表示ti時刻的CPU[3]。

      2.4 ?算法的實現(xiàn)過程

      首先負載均衡算法需要獲取兩個參數(shù):一是服務(wù)器權(quán)值,二是最小負載冗余值,接著負載均衡器與服務(wù)器建立連接并監(jiān)聽服務(wù)器端口,再調(diào)用recvfrom()方法接收服務(wù)器發(fā)送回來的數(shù)據(jù),根據(jù)集群中各個服務(wù)器的性能和負載能力,計算得出服務(wù)器權(quán)值和負載冗余值[5]。最后對服務(wù)器權(quán)值進行周期性更新只有,遍歷獲取服務(wù)器集群中的每臺服務(wù)器的負載冗余值,在滿足服務(wù)器的負載冗余值滿足L(Si)>Lmin前提下,服務(wù)器的當(dāng)前的權(quán)值和負載冗余值高的優(yōu)先分配客戶端請求。

      2.5 ?TEST算法仿真實驗

      為了驗證負載均衡改進算法—TEST算法的優(yōu)越性,將最少連接數(shù)算法和TEST算法進行對比,以同樣數(shù)量的客戶端請求服務(wù)器集群的響應(yīng)時間作為衡量標(biāo)準(zhǔn)。使用Load Runner作為測試工具。測試時,保證兩個模擬客戶端在單位時間里發(fā)送同樣次數(shù)的請求。由8臺服務(wù)器組成的服務(wù)器集群來處理請求。在服務(wù)器集群中分別使用最少連接數(shù)算法和TEST算法來響應(yīng)同樣數(shù)量的客戶端請求,將收到服務(wù)器集群反應(yīng)的時間記錄并進行對比。測試結(jié)果如表1和圖2所示。

      由實驗測試結(jié)果可以分析得出,在客戶端請求數(shù)還未明顯增加的情況下,NAT負載均衡方案和TEST算法的處理請求的響應(yīng)時間是幾乎相等的。隨著客戶端請求連接數(shù)量的增加,達到8000以上時,TEST算法的平均響應(yīng)效率較NAT負載均衡方案中的最小連接數(shù)算法有明顯的提高。

      3 ?結(jié)束語

      負載均衡系統(tǒng)實施方案的設(shè)計對工程師的知識面和經(jīng)驗要求比較高,要想針對大型在線考試系統(tǒng)應(yīng)用設(shè)計出優(yōu)秀的的負載均衡系統(tǒng)方案,通常需要軟硬件、操作系統(tǒng)、網(wǎng)絡(luò)技術(shù)、算法等多個方面的技能及相關(guān)的經(jīng)驗積累。通過結(jié)合大型在線考試系統(tǒng)的實際使用,分析了負載均衡在負載均衡策略和健康測試模塊這兩個方面的相關(guān)設(shè)置,并提出了一種適合大型在線考試系統(tǒng)實際應(yīng)用的負載均衡算法,負載均衡算法是決定負載均衡系統(tǒng)成敗的關(guān)鍵因素,優(yōu)秀的均衡算法能充分發(fā)揮服務(wù)器集群的優(yōu)勢,充分利用集群的各種資源,為用戶提供高質(zhì)量的服務(wù)[6]。通過分析常用負載均衡算法的優(yōu)缺點,提出了TEST負載均衡算法,該算法的主要特點是: 充分應(yīng)用節(jié)點CPU占用率、內(nèi)存的利用率、網(wǎng)絡(luò)帶寬占用率三個因素,指導(dǎo)任務(wù)的分配,通過負載修正保證系統(tǒng)的穩(wěn)定性。通過實驗可以發(fā)現(xiàn),Test算法能顯著地提高負載均衡效率,從而提高在線考試系統(tǒng)的穩(wěn)定性。當(dāng)然,提出的算法也存在不足,例如三個參數(shù)的獲取給系統(tǒng)帶來了額外的開銷,使得服務(wù)端的請求有一定的延滯。另外,負載均衡系統(tǒng)的效率雖然有了一定的提高,但考試系統(tǒng)實際應(yīng)用中還有實驗中沒有考慮周到的影響因素。在今后的實驗中,將不斷完善節(jié)點負載的分配和修正機制并綜合考慮考試過程中的各種影響因素,進一步提高算法的均衡效率。另外,希望對大家部署在線考試系統(tǒng)和其他高并發(fā)系統(tǒng)時有所借鑒。

      參考文獻

      [1] 劉同. 負載均衡技術(shù)在數(shù)據(jù)庫集群系統(tǒng)中的應(yīng)用與實現(xiàn)[D]. 國防科學(xué)技術(shù)大學(xué), 2009.

      [2] 丁逸. 基于層次策略的動態(tài)負載均衡算法研究[D]. 東南大學(xué), 2005.

      [3] 梁家君. 基于神經(jīng)網(wǎng)絡(luò)改進粒子群優(yōu)化算法的負載均衡技術(shù)優(yōu)化研究[D]. 廣東工業(yè)大學(xué), 2018.

      [4] 楊明極, 王鶴, 趙加鳳. 基于CPU和內(nèi)存利用率的負載均衡算法的研究[J]. 科技通報, 2016, 32(04): 160-164.

      [5] 朱莉, 沈未名, 李銳, 徐勝勇. 利用遺傳算法的網(wǎng)絡(luò)GIS集群服務(wù)器動態(tài)負載均衡算法[J]. 武漢大學(xué)學(xué)報(信息科學(xué)版), 2011, 36(06): 721-725.

      [6] 莊旻軒. 服務(wù)器集群中基于動態(tài)反饋的負載均衡算法[D]. 大連理工大學(xué), 2014.

      [7] 唐俊武, 南理勇, 左強. 在線考試系統(tǒng)開發(fā)中的幾個問題及解決方法[J]. 計算機與數(shù)字工程, 2005(08): 144-147.

      [8] 王春娟, 董麗麗, 賈麗. Web集群系統(tǒng)的負載均衡算法[J]. 計算機工程, 2010(02): 108-110.

      [9] 徐敏, 李明, 鄭建忠, 等. 基于OpenStack的Swift負載均衡算法[10]. 計算機系統(tǒng)應(yīng)用, 2018, 27(01): 127-131.

      [10] 孫凌宇, 等. 云平臺環(huán)境下基于禁忌搜索的負載均衡任務(wù)調(diào)度優(yōu)化算法[J]. 小型微型計算機系統(tǒng), 2015, 36 (09): 1948-1952.

      [11] 蔡嵩, 等. 云平臺環(huán)境中基于樸素貝葉斯算法的負載均衡技術(shù)[J]. 計算機應(yīng)用, 2014, 34(2): 360-364.

      [12] 尚永強. 計算機網(wǎng)絡(luò)信息安全中數(shù)據(jù)加密技術(shù)的探討[J]. 軟件, 2018, 39(12): 198-201.

      [13] 劉文. 基于大數(shù)據(jù)優(yōu)化網(wǎng)絡(luò)的安全性策略的研究[J]. 軟件, 2018, 39(9): 205-208.

      [14] 黃超, 唐子蛟. 基于云計算技術(shù)的智慧校園平臺建設(shè)研究[J]. 軟件, 2018, 39(5): 27-30.

      [15] 吳亞熙, 岑峰. 基于卷積神經(jīng)網(wǎng)絡(luò)的多層級目標(biāo)檢測方法[J]. 軟件, 2018, 39(4): 164-169.

      [16] 孫哲, 巫中正, 李千目. 基于網(wǎng)絡(luò)流量的安全可達性推理方法[J]. 軟件, 2018, 39(4): 36-43.

      [17] 李潔, 何軍. 云計算操作系統(tǒng)網(wǎng)絡(luò)虛擬化模塊Neutron 分析研究[J]. 軟件, 2016, 37(01): 21-23.

      猜你喜歡
      在線考試負載均衡算法
      基于MapReduce的改進Eclat算法
      Travellng thg World Full—time for Rree
      進位加法的兩種算法
      基于Java的考場管理系統(tǒng)的研究與實現(xiàn)
      軟件(2016年4期)2017-01-20 09:54:41
      異構(gòu)環(huán)境下改進的LATE調(diào)度算法
      大學(xué)物理在線考試與分析系統(tǒng)
      效率觀下高校課程考試形式的改革探索
      東方教育(2016年3期)2016-12-14 22:25:05
      基于負載均衡的云資源調(diào)度策略研究
      一種改進的整周模糊度去相關(guān)算法
      大數(shù)據(jù)背景下在線評教與在線考試融合的思路探討
      考試周刊(2016年17期)2016-03-31 19:08:57
      迭部县| 大足县| 阳曲县| 林西县| 固原市| 永和县| 漳浦县| 白山市| 喀喇| 称多县| 肥乡县| 瓦房店市| 无为县| 山东省| 遂溪县| 威海市| 大方县| 吴旗县| 南江县| 西昌市| 吉首市| 大英县| 靖西县| 左贡县| 九寨沟县| 海南省| 眉山市| 聊城市| 洛阳市| 竹山县| 青州市| 平乡县| 宁河县| 蓝山县| 沾化县| 兰西县| 纳雍县| 呈贡县| 泰顺县| 武胜县| 务川|