馬潔
慕課教育系統(tǒng)中Web服務(wù)器集群負(fù)載均衡算法研究
馬潔
慕課教育平臺(tái)的服務(wù)器集群會(huì)在用戶(hù)訪問(wèn)量的增加下響應(yīng)變慢,所以需要提出一種基于服務(wù)器狀態(tài)和請(qǐng)求信息新的策略算法來(lái)減少響應(yīng)時(shí)間。該算法的機(jī)制是根據(jù)客戶(hù)端的請(qǐng)求內(nèi)容對(duì)服務(wù)器的影響程度進(jìn)行分類(lèi),并設(shè)定相應(yīng)的權(quán)值,同時(shí)結(jié)合服務(wù)器的性能參數(shù)和負(fù)載狀態(tài),將該次請(qǐng)求分配到負(fù)載最輕的服務(wù)器。根據(jù)慕課教育系統(tǒng)提出了一種分層式均衡系統(tǒng)的總體框架結(jié)構(gòu),研究了系統(tǒng)內(nèi)部通信機(jī)制和Web 服務(wù)器性能的監(jiān)控方案。實(shí)驗(yàn)結(jié)果表明所提出的算法能夠充分利用現(xiàn)有的軟硬件資源,有效地均衡Web集群服務(wù)器的負(fù)載,使服務(wù)資源得到最大效率的利用,是目前緩解或者解決Web服務(wù)器負(fù)載不斷增加的一種有效方法,優(yōu)于一些傳統(tǒng)的負(fù)載均衡算法。
數(shù)Web;服務(wù)器集群;負(fù)載均衡;高可用性;慕課教育系統(tǒng)
Web 服務(wù)的高性能、高可用問(wèn)題已經(jīng)成為Web 服務(wù)領(lǐng)域研究的熱點(diǎn)。Web集群服務(wù)器系統(tǒng)是解決當(dāng)前Web 服務(wù)性能問(wèn)題的有效途徑之一。異構(gòu)集群服務(wù)器比同構(gòu)集群服務(wù)器更有實(shí)際意義,但實(shí)現(xiàn)起來(lái)困難要大得多。為實(shí)現(xiàn)一個(gè)高效的異構(gòu)Web 集群服務(wù)器系統(tǒng),必須解決許多問(wèn)題,如:請(qǐng)求分配、負(fù)載均衡、容錯(cuò)技術(shù)等[1]。對(duì)于異構(gòu)Web集群服務(wù)器,各臺(tái)Web服務(wù)器性能不同,各種負(fù)載均衡算法將導(dǎo)致系統(tǒng)中各臺(tái)Web服務(wù)器對(duì)外表現(xiàn)的不同。當(dāng)Web集群服務(wù)器中各臺(tái)Web服務(wù)器的負(fù)載處于均衡狀態(tài)時(shí),請(qǐng)求分配的效率最高[2]。因此,可以通過(guò)負(fù)載均衡算法來(lái)控制負(fù)載分布,使Web集群服務(wù)器的負(fù)載分配盡量達(dá)到均衡,來(lái)提高請(qǐng)求分配的效率。本文的研究來(lái)源于慕課教育平臺(tái),該會(huì)在高峰時(shí)間內(nèi)承載非常大的Web訪問(wèn)量導(dǎo)致服務(wù)器響應(yīng)變慢,所以需要提出一種基于服務(wù)器狀態(tài)和請(qǐng)求信息新的策略算法來(lái)減少響應(yīng)時(shí)間。
1.1 QSC負(fù)載均衡算法的理論分析
這里對(duì)即查詢(xún)服務(wù)器緩存QSC(Query Server with Cache),算法的基本理論進(jìn)行分析。Web 服務(wù)器集群看作是由若干個(gè)提供各種服務(wù)能力的資源節(jié)點(diǎn)組成。如何共享在全部服務(wù)器的各種服務(wù)能力,不使某個(gè)節(jié)點(diǎn)的某個(gè)服務(wù)類(lèi)別過(guò)載是解決均衡問(wèn)題的一個(gè)重要方面。
根據(jù)對(duì)服務(wù)器的影響程度,本文把請(qǐng)求分為:靜態(tài)請(qǐng)求、數(shù)據(jù)庫(kù)操作請(qǐng)求、安全請(qǐng)求等,每種請(qǐng)求被分給特定的權(quán)值,這可以通過(guò)分析請(qǐng)求日志來(lái)獲得請(qǐng)求類(lèi)型和估計(jì)服務(wù)器的性能。
請(qǐng)求的權(quán)值估算公式參照文獻(xiàn)[3]的思想定義為:ormation 函數(shù)得到自計(jì)算機(jī)運(yùn)行以來(lái)計(jì)算機(jī)所有處理機(jī)空閑時(shí)間總量,再以不同的參數(shù)值調(diào)用NtQuerySystemInform ation 函數(shù)得到計(jì)算機(jī)運(yùn)行時(shí)間總量。將相鄰兩次得到的空閑時(shí)間總量相減,得到一個(gè)周期內(nèi)所有處理機(jī)的空閑時(shí)間t1。將相鄰兩次得到的系統(tǒng)運(yùn)行時(shí)間總量相減,得到一個(gè)周期的時(shí)間值t2。將t1和t2代入下列公式得到一個(gè)周期內(nèi)CPU 使用率的平均值如公式(5):
SERVERPER 進(jìn)程求內(nèi)存使用率的方法:每次接收到性能同步信號(hào)之后每隔一秒調(diào)用函數(shù)GlobalMemoryStatus 得到物理內(nèi)存的使用率,重復(fù)5次,再將得到的值平均作為這段時(shí)間內(nèi)內(nèi)存的使用率。
SERVERPER 進(jìn)程求網(wǎng)絡(luò)流量的方法:每次接收到性能同步信號(hào)后調(diào)用函數(shù)GetTcpStatistics 得到自計(jì)算機(jī)運(yùn)行以來(lái)計(jì)算機(jī)接收和發(fā)送的TCP 包的總量,求和,再將相鄰兩次得到的數(shù)相減,得到一個(gè)循環(huán)周期內(nèi)計(jì)算機(jī)發(fā)送和接收到的TCP 包數(shù)作為機(jī)器的網(wǎng)絡(luò)流量。
Web 集群服務(wù)器模型由兩個(gè)關(guān)鍵實(shí)體:負(fù)載均衡器和服務(wù)器。仿真試驗(yàn)比較主要目的是為了和其它分發(fā)算法進(jìn)行對(duì)比,檢測(cè)QSC-負(fù)載均衡算法的有效性。模型主要包括負(fù)載處理時(shí)間模型和服務(wù)器處理時(shí)間模型,首先,由于分析服務(wù)器響應(yīng)時(shí)間模型比較復(fù)雜,幾乎包含計(jì)算機(jī)系統(tǒng)的各個(gè)方面。在Web 服務(wù)器模型中,有3個(gè)因素影響響應(yīng)延:CPU、網(wǎng)絡(luò)和磁盤(pán)。在不影響主要目的的前提下,本文不考慮網(wǎng)絡(luò)延遲和區(qū)分磁盤(pán)和緩存之間的效率的差別。所以,一個(gè)請(qǐng)求的響應(yīng)時(shí)間的公式=CPU處理時(shí)間+讀取內(nèi)存的時(shí)間。處理時(shí)間只是被用來(lái)測(cè)量Web 服務(wù)器的性能,該策略中的負(fù)載處理時(shí)間相對(duì)服務(wù)器處理時(shí)間可以忽略不計(jì)。對(duì)每類(lèi)訪問(wèn)參考文獻(xiàn)中的一些數(shù)據(jù)資料結(jié)合對(duì)Web 服務(wù)器的實(shí)測(cè),給出了相應(yīng)權(quán)值。通過(guò)分析 Web 站點(diǎn)的日志,研究Internet 上請(qǐng)求分布情況和模擬服務(wù)器的負(fù)載情況。
下面模擬3種不同請(qǐng)求策略:最少連接策略,隨機(jī)策略,QSC-負(fù)載均衡策略,以最少連接和隨機(jī)選擇作為測(cè)試的基準(zhǔn)。集群服務(wù)器系統(tǒng)吞吐量的對(duì)比圖如圖3所示:
圖3 集群服務(wù)器系統(tǒng)吞吐量的對(duì)比
在低負(fù)載的情況下,QSC負(fù)載均衡算法的效果不是很明顯。但是,在中等或負(fù)載較重的情況下,這個(gè)策略能獲得較高的性能和一定的效果。集群服務(wù)器系統(tǒng)響應(yīng)時(shí)間的對(duì)比如圖4所示:
圖4 集群服務(wù)器系統(tǒng)響應(yīng)時(shí)間對(duì)比
模擬的結(jié)果如下:在低負(fù)載的情況下,3種策略基本沒(méi)有什么差別。在中等負(fù)載的情況下,QSC負(fù)載均衡算法比最少連接策略,在響應(yīng)時(shí)間都有較顯著的縮短,隨機(jī)策略是最慢的,由于對(duì)請(qǐng)求內(nèi)容進(jìn)行準(zhǔn)確的識(shí)別并考慮到服務(wù)器的異構(gòu)性。QSC負(fù)載均衡算法相對(duì)于基準(zhǔn)來(lái)說(shuō),有較好的性能。在重負(fù)載的情況下,QSC負(fù)載均衡算法的效果就更明顯了。
綜上所述,QSC負(fù)載均衡算法考慮到請(qǐng)求的內(nèi)容和服務(wù)器的異構(gòu)性,根據(jù)請(qǐng)求內(nèi)容分發(fā)請(qǐng)求,模擬實(shí)驗(yàn)的結(jié)果表明QSC負(fù)載均衡算法具有很好的性能。
Web 服務(wù)器負(fù)載處理應(yīng)用領(lǐng)域、行業(yè)十分廣泛,也是一種趨勢(shì),有很多方面需要研究。負(fù)載均衡服務(wù)主要包括網(wǎng)絡(luò)級(jí)、操作系統(tǒng)級(jí)和基于中間件3 種?;谥虚g件的負(fù)載均衡服務(wù)位于應(yīng)用和操作系統(tǒng)之間,屏蔽底層通信復(fù)雜性和操作系統(tǒng)的差異,提供一致對(duì)外接口,克服了網(wǎng)絡(luò)級(jí)和操作系統(tǒng)級(jí)負(fù)載均衡服務(wù)的不足,可以根據(jù)需要在運(yùn)行期間靈活地定制負(fù)載度量和負(fù)載均衡策略,根據(jù)請(qǐng)求內(nèi)容進(jìn)行決策,因此具有很高的靈活性。Web 服務(wù)器負(fù)載處理是現(xiàn)實(shí)和將來(lái)一直會(huì)存在的問(wèn)題,借鑒國(guó)內(nèi)外的先進(jìn)技術(shù)和經(jīng)驗(yàn),從實(shí)際情況出發(fā),認(rèn)真學(xué)習(xí),不斷探索,相信在不久的將來(lái),Web 服務(wù)器負(fù)載處理模型、技術(shù)、算法、評(píng)測(cè)等會(huì)更加成熟、效果更加優(yōu)秀。
[1] 吳璇,隋紅建.分布式均衡算法在防火墻集群中的實(shí)現(xiàn)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用, 2006, 15(8):28-30.
[2] 李新,黎文偉.一種改進(jìn)的動(dòng)態(tài)告警負(fù)載均衡算法[J]. 小型微型計(jì)算機(jī)系統(tǒng), 2013, 34(7):1585-1589.
[3] 王魁生,符予.集中式動(dòng)態(tài)負(fù)載均衡算法的研究[J]. 西安石油大學(xué)學(xué)報(bào)(自然科學(xué)版), 2011, 26(6):102-104.
[4] 馬浩.淺析服務(wù)器集群的設(shè)計(jì)、實(shí)現(xiàn)與測(cè)試[J]. 信息系統(tǒng)工程, 2012(3):20-21.
[5] 許海成,傅錦偉.服務(wù)器集群負(fù)載均衡的建模與仿真研究[J]. 計(jì)算機(jī)仿真,2012, 29(3):180-183.
[6] 崔榮波,許曉兵,陸穎.一種虛擬化的服務(wù)器集群模型[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2011, 20(3):173-177.
Research on Load Balancing Algorithms of Web Server Cluster in Mooc Education System
Ma Jie
(Baoji professional technology institute, Baoji 721000, China)
The server clustering of Mooc education platform will respond slower when the user traffic is increasing, so it needs to make a new strategy algorithm based on server state and request information to reduce the response time. Mechanism of the algorithm classifies the client’s request according to its degree of influence on the servers, and sets the appropriate weight, combines the performance parameters with the load status of the servers, and assigns this request to the server with the lightest load. According to Mooc education system, it presents a hierarchical structure of the overall framework of a balanced system, and studies the internal communication mechanism of system and web server performance monitoring program. Experimental results show that the proposed algorithm can make full use of existing hardware and software resources, and effectively balance the load of web cluster servers to enable service to maximize efficient use of resources. It is an effective method for the current alleviation and solution of increasing Web server load, and is better than some of the traditional load balancing algorithm.
Web Server Clustering; Load Balancing; High Availability; Mooc Education System
TP311
A
1007-757X(2016)08-0065-04
2016.01.20)
馬 潔(1980-),女,寶雞職業(yè)技術(shù)學(xué)院,碩士,講師,研究方向:計(jì)算機(jī)應(yīng)用技術(shù),721000