云環(huán)境下意識到用戶周期性資源需求的動態(tài)負載均衡方法
【專利摘要】本發(fā)明提供了一種云環(huán)境下意識到用戶周期性資源需求的動態(tài)負載均衡方法,所要解決的技術問題是:云環(huán)境下的負載均衡問題。該方法包括:每個計算節(jié)點都有一個窗口記錄最近的任務到達信息,窗口的大小可以通過分析當前窗口動態(tài)的改變,通過當前窗口的任務信息可以對未來的任務強度作出預測,任務分配時考慮每個計算節(jié)點預測出的未來任務強度。本發(fā)明的方案利用任務的局部特性而不是全局的歷史任務信息對未來任務的強度進行預測,可以得到更精確與實時的預測結果進而降低計算任務的響應時間。
【專利說明】云環(huán)境下意識到用戶周期性資源需求的動態(tài)負載均衡方法
【技術領域】
[0001] 本發(fā)明涉及一種分布式動態(tài)負載均衡方法,具體涉及一種云環(huán)境下意識到用戶周 期性資源需求的動態(tài)負載均衡方法。
【背景技術】
[0002] 近年來云計算憑借其方便經(jīng)濟的服務模式,越來越受到包括個人,單位政府部門 及企業(yè)的青睞。直觀的來講,云計算是這樣的一種服務模式:用戶通過使用諸如亞馬遜 (Amazon EC2),微軟(Microsoft Azure)和谷歌(Google App)等云平臺按需的提交自己 的應用請求,包括計算,存儲,流量等各種資源,這些云服務提供商然后以虛擬機的形式分 配相應的資源給這些提交資源申請的用戶,用戶只需要為他們所占用的資源按時間付費即 可。
[0003] 衡量一個云平臺運行效率的指標有很多,其中一個重要的指標是降低計算任務的 響應時間,即不要讓提交任務的用戶為了得到計算結果等待過長的時間。現(xiàn)如今的云平臺 大多采用負載均衡策略來解決這個問題,即將計算任務均勻分配到各個計算節(jié)點上。如果 每個計算節(jié)點上的任務數(shù)均衡,那么所有任務的平均響應時間必然大大降低。
[0004] 傳統(tǒng)的負載均衡方法分為靜態(tài)負載均衡與動態(tài)負載均衡。靜態(tài)負載均衡僅僅考慮 系統(tǒng)負載的當前狀態(tài)來調(diào)整各計算中心的負載,從而達到當前狀態(tài)下系統(tǒng)中所有節(jié)點負載 均衡的目標。靜態(tài)負載均衡方法雖然能夠很好的滿足某個時刻的負載均衡目,但是它沒有 考慮系統(tǒng)未來的負載情況。假如在下一時刻,由于系統(tǒng)中會有新的任務到達同時又有舊的 任務離開(任務完成之后就會離開系統(tǒng)),系統(tǒng)原有的負載狀態(tài)就會被打破,新一輪負載均 衡又要重新執(zhí)行,頻繁的調(diào)用負載均衡會大大增加系統(tǒng)的計算耗費和任務遷移時的網(wǎng)絡帶 寬耗費。動態(tài)負載均衡,則利用歷史任務的信息預測未來任務強度,根據(jù)預測出的未來任務 強度進行當前狀態(tài)的負載均衡,這能夠在一定程度上緩解未來負載不均衡的情況,從而能 夠減少系統(tǒng)用于負載均衡的計算耗費和任務遷移時的網(wǎng)絡帶寬耗費。然而傳統(tǒng)的動態(tài)負載 均衡利用的是全局的歷史信息由于,即未來負載的預測值往往是通過當前負載與上一時刻 預測值的加權求和得到。而實際上來講,每個云系統(tǒng)未來的任務強度往往只與該系統(tǒng)歷史 中的一個局部時間段相關,基于全局信息的預測可能導致預測結果的延遲效應,即預測結 果的變化延遲于實際負載的變化,進而使得預測結果不夠精確與實時。因為云平臺下的任 務到達強度隨時間會經(jīng)常變化,這種不精確與不實時有可能使得動態(tài)負載均衡方法的效果 比靜態(tài)更差。
[0005] 從另一個角度來講,傳統(tǒng)云環(huán)境下的負載均衡中一般都有個中心調(diào)度者,任務需 求首先是提交到中心調(diào)度管理器,然后由中心調(diào)度者進行分配任務兼顧負載均衡,也就是 說云平臺下的負載均衡方法一般是中心式+靜態(tài)的。當節(jié)點規(guī)模較大時,這種方式負載均 衡的計算代價就會很高。
【發(fā)明內(nèi)容】
[0006] 本方法所要解決的技術問題是:負載均衡問題,即將用戶的資源請求均勻的分布 到云系統(tǒng)中的數(shù)據(jù)節(jié)點上。
[0007] 本發(fā)明提出了一種基于用戶周期性資源需求規(guī)律的分布式動態(tài)負載均衡方法,即 利用任務的局部特性而不是全局的歷史任務信息對未來任務的強度進行預測,可以得到更 精確與實時的預測結果進而降低計算任務的響應時間,同時用于負載均衡的計算代價也較 低。
[0008] 考慮如下情況,某一節(jié)點當前負載很低,但是在未來的一段時間內(nèi)會突發(fā)性的到 達很多計算請求。如果這時采用了傳統(tǒng)的靜態(tài)負載均衡方法,那么該節(jié)點會收到許多鄰居 節(jié)點轉交的計算請求,同時在未來的一段時間該節(jié)點本身會收到許多來自用戶的突發(fā)性計 算請求,這樣就會導致該節(jié)點從一個輕載狀態(tài)很快變成了重載狀態(tài)。相反,如果我們能夠預 測出該節(jié)點在未來會突發(fā)性的到達很多計算請求,我們就可以作一些預防措施,例如提前 拒絕鄰居節(jié)點的轉交請求,以讓該節(jié)點有足夠的能力容納未來到達的計算請求。如果采用 傳統(tǒng)的動態(tài)負載均衡方法,它往往是將當前的負載與當前負載預測值做一個加權求和作為 下一時刻可能的任務需求強度,這種預測會產(chǎn)生延遲效應,即如果將來的任務強度發(fā)生了 劇烈的變化(從很高到很低或很低到很高),就需要很長的時間才能將預測到實際任務強 度值。究其原因就是這種方法使用的是歷史任務的全局信息,而往往由歷史的局部信息更 能反映未來的趨勢。
[0009] 下面給出一個簡單的例子具體解釋上述情況,為了簡化描述,我們將所有計算任 務所需資源數(shù)目視為相同。云環(huán)境中節(jié)點的網(wǎng)絡拓撲如圖1所示,為一個簡單的云系統(tǒng)實 例,其中,圓形表示計算節(jié)點,正方形表示每個節(jié)點的負載,矩形表示該節(jié)點未來到達的資 源需求情況。圖1中有5個計算節(jié)點,分別為B 1, a2, a3, a4, a5,每條邊表示對應邊上的兩個 節(jié)點可以直接通信,通信需要耗費一定的帶寬代價,距離越短通信代價越低,反之,越高。每 個節(jié)點上的矩形窗口表示的是將來用戶的計算請求任務到達狀況,〇表示無計算任務到達, 1表示有一個計算任務到達。記當前時刻為t,針對,其任務窗口為0000100010,則表示 t+Ι?t+4時間內(nèi)沒有用戶的直接計算任務到達,t+5時刻會有一個用戶的計算任務到達, 以此類推。每個節(jié)點旁的正方形中的數(shù)字代表當前該節(jié)點上的計算任務數(shù),即負載數(shù)?,F(xiàn) 假設a 2有一個計算任務由于資源不夠而無法由自己完成,因此它必須將其轉交給其鄰居節(jié) 點ai、a 3或a4。如果根據(jù)傳統(tǒng)的靜態(tài)負載均衡方法,發(fā)現(xiàn)當前a3的負載最低,然后就將a 2上 過載的任務轉交給a3執(zhí)行。然而通過觀察任務窗口可以發(fā)現(xiàn),a3在未來5個時間步內(nèi)會有 連續(xù)的新的計算請求到達。如果假設每個任務都需要較長的時間來執(zhí)行,那么5個時間步 后a 3的負載由0激增到8,而其他幾個節(jié)點的負載均較低。因此傳統(tǒng)的靜態(tài)負載均衡在這 種情況下不太適用。如果采用傳統(tǒng)的動態(tài)負載均衡方法,當預測a 3任務窗口內(nèi)第6、7、8個 時間步的負載時,仍然會保持較高的預測值,因為前5個時間步均有任務到達,這時會導致 不太傾向把任務分配給這個預測出的重載節(jié)點,而實際上第6、7、8個時間步該節(jié)點根本 沒任務到達(延遲效應),這就會產(chǎn)生預測不準的情形。因此,傳統(tǒng)的全局動態(tài)負載均衡方 法在這種情況表現(xiàn)也不是很好。這時如果我們只考慮最近三個時間步這個局部信息,那么 會很快地發(fā)現(xiàn)任務到達強度已經(jīng)顯著降低,進而就可以快速而及時地調(diào)整預測值,得到更 精準與實時的預測結果。
[0010] 基于此,本發(fā)明主要提出了一種基于用戶周期性資源需求規(guī)律的動態(tài)負載均衡方 法。所謂用戶周期性資源需求規(guī)律也就是用戶請求任務的局部特性,即任務的到達過程不 是完全隨機的,而是從一個局部一個局部的到達的。一個局部的任務流是指在一段時間內(nèi) 突發(fā)性到達的許多計算任務的集合。符合任務局部性原理的任務流是按如下方式到達:在 一段時間內(nèi)到達一批任務(局部),接著一段時間很少有任務到達(空閑期),再過一段時 間又有大批任務到達,如此循環(huán)往復。云環(huán)境下的任務流是符合這種任務的到達規(guī)律的。 例如,從9:00a. m?12:00 a. m是各大公司的上班時間,各大公司會有大量的云請求發(fā)往云 服務器(資源需求波峰期),這是一個局部,接著〇:〇〇 p. m?2:00 p. m屬于員工的吃飯與 午休時間,這時很少會有云請求發(fā)往云服務器(資源需求波谷期),然后2:00 p.m?5:00 P.m又屬于正常工作時間,這時又會有大量的運請求,此時就是到達另外一個局部。
[0011] 由于云環(huán)境下的任務請求一般具有局部性原理,那么我們就可以利用這一特性來 更精確地預測未來的任務到達強度。每個節(jié)點維護一個最近η個時間步內(nèi)的任務到達序 列,如果這η個時間步的任務到達很頻繁,那么我們有理由相信當前正處于一個任務局部 內(nèi),此時可以預測未來一段時間內(nèi)仍會有較多的任務到達;反之說明當前并不處于某個任 務局部內(nèi),可以預測將來也不會有很多任務到達。這種預測方式相較于以往的全局預測更 精確與實時。
[0012] 通常情況下每個局部的大小是不同的,因此我們選擇觀察的任務窗口的大小也需 要動態(tài)調(diào)整。預測未來的任務強度與窗口大小η調(diào)整規(guī)則如下 :
[0013] 1)每個節(jié)點維護一個窗口 :即剛才提到的最近η個時間步內(nèi)的任務到達序列,0表 示沒有任務到達,1表示有任務到達。因此窗口可以表示為Lb1,…,b n],bie {〇,1}。
[0014] 2)計算出當前窗口內(nèi)的平均任務到達強違
【權利要求】
1. 一種云環(huán)境下意識到用戶周期性資源需求的動態(tài)負載均衡方法,其特征在于:該方 法包括:每個計算節(jié)點都有一個窗口記錄最近的任務到達信息,窗口的大小可以通過分析 當前窗口動態(tài)的改變,通過當前窗口的任務信息可以對未來的任務強度作出預測,任務分 配時考慮每個計算節(jié)點預測出的未來任務強度。
2. 根據(jù)權利要求1所述的云環(huán)境下意識到用戶周期性資源需求的動態(tài)負載均衡方法, 其特征是:每個計算節(jié)點都有一個窗口記錄最近的任務到達信息,云系統(tǒng)中的每個計算節(jié) 點都可以獨立地接受來自用戶的計算請求,對每個時間點,如果一個計算節(jié)點收到一個用 戶請求,那么其會把1插入當前窗口的頭部表示當前有一個任務到達;否則插入O ;處于窗 口尾部的時間點會從窗口中刪除,注意窗口只會記錄外界到達的任務序列而不會記錄從鄰 居節(jié)點轉移過來的任務序列。
3. 根據(jù)權利要求1所述的云環(huán)境下意識到用戶周期性資源需求的動態(tài)負載均衡方法, 其特征是:窗口的大小可以通過分析當前窗口動態(tài)的改變;一旦一個窗口序列被更新,那 么將啟動窗口大小的改變方法;計算出當前窗口內(nèi)的平均任務到達強度A,如果 入彡〇或入彡3(〇,3£(〇,1),[1>3),表示當前窗口內(nèi)的任務到達強度很高或很 低,此時無需更改窗口大?。蝗绻?< λ < β,表示當前窗口內(nèi)的任務到達強度適中,此 時把當前窗口分為兩半,分別求出前后兩半窗口的平均任務到達強度\1和λ 2;如果A1/ λ 2彡k*或者λ / λ 2 < Ι/k,表示前后兩半窗口的任務到達強度差別很大,即相差了 k倍 以上,此時不需要改變窗口大??;如果Ι/k < λ夕λ 2 < k,此時計算出當前窗口內(nèi)連續(xù)出現(xiàn) 超過5個1的序列個數(shù)m,其中,連續(xù)5個1可以說明一個局部;如果m彡Θ,說明出現(xiàn)了至 少Θ個連續(xù)5個1的序列,此時需要減小窗口大小以獲得更精確的預測效果,我們將窗口 大小變?yōu)樵瓉淼囊话胍詮拇翱谥袆h除較早的那些任務序列,n = n/2 ;如果m〈 Θ,說明當前 窗口內(nèi)并沒有出現(xiàn)多個連續(xù)1的序列,此時需要增加窗口大小,將窗口大小變?yōu)樵瓉淼膬?倍以容納未來的任務到達序列,η = n*2。
4. 根據(jù)權利要求3所述的云環(huán)境下意識到用戶周期性資源需求的動態(tài)負載均衡方法, 優(yōu)先地:Θ取3。
5. 根據(jù)權利要求1所述的云環(huán)境下意識到用戶周期性資源需求的動態(tài)負載均 衡方法,其特征是:通過當前窗口的任務信息可以對未來的任務強度作出預測;預 測出的下一時間步的任務到達強度,其中%為匕的權重并且Oi < ω沖Σ二ιΜ=^ = 1,2,...,》-1) (%的設定具體可由實驗環(huán)境而定)。即對某一窗口內(nèi) 的時間點其歷史越悠久,對預測未來任務強度的貢獻越低。
6. 根據(jù)權利要求1所述的云環(huán)境下意識到用戶周期性資源需求的動態(tài)負載均衡方法, 其特征是:任務分配時考慮每個節(jié)點預測出的任務強度;任務轉交時選擇的鄰居節(jié)點next 為next = arg Iiiaxi ^eiIri/(Ci · Ii · λ pi)},其中Nei表示當前節(jié)點的鄰居集合,!Ti表示鄰 居i的資源數(shù),C i表示當前節(jié)點到鄰居i的通信代價,λ pi表示鄰居i預測出的任務到達強 度。
【文檔編號】H04L29/08GK104378412SQ201410546682
【公開日】2015年2月25日 申請日期:2014年10月15日 優(yōu)先權日:2014年10月15日
【發(fā)明者】蔣嶷川, 費超, 王萬元 申請人:東南大學