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

下載本文檔

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

文檔簡介

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

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

溫馨提示

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

評論

0/150

提交評論