欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種集群服務(wù)器的動態(tài)負(fù)載均衡方法

文檔序號:6448985閱讀:199來源:國知局
專利名稱:一種集群服務(wù)器的動態(tài)負(fù)載均衡方法
技術(shù)領(lǐng)域
本發(fā)明屬于網(wǎng)絡(luò)集群服務(wù)器技術(shù)領(lǐng)域,特別是涉及一種新的支持異構(gòu)集群系統(tǒng)的動態(tài)負(fù)載均衡方法。
集群負(fù)載均衡技術(shù)主要分靜態(tài)信息和動態(tài)信息算法。靜態(tài)算法主要適用于較小規(guī)模的、同構(gòu)的、提供靜態(tài)網(wǎng)頁信息服務(wù)的系統(tǒng);而動態(tài)算法適用于大規(guī)模的、異構(gòu)的、提供動態(tài)網(wǎng)頁信息服務(wù)的系統(tǒng),是當(dāng)前研究的熱點問題。有關(guān)文獻Haakon Bryhni.A Comparison ofLoadBalancing Techniques for Scalable Web Servers.2000 IEEE Network;Emiliano Casalicchio.Staticand Dynamic Scheduling Algorithms for Scalable Web Server Farm.2001 IEEE;許建峰等。分布式實時系統(tǒng)中的預(yù)測調(diào)度算法;軟件學(xué)報,2000 Vol.11 No.1。
早期的負(fù)載均衡算法有隨機(Random)算法和輪詢(Round-Robin)算法,特別是輪詢算法采用傳統(tǒng)的輪轉(zhuǎn)轉(zhuǎn)發(fā)分配方式,計算簡單、效率高,應(yīng)用較廣。但這兩種算法不考慮后端服務(wù)器的差異,不能保證在不同的服務(wù)器間達到負(fù)載均衡,因此,不適合于異構(gòu)的集群系統(tǒng)(見參考文獻。另外還有基于服務(wù)器中當(dāng)前活躍連接數(shù)(正在處理的請求連接)的最小連接數(shù)(LeastConnections First)算法,選擇當(dāng)前正在處理的請求個數(shù)最少的服務(wù)器作為轉(zhuǎn)發(fā)對象。但活躍請求連接個數(shù)并不能完全反映服務(wù)器處理負(fù)荷上的差異,如處理能力強的服務(wù)器在單位時間內(nèi)可以處理更多的請求。此外,還可能在請求量少時將多個請求分配到同一臺服務(wù)器。
為了適應(yīng)異構(gòu)集群系統(tǒng)的需求,出現(xiàn)了加權(quán)輪詢(Weighted Round-Robin)算法和加權(quán)最小連接數(shù)(Weighted Least Connections First)算法,通過為不同的服務(wù)器配置不同的權(quán)值來平衡服務(wù)器間的差異,選取合適的轉(zhuǎn)發(fā)對象。但隨著動態(tài)、多媒體網(wǎng)絡(luò)信息的大量應(yīng)用,靜態(tài)的權(quán)值信息不能表現(xiàn)動態(tài)的負(fù)載特征,隨著系統(tǒng)運行時間增長,將導(dǎo)致集群負(fù)載分布的不平衡。
為了克服靜態(tài)配置權(quán)值信息的缺點,提出了動態(tài)計算權(quán)值信息的方法。動態(tài)計算權(quán)值的負(fù)載均衡算法有基于輪詢的(如WRR_time、WRR_num)和基于活躍連接數(shù)的(如Round_Trip、XimtByte)。它們都是通過周期性地獲取服務(wù)器狀態(tài)信息,動態(tài)地計算出當(dāng)前每臺服務(wù)器應(yīng)具有的權(quán)值。權(quán)值的計算方法第一種是用采樣周期內(nèi)每臺服務(wù)器的平均響應(yīng)產(chǎn)生時間(以請求轉(zhuǎn)發(fā)到達服務(wù)器至第一個響應(yīng)的比特輸出為響應(yīng)產(chǎn)生時間)來計算,如WRR_time(基于WRR)和Round-Trip(基于WLCF);第二種是用采樣周期內(nèi)每臺服務(wù)器的活躍連接數(shù)來計算,如WRR_num(基于WRR);第三種是用采樣周內(nèi)輸出的字節(jié)流量來計算,如XimtByte(基于WLCF)。但是,單從某一個性能指標(biāo)來考慮負(fù)載狀況存在局限性,如響應(yīng)時間只反映了服務(wù)器最初對請求做出處理的速度,不能反映后續(xù)處理過程負(fù)荷的大小,特別是現(xiàn)在網(wǎng)頁中包含許多文本、圖象、數(shù)據(jù)庫查詢的嵌入對象,后續(xù)處理產(chǎn)生的負(fù)載變化很大;活躍連接數(shù)雖然在大多數(shù)情況下可以相對準(zhǔn)確地反映當(dāng)前的工作負(fù)載狀況,而即便是在連接數(shù)相同的情況下,不同的任務(wù)也會造成系統(tǒng)資源的消耗大不相同;輸出字節(jié)流量只反映網(wǎng)絡(luò)輸出負(fù)載狀況,對靜態(tài)文本訪問有一定的效果,但卻完全無法表現(xiàn)需要復(fù)雜計算和數(shù)據(jù)查詢工作的負(fù)荷。
有關(guān)文獻Zhang Wensong.Linux Virtual ServerServer Clustering for Scalable NetworkServices.InProc of World Congress Conf 2000[c],Beijing,2000;Haakon Bryhni.A Comparison ofLoad Balancing Techniques for Scalable Web Servers.2000 IEEE Network;Emiliano Casalicchio.Static and Dynamic Scheduling Algorithms for Scalable Web Server Farm.2001 IEEE;Linux集群的負(fù)載調(diào)度.www.ibm.com/developerWorks/cn/linux/cluster;單志廣,林闖等。Web請求分配和選擇的綜合方案與性能分析;軟件學(xué)報,2001 Vol.12 No.3。
目前,有研究者提出了選擇加權(quán)百分比(Selected Weighted Percentage)算法。算法中綜合考慮了服務(wù)器的固有能力、當(dāng)前負(fù)荷、服務(wù)速度等參數(shù),通過對CPU利用率、內(nèi)存利用率、網(wǎng)卡輸出流量等分別加權(quán)計算來確定轉(zhuǎn)發(fā)對象。從理論分析和一些試驗來看,在許多情況下要好于上述算法。但存在的問題是算式中的各個權(quán)值系數(shù)需由系統(tǒng)管理員人為確定,這恰恰是很難辦到的。不同速率的CPU和不同大小的內(nèi)存究竟各占多大比例合適,根據(jù)不同的情況和所完成的任務(wù)不一而有所不同。
有關(guān)文獻Linux集群的負(fù)載調(diào)度.www.ibm.com/developerWorks/cn/linux/cluster;于磊等。多服務(wù)器中的負(fù)載平衡與容錯;系統(tǒng)仿真學(xué)報,2001 Vol.13 No.3。
現(xiàn)有的一些集群請求分配器產(chǎn)品和軟件系統(tǒng),如Cisco LoadDirector、IBM Dispatcher、浪潮英信XS、Tuber Linux等都提供輪詢、最小連接數(shù)優(yōu)先、最快響應(yīng)優(yōu)先等方式的均衡算法。
本發(fā)明提供的技術(shù)方案是一種集群服務(wù)器的動態(tài)負(fù)載均衡方法,包括以下步驟一、通過仿真測試程序預(yù)先測得集群內(nèi)每臺服務(wù)器的請求響應(yīng)飽和值以及臨界值,然后輸入分配器的配置參數(shù)表;二、在服務(wù)器空載狀態(tài)下,通過分配器發(fā)送一個請求讀取服務(wù)器當(dāng)前狀態(tài)的完整過程測得集群內(nèi)每臺服務(wù)器的參照響應(yīng)時間,并錄入分配器的配置參數(shù)表;三、在每臺服務(wù)器開啟一個守護進程,實時監(jiān)測每一個接入服務(wù)器TCP連接,并且維護一張TCP連接數(shù)據(jù)表,記錄每個連接的標(biāo)識符;如果某一連接釋放,則從連接數(shù)據(jù)表中刪除對應(yīng)的記錄;若某一連接雙方?jīng)]有數(shù)據(jù)傳輸?shù)臅r間超時,則認(rèn)為該連接已非正常終止釋放;四、采樣周期時間通過配置參數(shù)設(shè)置;五、每個采樣周期時間到時,分配器通過UDP協(xié)議向所有服務(wù)器廣播讀取請求任務(wù),并記錄請求發(fā)送時間;六、服務(wù)器接收到廣播請求后,將當(dāng)前記錄的服務(wù)器狀態(tài)信息回傳給分配器;七、分配器接收每個服務(wù)器的響應(yīng)信息,并計算響應(yīng)的完成時間,以此作為當(dāng)前負(fù)載計算公式中的參數(shù);如果,某臺服務(wù)器在規(guī)定的時間內(nèi)未能成功做出響應(yīng),則該服務(wù)器被視為負(fù)載超重,不參與下一個周期的分配權(quán)值計算,即不被分配請求任務(wù);八、分配器根據(jù)得到的信息計算每臺服務(wù)器的負(fù)載權(quán)值,對進入臨界狀態(tài)的服務(wù)器,在其負(fù)載權(quán)值中加入遞減因子;九、根據(jù)所有服務(wù)器的平均負(fù)載權(quán)值計算在下一個周期要達到負(fù)載均衡每臺服務(wù)器所應(yīng)有的分配權(quán)值;十、將計算出的每臺服務(wù)器的分配權(quán)值分配一個概率空間,存入對應(yīng)的概率空間表;重新啟動計時周期;十一、當(dāng)一個新的請求任務(wù)達到分配器時,計算出一個
間的隨機數(shù),根據(jù)該隨機數(shù)匹配的概率空間,選定對應(yīng)的服務(wù)器,將新的請求任務(wù)轉(zhuǎn)發(fā)到被選定的服務(wù)器;十二、當(dāng)計時周期到后,重復(fù)廣播發(fā)送讀取服務(wù)器狀態(tài)信息的請求及計算過程,既轉(zhuǎn)到第五步循環(huán)。
本發(fā)明的特點通過請求響應(yīng)連接的飽和值和對當(dāng)前響應(yīng)連接數(shù)的修正,更準(zhǔn)確地表現(xiàn)了服務(wù)器當(dāng)前的負(fù)載狀態(tài);通過臨界遞減因子,加速減少分配給進入臨界狀態(tài)服務(wù)器的請求任務(wù)數(shù)量,有效地抑制了“拒絕服務(wù)”現(xiàn)象的發(fā)生;通過隨機概率分配方式,在請求達到個數(shù)不確定的情況下,避免了采用某種固定模式可能產(chǎn)生的將多個請求連續(xù)分配到同一臺服務(wù)器上的現(xiàn)象;所有計算參數(shù)均可以通過實際測試得到,避免了人為配置參數(shù)的不確定因素。本發(fā)明方法簡單、執(zhí)行效率高,適用于異構(gòu)集群系統(tǒng)、多媒體流服務(wù)的動態(tài)負(fù)載均衡,可有效提高集群服務(wù)器系統(tǒng)的工作效率。
從理論上可以證明一個集群系統(tǒng)只有在每臺服務(wù)器所分配的負(fù)載與其固有的處理能力成比例時,整個系統(tǒng)達到負(fù)載均衡,此時系統(tǒng)工作效率最高。設(shè)集群中某臺服務(wù)器Si(i=1,2,…,m)的固有處理能力為ωi,服務(wù)器當(dāng)前的請求負(fù)載為Li,那么集群系統(tǒng)達到負(fù)載均衡時有L1ω1=···=Liωi=···=Lmωm]]>理論推導(dǎo)和證明略。根據(jù)這一理論,本發(fā)明提出并實現(xiàn)了一個新的負(fù)載均衡方法。將服務(wù)器Si的當(dāng)前負(fù)載與其固有能力之比作為該服務(wù)器Si的當(dāng)前負(fù)載權(quán)值,記為WLi=Liωi]]>。當(dāng)集群系統(tǒng)達到負(fù)載均衡時,有WL1=WL2=···WLm]]>。
可以看出,在負(fù)載權(quán)值的作用下,集群內(nèi)所有服務(wù)器都按比例增加或減少被分配的負(fù)載,始終朝著達到負(fù)載均衡的目標(biāo)努力。2、負(fù)載權(quán)值的等效變換但實際中每臺服務(wù)器并不可能將所有的(固有)處理能力都用于響應(yīng)請求任務(wù),一部分能力要用于維持系統(tǒng)自身的運轉(zhuǎn)所用。那么一臺服務(wù)器究竟有多少固有能力用于響應(yīng)請求任務(wù)?首先,看一個實驗的具體情況,如

