999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2020-08-13 07:17:51楊曉吟
軟件 2020年6期

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

關鍵詞: 在線考試;負載均衡;服務器集群;算法

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

本文著錄格式:楊曉吟. 大型在線考試系統負載均衡算法的研究與實踐[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 ?引言

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

1 ?常用負載均衡系統

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

1.1 ?基于DNS的負載均衡

DNS是域名解析系統,當我們輸入域名訪問網站時,DNS服務器會將域名映射成IP地址,這個映射可以是一對多的,不同的IP對應不同的服務器,也就是說DNS將域名請求根據策略分配到不同的服務器上,從而達到負載均衡的目的。基于DNS的負載均衡技術比較適用于廣域網的負載均衡的實現。

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

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

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

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

1.4 ?基于NAT的負載均衡

NAT是Network Address Translation的英文單詞的首字母,中文名稱是網絡地址轉換,NAT可以將外部 IP地址與內部IP地址進行一對多的映射,客戶端通過外部IP訪問應用,NAT動態選擇其中一個內部地址與外部地址關聯,從而實現均衡的目標[2]。NAT負載均衡是一種比較成熟的負載均衡技術,既可以用軟件實現也可以用硬件的方式來實現,同時負載均衡算法也比較靈活多樣。

2 ?大型在線考試系統負載均衡算法的設計

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

2.1 ?基本工作原理

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

2.2 ?負載均衡策略

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

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

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

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

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

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

F(Si)為服務器當前的負載能力值,qi為各負載能力指標的比重系數, = 1。其中 FCPU表示CPU 利用率,Fm表示內存使用率,Fnet表示網絡帶寬,則F(Si)的計算公式為:

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

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

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

2.4 ?算法的實現過程

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

2.5 ?TEST算法仿真實驗

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

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

3 ?結束語

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

參考文獻

[1] 劉同. 負載均衡技術在數據庫集群系統中的應用與實現[D]. 國防科學技術大學, 2009.

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

[3] 梁家君. 基于神經網絡改進粒子群優化算法的負載均衡技術優化研究[D]. 廣東工業大學, 2018.

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

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

[6] 莊旻軒. 服務器集群中基于動態反饋的負載均衡算法[D]. 大連理工大學, 2014.

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

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

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

[10] 孫凌宇, 等. 云平臺環境下基于禁忌搜索的負載均衡任務調度優化算法[J]. 小型微型計算機系統, 2015, 36 (09): 1948-1952.

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

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

[13] 劉文. 基于大數據優化網絡的安全性策略的研究[J]. 軟件, 2018, 39(9): 205-208.

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

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

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

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

主站蜘蛛池模板: 天堂中文在线资源| 9丨情侣偷在线精品国产| 色精品视频| 成人免费视频一区二区三区| 日韩高清成人| 国产在线自乱拍播放| 日本黄色不卡视频| 欧美笫一页| av一区二区无码在线| 久久精品丝袜高跟鞋| 亚洲日本中文综合在线| 不卡网亚洲无码| 五月天丁香婷婷综合久久| 日韩高清欧美| 日本成人在线不卡视频| 成年午夜精品久久精品| 成人国产精品2021| 蜜臀AVWWW国产天堂| 91尤物国产尤物福利在线| 亚洲天堂区| 91偷拍一区| 欧美全免费aaaaaa特黄在线| 亚洲精选高清无码| 国产网站黄| 国产91熟女高潮一区二区| 日韩无码视频专区| h网站在线播放| 91破解版在线亚洲| 67194在线午夜亚洲 | 精品91在线| 第九色区aⅴ天堂久久香| 日韩二区三区| 国产地址二永久伊甸园| 国产h视频在线观看视频| 国产极品美女在线观看| 亚洲 成人国产| 国模私拍一区二区三区| 四虎影视库国产精品一区| 色哟哟国产精品一区二区| 伊人久久精品无码麻豆精品| 三级毛片在线播放| 色综合天天娱乐综合网| 亚洲永久色| 四虎成人免费毛片| AV在线天堂进入| 欧美一区福利| 国产成年无码AⅤ片在线| 日本精品中文字幕在线不卡| 九色视频最新网址| 尤物亚洲最大AV无码网站| 国产在线视频导航| 亚洲国产高清精品线久久| 日本道综合一本久久久88| 亚洲AⅤ永久无码精品毛片| 国产成人a在线观看视频| 99热这里只有精品免费| 91网址在线播放| 女人av社区男人的天堂| 狠狠色综合网| 天堂成人在线| 99热这里只有精品5| 一区二区在线视频免费观看| 99精品视频播放| 亚洲天堂免费| 动漫精品啪啪一区二区三区| 亚洲色精品国产一区二区三区| 久久精品亚洲中文字幕乱码| 97久久免费视频| 成人午夜视频在线| 欧美一区二区三区国产精品| 在线无码私拍| 亚洲无码A视频在线| 色偷偷综合网| 亚洲一区二区在线无码| 久爱午夜精品免费视频| 成AV人片一区二区三区久久| 久久精品91麻豆| 亚洲国产看片基地久久1024| 亚洲成人在线免费观看| 国产无码性爱一区二区三区| 日本不卡在线视频| 国产成人一区二区|