何文海
摘 要服務(wù)器在對(duì)瞬間大并發(fā)量訪問(wèn)進(jìn)行響應(yīng)過(guò)程中,由于其LVS負(fù)載均衡算法是以加權(quán)最小連接調(diào)度算法進(jìn)行默認(rèn)的,因此會(huì)造成負(fù)載不均衡,從而影響了服務(wù)器對(duì)瞬間大并發(fā)量訪問(wèn)的響應(yīng)時(shí)間。為此,在LVS算法的基礎(chǔ)上,提出了一種動(dòng)態(tài)自適應(yīng)負(fù)載均衡算法,它通過(guò)動(dòng)態(tài)推送信息的方式來(lái)對(duì)服務(wù)器負(fù)載信息進(jìn)行實(shí)時(shí)收集,并采用分簇并行處理的方式來(lái)實(shí)現(xiàn)任務(wù)的分解與轉(zhuǎn)移,從而達(dá)到縮短服務(wù)器的響應(yīng)時(shí)間,提高服務(wù)器對(duì)瞬間大并發(fā)量訪問(wèn)應(yīng)對(duì)能力的目的。本文便基于這種動(dòng)態(tài)自適應(yīng)負(fù)載均衡方法對(duì)服務(wù)器的相關(guān)優(yōu)化策略進(jìn)行了深入的分析。
【關(guān)鍵詞】動(dòng)態(tài)自適應(yīng) 負(fù)載均衡 服務(wù)器 瞬間大并發(fā)量訪問(wèn) 優(yōu)化策略
1 服務(wù)器對(duì)瞬間大并發(fā)量訪問(wèn)的處理
當(dāng)前,我國(guó)大部分服務(wù)器都主要是利用LV負(fù)載均衡法來(lái)對(duì)用戶訪問(wèn)進(jìn)行處理的,LVS方法是一種具備高性能的負(fù)載均衡調(diào)度方法,它是由我國(guó)的技術(shù)專(zhuān)家章文嵩先生提出的。隨著科學(xué)技術(shù)水平的不斷發(fā)展,服務(wù)器接收到的用戶訪問(wèn)請(qǐng)求數(shù)量也日益增長(zhǎng),這就會(huì)使服務(wù)器端產(chǎn)生許多大小不一的負(fù)載量。而僅僅依靠服務(wù)器技術(shù)對(duì)用戶訪問(wèn)請(qǐng)求進(jìn)行響應(yīng)是難以為繼的。而通過(guò)在服務(wù)器的Cent OS系統(tǒng)中搭建一個(gè)虛擬服務(wù)器,并在虛擬服務(wù)器中建立LVS負(fù)載均衡集群,能夠使其通過(guò)虛擬服務(wù)器來(lái)對(duì)不同類(lèi)型的各種用戶進(jìn)行任務(wù)均衡,從而極大提高了服務(wù)器對(duì)數(shù)據(jù)的檢索效率,并有效減少了服務(wù)器對(duì)用戶訪問(wèn)請(qǐng)求的響應(yīng)時(shí)間與調(diào)度時(shí)間,進(jìn)而建立了能對(duì)數(shù)據(jù)進(jìn)行高效檢索的虛擬服務(wù)器集群系統(tǒng)。在服務(wù)器端中,其權(quán)值的高低代表著這種服務(wù)器端對(duì)任務(wù)的處理能力水平,通常情況下,權(quán)值的定義公式為權(quán)值=服務(wù)器端性能/系統(tǒng)任務(wù)數(shù)。在LVS均衡調(diào)度方法中,服務(wù)器依靠其自身的任務(wù)處理能力來(lái)對(duì)所分配的任務(wù)數(shù)進(jìn)行處理,但如果遇到瞬間大并發(fā)量進(jìn)行訪問(wèn)時(shí),便會(huì)導(dǎo)致服務(wù)器中的負(fù)載均衡器負(fù)荷過(guò)大,進(jìn)而造成服務(wù)器系統(tǒng)的運(yùn)行受到影響,甚至還會(huì)導(dǎo)致服務(wù)器崩潰。此外,LVS算法只能對(duì)服務(wù)器中的當(dāng)前連接任務(wù)數(shù)量進(jìn)行處理,并且只能以服務(wù)器的當(dāng)前連接任務(wù)數(shù)量作為系統(tǒng)負(fù)載進(jìn)行反映,從而降低了服務(wù)器負(fù)載情況的準(zhǔn)確性與真實(shí)性。因此,為了能夠使服務(wù)器更好的對(duì)瞬間大并發(fā)量訪問(wèn)進(jìn)行高效處理,并且能夠?qū)Ψ?wù)器的真實(shí)負(fù)載情況進(jìn)行準(zhǔn)確反映,有必要對(duì)服務(wù)器的負(fù)載均衡調(diào)度方法進(jìn)行必要的優(yōu)化。
2 動(dòng)態(tài)自適應(yīng)負(fù)載均衡的應(yīng)用原理
本文提出一種動(dòng)態(tài)自適應(yīng)負(fù)載均衡調(diào)度方法,這種調(diào)度方法主要是從兩個(gè)方面進(jìn)行了綜合考慮,其一是對(duì)服務(wù)器端自身任務(wù)處理性能的考慮,其二是對(duì)服務(wù)器端節(jié)點(diǎn)處所鏈接的任務(wù)數(shù)量進(jìn)行考慮。通過(guò)利用動(dòng)態(tài)自適應(yīng)負(fù)載均衡調(diào)度方法,能夠使服務(wù)器內(nèi)部結(jié)構(gòu)中的節(jié)點(diǎn)來(lái)對(duì)服務(wù)器的自身負(fù)載情況進(jìn)行收集,并將這些收集到的信息及時(shí)的傳遞到負(fù)載均衡器當(dāng)中,利用動(dòng)態(tài)推送信息來(lái)實(shí)現(xiàn)對(duì)服務(wù)器負(fù)載信息的實(shí)時(shí)收集。通過(guò)這種自主收集負(fù)載信息的方式,能夠使通信成本進(jìn)一步降低,并且還能有效減少負(fù)載均衡器的負(fù)荷。動(dòng)態(tài)自適應(yīng)負(fù)載均衡方法的原理是通過(guò)在服務(wù)器中利用分簇并行處理的方式,將主服務(wù)器中的任務(wù)轉(zhuǎn)移到簇服務(wù)器當(dāng)中,并由簇服務(wù)器對(duì)轉(zhuǎn)移過(guò)來(lái)的任務(wù)進(jìn)行分解與劃分,然后將分解后的子任務(wù)傳遞到葉節(jié)點(diǎn)當(dāng)中去,然后由選定處理器對(duì)葉節(jié)點(diǎn)中的處理結(jié)果進(jìn)行收集。以此確保服務(wù)器能夠?qū)λ矔r(shí)大并量訪問(wèn)進(jìn)行響應(yīng)。不過(guò),值得注意的是,分層方法所采用的拓?fù)浣Y(jié)構(gòu)不能太復(fù)雜,否則會(huì)造成這種平行分層的方法失去原有效果。
3 服務(wù)器動(dòng)態(tài)自適應(yīng)負(fù)載均衡對(duì)瞬間大并發(fā)量訪問(wèn)的優(yōu)化策略
3.1 數(shù)學(xué)模型的優(yōu)化
在瞬間大并量訪問(wèn)過(guò)程中,通常要將用戶的任務(wù)形式分成兩種,一種是CPU消耗型任務(wù),另一種是I/O消耗型任務(wù),以此優(yōu)化最小連接調(diào)度算法。為了確保服務(wù)器的決策性能更加高效,首先要確保各個(gè)真實(shí)服務(wù)器能夠?qū)ψ陨淼呢?fù)載信息進(jìn)行自適應(yīng)收集,并依據(jù)自身的運(yùn)行狀態(tài)將與之匹配的負(fù)載信息發(fā)達(dá)給負(fù)載均衡器當(dāng)中去。負(fù)載均衡器會(huì)根據(jù)服務(wù)器的整體信息情況來(lái)對(duì)任務(wù)進(jìn)行均衡調(diào)度,以此確保能夠?qū)γ總€(gè)服務(wù)器節(jié)點(diǎn)的負(fù)載進(jìn)行動(dòng)態(tài)適應(yīng)。服務(wù)器的性能指標(biāo)主要通過(guò)公式P=L1×PCPU+L2×Pmemory+L3×Pdisc+L4×Pbandwidth,公式中P代表服務(wù)器的性能指標(biāo),Pmemory代表內(nèi)存容量,Pbandwidth代表網(wǎng)絡(luò)帶寬、Pdisc代表服務(wù)器磁盤(pán)的可用空間、PCPU則代表CPU的頻率,而1≥L≥0則代表服務(wù)器各項(xiàng)指標(biāo)中被利用的權(quán)重系數(shù)。在動(dòng)態(tài)自適應(yīng)負(fù)載均衡器配置以后,會(huì)通過(guò)計(jì)算公式將服務(wù)器的當(dāng)前性能值P發(fā)送到負(fù)載均衡器,并且每隔一段時(shí)間,便會(huì)通過(guò)計(jì)算公式將服務(wù)器的實(shí)時(shí)負(fù)載情況發(fā)送給負(fù)載均衡器。此外,當(dāng)有任務(wù)調(diào)度請(qǐng)求發(fā)送到負(fù)載均衡器中,負(fù)載均衡器會(huì)通過(guò)對(duì)各個(gè)節(jié)點(diǎn)的信息進(jìn)行選擇,然后將任務(wù)調(diào)度請(qǐng)求分配到后端服務(wù)器當(dāng)中。此外,當(dāng)周期內(nèi)負(fù)載信息未更新時(shí),通常會(huì)有兩種情況發(fā)生,一種是后端服務(wù)器閑置。另一種是后端服務(wù)器過(guò)載。因此為了能夠更加有效的對(duì)每個(gè)服務(wù)器的節(jié)點(diǎn)負(fù)載能力進(jìn)行預(yù)測(cè),通過(guò)在數(shù)學(xué)模型中引入負(fù)載冗余參數(shù)來(lái)對(duì)子服務(wù)器節(jié)點(diǎn)的負(fù)載增加能力進(jìn)行評(píng)估,并利用計(jì)算公式來(lái)對(duì)冗余值進(jìn)行求出,以此判斷服務(wù)器的負(fù)載運(yùn)行情況。
3.2 算法的優(yōu)化
在算法優(yōu)化上主要分為三個(gè)過(guò)程,首先是利用二叉排序樹(shù)算法對(duì)服務(wù)器中的負(fù)載冗余值進(jìn)行排序,然后根據(jù)負(fù)載均衡器中的后端服務(wù)器R-RMIN值進(jìn)行循環(huán)遍歷,以此判斷節(jié)點(diǎn)服務(wù)器的R-RMIN值。其次是利用中序遍歷算法對(duì)二叉排序樹(shù)進(jìn)行計(jì)算,然后按照節(jié)點(diǎn)權(quán)值來(lái)形成從小到大的權(quán)值遞增數(shù)列。最后,對(duì)瞬間大并發(fā)量訪問(wèn)所產(chǎn)生的任務(wù)按照權(quán)值進(jìn)行分配,此時(shí),被分配任務(wù)以后的節(jié)點(diǎn)會(huì)在R-RMIN值上產(chǎn)生改變。
3.3 負(fù)載均衡流程的優(yōu)化
在負(fù)載均衡流程優(yōu)化方面,利用循環(huán)遍歷算法來(lái)對(duì)負(fù)載均衡器中的負(fù)載冗余值進(jìn)行計(jì)算,以此判斷冗余值是否最小,如果實(shí)際冗余值超過(guò)最小冗余值,應(yīng)將該節(jié)點(diǎn)入樹(shù),并建立二叉排序樹(shù)。然后利用中序遍歷方法將二叉排序樹(shù)按照遞增的形式形成一個(gè)數(shù)列,數(shù)列的遞增應(yīng)按各個(gè)服務(wù)器節(jié)點(diǎn)中的權(quán)值進(jìn)行排列。通過(guò)中序遍歷排列以后,然后通過(guò)數(shù)列對(duì)能夠滿足條件的服務(wù)器進(jìn)行任務(wù)分配。
參考文獻(xiàn)
[1]劉勇,王露珊,郭跟成.EJB集群系統(tǒng)動(dòng)態(tài)自適應(yīng)負(fù)載均衡服務(wù)的設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)應(yīng)用研究,2008(07):2064-2067+2134.
[2]李國(guó),曲文麗,田豐,王洋.一種改進(jìn)的周期自適應(yīng)動(dòng)態(tài)負(fù)載均衡算法[J].小型微型計(jì)算機(jī)系統(tǒng),2015,36(07):1476-1480.
[3]唐擁政,劉解放,周寧.并行入侵檢測(cè)系統(tǒng)的動(dòng)態(tài)自適應(yīng)負(fù)載均衡算法[J].鹽城工學(xué)院學(xué)報(bào)(自然科學(xué)版),2011,24(04):39-43.
作者單位
河北省教育考試院 河北省石家莊市 050091