本發(fā)明主要針對(duì)云計(jì)算環(huán)境中的主機(jī)調(diào)度和負(fù)載均衡問(wèn)題,提出了一種預(yù)測(cè)主機(jī)負(fù)載的方法。
背景技術(shù):云計(jì)算是一種通過(guò)互聯(lián)網(wǎng)以服務(wù)的方式提供動(dòng)態(tài)可伸縮的虛擬化的資源計(jì)算模式。對(duì)云服務(wù)的提供者而言,各種底層資源(計(jì)算、存儲(chǔ)、網(wǎng)絡(luò)等)被統(tǒng)一管理和調(diào)度,成為所謂的“資源池”,從而為用戶提供服務(wù);而對(duì)于用戶而言,這些資源是透明的,用戶無(wú)須了解云計(jì)算中心的內(nèi)部結(jié)構(gòu),只關(guān)心自己的需求是否得到滿足。對(duì)于云服務(wù)提供者而言,將資源集中起來(lái)統(tǒng)一管理可以有效的提高資源的利用率,但是由于云計(jì)算中心各種底層資源的異構(gòu)性以及各個(gè)用戶應(yīng)用程序的不同,資源的合理調(diào)度和負(fù)載均衡成為一個(gè)具有挑戰(zhàn)性的問(wèn)題。一種有效的提高資源利用率的方法就是進(jìn)行虛擬機(jī)的調(diào)度,即根據(jù)主機(jī)的負(fù)載情況進(jìn)行虛擬機(jī)的遷移。當(dāng)某臺(tái)主機(jī)的負(fù)載超過(guò)一定值時(shí),運(yùn)行在該主機(jī)上的虛擬機(jī)的性能必然受到影響,因此此時(shí)選擇將此主機(jī)上的一些虛擬機(jī)遷移到其他空閑主機(jī)上,從而減輕主機(jī)的負(fù)載;當(dāng)某些主機(jī)上的負(fù)載低于一定值時(shí),說(shuō)明這些主機(jī)處于空閑狀態(tài),可以將這些主機(jī)上的虛擬機(jī)合并到其他主機(jī)上,然后關(guān)閉那些不用的主機(jī),從而達(dá)到降低能耗的目的。然而,由于進(jìn)行虛擬機(jī)的在線遷移需要一定的時(shí)間,如果在主機(jī)的過(guò)載時(shí)再進(jìn)行遷移必然會(huì)導(dǎo)致用戶的虛擬機(jī)的性能下降。因此,需要對(duì)主機(jī)的負(fù)載進(jìn)行預(yù)測(cè),從而提前進(jìn)行虛擬機(jī)的遷移以保證服務(wù)水平協(xié)議(ServiceLevelAgreement,SLA)。目前對(duì)主機(jī)負(fù)載進(jìn)行預(yù)測(cè)的方法主要是自回歸模型(Auto-Regression,AR)以及局部線性回歸(LocalLinearRegression)。這些方法的缺點(diǎn)在于主機(jī)負(fù)載的變化一般是非線性的,用線性的方法很難對(duì)主機(jī)的負(fù)載進(jìn)行預(yù)測(cè),當(dāng)主機(jī)的負(fù)載變化劇烈時(shí),預(yù)測(cè)值與實(shí)際值之間會(huì)有很大的偏差。本文提出了一種將相空間重構(gòu)(PhaseSpaceReconstruction,PSR)與基于遺傳算法的數(shù)據(jù)分組處理方法(GroupMethodofDataHandlingbasedonEvolutionaryAlgorithm,EA-GMDH)相結(jié)合的主機(jī)負(fù)載預(yù)測(cè)算法,能夠準(zhǔn)確的對(duì)主機(jī)的負(fù)載進(jìn)行預(yù)測(cè)。
技術(shù)實(shí)現(xiàn)要素:本發(fā)明的目的:針對(duì)云計(jì)算數(shù)據(jù)中心的資源調(diào)度和負(fù)載均衡等問(wèn)題,提出了一種主機(jī)負(fù)載預(yù)測(cè)的方法,能夠?qū)υ朴?jì)算中心中主機(jī)的負(fù)載進(jìn)行預(yù)測(cè),根據(jù)預(yù)測(cè)結(jié)果進(jìn)行虛擬機(jī)的調(diào)度,以達(dá)到資源的合理利用以及降低數(shù)據(jù)中心能耗等目的。云計(jì)算實(shí)際上是一種資源集中管理的方式,每個(gè)用戶都可以根據(jù)自己的應(yīng)用需要申請(qǐng)不同的虛擬機(jī)使用。因此,在云計(jì)算中心的主機(jī)上運(yùn)行著不同應(yīng)用的虛擬機(jī),這使得主機(jī)負(fù)載預(yù)測(cè)的難度大幅增加。針對(duì)現(xiàn)有技術(shù)中存在的問(wèn)題,本發(fā)明提出了一種新的主機(jī)負(fù)載預(yù)測(cè)方法,能夠有效的對(duì)未來(lái)一段時(shí)間內(nèi)的主機(jī)負(fù)載進(jìn)行預(yù)測(cè),整個(gè)系統(tǒng)由以下兩個(gè)主要模塊組成:模塊一、由于主機(jī)負(fù)載是單元時(shí)間序列,為了還原整個(gè)動(dòng)力系統(tǒng)以便于我們進(jìn)行負(fù)載預(yù)測(cè),我們采用了相空間重構(gòu)(PhaseSpaceReconstruction,PSR)的方法將單元時(shí)間變量變成多維時(shí)間變量。模塊二、主機(jī)負(fù)載預(yù)測(cè)算法采用基于遺傳算法的數(shù)據(jù)分組處理方法(GroupMethodofDataHandlingbasedonEvolutionaryAlgorithm,EA-GMDH),將模塊一中得到的多元時(shí)間變量作為算法的輸入,然后通過(guò)學(xué)習(xí)的方法學(xué)習(xí)到一個(gè)EA-GMDH模型,利用學(xué)習(xí)到的模型進(jìn)行負(fù)載的預(yù)測(cè)。對(duì)于模塊一,假設(shè)原來(lái)的負(fù)載數(shù)據(jù)是根據(jù)Packard和Takens等人提出的延遲坐標(biāo)法對(duì)負(fù)載數(shù)據(jù)進(jìn)行相空間重構(gòu),計(jì)算出嵌入維m和時(shí)延τ,然后重構(gòu)出多元時(shí)間變量Yj=(Xj,Xj+τ,Xj+2τ,...,Xj+(m-1)τ),其中m為嵌入維,τ為時(shí)延。在本方法中,重構(gòu)得到的多元時(shí)間序列Xi=(xT-H-1-(i-1)τ,...,xT-(i-1)τ),i=1,2,...m,T是預(yù)測(cè)點(diǎn),H為預(yù)測(cè)的時(shí)間長(zhǎng)度。為了預(yù)測(cè)在未來(lái)一段時(shí)間內(nèi)的負(fù)載Y,我們利用模塊二的學(xué)習(xí)算法得到一個(gè)映射fT,使得Y=fT(X)。將模塊一得到的多元時(shí)間序列作為模塊二EA-GMDH網(wǎng)絡(luò)的輸入,采用監(jiān)督學(xué)習(xí)的方法學(xué)到一個(gè)較好的模型,然后利用該模型進(jìn)行負(fù)載預(yù)測(cè)。GMDH方法本質(zhì)是一個(gè)自組織的前饋神經(jīng)網(wǎng)絡(luò),在預(yù)測(cè)領(lǐng)域有著廣泛的應(yīng)用。本系統(tǒng)采用了將遺傳算法(GA)與GMDH方法相結(jié)合的方式,避免了普通GMDH方法中每個(gè)節(jié)點(diǎn)只能有兩個(gè)輸入以及每個(gè)節(jié)點(diǎn)的輸入只能是相鄰節(jié)點(diǎn)等限制,而且加入遺傳算法也可以使得算法的收斂速度變快,減少了算法運(yùn)行的時(shí)間。在EA-GMDH算法中,每個(gè)染色體代表了一個(gè)EA-GMDH網(wǎng)絡(luò)架構(gòu),整個(gè)染色體由3個(gè)部分組成,第一個(gè)部分代表了每個(gè)節(jié)點(diǎn)的輸入變量個(gè)數(shù),第二部分代表每個(gè)節(jié)點(diǎn)的多項(xiàng)式類型,第三個(gè)部分代表了每個(gè)節(jié)點(diǎn)具體有哪些輸入變量。圖1中展示了一個(gè)EA-GMDH網(wǎng)絡(luò)的架構(gòu),其對(duì)應(yīng)的染色體為{2,4,2,3,3,4,2,2,3,3,2,1,3,2,4,3,1,3,2,4,6,7,1,8,9,1,6}。每個(gè)節(jié)點(diǎn)的系數(shù)通過(guò)最小化最小均方誤差得到,其中最小均方誤差表示為Ntr表示訓(xùn)練集的大小,yi是負(fù)載的真實(shí)值,是負(fù)載的預(yù)測(cè)值。利用訓(xùn)練集的數(shù)據(jù),我們可以得到一組線性方程XC=Y(jié),每個(gè)節(jié)點(diǎn)的系數(shù)可以通過(guò)解這組線性方程得到,即C=(XTX)-1XTY,對(duì)于每個(gè)染色體,我們定義了一個(gè)評(píng)價(jià)函數(shù)來(lái)評(píng)估該染色體的優(yōu)劣,從而決定該染色體在下一次迭代中是否該保留。評(píng)價(jià)函數(shù)的具體形式為:Nva表示測(cè)試集的大小,Wi是權(quán)重函數(shù),用來(lái)表示測(cè)試集中每個(gè)數(shù)據(jù)所占權(quán)重的大小,Wi的定義為Di是測(cè)試集中第i個(gè)數(shù)據(jù)的輸入變量與預(yù)測(cè)集的輸入變量之間的歐式距離。根據(jù)遺傳算法的特點(diǎn),為了增加種群的多樣性,我們還需要加入交叉和變異操作。對(duì)于染色體的第一和第二部分,交叉操作的具體做法是隨機(jī)選擇一個(gè)交叉點(diǎn),將兩個(gè)染色體交叉點(diǎn)后面的部分互換,第三部分根據(jù)第一和第二部分的變化而變化。變異操作與交叉操作類似。交叉操作和變異操作的具體過(guò)程如圖2所示。經(jīng)過(guò)預(yù)定次數(shù)的迭代后我們會(huì)得到最佳的染色體,這個(gè)染色體所代表的架構(gòu)就是我們進(jìn)行負(fù)載預(yù)測(cè)時(shí)所采用的EA-GMDH網(wǎng)絡(luò)架構(gòu)。利用學(xué)習(xí)到的EA-GMDH模型,我們就可以對(duì)負(fù)載的變化情況進(jìn)行預(yù)測(cè)。附圖說(shuō)明附圖說(shuō)明用于提供對(duì)本發(fā)明技術(shù)方案的進(jìn)一步理解,并構(gòu)成說(shuō)明書(shū)的一部分,與本發(fā)明的實(shí)施一起用于解釋本發(fā)明的技術(shù)方案,并不構(gòu)成對(duì)本發(fā)明技術(shù)方案的限制。附圖說(shuō)明如下:圖1為本系統(tǒng)中一個(gè)具體的EA-GMDH架構(gòu)圖。圖2為算法運(yùn)行中染色體的交叉與變異操作的具體過(guò)程。具體實(shí)施方式以下將結(jié)合附圖來(lái)詳細(xì)說(shuō)明本發(fā)明的實(shí)施方式,借此對(duì)本發(fā)明如何應(yīng)用技術(shù)手段來(lái)解決問(wèn)題,并達(dá)成技術(shù)效果的實(shí)現(xiàn)過(guò)程能充分理解并據(jù)以實(shí)施。在附圖的流程圖示出的步驟可以在諸如一組計(jì)算機(jī)可執(zhí)行指令的不同計(jì)算機(jī)系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不同于此處的順序執(zhí)行所示出或描述的步驟。下面具體說(shuō)明算法的執(zhí)行過(guò)程。步驟一、數(shù)據(jù)采集。采集前n天主機(jī)負(fù)載的歷史數(shù)據(jù)。利用主機(jī)上的CPU檢測(cè)工具每隔5分鐘獲取CPU的負(fù)載數(shù)據(jù)。將采集到的數(shù)據(jù)集分為訓(xùn)練集(TrainingSet)、驗(yàn)證集(ValidationSet),以及預(yù)測(cè)集(PredictionSet),其中訓(xùn)練集用來(lái)訓(xùn)練得到EA-GMDH網(wǎng)絡(luò),驗(yàn)證集用來(lái)評(píng)估學(xué)到模型的優(yōu)劣,預(yù)測(cè)集則利用該模型對(duì)負(fù)載進(jìn)行預(yù)測(cè)。步驟二、相空間重構(gòu)。利用相空間重構(gòu)的方法對(duì)訓(xùn)練集、驗(yàn)證集和預(yù)測(cè)集進(jìn)行相空間重構(gòu),得到多元時(shí)間序列Yj=(Xj,Xj+τ,Xj+2τ,...,Xj+(m-1)τ),其中m為嵌入維,τ為時(shí)延。在本系統(tǒng)中,多元時(shí)間序列為Xi=(xT-H-1-(i-1)τ,...,xT-(i-1)τ),i=1,2,...m,其中T是預(yù)測(cè)點(diǎn),H為預(yù)測(cè)的時(shí)間長(zhǎng)度。步驟三、基于遺傳算法的數(shù)據(jù)分組處理。利用訓(xùn)練集計(jì)算EA-GMDH模型(圖1)的系數(shù),并用驗(yàn)證集的數(shù)據(jù)評(píng)估模型的好壞,通過(guò)遺傳算法的交叉和變異操作(圖2)進(jìn)行得到更多的染色體,從而進(jìn)行迭代直到找到合適的模型或者到達(dá)預(yù)定的迭代次數(shù)。步驟四、負(fù)載預(yù)測(cè)。將預(yù)測(cè)集上重構(gòu)的多元時(shí)間序列作為步驟三中得到的模型的輸入,利用該模型對(duì)主機(jī)的負(fù)載情況進(jìn)行預(yù)測(cè),從而得到CPU負(fù)載的變化情況。本領(lǐng)域的技術(shù)人員應(yīng)該明白,上述的本發(fā)明的系統(tǒng)結(jié)構(gòu)和各個(gè)步驟可以用通用的計(jì)算裝置來(lái)實(shí)現(xiàn),它們可以集中在單個(gè)的計(jì)算裝置上,或者分布在多個(gè)計(jì)算裝置組成的網(wǎng)絡(luò)上,可選地,它們可以用計(jì)算裝置可執(zhí)行的程序代碼來(lái)實(shí)現(xiàn),從而,可以將它們存儲(chǔ)在存儲(chǔ)裝置中由計(jì)算裝置來(lái)執(zhí)行,或者將他們分別制作成各個(gè)集成電路模塊,或者將它們中的多個(gè)模塊或步驟制作成單個(gè)集成電路模塊來(lái)實(shí)現(xiàn)。這樣,本發(fā)明不限制于任何特定的硬件和軟件結(jié)合。雖然本發(fā)明所示出和描述的實(shí)施方式如上,但是所述的內(nèi)容只是為了便于理解本發(fā)明而采用的實(shí)施方式,并非用以限定本發(fā)明。任何本發(fā)明所屬技術(shù)領(lǐng)域內(nèi)的技術(shù)人員,在不脫離本發(fā)明所揭露的精神和范圍的前提下,可以在實(shí)施的形式上以及細(xì)節(jié)上做任何的修改與變化,但本發(fā)明的專利保護(hù)范圍,仍須以所附的權(quán)利要求書(shū)所界定的范圍為準(zhǔn)。