于梅英,張海波,王春彥
(蘭州大學(xué):1網(wǎng)絡(luò)教育學(xué)院;2新聞與傳播學(xué)院,甘肅 蘭州 730000)
基于負(fù)載均衡技術(shù)的網(wǎng)絡(luò)作業(yè)系統(tǒng)訪問壓力解決方案
于梅英1,張海波1,王春彥2
(蘭州大學(xué):1網(wǎng)絡(luò)教育學(xué)院;2新聞與傳播學(xué)院,甘肅 蘭州 730000)
為解決網(wǎng)上作業(yè)系統(tǒng)訪問壓力與數(shù)據(jù)阻塞問題,提出了一種應(yīng)用緩存技術(shù)、負(fù)載均衡技術(shù)的解決方案,并對網(wǎng)上作業(yè)系統(tǒng)的信息載入慢、服務(wù)器壓力大、成績試算次數(shù)過多3個(gè)關(guān)鍵問題設(shè)計(jì)了相應(yīng)的解決算法。經(jīng)蘭州大學(xué)網(wǎng)絡(luò)教育學(xué)院網(wǎng)上作業(yè)系統(tǒng)運(yùn)行驗(yàn)證,表明實(shí)施解決方案后,能夠有效地降低因訪問過于集中而引起的網(wǎng)絡(luò)阻塞和死鎖問題,提高作業(yè)系統(tǒng)的穩(wěn)定性和有效性。
緩存技術(shù);負(fù)載均衡技術(shù);訪問壓力;數(shù)據(jù)阻塞
現(xiàn)代遠(yuǎn)程教育是一種隨著現(xiàn)代信息技術(shù)發(fā)展而產(chǎn)生的非連續(xù)面授教育的教師和學(xué)生處于時(shí)空分離的教育活動,是以多媒體技術(shù)為主要手段的新型教育形式[1]?;谝蛱鼐W(wǎng)的遠(yuǎn)程教育集成了很多新技術(shù),在交互上有很大的隨機(jī)性,它允許教師和學(xué)生同步或異步地以文本、圖形、音頻、視頻等方式進(jìn)行交互教學(xué)活動[2]。參加現(xiàn)代遠(yuǎn)程教育的學(xué)生其作業(yè)是通過網(wǎng)上作業(yè)系統(tǒng)提交的,作為網(wǎng)上師生學(xué)術(shù)交流的平臺,網(wǎng)上作業(yè)系統(tǒng)在整個(gè)學(xué)習(xí)活動過程中扮演著極其重要的角色。
隨著參加遠(yuǎn)程教育的人數(shù)不斷增加,網(wǎng)上作業(yè)系統(tǒng)的題庫規(guī)模也在不斷擴(kuò)大,但在訪問量高度集中時(shí)(作業(yè)關(guān)閉前)基本無法正常運(yùn)行,甚至導(dǎo)致系統(tǒng)崩潰,嚴(yán)重影響了師生的正常交流活動和學(xué)生的學(xué)習(xí)積極性,也影響了遠(yuǎn)程教育的教學(xué)質(zhì)量。因此,解決網(wǎng)上作業(yè)系統(tǒng)在訪問量高度集中時(shí)的運(yùn)行問題具有重要的現(xiàn)實(shí)意義。但是,如何才能提高系統(tǒng)的響應(yīng)速度、穩(wěn)定性和擴(kuò)展性,并且保護(hù)最初的硬件投資;如何避免大量用戶請求對系統(tǒng)帶來的沖擊,負(fù)載均衡技術(shù)為我們提供了一條途徑,它在后端數(shù)據(jù)庫間分發(fā)客戶請求,以達(dá)到減少系統(tǒng)瓶頸,增強(qiáng)系統(tǒng)響應(yīng)能力[3]。Xing Y等[4]提出,網(wǎng)絡(luò)負(fù)載均衡讓系統(tǒng)能夠更均衡地分配資源,避免快速涌來的大量數(shù)據(jù)被分配給同一臺Web服務(wù)器所導(dǎo)致通信阻塞。鄧華鋒等[5]也提出,利用服務(wù)器集群內(nèi)部多臺同構(gòu)的服務(wù)器處理服務(wù)器過載,使服務(wù)器之間獲得平衡,從而達(dá)到整個(gè)系統(tǒng)的負(fù)載平衡。在以上研究的基礎(chǔ)上,該文基于網(wǎng)上作業(yè)系統(tǒng)訪問量高度集中時(shí)的壓力問題,提出了利用緩存技術(shù)、負(fù)載均衡技術(shù)解決訪問壓力的方案。
緩存技術(shù)是一項(xiàng)在計(jì)算機(jī)中廣泛用來提高性能的技術(shù)。所謂的緩存其實(shí)就是在內(nèi)存中開辟一個(gè)用來保存訪問頻率過高或構(gòu)造成本高的數(shù)據(jù)訪問空間,在緩存有效期內(nèi)對此類數(shù)據(jù)的訪問可以直接從內(nèi)存中讀取,而不必重復(fù)執(zhí)行,這樣既節(jié)省了系統(tǒng)資源,又加快了程序運(yùn)行速度[6]。負(fù)載均衡技術(shù)是解決很多數(shù)據(jù)包同時(shí)訪問某一服務(wù)器時(shí)所引起的訪問速度慢的有效方式[7]。
圖1 作業(yè)系統(tǒng)訪問壓力解決方案框圖
根據(jù)網(wǎng)上作業(yè)系統(tǒng)業(yè)務(wù)需求,該系統(tǒng)由核心模塊、學(xué)生端、教師端、外部應(yīng)用共享、安全體系等部分組成,各部分的組織關(guān)系如圖1所示。在學(xué)生查看作業(yè)、提交作業(yè)時(shí),需要從應(yīng)用程序、外部應(yīng)用共享、服務(wù)器、數(shù)據(jù)庫及其他應(yīng)用服務(wù)中獲取數(shù)據(jù),在學(xué)習(xí)者訪問比較集中的時(shí)候,對服務(wù)器和數(shù)據(jù)庫會造成很大的訪問壓力,為了解決這個(gè)問題,需要在核心模塊和服務(wù)器端應(yīng)用緩存技術(shù)和負(fù)載均衡技術(shù),在核心模塊應(yīng)用成績試算。整個(gè)程序運(yùn)行過程中,數(shù)據(jù)的存取單元主要有緩存、內(nèi)存、硬盤。雖然他們都能存取數(shù)據(jù),但是存取速度卻有很大差異,緩存的存取速度比內(nèi)存存取速度要高幾個(gè)數(shù)量級,而內(nèi)存又比硬盤的存取速度要高幾個(gè)數(shù)量級[8]。負(fù)載均衡技術(shù)的目的是當(dāng)訪問達(dá)到最大經(jīng)驗(yàn)值時(shí)調(diào)用備用作業(yè)服務(wù)器,來緩解正式服務(wù)器的壓力,實(shí)現(xiàn)忙閑時(shí)靈活調(diào)用,減少資源浪費(fèi)[9]。所以,緩存技術(shù)和負(fù)載均衡技術(shù)是減輕服務(wù)器負(fù)擔(dān)、降低網(wǎng)絡(luò)擁塞、增強(qiáng)Web可擴(kuò)展性、優(yōu)化Web性能的最有效、最適用的途徑。
2.1 概述
常用的數(shù)據(jù)緩存技術(shù)主要包括頁面輸出緩存技術(shù)、Application對象技術(shù)和Cache對象技術(shù)等[10]。該設(shè)計(jì)方案式采用的是以上3種技術(shù)的綜合,將不經(jīng)常改變的數(shù)據(jù)取出來進(jìn)行客戶端緩存,到一定時(shí)間后重新從數(shù)據(jù)庫取出數(shù)據(jù)。緩存時(shí)間根據(jù)數(shù)據(jù)的活躍度有所不同,比如學(xué)生個(gè)人基本信息緩存8 h,已學(xué)習(xí)的課程緩存2 h,學(xué)習(xí)中的課程緩存5 min。再將原來并行的Ajax異步請求加入隊(duì)列,速度快的請求一個(gè)隊(duì)列,速度慢的一個(gè)隊(duì)列。緩存的目的是減少請求數(shù)量,減少重復(fù)的請求,隊(duì)列的目的同樣,讓請求排隊(duì)進(jìn)行取數(shù)據(jù)操作,緩解服務(wù)器壓力。緩存所有圖片和腳本,如果文件有變動或客戶端清除臨時(shí)文件,就更新圖片和腳本,否則在已經(jīng)讀取圖片和腳本的情況下一直緩存。緩存同步數(shù)據(jù)原則是,不刷新頁面里沒有變化的元素,刷新時(shí)瀏覽器自動判斷這個(gè)請求的緩存時(shí)間。如果已經(jīng)超過規(guī)定的時(shí)間,則到服務(wù)器取新數(shù)據(jù),緩存信息是學(xué)生首次登陸學(xué)生平臺后,將緩存信息保存到用戶本地硬盤,是IE臨時(shí)文件,只要用戶不清除該文件,數(shù)據(jù)會一直保存。
2.2 流程及算法處理過程
該算法涉及的輸入/出如下:
輸入:用戶名ID(Userid)對應(yīng)學(xué)生表(Student_Info)的學(xué)生基本信息ID
密碼(Password)
輸出:學(xué)生個(gè)人信息(Student_Info)
課程信息(Course_Info)
學(xué)習(xí)狀態(tài)(StudyState)
作業(yè)緩存系統(tǒng)執(zhí)行過程主要通過檢查用戶的合法性、返回學(xué)生的個(gè)人基本信息、判斷課程的學(xué)習(xí)狀態(tài)、設(shè)定緩存時(shí)長并記錄到相應(yīng)的數(shù)據(jù)表中幾個(gè)階段來完成,其詳細(xì)處理流程如圖2所示。
圖2 作業(yè)系統(tǒng)緩存算法流程圖
根據(jù)圖2可設(shè)計(jì)出作業(yè)緩存的算法,其過程偽碼描述如下:
Begin;
Step1登錄系統(tǒng);
Step2判斷登陸信息是否合法,若不合法返回Step1,若合法繼續(xù)Step3;
Step3將用戶信息載入緩存,每過8 h更新緩存數(shù)據(jù);
Step4載入用戶課程;
Step5判斷用戶課程,若課程已經(jīng)學(xué)習(xí)結(jié)束,執(zhí)行Step6,反之執(zhí)行Step7;
Step6將學(xué)習(xí)已經(jīng)結(jié)束的課程信息載入緩存,每過2 h更新緩存數(shù)據(jù);
Step7將學(xué)習(xí)中課程的信息載入緩存,每5 min更新緩存數(shù)據(jù);
Step8當(dāng)前學(xué)習(xí)行為結(jié)束,退出系統(tǒng),釋放緩存。
End
3.1 概述
首先,我們?nèi)?010年作業(yè)訪問高度集中的9月的數(shù)據(jù)進(jìn)行分析,如圖3所示。
圖3 學(xué)生平臺訪問情況
由圖3可以看出,9月10日開始增大達(dá)到6 612人/次,9月11日達(dá)到頂峰12 135人次,9月12日回落至8 476人次,9月14日3 078人次,9月15日2 202人次。9月10日-9月11日Web服務(wù)器并發(fā)數(shù)在1 300-2 300之間波動,平均并發(fā)在1 600左右,該并發(fā)數(shù)會給服務(wù)器造成很大的壓力,甚至導(dǎo)致服務(wù)器崩潰。
遠(yuǎn)程教育的學(xué)生是在職人員,他們的特點(diǎn)是平時(shí)工作較多,學(xué)習(xí)時(shí)間有限,所以他們訪問平臺是隨著學(xué)院的教學(xué)活動安排情況變化的,平時(shí)訪問量較少,考前訪問量極大。要處理好作業(yè)訪問量高度集中的問題,不但要使用緩存,還需要使用負(fù)載均衡技術(shù),系統(tǒng)需要判斷同一時(shí)間內(nèi)試算和提交作業(yè)的次數(shù),平時(shí)采用正常模式,達(dá)到最大經(jīng)驗(yàn)值時(shí)調(diào)用備用作業(yè)服務(wù)器,來緩解正式服務(wù)器的壓力,實(shí)現(xiàn)忙閑時(shí)靈活調(diào)用,以節(jié)省各種資源。
3.2 流程及算法處理過程
該算法涉及的輸入/出如下:
輸入:作業(yè)試算次數(shù)
作業(yè)提交次數(shù)
輸出:分流服務(wù)器信息
負(fù)載均衡執(zhí)行過程主要是通過收集作業(yè)試算次數(shù)、收集作業(yè)提交次數(shù)、判斷是否達(dá)到經(jīng)驗(yàn)值、啟動備用作業(yè)服務(wù)器幾個(gè)階段來完成,其詳細(xì)處理流程如圖4所示。
根據(jù)圖4可設(shè)計(jì)出作業(yè)緩存的算法,其過程偽碼描述如下:
Begin;
Step1初始化試算次數(shù)和提交次數(shù);
Step2收集規(guī)定時(shí)間內(nèi)試算次數(shù),執(zhí)行Step4;
Step3收集規(guī)定時(shí)間內(nèi)提交次數(shù),執(zhí)行Step5;
Step4判斷試算次數(shù)是否到達(dá)經(jīng)驗(yàn)最大值,若是執(zhí)行Step6;
Step5判斷提交次數(shù)是否到達(dá)經(jīng)驗(yàn)最大值,若是執(zhí)行Step7;
Step6啟用備用服務(wù)器分流;
Step7啟用備用服務(wù)器分流;
Step8退出系統(tǒng)。
End
4.1 概述
由于遠(yuǎn)程教育的特殊性,學(xué)生作業(yè)全部是在網(wǎng)絡(luò)作業(yè)系統(tǒng)上完成的。原系統(tǒng)設(shè)計(jì)了作業(yè)成績試算功能,學(xué)生可以通過試算功能,無限次地試算作業(yè)成績,直到滿意后才提交作業(yè),但是由于學(xué)生過分依賴試算,通過不斷試算的方式找出作業(yè)的正確答案,這不符合教育的初衷,同時(shí)無限次試算成績會給服務(wù)器造成很大的壓力,我們?nèi)×艘粋€(gè)學(xué)期的學(xué)生試算數(shù)據(jù)(如表1、表2所示)。
表1 2008-2009學(xué)年第二學(xué)期作業(yè)試算及提交情況
由表1數(shù)據(jù)可以看出:①9月10日至12日高峰時(shí)間,平均作業(yè)試算次數(shù)和作業(yè)提交次數(shù)基本達(dá)到平均值的3倍;②每天大量提交作業(yè)會引起數(shù)據(jù)發(fā)送與讀取阻塞,從而引起系統(tǒng)死鎖。
表2 從布置作業(yè)到作業(yè)關(guān)閉期間單份作業(yè)試算情況
從表2可以看出,94.38%的學(xué)生在試算20次以內(nèi)的時(shí)候就能正常提交數(shù)據(jù),所以我們將原來單套作業(yè)不限試算次數(shù),改為每天最多10次,每套最多30次,這樣既保證學(xué)生能夠正常提交作業(yè),又保證了服務(wù)器的正常運(yùn)行。
4.2 流程及算法處理過程
該算法涉及的輸入/出主要有:
輸入:作業(yè)試算次數(shù)
時(shí)間:Date time
輸出:提示信息
學(xué)生作業(yè)試算次數(shù)執(zhí)行過程主要通過收集作業(yè)試算次數(shù)、比對時(shí)間、判斷是否達(dá)到規(guī)定時(shí)間、判斷是否到達(dá)規(guī)定次數(shù)、給出相應(yīng)提示信息幾個(gè)階段來完成,其詳細(xì)處理流程如圖5所示。
根據(jù)圖5可設(shè)計(jì)出作業(yè)緩存的算法,其過程偽碼描述如下:
Begin;
Step1初始化試算次數(shù),時(shí)間段;
Step2收集試算次數(shù),并記錄時(shí)間段;
Step3判斷時(shí)間段是否在24 h以內(nèi),若是執(zhí)行Step4,若否執(zhí)行Step5;
圖5 學(xué)生作業(yè)試算次數(shù)控制算法流程圖
Step4判斷試算次數(shù)是否超過10次。若是執(zhí)行Step6;
Step5判斷試算次數(shù)是否超過30次。若是執(zhí)行Step7;
Step6提示試算次數(shù)達(dá)到24 h允許提交10次的限定值,不允許再次提交;
Step7提示試算次數(shù)達(dá)到大于24 h允許提交30次的限定值,不允許再提交。
End
應(yīng)用緩存技術(shù)、負(fù)載均衡技術(shù)等,通過調(diào)整作業(yè)試算次數(shù)對作業(yè)系統(tǒng)進(jìn)行調(diào)整,并選取2010年9月作業(yè)提交高峰期的數(shù)據(jù)對調(diào)整效果進(jìn)行驗(yàn)證,如圖6、圖7所示。
圖6 作業(yè)成績試算數(shù)據(jù)分布
圖6 顯示對比方案實(shí)施前后的網(wǎng)絡(luò)阻塞和死鎖的發(fā)生概率,可以看出在訪問人次為1 000時(shí),系統(tǒng)的網(wǎng)絡(luò)阻塞和死鎖的發(fā)生概率接近0,二者并無明顯差異,服務(wù)器的訪問壓力也非常小。但在訪問為7 000人/次以上,或是作業(yè)提交份數(shù)在2 000份以上時(shí),網(wǎng)絡(luò)阻塞和死鎖的概率明顯增大,且隨著訪問人數(shù)和提交作業(yè)數(shù)的增加,發(fā)生網(wǎng)絡(luò)阻塞和死鎖的概率也明顯增大,服務(wù)器所承受的訪問壓力也不斷增加。實(shí)施方案后,隨著訪問人次和作業(yè)提交數(shù)量的不斷增加,發(fā)生網(wǎng)絡(luò)阻塞和死鎖的概率基本沒有明顯變化,在訪問人數(shù)為29 066時(shí),網(wǎng)絡(luò)阻塞和死鎖發(fā)生的概率也相當(dāng)于訪問人數(shù)為1 000以內(nèi),作業(yè)提交份數(shù)為1 000時(shí)的一半,服務(wù)器所承受的訪問壓力非常小,學(xué)習(xí)者能夠很快速地訪問作業(yè)系統(tǒng),并提交作業(yè)。
圖7 作業(yè)提交數(shù)據(jù)分布
如圖7所示,對比方案實(shí)施前后的作業(yè)提交數(shù)據(jù),總體來說,方案實(shí)施前的網(wǎng)絡(luò)阻塞與發(fā)生死鎖的概率明顯高于方案實(shí)施后的概率。當(dāng)作業(yè)提交份數(shù)為1 000以內(nèi)時(shí)候,發(fā)生網(wǎng)絡(luò)阻塞與死鎖的概率接近0,但當(dāng)提交作業(yè)份數(shù)為2 000以上時(shí),方案實(shí)施前發(fā)生網(wǎng)絡(luò)阻塞的概率隨著提交作業(yè)份數(shù)的不斷增多而逐漸增加,而方案實(shí)施后,隨著提交作業(yè)份數(shù)的增加,網(wǎng)絡(luò)阻塞與死鎖的概率明顯比較低,在提交作業(yè)份數(shù)為5 359時(shí),其發(fā)生網(wǎng)絡(luò)阻塞或死鎖的概率也只相當(dāng)于方案實(shí)施前提交作業(yè)份數(shù)為1 000時(shí)的發(fā)生概率。
隨著現(xiàn)代遠(yuǎn)程教育的不斷發(fā)展,通過遠(yuǎn)程教育接受學(xué)歷教育和非學(xué)歷教育的人數(shù)逐年增加,作業(yè)系統(tǒng)作為教師與學(xué)習(xí)者交流的平臺,在遠(yuǎn)程教育教學(xué)中扮演著重要的角色,也是學(xué)生反饋學(xué)習(xí)效果、提交作業(yè)、需求幫助的互動平臺。但是,隨著遠(yuǎn)程教育學(xué)生規(guī)模的逐年增加,對作業(yè)系統(tǒng)的壓力也越來越大,為解決網(wǎng)上作業(yè)系統(tǒng)訪問壓力,應(yīng)用緩存技術(shù)、負(fù)載均衡等技術(shù)能夠降低作業(yè)系統(tǒng)的訪問壓力、提高網(wǎng)上作業(yè)系統(tǒng)的穩(wěn)定性。科學(xué)穩(wěn)定的作業(yè)系統(tǒng),可以提高學(xué)生的學(xué)習(xí)的積極性、主動性,全面提升遠(yuǎn)程教育的教學(xué)質(zhì)量以及服務(wù)水平,對進(jìn)一步推動遠(yuǎn)程教育的發(fā)展將有重大意義。
[1]周雪瑩.遠(yuǎn)程教育系統(tǒng)中學(xué)院模塊的研究[D].南京:南京氣象學(xué)院碩士論文,2004:1
[2]勾學(xué)榮,于斌.建立現(xiàn)代遠(yuǎn)程教育平臺的技術(shù)策略[J].電信工程技術(shù)與標(biāo)準(zhǔn)化,2000,(3):4-6
[3]劉同.負(fù)載均衡技術(shù)在數(shù)據(jù)庫集群系統(tǒng)中的應(yīng)用與實(shí)現(xiàn)[D].國防科學(xué)技術(shù)大學(xué)碩士論文,2009:1-6
[4]祝宇林.利用負(fù)載均衡提升網(wǎng)絡(luò)性能[J].信息技術(shù),2005,(4):110-110
[5]鄧華鋒,劉云生,肖迎元.分布式數(shù)據(jù)流處理系統(tǒng)的動態(tài)負(fù)載平衡技術(shù)[J].計(jì)算機(jī)科學(xué),2007:34(7):120
[6]鐘克吟.ASP 緩存策略探討[J].現(xiàn)代計(jì)算機(jī),2006,(243):68
[7]王士克,吳集,金士堯.Web緩存技術(shù)概述[J].計(jì)算機(jī)與信息技術(shù),2005,(6):37
[8]商新娜.Web應(yīng)用中的海量數(shù)據(jù)訪問緩存技術(shù)[J].北京聯(lián)合大學(xué)學(xué)報(bào),2007,21(3):46
[9]薛軍,李增智,王云嵐.負(fù)載均衡技術(shù)的發(fā)展[J].小型微型計(jì)算機(jī)系統(tǒng),2003,24(12):2100-2103
[10]施為.Web應(yīng)用中的數(shù)據(jù)緩存技術(shù)[J].淮陽師范學(xué)院學(xué)報(bào),2005,5(4):321
Solutions based on load balancing technology to the access pressure of network tasks
Yu Meiying1,Zhang Haibo1,Wang Chunyan2
(1Distance Education College;2School of Journalism& Communication,Lanzhou University,Lanzhou 730000,China)
In order to solve the problem of the high access pressure of network task system and data blocking,this article proposes solutions based on cache technology and load balancing technology,and a plan for solving three key problems:low speed of information load of network task system,high pressure of server and too many times of pilot calculation for scores.We also tested the network task system on the website of Lanzhou University Distance Education College.The result shows that applying it can effectively solve the problem of network being blocked or locked caused by excessive access so as to enhance the stability and effectiveness of the network task system.
cache technology;load balancing technology;access pressure;data blocking
G434
A
1004-5287(2011)02-0150-05
2010-12-22
于梅英(1980-),女,甘肅嘉峪關(guān)人,工程師,碩士,主要研究方向:軟件工程。