圖1、圖2所示。
從圖1可以發(fā)現(xiàn),當(dāng)服務(wù)器中單位時間內(nèi)到達的請求連接個數(shù)達到一定值時,請求連接個數(shù)將不再繼續(xù)增加。這是因為服務(wù)器為了保護系統(tǒng)不至于死機而采取的一種措施,也稱“拒絕服務(wù)”現(xiàn)象。我們稱其為服務(wù)器請求連接的飽和值Cmaxi。另外,從圖2中看出,當(dāng)請求連接個數(shù)達到一定值時,平均響應(yīng)時間明顯加快增長。我們稱其為服務(wù)器工作負(fù)荷的臨界值Ccrii,該區(qū)間為服務(wù)器工作負(fù)荷較重(進入飽和狀態(tài)前)的臨界區(qū)。
實際上服務(wù)器提供用于響應(yīng)請求任務(wù)的固有能力就是使請求連接數(shù)達到飽和值的能力。每一個請求任務(wù)是在這個能力中平均分配系統(tǒng)資源。我們以Cmaxi表示達到飽和時的連接數(shù),并以此作為可用于響應(yīng)請求的固有能力,有ωi=Cmaxi]]>。
此外,一般情況下服務(wù)器的工作負(fù)載可以用服務(wù)器保持的當(dāng)前活躍連接數(shù)來表示,但簡單地用請求連接數(shù)來表示服務(wù)器當(dāng)前負(fù)載會存在一定的偏差。如某些被請求對象可能要開啟更多的進程(線程)執(zhí)行一些特殊的計算或數(shù)據(jù)查詢工作,這些請求消耗的系統(tǒng)資源大于一般的請求任務(wù);而對于一些只是處于等待狀態(tài)的請求連接,其消耗的系統(tǒng)資源又小于請求任務(wù)正常工作時的開銷。
我們采取下述方法來修正當(dāng)前負(fù)載表示。
以一個固定負(fù)載L在服務(wù)器空載下的響應(yīng)時間為基準(zhǔn)點ΔT,同樣的L在服務(wù)器當(dāng)前工作負(fù)荷的響應(yīng)時間為Δt,服務(wù)器Si的當(dāng)前負(fù)載可表示為li,有l(wèi)i=ΔtΔT,]]>理論推倒略。
將變換的服務(wù)器固有能力和當(dāng)前負(fù)載表示代入到前面負(fù)載權(quán)值的計算式,有WLi=liCmaxi]]>。我們稱其為負(fù)載權(quán)值的等效變換,它更準(zhǔn)確地反映了服務(wù)器的當(dāng)前負(fù)載狀態(tài),固有能力和當(dāng)前負(fù)載都是實際測試的結(jié)果。
在實際實現(xiàn)中,我們利用分配器每次獲取后端服務(wù)器狀態(tài)的工作負(fù)荷為標(biāo)準(zhǔn)負(fù)荷L,因為該過程對所有服務(wù)器是一樣的,并且每次所做的處理也是一樣的。3、實現(xiàn)過程(1)、利用我們的集群系統(tǒng)性能仿真測試軟件或通用的集群系統(tǒng)性能測試軟件SpecWeb99、WebBench、Httperf等測試出集群內(nèi)每臺服務(wù)器的最大飽和連接數(shù)和臨界飽和連接數(shù)Cmaxi、Ccrii,通過系統(tǒng)管理員輸入集群系統(tǒng)配置參數(shù)表。(2)、在服務(wù)器空載狀態(tài)下,通過分配器發(fā)送一個請求讀取服務(wù)器當(dāng)前狀態(tài)的完整過程測得集群內(nèi)每臺服務(wù)器的參照響應(yīng)時間ΔTi,并錄入分配器的配置參數(shù)表。(3)、在每臺服務(wù)器開啟一個守護進程,實時監(jiān)測每一個接入服務(wù)器TCP連接,并且維護一張TCP連接數(shù)據(jù)表,記錄每個連接的標(biāo)識符;如果某一連接釋放,則從連接數(shù)據(jù)表中刪除對應(yīng)的記錄;若某一連接雙方?jīng)]有數(shù)據(jù)傳輸?shù)臅r間超時,則認(rèn)為該連接已非正常終止釋放。(4)、采樣周期時間通過配置參數(shù)設(shè)置。前端分配器依據(jù)配置的采樣周期時間參數(shù),定時激活該算法的執(zhí)行程序。分配器運行的主函數(shù)首先定義一個鏈表遍歷集群內(nèi)的所有服務(wù)器,每一項包括一個struct_response結(jié)構(gòu)用于存放服務(wù)器返回的當(dāng)前狀態(tài)參數(shù),以及一個指向下一個服務(wù)器的指針p->next;程序根據(jù)配置的時間參數(shù)設(shè)置循環(huán)時間,循環(huán)時間到則調(diào)用broadcast函數(shù),否則循環(huán)等待。主函數(shù)程序流程框圖見附圖3。(5)、每個采樣周期時間到時,分配器通過UDP協(xié)議向所有服務(wù)器廣播讀取請求任務(wù),并記錄請求發(fā)送時間。廣播請求程序首先將響應(yīng)的服務(wù)器個數(shù)清零,即response_count=0,并將已做出響應(yīng)的服務(wù)器標(biāo)記清零,即flag=0;然后發(fā)出請求響應(yīng)廣播;發(fā)出請求任務(wù)之后,啟動接受響應(yīng)程序。接受響應(yīng)程序首先啟動定時期,以記錄響應(yīng)時間超時,對于響應(yīng)時間超時的服務(wù)器作為負(fù)載過重或通信故障處理,不參加后續(xù)的負(fù)載均衡分配處理過程;定時器啟動后,調(diào)用接受線程receive_thread,等待服務(wù)器響應(yīng)消息的到來。廣播請求任務(wù)程序及響應(yīng)接受任務(wù)程序的流程框圖見附圖4。(6)、服務(wù)器接收到廣播請求后,將當(dāng)前記錄的服務(wù)器狀態(tài)信息回傳給分配器。(7)、分配器接收每個服務(wù)器的響應(yīng)信息。如果全部服務(wù)器已做出響應(yīng),則不理睬該響應(yīng)信息,即p->next=NULL;分配器首先獲取響應(yīng)服務(wù)器的IP,即p->response.ip==回應(yīng)機器ip;對該服務(wù)器做已響應(yīng)標(biāo)記,即p->response.fag=1;計算該服務(wù)器當(dāng)前做出響應(yīng)的時間,即求取響應(yīng)時間Δti,并記入?yún)?shù)表;判斷是否所有服務(wù)器都已做出響應(yīng);如果還有服務(wù)器未做出響應(yīng)則判斷是否響應(yīng)超時;如果超時時間到,調(diào)用超時函數(shù),某臺服務(wù)器在規(guī)定的時間內(nèi)未能成功做出響應(yīng),則該服務(wù)器被視為負(fù)載超重,不參與下一個周期的分配權(quán)值計算,即不被分配請求任務(wù);響應(yīng)過程結(jié)束,關(guān)閉定時器,轉(zhuǎn)入新一輪的調(diào)度計算處理,即調(diào)用scheduler()。接受程序流程框圖見附圖5。(8)、分配器根據(jù)得到的信息計算每臺服務(wù)器的負(fù)載權(quán)值,負(fù)載權(quán)值計算公式WLi=liCmaxi]]>。對進入臨界狀態(tài)的服務(wù)器,在其負(fù)載權(quán)值中加入遞減因子。
調(diào)度程序根據(jù)服務(wù)器鏈表判斷每個服務(wù)器是否成功地傳遞了當(dāng)前狀態(tài)信息,p->response.flag=0?;如果服務(wù)器未能成功傳遞狀態(tài)信息,則令其負(fù)載權(quán)值為0,p->response.weight=0,此服務(wù)器的分配概率將為0。對每臺成功傳遞了狀態(tài)信息的服務(wù)器需判斷其是否進入臨界負(fù)載狀態(tài),p->response.n>=Ccri。為了避免服務(wù)器出現(xiàn)“拒絕服務(wù)”現(xiàn)象,我們在服務(wù)器系統(tǒng)進入臨界區(qū)后,通過加倍減少再分配請求任務(wù)個數(shù)來抑制負(fù)載增加速度的方法,也稱作臨界加速遞減算法。計算臨界遞減因子δ,公式如下 其中Ccrii為服務(wù)器Si的臨界值,ni為服務(wù)器當(dāng)前實際存活的響應(yīng)個數(shù),當(dāng)負(fù)載進入臨界區(qū)(即ni≥Ccrii]]>)后,遞減因子開始啟動。公式中的1-CcriiCmaxi]]>為服務(wù)器的臨界深度,不同的服務(wù)器臨界深度不同,負(fù)載繼續(xù)增加的速度也不一樣,所以,我們用參數(shù)σ來調(diào)整。根據(jù)仿真實驗,一般σ的取值為2或3較為合適。
重新計算負(fù)載權(quán)值。采用增加臨界服務(wù)器的負(fù)載權(quán)值來達到抑制分配的請求任務(wù)個數(shù)的目的,在負(fù)載權(quán)值計算公式中加入遞減因子,有WLi=liCmaxi+δ]]>。保存新的負(fù)載權(quán)值為p->response.WL。
轉(zhuǎn)入處理下一個服務(wù)器,p=p->next;判斷是否所有服務(wù)器處理結(jié)束,p->next=NULL?;全部服務(wù)器處理結(jié)束轉(zhuǎn)下一步。
根據(jù)所有服務(wù)器的平均負(fù)載權(quán)值計算在下一個周期要達到負(fù)載均衡每臺服務(wù)器所應(yīng)有的分配權(quán)值。
計算平均負(fù)載權(quán)值。集群系統(tǒng)當(dāng)前平均負(fù)載權(quán)值WL,有W‾L=1MΣi=1MWLi]]>。
負(fù)載權(quán)值反映了集群中各臺服務(wù)器當(dāng)前的負(fù)載狀況,在算法實施過程中還需要根據(jù)負(fù)載權(quán)值和每臺服務(wù)器之間存在的差異,確定在下一個采樣周期內(nèi)實際應(yīng)該分配給每臺服務(wù)器請求任務(wù)的比例,這樣才能保證集群系統(tǒng)中的所有服務(wù)器的負(fù)載按比例協(xié)調(diào)增加或減少,實現(xiàn)負(fù)載的平衡調(diào)度。
由于,無法事先確定下一個采樣周期內(nèi)會有多少個請求任務(wù)到達,因此,將按照每臺服務(wù)器的能力確定其接收請求任務(wù)比例,該比例值也稱為服務(wù)器當(dāng)前狀況的分配權(quán)值。
為達到負(fù)載平衡服務(wù)器實際調(diào)整后應(yīng)保持的響應(yīng)個數(shù) 有n~i=W‾LWLi×ni,]]>公式的推導(dǎo)略。
計算分配權(quán)值。有了每臺服務(wù)器應(yīng)被分配的請求任務(wù)個數(shù),就可以方便地確定每臺服務(wù)器應(yīng)具有的分配比例,也即分配權(quán)值WAi,有WAi=n~iΣi=1Mn~i]]>。(10)、將計算出的每臺服務(wù)器的分配權(quán)值分配一個概率空間,存入對應(yīng)的概率空間表,即計算各機器的分配概率p;重新啟動計時周期。
由于分配權(quán)值之間不是成整數(shù)的比例關(guān)系(實際中每臺服務(wù)器能力的差異也不可能是整數(shù)比例關(guān)系),為了實現(xiàn)更準(zhǔn)確的負(fù)載調(diào)度,我們采用隨機概率的請求任務(wù)分配方式。
上述過程(8)、(9)、(10)的程序流程框圖見附圖6。
按照分配權(quán)值為每臺服務(wù)器畫定一個概率空間,空間的大小就是每臺服務(wù)器當(dāng)前的分配權(quán)值。附圖7給出了4臺分配權(quán)值分別為0.1、0.15、0.25、0.5的服務(wù)器的概率空間。(11)、當(dāng)一個新的請求任務(wù)達到分配器時,計算出一個
間的隨機數(shù),根據(jù)該隨機數(shù)匹配的概率空間,選定對應(yīng)的服務(wù)器,將新的請求任務(wù)轉(zhuǎn)發(fā)到被選定的服務(wù)器。
由于無法預(yù)先確定將要到達的請求個數(shù),所以采用隨機概率分配轉(zhuǎn)發(fā)方式既可以避免固定分配格式造成的分配不均現(xiàn)象,也可以保證具有較高分配權(quán)值的服務(wù)器分得更多的請求任務(wù)。
分配程序定義一個結(jié)構(gòu)wvalue,該結(jié)構(gòu)包含所有服務(wù)器的分配概率pro;定義的服務(wù)器鏈表遍歷所有服務(wù)器,包括服務(wù)器所包含的wvalue,定義指向鏈表的指針p。
計算
間的隨即數(shù)e;判斷當(dāng)前指針指向的服務(wù)器的分配概率是否為0,p所指的機器的pro=0?;如果為0,轉(zhuǎn)向下一個服務(wù)器;不為0則判斷e是否落在其所指的概率空間內(nèi),p->wvalue.pro<e<=q->wvalue.pro;如果不在則轉(zhuǎn)入取下一個服務(wù)器;如果在則命中該服務(wù)器,返回指定的服務(wù)器q。該服務(wù)器作為此次分配轉(zhuǎn)發(fā)的對象。
上述過程的程序流程框圖見附圖8。(12)、如果沒有新的請求到達,則等待計時,當(dāng)計時周期到后,重復(fù)廣播發(fā)送讀取服務(wù)器狀態(tài)信息的請求及計算過程,既轉(zhuǎn)到第五步循環(huán)。
權(quán)利要求
一種集群服務(wù)器的動態(tài)負(fù)載均衡方法,其特征是,包括以下步驟
一、通過仿真測試程序預(yù)先測得集群內(nèi)每臺服務(wù)器的請求響應(yīng)飽和值以及臨界值,然后輸入分配器的配置參數(shù)表;
二、在服務(wù)器空載狀態(tài)下通過分配器發(fā)送一個請求讀取服務(wù)器當(dāng)前狀態(tài)的完整過程測得集群內(nèi)每臺服務(wù)器的參照響應(yīng)時間,并錄入分配器的配置參數(shù)表;
三、在每臺服務(wù)器開啟一個守護進程,實時監(jiān)測每一個接入服務(wù)器TCP連接,并且維護一張TCP連接數(shù)據(jù)表,記錄每個連接的標(biāo)識符;如果某一連接釋放,則從連接數(shù)據(jù)表中刪除對應(yīng)的記錄;若某一連接雙方?jīng)]有數(shù)據(jù)傳輸?shù)臅r間超時,則認(rèn)為該連接已非正常終止釋放;
四、采樣周期時間通過配置參數(shù)設(shè)置;
五、每個采樣周期時間到時,分配器通過UDP協(xié)議向所有服務(wù)器廣播讀取請求任務(wù),并記錄請求發(fā)送時間;
六、服務(wù)器接收到廣播請求后,將當(dāng)前記錄的服務(wù)器狀態(tài)信息回傳給分配器;
七、分配器接收每個服務(wù)器的響應(yīng)信息,并計算響應(yīng)的完成時間,以此作為當(dāng)前負(fù)載計算公式中的參數(shù);如果,某臺服務(wù)器在規(guī)定的時間內(nèi)未能成功做出響應(yīng),則該服務(wù)器被視為負(fù)載超重,不參與下一個周期的分配權(quán)值計算,即不被分配請求任務(wù);
八、分配器根據(jù)得到的信息計算每臺服務(wù)器的負(fù)載權(quán)值,對進入臨界狀態(tài)的服務(wù)器,在其負(fù)載權(quán)值中加入遞減因子;
九、根據(jù)所有服務(wù)器的平均負(fù)載權(quán)值計算在下一個周期要達到負(fù)載均衡每臺服務(wù)器所應(yīng)有的分配權(quán)值;
十、將計算出的每臺服務(wù)器的分配權(quán)值分配一個概率空間,存入對應(yīng)的概率空間表;重新啟動計時周期;
十一、當(dāng)一個新的請求任務(wù)達到分配器時,計算出一個
間的隨機數(shù),根據(jù)該隨機數(shù)匹配的概率空間,選定對應(yīng)的服務(wù)器,將新的請求任務(wù)轉(zhuǎn)發(fā)到被選定的服務(wù)器;
十二、當(dāng)計時周期到后,重復(fù)廣播發(fā)送讀取服務(wù)器狀態(tài)信息的請求及計算過程,既轉(zhuǎn)到第五步循環(huán)。
全文摘要
本發(fā)明涉及一種集群服務(wù)器的動態(tài)負(fù)載均衡方法。本發(fā)明通過請求響應(yīng)連接的飽和值和對當(dāng)前響應(yīng)連接數(shù)的修正,更準(zhǔn)確地表現(xiàn)了服務(wù)器當(dāng)前的負(fù)載狀態(tài);通過臨界遞減因子,加速減少分配給進入臨界狀態(tài)服務(wù)器的請求任務(wù)數(shù)量,有效地抑制了“拒絕服務(wù)”現(xiàn)象的發(fā)生;通過隨機概率分配方式,在請求達到個數(shù)不確定的情況下,避免了采用某種固定模式可能產(chǎn)生的將多個請求連續(xù)分配到同一臺服務(wù)器上的現(xiàn)象;所有計算參數(shù)均可以通過實際測試得到,避免了人為配置參數(shù)的不確定因素。本發(fā)明方法簡單、執(zhí)行效率高,適用于異構(gòu)集群系統(tǒng)、多媒體流服務(wù)的動態(tài)負(fù)載均衡,可有效提高集群服務(wù)器系統(tǒng)的工作效率。
文檔編號G06F15/16GK1434393SQ0311866
公開日2003年8月6日 申請日期2003年2月24日 優(yōu)先權(quán)日2003年2月24日
發(fā)明者郭成城, 晏蒲柳, 周建國, 熊智, 易奇娜 申請人:武漢大學(xué)
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
广丰县| 康定县| 寿光市| 佛冈县| 福泉市| 固始县| 青铜峡市| 海兴县| 西畴县| 浮山县| 二连浩特市| 丹东市| 清镇市| 延川县| 隆德县| 临汾市| 木兰县| 高雄市| 马公市| 尚义县| 鹰潭市| 临汾市| 饶河县| 栖霞市| 台江县| 洞口县| 稷山县| 定陶县| 十堰市| 建瓯市| 定边县| 佛山市| 盐边县| 石首市| 张北县| 广德县| 和田县| 云林县| 花莲市| 同仁县| 铜鼓县|