版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
一種多服務(wù)器集成的負載均衡算法
0技術(shù)中負載均衡的算法隨著互聯(lián)網(wǎng)的快速發(fā)展,互聯(lián)網(wǎng)用戶每天都在增加,網(wǎng)絡(luò)上的服務(wù)器變得越來越不完整。組建小組是應(yīng)對這一趨勢的重要手段。但如何使整合后的服務(wù)器集群實現(xiàn)負載均衡呢?在這方面,Linux內(nèi)核中已經(jīng)存在多種調(diào)度算法。,如:輪詢調(diào)度算法、加權(quán)輪詢調(diào)度算法、最小連接調(diào)度算法、加權(quán)最小連接調(diào)度算法。但是這些調(diào)度算法仍然存在缺陷,采用這些算法的集群在運行過程中會出現(xiàn)服務(wù)器負載不平衡的現(xiàn)象。因此,有必要對這些算法加以改進,以更好地實現(xiàn)服務(wù)器的負載平衡,使集群的效能得到更加充分的發(fā)揮。1常見的負載補償算法1.1細粒度調(diào)度算法輪詢調(diào)度算法將用戶的連接請求均勻、順次地轉(zhuǎn)發(fā)給各臺處理服務(wù)器。該算法簡單清晰,以連接為調(diào)度單位,是一種細粒度的調(diào)度算法。在服務(wù)器性能相似,并且所請求任務(wù)不是很重的時候,該算法對服務(wù)器負載的均衡效果較好。但如果服務(wù)器的性能相差較大,該算法容易導(dǎo)致服務(wù)器的負載不平衡。1.2節(jié)點連接請求分配不合理加權(quán)輪詢調(diào)度算法考慮到了服務(wù)器處理能力的不同,引入了服務(wù)器權(quán)重的概念。權(quán)重值的大小代表服務(wù)器處理能力的強弱,權(quán)重值越大則代表服務(wù)器處理能力越強。在客戶連接請求分配中,高權(quán)重值的服務(wù)器會得到比低權(quán)重值的服務(wù)器更多的連接請求。這在一定程度上可以緩解由于服務(wù)器處理能力不同對調(diào)度算法平衡效果造成的不利影響。但由于不同的連接請求在服務(wù)器上的運行時間各不相同,導(dǎo)致在各臺服務(wù)器上積累下來的連接數(shù)量并不相同,這也會導(dǎo)致服務(wù)器負載的不平衡。所以加權(quán)輪詢調(diào)度算法在負載較輕的集群系統(tǒng)中表現(xiàn)較好,但如果運用在負載較重的集群上或偶爾計算量較大的連接請求被分配到同一臺服務(wù)器上,集群同樣會出現(xiàn)負載不平衡的現(xiàn)象。1.3負載均衡器技術(shù)最小連接調(diào)度算法考慮到服務(wù)器的實時負載狀況,負載均衡器將新來的用戶連接請求總是分給當前已有連接數(shù)量最少的服務(wù)器。但如果服務(wù)器性能差別較大,該算法會造成服務(wù)器負載的不均衡。1.4服務(wù)器剩余處理能力加權(quán)最小連接調(diào)度算法在集群的實際使用中是最常用的負載調(diào)度算法。與加權(quán)輪詢調(diào)度算法類似,該算法引入了服務(wù)器權(quán)重,以權(quán)重值的大小來代表服務(wù)器的剩余處理能力的強弱,權(quán)重值越大則服務(wù)器剩余處理能力越強,也即表示該服務(wù)器的當前負載越輕。但實際上該算法讓負載均衡器將新來的連接請求發(fā)給當前處理的連接數(shù)占集群整體所處理的連接數(shù)的百分比并除以自身權(quán)值后所得值最小的服務(wù)器。雖然加權(quán)最小連接調(diào)度算法考慮到了服務(wù)器實時負載這個問題,但簡單地將服務(wù)器的當前連接數(shù)來代表服務(wù)器的實時負載,這顯然是有問題的,因為不同的連接所占用資源,所需計算量是不同的。同樣數(shù)量的連接在性能好的服務(wù)器上可能運行得很好,但在性能較差的服務(wù)器上可能會導(dǎo)致該服務(wù)器的崩潰。因而該算法還是不能很好地實現(xiàn)服務(wù)器之間的負載平衡。2動態(tài)負載均衡算法由于已有的負載均衡算法無法滿足集群運行中的實際需求,本文在加權(quán)最小連接調(diào)度算法的基礎(chǔ)上,提出一種改進的動態(tài)負載均衡算法。在該算法中,可以實時讀取服務(wù)器發(fā)送過來的服務(wù)器負載信息,并由此計算出服務(wù)器當前剩余處理能力的大小以及該服務(wù)器權(quán)重值。這樣,負載均衡器就可以根據(jù)該權(quán)重值來決定后續(xù)客戶連接請求在各臺服務(wù)器間分配的比例。2.1負載均衡器設(shè)計改進的調(diào)度算法的應(yīng)用說明如圖1所示。從圖1中可以看出,客戶通過互聯(lián)網(wǎng)連接到某個服務(wù)器運營商。擁有集群的服務(wù)器運營商通過集群前端負載均衡器先將客戶的連接引導(dǎo)過來,接著選出一臺合適的服務(wù)器,并將用戶的連接請求轉(zhuǎn)發(fā)給該服務(wù)器,使客戶的連接最終得到真正的處理。服務(wù)器在處理連接過程中,將處理過程中產(chǎn)生的結(jié)果通過負載均衡器傳回給客戶,這就實現(xiàn)了客戶與服務(wù)器的交互。本改進算法的設(shè)計思路是:集群中的負載均衡器首先向服務(wù)器發(fā)出命令,要求各個服務(wù)器將自身的性能指標發(fā)送過來。一般選取影響服務(wù)器性能的4個關(guān)鍵指標:CPU處理速率和CPU個數(shù)的乘積、內(nèi)存大小、磁盤讀寫速率、網(wǎng)絡(luò)帶寬。負載均衡器根據(jù)這些指標計算出對應(yīng)服務(wù)器的綜合性能參數(shù)。相應(yīng)于性能指標,在集群的運行過程中,服務(wù)器還會定時上報對應(yīng)的負載指標。這4個負載指標分別為:CPU利用率與CPU速率以及CPU個數(shù)三者的乘積、內(nèi)存使用量、磁盤平均讀寫速率、平均網(wǎng)絡(luò)速率等。負載均衡器根據(jù)服務(wù)器的這4個實時負載指標和性能指標動態(tài)計算出服務(wù)器的綜合負載值以及服務(wù)器的權(quán)重值。另外,為了應(yīng)對由于用戶連接請求數(shù)量在短時間內(nèi)的急劇增長,或由于用戶連接運行時間較短而使服務(wù)器上活躍的連接數(shù)在短時間內(nèi)快速減少等現(xiàn)象,本改進算法還使服務(wù)器在活躍進程增加或減少數(shù)量達到15個的時候,也向負載均衡器匯報一次負載指標,以讓負載均衡器及時了解該服務(wù)器負載狀況,對其權(quán)重值做出相應(yīng)的調(diào)整。2.2綜合功率參數(shù)和綜合負載參數(shù)2.2.1集群內(nèi)綜合參數(shù)的確定假定集群中存在n臺服務(wù)器,這n臺服務(wù)器可以用集合表示為S={Si,i=1,2,…,n}。具體的計算思路如下:(1)讀取服務(wù)器發(fā)送過來的性能指標;(2)對各臺服務(wù)器中的各個性能指標進行統(tǒng)計,以得出各個性能指標中數(shù)值最大值;(3)將每個服務(wù)器的指標值與這些對應(yīng)的最大值相比較得出指標的比例值。經(jīng)過這3步,就得到了可以用在同一個公式中的比例指標值。最后通過加權(quán)公式計算出綜合性能參數(shù)。最大指標值分別表示為:CPU處理速率和該服務(wù)器CPU個數(shù)乘積的最大值CM、最大內(nèi)存容量MM、最大磁盤讀寫速率DM、最大網(wǎng)絡(luò)帶寬NM。具體計算如公式(1)~公式(4)所示。在上面的公式中,設(shè)第i臺服務(wù)器的CPU的處理速率與其CPU個數(shù)的乘積為Ci,內(nèi)存容量為Mi,磁盤讀寫速率為Di,網(wǎng)絡(luò)帶寬為Ni。而第i臺服務(wù)器的性能指標與集群中對應(yīng)指標的最大值相比所得到的比例值,分別表示如下:CPU的處理速率與CPU個數(shù)乘積的比例值為CPi,內(nèi)存容量比例值為MPi,磁盤讀寫速率比例值為DPi,網(wǎng)絡(luò)帶寬比例值為NPi,具體計算如公式(5)~公式(8)所示。顯然,Cpi、Mpi、DPi和NPi這4個比例值的取值范圍在0到1之間。這些比例值大小都各自在某一方面說明了服務(wù)器的處理能力的相對強弱程度,但僅僅通過某個指標值大小說明不了服務(wù)器的綜合處理性能,需要將這些參數(shù)通過某種方式整合起來綜合予以考慮??梢詾樯鲜?個比例值指標分別設(shè)定一個加權(quán)系數(shù)K1、K2、K3和K4,各個加權(quán)系數(shù)的取值范圍在0和1之間,各值之和為1。這4個加權(quán)系數(shù)大小是根據(jù)集群系統(tǒng)提供的服務(wù)并結(jié)合這些指標的重要程度來設(shè)定的,指標越重要,指標相應(yīng)的加權(quán)系數(shù)就設(shè)置得越大。通過下面的轉(zhuǎn)換公式(9),可得第i臺服務(wù)器Si的最大處理能力,即第i臺服務(wù)器的綜合性能參數(shù)GPi。顯然,由公式(9)得到的GPi的取值范圍在0到1之間。2.2.2系統(tǒng)加權(quán)系數(shù)ki假定在t時刻第i臺服務(wù)器CPU的整體利用率為UCi,內(nèi)存的使用率為UMi,磁盤平均讀寫速率的使用率為UDi;網(wǎng)絡(luò)平均帶寬的使用率為UNi。利用公式(9),可以得到第i臺服務(wù)器在t時刻的綜合負載參數(shù)Li的計算公式(10)。顯然,由公式(10)得到的Li的取值范圍也在0到1之間。這樣在有了服務(wù)器綜合性能參數(shù)和綜合負載參數(shù)后,接著就可以得到負載均衡器在分配用戶連接時用到的各臺服務(wù)器的權(quán)重值,具體計算如公式(11)所示。注意,在Linux內(nèi)核中服務(wù)器權(quán)值的取值范圍通常取在0和100之間,所以上面的公式中要乘上100。由公式(11)可知,服務(wù)器實時綜合負載Li越大,服務(wù)器相應(yīng)的權(quán)值Wi就越小,反之亦然。還有一個問題,就是加權(quán)系數(shù)Ki的具體取值。由于不同集群系統(tǒng)提供服務(wù)的不同,使得其后臺服務(wù)器相應(yīng)指標對應(yīng)各個加權(quán)系數(shù)的設(shè)置也各不相同。比如由于FTP服務(wù)器對網(wǎng)絡(luò)帶寬的要求比較高,所以其網(wǎng)絡(luò)帶寬指標的加權(quán)系數(shù)相對較大;而對于Web服務(wù)器來說,其對數(shù)據(jù)庫訪問較頻繁且計算量較大,則磁盤讀寫速率和CPU速率相應(yīng)的加權(quán)系數(shù)應(yīng)取較大值。本文以Web服務(wù)器為例,構(gòu)建一個集群系統(tǒng),Ki的取值如下:K1=0.35,K2=0.25,K3=0.2,K4=0.2。這里突出了CPU速率和內(nèi)存容量的重要性,磁盤和帶寬指標兩者的加權(quán)系數(shù)設(shè)為相等,是因為兩者具有一定的相關(guān)性。若當前指標加權(quán)系數(shù)所設(shè)置的大小無法發(fā)揮出集群系統(tǒng)的最大處理能力,系統(tǒng)管理員可以動態(tài)地對服務(wù)器的加權(quán)系數(shù)進行設(shè)定。由此可見,改進算法的這種設(shè)定方式給系統(tǒng)管理員提供的靈活性遠遠大于加權(quán)最小連接算法,因為后者只允許管理員對服務(wù)器的整體權(quán)重值進行設(shè)定。3算法的具體應(yīng)用3.1服務(wù)器綜合權(quán)重的計算(1)初始化兩個閾值:服務(wù)器整體負載閾值H1=70%和服務(wù)器單個指標閾值H2=75%。(2)發(fā)送命令給各個服務(wù)器,要求其將各自性能指標和負載指標發(fā)送過來。(3)服務(wù)器在成功讀取了性能指標和負載指標后,如果有服務(wù)器單個負載指標值超過閾值H2,則直接設(shè)置該服務(wù)器的權(quán)重為0。接著計算其他服務(wù)器的綜合負載參數(shù),并將超過閾值H1的服務(wù)器的權(quán)重設(shè)置為0。最后計算剩余服務(wù)器的權(quán)重,并將這些權(quán)重值寫入Linux內(nèi)核。(4)創(chuàng)建一個子進程。(5)在父進程中,進入一個循環(huán)。在循環(huán)中,等待讀取服務(wù)器發(fā)送過來的負載指標,進程阻塞在這里,直到成功讀取負載指標為止。接著計算服務(wù)器相應(yīng)的權(quán)重值。計算完畢后將權(quán)重值寫入內(nèi)核,這就完成了一次循環(huán)。(6)在子進程中,定時(30~40s)向服務(wù)器發(fā)送要求回應(yīng)命令,若服務(wù)器在規(guī)定時間內(nèi)答復(fù)(10~15s),則認為該服務(wù)器處在正常運行的狀態(tài)。否則認為該服務(wù)器已經(jīng)過載或宕機,將該服務(wù)器排除在用戶連接的分配對象之外,直到該服務(wù)器在下次有回應(yīng)為止。3.2對負載均衡器的循環(huán)檢查(1)創(chuàng)建一個子進程。在子進程中,響應(yīng)負載均衡器發(fā)送過來的命令,向其發(fā)送性能指標和負載指標;或向其發(fā)送存活信號。(2)再創(chuàng)建另一個子進程。在第2個子進程中,循環(huán)檢查當前活躍連接數(shù)的狀態(tài)。當服務(wù)器中實時運行的連接數(shù)新增或減少數(shù)量達到15時,就讀取一次本服務(wù)器的負載指標,并發(fā)送給負載均衡器,讓負載均衡器檢查其權(quán)值是否應(yīng)該改變。這樣就可以成功避免由于某臺服務(wù)器的連接數(shù)在短時間內(nèi)的激增或銳減而給整個集群系統(tǒng)性能帶來影響。(3)在原始的父進程中,定時(15~20s)讀取本服務(wù)器實時負載指標,如果指標值有一個的變化率超過5%,就將剛讀取到的負載指標發(fā)送給負載均衡器。否則,為了避免給網(wǎng)絡(luò)帶寬和負載均衡器造成新的負擔而不做發(fā)送動作。4加權(quán)最小連接調(diào)度算法為了檢驗本文提出的改進調(diào)度算法的性能,通過構(gòu)建一個提供Web服務(wù)的集群,在集群上先后使用已有的加權(quán)最小連接算法和本文提出的改進算法進行比較測試。實驗所用的硬件包括1臺前端調(diào)度服務(wù)器、3臺配置相同的后端服務(wù)器、1臺后臺數(shù)據(jù)庫服務(wù)器和1臺運行客戶連接模擬軟件WAS的計算機。WAS是微軟公司推出的Web服務(wù)器性能測試工具軟件,可以模擬用戶對服務(wù)器發(fā)起連接,并對響應(yīng)結(jié)果進行記錄。這里分別使用該軟件的兩種測試方法。第1種方法是模擬用戶以指定的發(fā)包數(shù)瞬時向Web服務(wù)器發(fā)送客戶連接。使用這種方法可以測試集群接受的連接的總體平均響應(yīng)時間。第2種是持續(xù)性測試方法,即在指定的一段時間內(nèi)WAS軟件模擬用戶以指定的強度向Web服務(wù)器發(fā)送用戶連接。本文中指定的測試時間是36秒,強度設(shè)為120。這種方法可以測試服務(wù)器在一個時間段內(nèi)的負載變化狀況。這兩種測試方法的測試結(jié)果如圖2~圖4所示。采用第1種測試方法所得的結(jié)果如圖2所示。從圖中可以看出,當用戶請求的連接總數(shù)較小時,由于改進算法本身對計算機資源的消耗抵消了它帶來的優(yōu)勢,所以性能幾乎沒有什么改善。但隨著用戶請求連接數(shù)的增多,改進的調(diào)度算法便逐漸體現(xiàn)出了優(yōu)勢,總體平均響應(yīng)時間明顯地低于采用最小連接調(diào)度算法。這說明在集群總體負載較輕時,采用這兩種算法均可以達到對后臺服務(wù)器進行均衡負載的目的;而當集群總體負載較重時,改進的調(diào)度算法對服務(wù)器負載的均衡效果更為理想。采用第2種測試方法所得的測試結(jié)果如圖3和圖4所示。注意這里采用加權(quán)最小連接算法的3臺服務(wù)器的權(quán)重設(shè)為0.33、0.33、0.34。從圖3可以看出,采用加權(quán)最小連接算法的集群中各臺服務(wù)器實時負載狀況不能很好地處在平衡的狀態(tài)。在集群運行6秒之后服務(wù)器S1一直處在過載狀態(tài),其他兩臺服務(wù)器負載交替變化,有一段時間負載還處在較低的階段。而多次試驗表明,在不同試驗中出現(xiàn)過載現(xiàn)象的服務(wù)器是隨機的。一旦有需要運行時間較長的幾個連接請求在某臺服務(wù)器上積累下來,那臺服務(wù)器很容易在較長的時間內(nèi)處于過載現(xiàn)象。而要恢復(fù)平衡的一個必要條件是積累的那幾個運行時間較長的連接結(jié)束了。所以該算法的負載平衡效果不是很好。從采用改進算法的集群服務(wù)器的負載狀況所得出的圖4可以看出,3臺服務(wù)器的負載雖然處在交替變化中,但并沒有明顯的負載不平衡顯現(xiàn),3臺服務(wù)器一起較均勻地共同分擔著客戶的連接請求,
溫馨提示
- 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 《急性盆腔炎寧瑛》課件
- 《晏子使楚教學(xué)》課件
- 《癌癥的預(yù)防與治療》課件
- 《日本美食介紹課件》課件
- 2023年浙江省臺州市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2021年河南省開封市公開招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2022年遼寧省錦州市公開招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2022年安徽省六安市公開招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 最美教師主要事跡
- 《演講與表達》課件
- 2024年國家公務(wù)員考試《申論》真題(副省級)及參考答案
- 零星維修工程 投標方案(技術(shù)方案)
- 10KV電力配電工程施工方案
- 茶葉采購合同范本電子版
- 副總經(jīng)理招聘面試題與參考回答(某大型國企)2024年
- 體育賽事輿情危機管理方案
- 先兆流產(chǎn)課件-課件
- 2024年SATACT家教培訓(xùn)合同
- DBJ43 003-2017 湖南省公共建筑節(jié)能設(shè)計標準
- 蘇少版(2024)小學(xué)美術(shù)一年級上冊教學(xué)設(shè)計(附教材目錄)
- 2024-2030年中國高嶺土市場運行態(tài)勢分析與發(fā)展現(xiàn)狀調(diào)研報告
評論
0/150
提交評論