服務(wù)器集群負(fù)載平衡技術(shù)研究_第1頁
服務(wù)器集群負(fù)載平衡技術(shù)研究_第2頁
服務(wù)器集群負(fù)載平衡技術(shù)研究_第3頁
服務(wù)器集群負(fù)載平衡技術(shù)研究_第4頁
服務(wù)器集群負(fù)載平衡技術(shù)研究_第5頁
已閱讀5頁,還剩1頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

服務(wù)器集群負(fù)載平衡技術(shù)研究

web服務(wù)器集群系統(tǒng)負(fù)載平衡策略的提出在internet和intranet上,web服務(wù)器為瀏覽器信息請(qǐng)求提供服務(wù)。近年由于寬帶網(wǎng)技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)帶寬的增長(zhǎng)遠(yuǎn)高于處理器速度和內(nèi)存訪問速度的增長(zhǎng),網(wǎng)絡(luò)帶寬的瓶頸效應(yīng)日趨減弱。隨著客戶機(jī)數(shù)量和密集性任務(wù)的增加,單個(gè)Web服務(wù)器受到處理能力的限制,成為網(wǎng)絡(luò)訪問的新瓶頸。對(duì)于降低服務(wù)器負(fù)荷,提高系統(tǒng)性能這個(gè)問題,如果只提高單個(gè)Web服務(wù)器的性能,并不能夠徹底地解決問題。另外,升級(jí)Web服務(wù)器的軟硬件配置代價(jià)比較高。而且,僅僅升級(jí)一臺(tái)服務(wù)器并不能充分保障系統(tǒng)的可靠性,一旦這臺(tái)服務(wù)器發(fā)生故障,整個(gè)系統(tǒng)也就不能提供服務(wù)了。另一種方案是采用Web服務(wù)器集群系統(tǒng),它采用負(fù)載平衡策略將到達(dá)的請(qǐng)求分配給集群中的某臺(tái)服務(wù)器進(jìn)行處理,并且通過數(shù)據(jù)冗余和軟件監(jiān)測(cè)等方法實(shí)現(xiàn)系統(tǒng)的高可用性。在這種方法中,不要求單個(gè)Web服務(wù)器具有很高的性能,當(dāng)Web服務(wù)器集群不能滿足瀏覽的需要時(shí),在集群中加入一個(gè)或數(shù)個(gè)普通的Web服務(wù)器即可。從每個(gè)終端用戶的角度來看,整個(gè)集群就像一個(gè)Web服務(wù)器。為了做到這點(diǎn),集群系統(tǒng)必須具備負(fù)載平衡功能,使得負(fù)荷在多個(gè)Web服務(wù)器上均勻分布,從而以較低成本消除系統(tǒng)瓶頸,增加吞吐量。近年來,Web服務(wù)器集群系統(tǒng)的研究方案主要存在著以下問題:①占用系統(tǒng)軟硬件資源較多,且只能運(yùn)用于特定的操作系統(tǒng)平臺(tái);②當(dāng)系統(tǒng)需要傳遞大量數(shù)據(jù)包時(shí),負(fù)載平衡器本身會(huì)成為新的系統(tǒng)瓶頸,影響系統(tǒng)的性能。本文提出了一種用純軟件方法實(shí)現(xiàn)Web集群系統(tǒng)負(fù)載平衡的方案。這種方案可以在Windows,UNIX,LINUX等操作系統(tǒng)下構(gòu)建集群系統(tǒng),不需要附加磁盤陣列等昂貴的設(shè)備。這種構(gòu)建集群的方案實(shí)現(xiàn)了系統(tǒng)的高可用性和動(dòng)態(tài)負(fù)載平衡,運(yùn)行效果良好。1模型運(yùn)行指標(biāo)當(dāng)一個(gè)客戶訪問Web服務(wù)器時(shí),服務(wù)器會(huì)開辟一個(gè)專門的線程為其服務(wù)(本文稱這個(gè)線程為服務(wù)窗口)。每個(gè)服務(wù)窗口在運(yùn)行時(shí)會(huì)占用一定的系統(tǒng)資源,因此一個(gè)Web服務(wù)器只能同時(shí)為一定數(shù)量的客戶服務(wù),超過這個(gè)數(shù)量的客戶的訪問請(qǐng)求會(huì)被拒絕,客戶只能等待。在集群系統(tǒng)中,需要根據(jù)客戶的人數(shù),訪問時(shí)間等參數(shù)合理地安排服務(wù)器數(shù)目以提高系統(tǒng)的性能。如果服務(wù)器過多,服務(wù)器會(huì)長(zhǎng)期處于空閑狀態(tài),造成不必要的資源浪費(fèi);而服務(wù)器過少,客戶必然要等待很長(zhǎng)時(shí)間才能進(jìn)行訪問。任何Web服務(wù)系統(tǒng)的瀏覽(如網(wǎng)站的新聞瀏覽),高峰時(shí)間都可能形成Poisson流,Poisson流期間平均到達(dá)率為大約3.3人/min。如果訪問客戶多于服務(wù)窗口,則會(huì)存在排隊(duì)現(xiàn)象。根據(jù)統(tǒng)計(jì),對(duì)于一般網(wǎng)站的瀏覽每個(gè)客戶平均瀏覽的時(shí)間為30min,每次訪問的平均等待時(shí)間可以接受的限度為1min,由下文可知,以此假設(shè)作為前提條件,并不影響本研究方案的通用性。按照“排隊(duì)論”,本文把訪問客戶作為排隊(duì)論中的“顧客”,Web服務(wù)器作為“服務(wù)機(jī)構(gòu)”,每一個(gè)服務(wù)窗口作為“服務(wù)臺(tái)”。當(dāng)訪問客戶得不到服務(wù)時(shí),就要排隊(duì)等候,這就形成一個(gè)“排隊(duì)系統(tǒng)”。通過排隊(duì)論模型可以計(jì)算以下主要運(yùn)行指標(biāo):隊(duì)長(zhǎng),客戶等待時(shí)間的期望值,忙期分布等。根據(jù)排隊(duì)論,需做如下數(shù)學(xué)假設(shè):相鄰兩個(gè)訪問客戶首次登陸系統(tǒng)的時(shí)間間隔T是隨機(jī)變量。通常假設(shè)到達(dá)的顧客是Poisson流,這時(shí)相鄰兩個(gè)訪問客戶登陸系統(tǒng)的時(shí)間間隔T是隨機(jī)變量。它服從負(fù)指數(shù)分布,即P(T≤x)={01?exp{?λx}x≤0x>0Ρ(Τ≤x)={0x≤01-exp{-λx}x>0其中λ為固定正數(shù),它表示單位時(shí)內(nèi)申請(qǐng)?jiān)L問的客戶平均數(shù)(平均到達(dá)率),即相鄰兩個(gè)客戶申請(qǐng)時(shí)間間隔的平均數(shù)(平均間隔時(shí)間)的倒數(shù),λ的值由經(jīng)驗(yàn)決定,本文取為3.3。每個(gè)客戶在服務(wù)窗口訪問的時(shí)間S也是隨機(jī)變量,通常假設(shè)是指數(shù)分布隨機(jī)變量。即P(S≤x)={01?exp{?μx}x≤0x>0Ρ(S≤x)={0x≤01-exp{-μx}x>0其中μ為固定正數(shù),它表示平均單位時(shí)間能有μ個(gè)訪問客戶訪問完(平均服務(wù)率),即平均每個(gè)客戶訪問時(shí)間的倒數(shù),這里μ=1/30。記ρ=λ/(kμ),為了不致排隊(duì)客戶無限增多,令ρ<1。希望得到的Web服務(wù)系統(tǒng)運(yùn)行指標(biāo)有:Web服務(wù)系統(tǒng)中無訪問客戶,整個(gè)Web服務(wù)系統(tǒng)空閑的穩(wěn)態(tài)概率P0;系統(tǒng)中n個(gè)客戶正在瀏覽訪問或排隊(duì)的穩(wěn)態(tài)概率Pn;系統(tǒng)中所有正在瀏覽和排隊(duì)的客戶人數(shù)的期望值L;排隊(duì)等待瀏覽客戶數(shù)的期望值記為L(zhǎng)q;每個(gè)客戶在系統(tǒng)中停留時(shí)間的期望值記為W;每個(gè)客戶排隊(duì)時(shí)間的期望值記為Wq。則有下列公式:P0=[∑j=0k?1λjμjj!+1k!(λμ)k(11?ρ)]?1Pn=???λnμnn!P0λnμnk!kn?kP01≤n≤kn>kLq=(kρ)kρP0k!(1?ρ)2L=Lq+λμW=LλWq=LqλΡ0=[∑j=0k-1λjμjj!+1k!(λμ)k(11-ρ)]-1Ρn={λnμnn!Ρ01≤n≤kλnμnk!kn-kΡ0n>kLq=(kρ)kρΡ0k!(1-ρ)2L=Lq+λμW=LλWq=Lqλ將λ=3.3,μ=1/30代入。當(dāng)系統(tǒng)中Web服務(wù)器節(jié)點(diǎn)數(shù)為2時(shí),平均隊(duì)長(zhǎng)Lq為4.698人,平均排隊(duì)時(shí)間Wq為1.423min;當(dāng)Web服務(wù)器節(jié)點(diǎn)數(shù)為3時(shí),平均隊(duì)長(zhǎng)Lq為1.205人,平均排隊(duì)時(shí)間Wq為0.365min。所以,經(jīng)以上預(yù)判,應(yīng)取3臺(tái)Web服務(wù)器和負(fù)載平衡器構(gòu)成集群系統(tǒng)才能滿足要求。2群體系統(tǒng)的動(dòng)態(tài)負(fù)載平衡的實(shí)現(xiàn)2.1動(dòng)態(tài)負(fù)載信息分配系統(tǒng)集群系統(tǒng)的負(fù)載平衡方法有動(dòng)態(tài)和靜態(tài)的兩種。靜態(tài)負(fù)載平衡SLB(StaticLoadBalancing)是根據(jù)服務(wù)器和網(wǎng)絡(luò)的負(fù)載特性,預(yù)先制定一個(gè)調(diào)度策略或分配算法,在集群運(yùn)行的整個(gè)階段都按照這個(gè)不變的策略或算法給各個(gè)服務(wù)器分配任務(wù)工作站。而動(dòng)態(tài)負(fù)載平衡需要在集群系統(tǒng)運(yùn)行時(shí)實(shí)時(shí)檢測(cè)系統(tǒng)的負(fù)載信息,動(dòng)態(tài)地將任務(wù)在各個(gè)結(jié)點(diǎn)之間進(jìn)行分配和調(diào)整以達(dá)到系統(tǒng)負(fù)載的均勻分配。使用動(dòng)態(tài)負(fù)載平衡需要解決如下問題:(1)同步。負(fù)載平衡時(shí)需要對(duì)集群中所有的服務(wù)器同一時(shí)刻的負(fù)荷進(jìn)行的比較,可以采取發(fā)送同步信號(hào)的方法解決這個(gè)問題。(2)性能度量。就是以多大的頻率采集Web服務(wù)器負(fù)荷參數(shù),采集什么樣的參數(shù)能最好地反映系統(tǒng)性能,如何采集負(fù)荷參數(shù)。合理地解決這些問題才能達(dá)到最佳的負(fù)載平衡效果。本文研究的負(fù)載平衡器采用集中式策略,即該平衡器與系統(tǒng)中每一個(gè)Web服務(wù)器節(jié)點(diǎn)建立一個(gè)長(zhǎng)期穩(wěn)定的TCP連接,各個(gè)服務(wù)器同步地采集本機(jī)的性能參數(shù),通過TCP連接傳遞給負(fù)載平衡器,負(fù)載平衡器再做均衡判決的工作。2.2平臺(tái)監(jiān)控系統(tǒng)為了使系統(tǒng)能夠達(dá)到較高的吞吐量,使用戶反應(yīng)時(shí)間盡可能縮短,選取如下動(dòng)態(tài)負(fù)荷參數(shù):CPU利用率C,內(nèi)存使用率M,硬盤傳輸量D,網(wǎng)絡(luò)流量N。系統(tǒng)中設(shè)計(jì)了一個(gè)SERVERPER進(jìn)程,該進(jìn)程常駐于各服務(wù)器中,定期采集服務(wù)器的各項(xiàng)參數(shù)并將參數(shù)發(fā)送給負(fù)載平衡器。負(fù)載平衡器每隔20s發(fā)送一個(gè)計(jì)算服務(wù)器性能數(shù)據(jù)的同步廣播信號(hào)。SERVERPER進(jìn)程接收到信號(hào)后開始計(jì)算本機(jī)的負(fù)荷。(1)性能同步優(yōu)化獲得CPU使用率方法有多種,但考慮到對(duì)系統(tǒng)資源的占用盡可能節(jié)省,本集群系統(tǒng)采取調(diào)用APINtQuerySystemInformation的方法。這種方法可以精確地計(jì)算CPU的使用率,占用系統(tǒng)資源非常少。NtQuerySystemInformation函數(shù)的詳細(xì)資料未作公開,在這里作一簡(jiǎn)要的介紹。NtQuerySystemInformation的功能很強(qiáng)大,調(diào)用它可以獲得系統(tǒng)的很多性能數(shù)據(jù),函數(shù)原型如下:NtQuerySystemInformationNTSTATUSNtQuerySystemInformation(SYSTEM-INFORMATION-CLASSSystemInformationClass,PVOIDSystemInformation,ULONGSystemInformationLength,PULONGReturnLength);其中參數(shù)的具體含義和函數(shù)調(diào)用方法可以查詢相關(guān)手冊(cè)。利用NtQuerySystemInformation求CPU使用率的算法是:每次接收到性能同步信號(hào)后調(diào)用該函數(shù)得到自計(jì)算機(jī)運(yùn)行以來所有CPU空閑時(shí)間總量和計(jì)算機(jī)運(yùn)行時(shí)間總量。將相鄰兩次得到的空閑時(shí)間總量相減,得到一個(gè)周期內(nèi)所有CPU的空閑時(shí)間t1。將相鄰兩次得到的系統(tǒng)運(yùn)行時(shí)間總量相減,得到一個(gè)周期的時(shí)間值t2。將t1和t2代入下列公式得到一個(gè)周期內(nèi)CPU使用率的平均值。C=1?P=1?t1t2×QC=1-Ρ=1-t1t2×Q其中P為CPU的空閑率;Q為CPU個(gè)數(shù)。(2)高效獲取物理高效技術(shù)SERVERPER進(jìn)程每次接收到性能同步信號(hào)之后,每隔1s調(diào)用函數(shù)GlobalMemoryStatus得到物理內(nèi)存的使用率,重復(fù)5次,再將得到的值平均作為這段時(shí)間內(nèi)內(nèi)存的使用率。(3)rysysteminblotSERVERPER進(jìn)程每次接收到性能同步信號(hào)后調(diào)用NtQuerySystemInformation函數(shù)得到自計(jì)算機(jī)運(yùn)行以來硬盤讀操作的總數(shù)和寫操作的總數(shù),求和得到硬盤傳輸總量。將相鄰兩次得到的硬盤傳輸總量相減,得到一個(gè)循環(huán)周期內(nèi)硬盤傳輸量。(4)常用的tcp包的質(zhì)量SERVERPER進(jìn)程每次接收到性能同步信號(hào)后調(diào)用函數(shù)GetTcpStatistics得到自計(jì)算機(jī)運(yùn)行以來計(jì)算機(jī)接收和發(fā)送的TCP包的總量,求和;再將相鄰兩次得到的數(shù)相減,得到一個(gè)循環(huán)周期內(nèi)計(jì)算機(jī)發(fā)送和接收到的TCP包數(shù)作為機(jī)器的網(wǎng)絡(luò)流量。2.3平臺(tái)的動(dòng)態(tài)負(fù)載平衡系統(tǒng)中設(shè)計(jì)了一個(gè)JUDEGER進(jìn)程常駐于負(fù)載平衡器上。進(jìn)程JUDEGER接收自Web服務(wù)器傳來的服務(wù)器負(fù)荷參數(shù),將參數(shù)寫入服務(wù)器信息表中,并從該表讀取服務(wù)器的參數(shù),從中選擇工作正常且負(fù)載最低的服務(wù)器為下一客戶服務(wù)。JUDEGER進(jìn)程的主線程初始化通信端口后等待服務(wù)器SERVERPER進(jìn)程的連接,當(dāng)有服務(wù)器連接請(qǐng)求到來后,生成一個(gè)子線程與服務(wù)器通信,主線程繼續(xù)等待服務(wù)器的連接請(qǐng)求。一個(gè)子線程接收和記錄一個(gè)Web服務(wù)器的性能負(fù)載信息。集群有幾個(gè)Web服務(wù)器節(jié)點(diǎn),JUDEGER進(jìn)程就生成幾個(gè)線程與之通信。在每個(gè)循環(huán)周期內(nèi),服務(wù)器信息表都可以精確地反應(yīng)所有Web服務(wù)器的負(fù)荷性能信息。負(fù)載平衡判決的方法:每隔3s,JUDEGER進(jìn)程讀入服務(wù)器信息表中每一行的內(nèi)容并寫入一個(gè)記錄數(shù)組,數(shù)組的每一個(gè)記錄代表了一個(gè)服務(wù)器的所有信息(動(dòng)態(tài)負(fù)荷參數(shù))。以數(shù)組中第一個(gè)正常工作的服務(wù)器信息(假定為M號(hào)服務(wù)器)為基準(zhǔn),將其它正常服務(wù)器(假定為i號(hào)服務(wù)器)的信息和基準(zhǔn)服務(wù)器的信息代入下列公式進(jìn)行加權(quán)比較。比值=α×λ1i×Ciλ1m×Cm+β×λ2i×Miλ2m×Mm+γ×λ3i×Diλ3m×Dm+θ×NiNm比值=α×λ1i×Ciλ1m×Cm+β×λ2i×Μiλ2m×Μm+γ×λ3i×Diλ3m×Dm+θ×ΝiΝm其中:下標(biāo)i表示第i號(hào)服務(wù)器;下標(biāo)m表示基準(zhǔn)服務(wù)器;λ1為CPU處理能力;λ2為內(nèi)存參數(shù);λ3為硬盤參數(shù);C為CPU的使用率;M為內(nèi)存的使用率;D為硬盤傳輸量;N為網(wǎng)絡(luò)流量;α為CPU比較權(quán)值;β為內(nèi)存比較權(quán)值;γ為硬盤比較權(quán)值;θ為網(wǎng)絡(luò)比較權(quán)值。α,β,γ,θ的初始值均為1。可以根據(jù)集群運(yùn)行的實(shí)際情況加大或減小其中的某個(gè)權(quán)值以強(qiáng)調(diào)或減弱某方面的負(fù)載性能。在對(duì)服務(wù)器負(fù)載性能進(jìn)行比較時(shí),綜合考慮了這些硬件的靜態(tài)參數(shù)和動(dòng)態(tài)負(fù)載。在得到服務(wù)器信息表中所有正常運(yùn)行服務(wù)器與基準(zhǔn)服務(wù)器的信息比值之后,JUDEGER進(jìn)程選取其中比值最小的服務(wù)器作為負(fù)載最輕的服務(wù)器,記錄這個(gè)服務(wù)器的IP。在這個(gè)循環(huán)周期中所有新進(jìn)入集群系統(tǒng)的客戶都將訪問這臺(tái)Web服務(wù)器。下個(gè)循環(huán)周期,JUDEGER進(jìn)程又會(huì)選出新的負(fù)載最輕的服務(wù)器,新進(jìn)入集群系統(tǒng)的客戶都將訪問新的輕載服務(wù)器。根據(jù)經(jīng)驗(yàn)分析,1min內(nèi)集群平均有3.3個(gè)新用戶申請(qǐng)?jiān)L問,而服務(wù)器負(fù)載參數(shù)采集的周期定為20s,系統(tǒng)可以均勻地將負(fù)載分配到每個(gè)服務(wù)器節(jié)點(diǎn)上,實(shí)現(xiàn)動(dòng)態(tài)的負(fù)載平衡。負(fù)載判決的周期定為3s是為了可以盡快發(fā)現(xiàn)故障節(jié)點(diǎn),進(jìn)行任務(wù)切換,實(shí)現(xiàn)系統(tǒng)的高可用性。3系統(tǒng)負(fù)載平衡特性測(cè)試本文研究的Web服務(wù)器集群系統(tǒng)負(fù)載平衡實(shí)驗(yàn)在某電網(wǎng)調(diào)度系統(tǒng)中進(jìn)行了初步測(cè)試,實(shí)驗(yàn)中使用了3臺(tái)服務(wù)器,選取了以下觀測(cè)指標(biāo):(1)負(fù)載平衡器判決的輕載服務(wù)器編號(hào)No;(2)CPU使用率C;(3)內(nèi)存使用率M;(4)硬盤傳輸量D;(5)網(wǎng)絡(luò)流量N。測(cè)試方法是從集群系統(tǒng)開始運(yùn)行,每隔20s記錄一次上述參數(shù),逐步增加訪問量,并以多種方式(瀏覽、上傳、下載等)訪問服務(wù)器。系統(tǒng)負(fù)載變化以CPU使用率和內(nèi)存使用率為例,實(shí)驗(yàn)結(jié)果分別如圖1,2所示。從圖中可以看出,系統(tǒng)開始運(yùn)行時(shí),每個(gè)Web服務(wù)器節(jié)點(diǎn)負(fù)載較低,負(fù)載平衡器根據(jù)各個(gè)Web服務(wù)器的負(fù)載程度調(diào)度任務(wù)給Web服務(wù)器。大約過了30min之后,各個(gè)節(jié)點(diǎn)的負(fù)載趨于穩(wěn)定,輕載服務(wù)器在三個(gè)服務(wù)器間不定期切換。實(shí)驗(yàn)結(jié)果表明系統(tǒng)的負(fù)載平衡特性滿足了系統(tǒng)需求。本文提出的負(fù)載平衡方法應(yīng)用于Web服務(wù)器集群系統(tǒng)中,經(jīng)大量實(shí)驗(yàn),與未

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論