專利名稱:資源使用平衡方法
技術(shù)領(lǐng)域:
本發(fā)明涉及信息技術(shù)領(lǐng)域,特別涉及新型的資源使用平衡方法。
較原始的資源分配方法是權(quán)重輪循均衡算法(Weighted RoundRobin),它根據(jù)各個(gè)資源擁有者資源的數(shù)量,分別給每一個(gè)資源擁有者分配一個(gè)既定的權(quán)重,然后依據(jù)這個(gè)權(quán)重,將服務(wù)請(qǐng)求分配給各資源擁有者。很顯然,該分配方法沒(méi)有考慮到不同的服務(wù)請(qǐng)求會(huì)耗用不同數(shù)量的資源這一重要因素,在服務(wù)日益大眾化和多樣化的今天,有很大的局限性;另一種常用平衡方法是處理能力均衡算法,即各資源擁有者定期周期性地將自身的資源使用狀況上報(bào)到專門的仲裁機(jī)構(gòu)(資源平衡器);資源平衡器收集、統(tǒng)計(jì)、比較各資源擁有者的資源使用狀況,然后決策將服務(wù)請(qǐng)求分派給哪一個(gè)資源擁有者。這種方法運(yùn)算精確,能很好地平衡各資源擁有者的使用狀況;但也有一個(gè)問(wèn)題由于采用資源平衡器集中決策,資源平衡器很容易成為系統(tǒng)解決方案的瓶頸。隨著互聯(lián)網(wǎng)的普及、大規(guī)模電子商務(wù)應(yīng)用的出現(xiàn),應(yīng)用規(guī)模不斷擴(kuò)大,這種資源平衡方法越來(lái)越顯示出它的局限性。
為實(shí)現(xiàn)上述目的,資源使用平衡方法包括步驟在資源平衡器上采用簡(jiǎn)單輪詢均衡算法,將各資源擁有者的當(dāng)前資源量以顯式的方式表達(dá);資源擁有者采用處理能力均衡算法,通過(guò)統(tǒng)計(jì)和運(yùn)算得到自身的資源使用情況,并于近期獲得的服務(wù)負(fù)載相比較。
本發(fā)明采用多級(jí)控制的資源使用平衡方法,使得部分復(fù)雜的運(yùn)算從集中決策的資源平衡器轉(zhuǎn)移到資源擁有者上來(lái)完成,這樣資源平衡器不再是約束系統(tǒng)性能的瓶頸,能有效的提高系統(tǒng)的可擴(kuò)展性和高效性。本發(fā)明實(shí)現(xiàn)簡(jiǎn)單,有很強(qiáng)的自適應(yīng)性。
第二級(jí)在各資源擁有者和資源平衡器上共同完成,采用處理能力算法。具體是各資源擁有者通過(guò)統(tǒng)計(jì)和運(yùn)算得到自身的資源使用狀況,并與近期所獲得的服務(wù)負(fù)載相比較。根據(jù)比較的結(jié)果,各資源擁有者獨(dú)立地作出決定
●系統(tǒng)資源與服務(wù)請(qǐng)求負(fù)載相匹配;●服務(wù)請(qǐng)求負(fù)載明顯高于系統(tǒng)資源;●服務(wù)請(qǐng)求負(fù)載明顯低于系統(tǒng)資源。
對(duì)于第一種情況,資源擁有者沒(méi)有必要作出任何動(dòng)作;對(duì)于后兩種情況,資源擁有者必須通過(guò)系統(tǒng)平衡器適當(dāng)?shù)販p少或增加系統(tǒng)資源表中相對(duì)應(yīng)的表項(xiàng)數(shù)量。
如此動(dòng)態(tài)循環(huán),能達(dá)到比較好的動(dòng)態(tài)平衡效果。
與現(xiàn)有算法(大多采用隱式的資源表示和顯式的資源比較方式)相比,本方法采用顯式的資源表示和隱式的資源比較方式。顯式的資源表示方式使各資源擁有者可以獨(dú)立地計(jì)算并調(diào)節(jié)其系統(tǒng)資源使用情況;而隱式的資源比較方式使得資源平衡器可以采用非常簡(jiǎn)單的平衡算法,從而避免造成系統(tǒng)的瓶頸。此外,由于大量的系統(tǒng)計(jì)算被分布到了各個(gè)資源擁有者上,整個(gè)平衡系統(tǒng)具有極強(qiáng)的自適應(yīng)能力。當(dāng)平衡系統(tǒng)處于不斷調(diào)整的過(guò)程中時(shí)(也就是資源擁有者經(jīng)常改變資源表中的表項(xiàng)數(shù)量時(shí)),系統(tǒng)是在調(diào)整平衡器資源表中的每個(gè)表項(xiàng)所代表的可用資源量。當(dāng)整個(gè)系統(tǒng)處于相對(duì)平衡狀態(tài)時(shí)(也就是資源擁有者不再改變資源表中的表項(xiàng)數(shù)量時(shí)),屬于不同的資源擁有者在資源表中的每個(gè)表項(xiàng)所代表的可用資源量達(dá)到了統(tǒng)一。資源擁有的比較是通過(guò)屬于各個(gè)資源擁有者表項(xiàng)數(shù)量的差異來(lái)表現(xiàn)的。
資源使用平衡問(wèn)題一個(gè)最突出的例子是服務(wù)器集群運(yùn)算中的負(fù)載均衡問(wèn)題,下面以此為例來(lái)闡述本發(fā)明采用的方法。
集群系統(tǒng)有代表性的負(fù)載均衡方法有權(quán)重輪循均衡算法、響應(yīng)速度均衡算法和處理能力均衡算法。權(quán)重輪循均衡算法根據(jù)服務(wù)器的不同處理能力,給每個(gè)服務(wù)器分配不同的權(quán)值,使其能夠接受相應(yīng)權(quán)值數(shù)的服務(wù)請(qǐng)求。此種均衡算法考慮了服務(wù)器的不同處理能力,但沒(méi)有充分地考慮到不同的服務(wù)請(qǐng)求占用資源不同;響應(yīng)速度均衡算法對(duì)內(nèi)部各服務(wù)器發(fā)出一個(gè)探測(cè)請(qǐng)求,根據(jù)服務(wù)器對(duì)探測(cè)請(qǐng)求的最快響應(yīng)時(shí)間來(lái)決定哪一臺(tái)服務(wù)器來(lái)響應(yīng)客戶端的服務(wù)請(qǐng)求,但這指的是負(fù)載均衡設(shè)備與服務(wù)器間的最快響應(yīng)時(shí)間,而不是客戶端與服務(wù)器間的最快響應(yīng)時(shí)間;處理能力均衡算法將把服務(wù)請(qǐng)求分配給處理負(fù)荷(根據(jù)服務(wù)器CPU型號(hào)、CPU數(shù)量、內(nèi)存大小及當(dāng)前連接數(shù)等換算而成)最輕的服務(wù)器。由于考慮到了內(nèi)部服務(wù)器的處理能力及當(dāng)前網(wǎng)絡(luò)運(yùn)行狀況,所以這種均衡算法相對(duì)來(lái)說(shuō)更加精確。但是,在實(shí)際的運(yùn)用中往往會(huì)發(fā)現(xiàn),前端負(fù)載平衡器(即資源平衡器)的運(yùn)算負(fù)荷過(guò)大,成為系統(tǒng)運(yùn)算的瓶頸。
本發(fā)明采用兩級(jí)決策的決策方案,具體實(shí)現(xiàn)方法描述如下1.根據(jù)預(yù)制的各服務(wù)器處理能力,按照相應(yīng)的比例為每一臺(tái)服務(wù)器(Server)設(shè)置相應(yīng)整數(shù)權(quán)值N。以下討論以一含有1個(gè)平衡器和2個(gè)服務(wù)器(A和B)的集群系統(tǒng)為例(見(jiàn)圖一)。表一所示的系統(tǒng)資源表中為每個(gè)服務(wù)器填入3條記錄(N=3)。為保證負(fù)載在時(shí)間上盡可能地均勻,應(yīng)該使這3條記錄在表上分布盡可能地均勻。這樣,該權(quán)值具體表現(xiàn)為該服務(wù)器在以下表結(jié)構(gòu)中出現(xiàn)的次數(shù)。
為了達(dá)到預(yù)想的平衡精度,每一臺(tái)服務(wù)器在該表中出現(xiàn)的次數(shù)應(yīng)該足夠的多,即每臺(tái)服務(wù)器的初始權(quán)值應(yīng)該足夠的大。其中狀態(tài)表示當(dāng)記錄的可用狀態(tài),則表項(xiàng)是否已經(jīng)被禁用(1表示可用,0表示禁用)。
表1系統(tǒng)資源表2.前端負(fù)載平衡器在接收到新的服務(wù)請(qǐng)求時(shí),按照順序輪循各系統(tǒng)資源表項(xiàng)(如果到達(dá)表的最后一項(xiàng),則返回到第一個(gè)記錄,繼續(xù)開(kāi)始),直到獲得可用項(xiàng)(狀態(tài)=1的項(xiàng))。將服務(wù)請(qǐng)求轉(zhuǎn)發(fā)到相對(duì)應(yīng)的服務(wù)器上去;3.各服務(wù)器定時(shí)地檢測(cè)本服務(wù)器的資源使用情況,從而計(jì)算出本服務(wù)器的資源使用和負(fù)載狀況,并相應(yīng)地決定本服務(wù)器在系統(tǒng)資源表中的表項(xiàng)數(shù)目,上報(bào)給負(fù)載平衡器。前端負(fù)載平衡器根據(jù)該上報(bào)數(shù)目相應(yīng)地激活(置狀態(tài)為1)或者禁用(置狀態(tài)為0)系統(tǒng)資源表中的表項(xiàng)。
以上(1)、(2)完成了服務(wù)請(qǐng)求連接相對(duì)于有效系統(tǒng)資源表項(xiàng)的負(fù)載均衡,實(shí)現(xiàn)方法簡(jiǎn)單、實(shí)用,在前端負(fù)載平衡器上完成;(3)完成有效輪循項(xiàng)相對(duì)于后端服務(wù)器處理能力的負(fù)載均衡。其主要工作是在后端服務(wù)器上完成。因此,采用該負(fù)載平衡方法,使得前端負(fù)載平衡器的運(yùn)算量大大地下降。
圖2所示為多種服務(wù)共享同一服務(wù)器的情況。在這種情況下,傳統(tǒng)的算法很難在充分利用系統(tǒng)資源的前提下合理分配服務(wù)器B的資源于兩種服務(wù)。利用本平衡方法,服務(wù)器B不僅能夠在系統(tǒng)資源緊張時(shí)可以按照系統(tǒng)配置分配其資源使用,而且可以在某個(gè)服務(wù)不繁忙時(shí)將系統(tǒng)資源充分使用到另一服務(wù)。
權(quán)利要求
1.一種資源使用平衡方法,包括步驟在資源平衡器上采用簡(jiǎn)單輪詢均衡算法,將各資源擁有者的當(dāng)前資源量以顯式的方式表達(dá);資源擁有者采用處理能力均衡算法,通過(guò)統(tǒng)計(jì)和運(yùn)算得到自身的資源使用情況,并于近期獲得的服務(wù)負(fù)載相比較。
2.按權(quán)利要求1所述的方法,其特征在于所述的服務(wù)負(fù)載相比較包括步驟如果系統(tǒng)資源與服務(wù)請(qǐng)求負(fù)載相匹配,資源擁有者不做任何動(dòng)作;如果服務(wù)請(qǐng)求負(fù)載明顯高于系統(tǒng)資源或低于系統(tǒng)資源,則資源擁有者通過(guò)系統(tǒng)平衡器適當(dāng)?shù)販p少或增加系統(tǒng)資源表中相對(duì)應(yīng)的表項(xiàng)數(shù)量。
3.按權(quán)利要求1所述的方法,其特征在于所述的簡(jiǎn)單輪詢均衡算法包括系統(tǒng)資源表,表中每項(xiàng)對(duì)應(yīng)與其相關(guān)的資源擁有者。
全文摘要
一種資源使用平衡方法,包括步驟在資源平衡器上采用簡(jiǎn)單輪詢均衡算法,將各資源擁有者的當(dāng)前資源量以顯式的方式表達(dá);資源擁有者采用處理能力均衡算法,通過(guò)統(tǒng)計(jì)和運(yùn)算得到自身的資源使用情況,并于近期獲得的服務(wù)負(fù)載相比較。本發(fā)明采用多級(jí)控制的資源使用平衡方法,使得部分復(fù)雜的運(yùn)算從集中決策的資源平衡器轉(zhuǎn)移到資源擁有者上來(lái)完成,這樣資源平衡器不再是約束系統(tǒng)性能的瓶頸,能有效的提高系統(tǒng)的可擴(kuò)展性和高效性。本發(fā)明實(shí)現(xiàn)簡(jiǎn)單,有很強(qiáng)的自適應(yīng)性。
文檔編號(hào)G06F17/00GK1464416SQ0212247
公開(kāi)日2003年12月31日 申請(qǐng)日期2002年6月5日 優(yōu)先權(quán)日2002年6月5日
發(fā)明者許魯, 石利君, 范中磊, 張建剛 申請(qǐng)人:中國(guó)科學(xué)院計(jì)算技術(shù)研究所