專利名稱:集群負(fù)載預(yù)測(cè)方法及分布式集群管理系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及分布式集群系統(tǒng),特別涉及一種集群負(fù)載預(yù)測(cè)方法及其對(duì)應(yīng)的分布式集群管理系統(tǒng)
背景技術(shù):
隨著當(dāng)今社會(huì)計(jì)算機(jī)技術(shù)的不斷發(fā)展,分布式集群愈來(lái)愈廣泛地應(yīng)用于不同領(lǐng)域。然而,隨著集群的規(guī)模的不斷增大,傳統(tǒng)的集群管理方法已不能滿足規(guī)模集群的需求,因此,分布式大規(guī)模集群管理調(diào)度技術(shù)應(yīng)用而生,即分布式集群管理系統(tǒng)。根據(jù)該系統(tǒng)是否對(duì)集群負(fù)載進(jìn)行預(yù)測(cè),其工作流程可分為兩種類型第一種類型,系統(tǒng)對(duì)集群負(fù)載未進(jìn)行預(yù)測(cè)集群調(diào)度模塊直接從負(fù)載監(jiān)控模塊讀取負(fù)載數(shù)據(jù),然后對(duì)數(shù)據(jù)進(jìn)行解析,做出調(diào)度決策,再將調(diào)度決策發(fā)送到?jīng)Q策實(shí)施模塊,決策實(shí)施模塊根據(jù)其所處的實(shí)際物理環(huán)境對(duì)決策進(jìn)行實(shí)施執(zhí)行;第二種類型,系統(tǒng)對(duì)集群負(fù)載進(jìn)行預(yù)測(cè)集群調(diào)度模塊根據(jù)實(shí)際情況向負(fù)載預(yù)測(cè)模塊發(fā)送用戶預(yù)測(cè)需求信息,這種需求信息可以是人為配置的,也可以是系統(tǒng)根據(jù)集群當(dāng)前的負(fù)載情況做出的實(shí)時(shí)需求,負(fù)載預(yù)測(cè)模塊根據(jù)預(yù)測(cè)需求使用預(yù)測(cè)算法對(duì)負(fù)載進(jìn)行預(yù)測(cè),給出預(yù)測(cè)后的負(fù)載數(shù)據(jù),發(fā)送到集群調(diào)度模塊,集群調(diào)度模塊分析負(fù)載數(shù)據(jù),做出調(diào)度決策,發(fā)送到?jīng)Q策實(shí)施模塊進(jìn)行實(shí)際的實(shí)施執(zhí)行。在大規(guī)模分布式虛擬化集群資源調(diào)度領(lǐng)域中,由于業(yè)務(wù)的差異性造成對(duì)集群資源的使用不均衡,所以必須在間隔一定的時(shí)間內(nèi)對(duì)集群整體的資源做一次調(diào)度,使集群中物理資源的使用達(dá)到一個(gè)均衡的狀態(tài);或通過(guò)調(diào)度決策使集群中的物理資源利用率提高,同時(shí)減少一些不必要的物理資源,以達(dá)到節(jié)能減排的目的。在調(diào)度的過(guò)程中,若采用如前所述的不對(duì)負(fù)載進(jìn)行預(yù)測(cè)的系統(tǒng)時(shí),由于集群規(guī)模大,做一次調(diào)度決策以及決策實(shí)施的時(shí)間會(huì)比較長(zhǎng),使得監(jiān)控系統(tǒng)監(jiān)控到的集群的實(shí)際負(fù)載數(shù)據(jù)相對(duì)滯后,系統(tǒng)做出的調(diào)度決策也會(huì)出現(xiàn)滯后的情況,不能體現(xiàn)實(shí)時(shí)的負(fù)載特性。據(jù)此,調(diào)度決策不能用當(dāng)前的負(fù)載作為決策依據(jù)?,F(xiàn)有技術(shù)一種能夠?qū)贺?fù)載進(jìn)行預(yù)測(cè)分布式集群管理系統(tǒng)主要分為四個(gè)模塊數(shù)據(jù)監(jiān)控模塊、負(fù)載預(yù)測(cè)模塊、集群調(diào)度模塊以及決策實(shí)施模塊。負(fù)載預(yù)測(cè)模塊內(nèi)的負(fù)載預(yù)測(cè)過(guò)程基本分為預(yù)測(cè)模型的訓(xùn)練階段和預(yù)測(cè)階段。在預(yù)測(cè)模型的訓(xùn)練階段,通過(guò)對(duì)集群負(fù)載監(jiān)控模塊獲得的歷史數(shù)據(jù)進(jìn)行分析,使用滿足需求的預(yù)測(cè)算法建立學(xué)習(xí)模型,來(lái)挖掘資源數(shù)據(jù)變化的規(guī)律性,訓(xùn)練出一種預(yù)測(cè)模型;在預(yù)測(cè)階段,在給定單位時(shí)間粒度獲取監(jiān)測(cè)數(shù)據(jù),利用學(xué)習(xí)到的預(yù)測(cè)模型預(yù)測(cè)出下一時(shí)間段的性能資源數(shù)據(jù),為資源調(diào)度決策提供基本依據(jù)。目前的集群負(fù)載預(yù)測(cè)模型根據(jù)不同的原理主要有基于時(shí)間序列的指數(shù)加權(quán)移動(dòng)平均EWMA算法和基于集群負(fù)載規(guī)律性的神經(jīng)網(wǎng)絡(luò)算法BP-NN,以及一些其他的預(yù)測(cè)算法。這些算法都是針對(duì)不同的負(fù)載規(guī)律進(jìn)行預(yù)測(cè),且各自具有不同優(yōu)缺點(diǎn)。由于同一集群環(huán)境在不同的應(yīng)用場(chǎng)景下,業(yè)務(wù)對(duì)集群的資源需求有很大差異,會(huì)呈現(xiàn)出不同的業(yè)務(wù)規(guī)律性,而預(yù)測(cè)這些不同規(guī) 律性的集群負(fù)載需要采用不同的預(yù)測(cè)算法?,F(xiàn)有技術(shù)對(duì)上述不同算法的建立是針對(duì)每一種不同的規(guī)律都開發(fā)出不同的接口以滿足集群負(fù)載預(yù)測(cè)的需求。這種做法雖然可以暫時(shí)解決問(wèn)題,但缺乏自適應(yīng)性和靈活性。針對(duì)不同的業(yè)務(wù)規(guī)律需要選擇不同的預(yù)測(cè)算法來(lái)滿足負(fù)載預(yù)測(cè)需求,按當(dāng)前的做法不能自適應(yīng)的去選擇相應(yīng)的算法,需要手動(dòng)修改代碼完成相關(guān)需求;當(dāng)有新的負(fù)載規(guī)律出現(xiàn)時(shí),需要重新開發(fā)獨(dú)立的接口以滿足需求,而開發(fā)過(guò)程中需要重新考慮集群環(huán)境及負(fù)載類型等問(wèn)題,做了很多不必要的重復(fù)工作。
發(fā)明內(nèi)容
本發(fā)明要解決上述技術(shù)所存在的缺陷,提供一種自適應(yīng)的算法可插拔的分布式集群負(fù)載預(yù)測(cè)方法,彌補(bǔ)了現(xiàn)有預(yù)測(cè)方法所存在的不能自適應(yīng)選擇算法和缺乏靈活性的問(wèn)題;相應(yīng)地,提供了一種分布式集群管理系統(tǒng)。一種集群負(fù)載預(yù)測(cè)方法,應(yīng)用于分布式集群系統(tǒng),包括步驟在系統(tǒng)中設(shè)置預(yù)測(cè)算法存儲(chǔ)單元與算法池;預(yù)先在算法池內(nèi)儲(chǔ)存能夠?qū)贺?fù)載進(jìn)行預(yù)測(cè)的預(yù)測(cè)算法及其相關(guān)參數(shù)信息,并對(duì)算法池內(nèi)的預(yù)測(cè)算法及其相關(guān)參數(shù)信息實(shí)時(shí)更新;接收外部寫入的用戶預(yù)測(cè)需求信息,解析該用戶預(yù)測(cè)需求信息并將該信息存儲(chǔ)于系統(tǒng)中;將已解析的用戶預(yù)測(cè)需求信息逐一地與算法池內(nèi)存儲(chǔ)的預(yù)測(cè)算法進(jìn)行匹配,選擇出匹配程度最大的預(yù)測(cè)算法并將該預(yù)測(cè)算法及其相關(guān)參數(shù)信息更新至預(yù)測(cè)算法存儲(chǔ)單元;獲取系統(tǒng)提供的負(fù)載數(shù)據(jù);基于預(yù)測(cè)算法存儲(chǔ)單元內(nèi)的預(yù)測(cè)算法及其相關(guān)參數(shù)信息建立負(fù)載預(yù)測(cè)模型,利用負(fù)載數(shù)據(jù)訓(xùn)練負(fù)載預(yù)測(cè)模型;使用訓(xùn)練好的負(fù)載預(yù)測(cè)模型對(duì)集群負(fù)載進(jìn)行預(yù)測(cè),得到預(yù)測(cè)結(jié)果。所述的用戶預(yù)測(cè)需求信息包括用戶所需的預(yù)測(cè)精度信息、預(yù)測(cè)規(guī)律類型信息、預(yù)測(cè)周期信息以及預(yù)測(cè)算法特性信息。進(jìn)一步地,所述的接收外部寫入的用戶預(yù)測(cè)需求信息中,接收到的用戶預(yù)測(cè)需求信息是以鍵-值對(duì)的方式或以XML格式存儲(chǔ)于系統(tǒng)的配置文件中。進(jìn)一步地,所述的解析該用戶預(yù)測(cè)需求信息并將該信息存儲(chǔ)于系統(tǒng)中,包括對(duì)以鍵-值對(duì)的方式存儲(chǔ)于配置文件中的用戶預(yù)測(cè)需求信息,從配置文件中逐條讀取所有的用戶預(yù)測(cè)需求信息并判斷讀取的信息是否合法若讀取的信息為合法輸入,則按鍵-值分隔符對(duì)該信息進(jìn)行分割并將分割后的鍵信息和值信息分別存儲(chǔ)于系統(tǒng)中;若讀入的信息為非法輸入則系統(tǒng)報(bào)錯(cuò);如此反復(fù),直到配置文件的末尾;對(duì)以XML格式存儲(chǔ)于配置文件中的用戶預(yù)測(cè)需求信息,首先解析用戶預(yù)測(cè)需求信息的數(shù)據(jù)根節(jié)點(diǎn),并將根節(jié)點(diǎn)及其屬性信息存儲(chǔ)于系統(tǒng)中,再以循環(huán)遍歷的方式解析用戶預(yù)測(cè)需求信息的子節(jié)點(diǎn)及其屬性信息,并存儲(chǔ)至系統(tǒng)中;以此類推,直到所有的用戶預(yù)測(cè)需求信息的節(jié)點(diǎn)信息都已解析完畢。
進(jìn)一步地,將已解析的用戶預(yù)測(cè)需求信息逐一地與算法池內(nèi)存儲(chǔ)的預(yù)測(cè)算法進(jìn)行匹配,選擇出匹配程度最大的預(yù)測(cè)算法并將該預(yù)測(cè)算法及其相關(guān)參數(shù)信息更新至預(yù)測(cè)算法存儲(chǔ)單元,包括步驟讀取第一條用戶預(yù)測(cè)需求信息,并以此為關(guān)鍵詞搜尋算法池內(nèi)匹配該信息的預(yù)測(cè)算法;當(dāng)遇到第一個(gè)與該信息適配的預(yù)測(cè)算法時(shí),停止搜索;
針對(duì)該預(yù)測(cè)算法匹配下一條用戶預(yù)測(cè)需求信息;若該預(yù)測(cè)算法對(duì)所有的用戶預(yù)測(cè)需求信息逐一適配,將該預(yù)測(cè)算法及其相關(guān)參數(shù)信息更新至預(yù)測(cè)算法儲(chǔ)存單元;若該預(yù)測(cè)算法對(duì)所有的用戶預(yù)測(cè)需求信息不能逐一適配,則將該預(yù)測(cè)算法及其相關(guān)參數(shù)信息備份于系統(tǒng)中,并對(duì)算法池內(nèi)未經(jīng)搜索的預(yù)測(cè)算法重復(fù)上述步驟;若算法池內(nèi)所有的預(yù)測(cè)算法均不能對(duì)所有的用戶預(yù)測(cè)需求逐一適配,選擇備份于系統(tǒng)中的預(yù)測(cè)算法中與所有的用戶預(yù)測(cè)需求信息最大匹配者,并將該預(yù)測(cè)算法及其相關(guān)參數(shù)信息更新至預(yù)測(cè)算法儲(chǔ)存單元。本發(fā)明的集群負(fù)載預(yù)測(cè)方法具有以下技術(shù)效果一、支持用戶預(yù)測(cè)需求可配置,通過(guò)在系統(tǒng)中寫入用戶的預(yù)測(cè)需求,且可以根據(jù)該用戶的預(yù)測(cè)需求,例如用戶對(duì)于負(fù)載預(yù)測(cè)的預(yù)測(cè)精度以及預(yù)測(cè)特性等預(yù)測(cè)需求完成對(duì)于負(fù)載的預(yù)測(cè);二、支持預(yù)測(cè)算法的自適應(yīng)選擇,根據(jù)已解析的用戶預(yù)測(cè)需求信息對(duì)算法池中的預(yù)測(cè)算法進(jìn)行匹配,實(shí)現(xiàn)系統(tǒng)自適應(yīng)地選擇與用戶預(yù)測(cè)需求信息最大匹配的預(yù)測(cè)算法;三、支持預(yù)測(cè)算法的可插拔,本發(fā)明的方法能夠?qū)λ惴ǔ貎?nèi)的預(yù)測(cè)算法及其相關(guān)參數(shù)信息實(shí)時(shí)更新,即對(duì)系統(tǒng)不必要的預(yù)測(cè)算法進(jìn)行注銷及刪除,對(duì)新增的預(yù)測(cè)算法進(jìn)行注冊(cè)及增加,簡(jiǎn)單有效;除上述三個(gè)有益的技術(shù)效果外,本發(fā)明的方法還具有算法可控性強(qiáng)和可擴(kuò)展性強(qiáng)的特性;除了分布式集群管理系統(tǒng)中的負(fù)載預(yù)測(cè)應(yīng)用場(chǎng)景,本發(fā)明的方法可以應(yīng)用到其他有類似需求的場(chǎng)景中。一種分布式集群管理系統(tǒng),包括集群調(diào)度模塊、負(fù)載監(jiān)控模塊、負(fù)載預(yù)測(cè)模塊以及決策實(shí)施模塊,其特征在于,所述的負(fù)載預(yù)測(cè)模塊包括配置文件、算法控制器以及算法執(zhí)行器;所述的集群調(diào)度模塊,將外部輸入的用戶預(yù)測(cè)需求信息存儲(chǔ)于配置文件;所述的算法控制器,包括存儲(chǔ)能夠?qū)贺?fù)載進(jìn)行預(yù)測(cè)的預(yù)測(cè)算法及其相關(guān)參數(shù)信息的算法池;所述的算法控制器對(duì)算法池內(nèi)的預(yù)測(cè)算法及其相關(guān)參數(shù)信息實(shí)時(shí)更新,并解析配置文件中的用戶預(yù)測(cè)需求信息;將已解析的用戶預(yù)測(cè)需求信息逐一地與算法池內(nèi)儲(chǔ)存的預(yù)測(cè)算法進(jìn)行匹配,選擇匹配程度最大的預(yù)測(cè)算法,并將該預(yù)測(cè)算法及其相關(guān)參數(shù)信息發(fā)送至算法執(zhí)行器;所述的算法執(zhí)行器,接收預(yù)測(cè)算法及其相關(guān)參數(shù)信息,并請(qǐng)求負(fù)載監(jiān)控模塊或外部設(shè)備監(jiān)測(cè)到的負(fù)載數(shù)據(jù);根據(jù)該預(yù)測(cè)算法及其相關(guān)參數(shù)信息建立負(fù)載預(yù)測(cè)模型,利用請(qǐng)求到的負(fù)載數(shù)據(jù)訓(xùn)練負(fù)載預(yù)測(cè)模型;使用訓(xùn)練好的負(fù)載預(yù)測(cè)模型對(duì)集群負(fù)載進(jìn)行預(yù)測(cè),并將得到預(yù)測(cè)結(jié)果返回至集群調(diào)度模塊;所述的集群調(diào)度模塊,接收該預(yù)測(cè)結(jié)果并將該預(yù)測(cè)結(jié)果作為調(diào)度決策的參考,輸出調(diào)度決策至決策實(shí)施模塊;所述的決策實(shí)施模塊,接收該調(diào)度決策,根據(jù)系統(tǒng)所處的實(shí)際物理環(huán)境執(zhí)行調(diào)度決策。所述的用戶預(yù)測(cè)需求信息包括用戶所需的預(yù)測(cè)精度信息、預(yù)測(cè)規(guī)律類型信息、預(yù)測(cè)周期信息以及預(yù)測(cè)算法特性信息。進(jìn)一步地,所述的用戶預(yù)測(cè)需求信息以鍵-值對(duì)的方式或以XML格式存儲(chǔ)于配置文件中。進(jìn)一步地,所述的算法控制器包括信息需求存儲(chǔ)單元;對(duì)以鍵-值對(duì)的方式存儲(chǔ)于配置文件中的用戶預(yù)測(cè)需求信息,所述的算法控制器從配置文件中逐條讀取所有的用戶預(yù)測(cè)需求信息并判斷讀取的信息是否合法若讀取的信息為合法輸入,則按鍵-值分隔符對(duì)該信息進(jìn)行分割并將分割后的鍵信息和值信息分別存儲(chǔ)于所述的信息存儲(chǔ)單元中;若讀入的信息為非法輸入則算法控制器報(bào)錯(cuò);如此反復(fù),直到配置文件的末尾;對(duì)以XML格式存儲(chǔ)于配置文件中的用戶預(yù)測(cè)需求信息,所述的算法控制器首先解析用戶預(yù)測(cè)需求信息的數(shù)據(jù)根節(jié)點(diǎn),并將根節(jié)點(diǎn)及其屬性信息存儲(chǔ)于所述的信息存儲(chǔ)單元中,再以循環(huán)遍歷的方式解析用戶預(yù)測(cè)需求信息的子節(jié)點(diǎn)及其屬性信息,并存儲(chǔ)至信息存儲(chǔ)單元中;以此類推,直到所有的用戶預(yù)測(cè)需求信息的節(jié)點(diǎn)信息都已解析完畢。進(jìn)一步地,所述的算法控制器包括預(yù)測(cè)算法儲(chǔ)存單元,所述的算法控制器實(shí)現(xiàn)以下步驟讀取第一條用戶預(yù)測(cè)需求信息,并以此為關(guān)鍵詞搜尋算法池內(nèi)匹配該信息的預(yù)測(cè)算法;當(dāng)遇到第一個(gè)與該信息適配的預(yù)測(cè)算法時(shí),停止搜索;針對(duì)該預(yù)測(cè)算法匹配下一條用戶預(yù)測(cè)需求信息;若該預(yù)測(cè)算法對(duì)所有的用戶預(yù)測(cè)需求信息逐一適配,將該預(yù)測(cè)算法及其相關(guān)參數(shù)信息更新至預(yù)測(cè)算法儲(chǔ)存單元;若該預(yù)測(cè)算法對(duì)所有的用戶預(yù)測(cè)需求信息不能逐一適配,則將該預(yù)測(cè)算法及其相關(guān)參數(shù)信息備份于系統(tǒng)中,并對(duì)算法池內(nèi)未經(jīng)搜索的預(yù)測(cè)算法重復(fù)上述步驟;若算法池內(nèi)所有的預(yù)測(cè)算法均不能對(duì)所有的用戶預(yù)測(cè)需求逐一適配,選擇備份于系統(tǒng)中的預(yù)測(cè)算法中與所有的用戶預(yù)測(cè)需求信息最大匹配者,并將該預(yù)測(cè)算法及其相關(guān)參數(shù)信息更新至預(yù)測(cè)算法儲(chǔ)存單元。在算法控制器中需完成對(duì)配置文件進(jìn)行解析,以獲取配置文件中寫入的用戶預(yù)測(cè)需求信息,所以算法控制器中所能解析的文件的格式必須和配置文件的格式一致;算法控制器根據(jù)解析的配置文件的需求信息選擇滿足條件的預(yù)測(cè)算法,并將與所選算法相關(guān)的參數(shù)信息一并發(fā)送到算法執(zhí)行器,實(shí)現(xiàn)了本發(fā)明系統(tǒng)中預(yù)測(cè)算法的自適應(yīng)選擇;另外,算法控制器還負(fù)責(zé)新的預(yù)測(cè)算法的注冊(cè)/和注銷,當(dāng)有新的滿足需求的預(yù)測(cè)算法被實(shí)現(xiàn)時(shí),可以通過(guò)算法控制器進(jìn)行注冊(cè),算法控制器將其信息添加到可供選擇的預(yù)測(cè)算法池中,以供選擇;當(dāng)有的算法已不能滿足當(dāng)前選擇或?yàn)榱颂嵘惴ㄟx擇效率時(shí),可以通過(guò)算法控制器將其在算法池中進(jìn)行注銷,則系統(tǒng)在進(jìn)行下一次預(yù)測(cè)算法選擇時(shí)將會(huì)屏蔽此算法的信息,即對(duì)算法池內(nèi)的預(yù)測(cè)算法及其相關(guān)參數(shù)信息實(shí)時(shí)更新,實(shí)現(xiàn)了本發(fā)明系統(tǒng)中算法池內(nèi)預(yù)測(cè)算法的可插拔。算法執(zhí)行器根據(jù)算法控制器提供的預(yù)測(cè)算法及相關(guān)的參數(shù)信息,使用歷史的負(fù)載數(shù)據(jù)對(duì)預(yù)測(cè)模型進(jìn)行學(xué)習(xí)和訓(xùn)練,當(dāng)訓(xùn)練完成后,可以將監(jiān)測(cè)到的負(fù)載數(shù)據(jù)輸入到預(yù)測(cè)模型,得到預(yù)測(cè)后的負(fù)載數(shù)據(jù)輸出值,輸出數(shù)據(jù)可用做集群資源調(diào)度決策的參考依據(jù)或做其他處理;另外,可以先將針對(duì)某一預(yù)測(cè)算法的預(yù)測(cè)模型存儲(chǔ)起來(lái),等需要用到這種預(yù)測(cè)模型時(shí)可以直接使用存儲(chǔ)的預(yù)測(cè)模型,這樣可以節(jié)省預(yù)測(cè)模型學(xué)習(xí)和訓(xùn)練所帶來(lái)的消耗,提高效率。綜上,本發(fā)明的技術(shù)方案應(yīng)用于集群系統(tǒng)中,支持預(yù)測(cè)需求可配置、支持預(yù)測(cè)算法的自適應(yīng)選擇以及支持預(yù)測(cè)算法的可插拔;同時(shí)本發(fā)明的技術(shù)方案具有預(yù)測(cè)算法可控性強(qiáng)和可擴(kuò)展性強(qiáng)的特性。
圖I為本發(fā)明實(shí)施例I的集群負(fù)載預(yù)測(cè)方法的流程示意圖;圖2為本發(fā)明實(shí)施例3的分布式集群管理系統(tǒng)的結(jié)構(gòu)示意圖。
具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施過(guò)程作具體闡述。實(shí)施例I如圖I所示的一種集群負(fù)載預(yù)測(cè)方法,包括步驟SI在系統(tǒng)中設(shè)置預(yù)測(cè)算法存儲(chǔ)單元與算法池。S2預(yù)先在算法池內(nèi)儲(chǔ)存能夠?qū)贺?fù)載進(jìn)行預(yù)測(cè)的預(yù)測(cè)算法及其相關(guān)參數(shù)信息,并對(duì)算法池內(nèi)的預(yù)測(cè)算法及其相關(guān)參數(shù)信息實(shí)時(shí)更新。S3接收外部寫入的用戶預(yù)測(cè)需求信息,所述的用戶預(yù)測(cè)需求信息包括用戶所需的預(yù)測(cè)精度信息、預(yù)測(cè)規(guī)律類型信息、預(yù)測(cè)周期信息以及預(yù)測(cè)算法特性信息;接收到的用戶預(yù)測(cè)需求信息是以鍵-值對(duì)的方式存儲(chǔ)于系統(tǒng)的配置文件中的;接收到的用戶預(yù)測(cè)需求信息進(jìn)行解析并儲(chǔ)存,具體包括步驟S301從配置文件中逐條讀取所有的用戶預(yù)測(cè)需求信息并判斷讀取的信息是否合法若讀取的信息為合法輸入,則按鍵-值分隔符對(duì)該信息進(jìn)行分割并將分割后的鍵信息和值信息分別存儲(chǔ)于系統(tǒng)中;S302重復(fù)S301,直到配置文件的末尾;若S301中讀入的信息為非法輸入則系統(tǒng)報(bào)錯(cuò),并可以跳出系統(tǒng)的步驟,等待外部重新寫入用戶預(yù)測(cè)需求信息;S4將已解析的用戶預(yù)測(cè)需求信息逐一地與算法池內(nèi)存儲(chǔ)的預(yù)測(cè)算法進(jìn)行匹配,選擇出匹配程度最大的預(yù)測(cè)算法并將該預(yù)測(cè)算法及其相關(guān)參數(shù)信息更新至預(yù)測(cè)算法存儲(chǔ)單元;具體包括步驟S401讀取第一條用戶預(yù)測(cè)需求信息,并以此為關(guān)鍵詞搜尋算法池內(nèi)匹配該信息的預(yù)測(cè)算法;當(dāng)遇到第一個(gè)與該信息適配的預(yù)測(cè)算法時(shí),停止搜索;S402針對(duì)該預(yù)測(cè)算法匹配下一條用戶預(yù)測(cè)需求信息;
S403若該預(yù)測(cè)算法對(duì)所有的用戶預(yù)測(cè)需求信息逐一適配,將該預(yù)測(cè)算法及其相關(guān)參數(shù)信息更新至預(yù)測(cè)算法儲(chǔ)存單元;S404若該預(yù)測(cè)算法對(duì)所有的用戶預(yù)測(cè)需求信息不能逐一適配,則將該預(yù)測(cè)算法及其相關(guān)參數(shù)信息備份于系統(tǒng)中,并對(duì)算法池內(nèi)未經(jīng)搜索的預(yù)測(cè)算法重復(fù)S401以及S402 ;S405若算法池內(nèi)所有的預(yù)測(cè)算法均不能對(duì)所有的用戶預(yù)測(cè)需求逐一適配,選擇備份于系統(tǒng)中的預(yù)測(cè)算法中與所有的用戶預(yù)測(cè)需求信息最大匹配者,并將該預(yù)測(cè)算法及其相關(guān)參數(shù)信息更新至預(yù)測(cè)算法儲(chǔ)存單元。
S5獲取系統(tǒng)提供的負(fù)載數(shù)據(jù)。S6基于預(yù)測(cè)算法存儲(chǔ)單元內(nèi)的預(yù)測(cè)算法及其相關(guān)參數(shù)信息建立負(fù)載預(yù)測(cè)模型,利用負(fù)載數(shù)據(jù)訓(xùn)練負(fù)載預(yù)測(cè)模型。S7使用訓(xùn)練好的負(fù)載預(yù)測(cè)模型對(duì)集群負(fù)載進(jìn)行預(yù)測(cè),得到預(yù)測(cè)結(jié)果。實(shí)施例2本實(shí)施例的具體步驟與實(shí)施例I 一致,但在步驟S3中,接收到的用戶預(yù)測(cè)需求信息是以XML格式存儲(chǔ)于系統(tǒng)的配置文件中的,因此在對(duì)接收到的用戶預(yù)測(cè)需求信息進(jìn)行解析并儲(chǔ)存時(shí),具體包括步驟解析用戶預(yù)測(cè)需求信息的數(shù)據(jù)根節(jié)點(diǎn),并將根節(jié)點(diǎn)及其屬性信息存儲(chǔ)于系統(tǒng)中,再以循環(huán)遍歷的方式解析用戶預(yù)測(cè)需求信息的子節(jié)點(diǎn)及其屬性信息,并存儲(chǔ)至系統(tǒng)中;以此類推,直到所有的用戶預(yù)測(cè)需求信息的節(jié)點(diǎn)信息都已解析完畢。在實(shí)施例I和實(shí)施例2中,算法池可以具體為指定的系統(tǒng)目錄下的文件或在算法信息量比較大的情況下選擇的數(shù)據(jù)庫(kù),即預(yù)測(cè)算法及相關(guān)參數(shù)信息以一定格式存儲(chǔ)于指定系統(tǒng)目錄下的文件或者在算法信息量比較大的情況下存儲(chǔ)于數(shù)據(jù)庫(kù)。預(yù)測(cè)算法的種類很多,能夠應(yīng)用到分布式集群系統(tǒng)負(fù)載的預(yù)測(cè)算法主要包括基于模擬人腦訓(xùn)練活動(dòng)的神經(jīng)網(wǎng)絡(luò)算法BP-NN (Back Propagation Neural Network)和基于時(shí)間序列的指數(shù)加權(quán)移動(dòng)平均算法 EWMA(Exponentially Weighted Moving-Average) 寫入系統(tǒng)的用戶預(yù)測(cè)需求信息可以以鍵-值對(duì)的方式或以XML格式存儲(chǔ)在配置文件中。在對(duì)配置文件中的用戶預(yù)測(cè)需求信息進(jìn)行解析時(shí),首先需要判斷配置文件的格式類型如果需求信息是以鍵-值對(duì)的方式存儲(chǔ)(本發(fā)明的實(shí)施例I采用此種存儲(chǔ)方式),則從配置文件中逐條讀入數(shù)據(jù)信息并對(duì)其進(jìn)行解析若讀取的信息為合法輸入,則按鍵-值分隔符對(duì)信息進(jìn)行分割并將分割后的鍵信息和值信息分別存儲(chǔ)在預(yù)先設(shè)計(jì)好的數(shù)據(jù)結(jié)構(gòu)中;若讀入的信息為非法輸入則系統(tǒng)報(bào)錯(cuò);如此反復(fù),直到文件末尾;如果需求信息是以XML格式存儲(chǔ)(本發(fā)明的實(shí)施例2采用此種存儲(chǔ)方式),則首先解析數(shù)據(jù)根節(jié)點(diǎn),并將根節(jié)點(diǎn)及其屬性信息存儲(chǔ)到預(yù)先設(shè)計(jì)好的數(shù)據(jù)結(jié)構(gòu)中,再以循環(huán)遍歷的方式解析子節(jié)點(diǎn)及其屬性信息,并存儲(chǔ)到相應(yīng)的數(shù)據(jù)結(jié)構(gòu)中。依次類推,直到所有的節(jié)點(diǎn)信息都已解析完。配置文件準(zhǔn)確的解析完后,預(yù)測(cè)需求信息便存儲(chǔ)在預(yù)先設(shè)計(jì)好的數(shù)據(jù)結(jié)構(gòu)中,當(dāng)需要用到預(yù)測(cè)需求信息時(shí)可以直接通過(guò)相應(yīng)的數(shù)據(jù)結(jié)構(gòu)索引訪問(wèn)到所需的預(yù)測(cè)需求信息。
根據(jù)已解析的用戶預(yù)測(cè)需求信息逐一地從算法池中匹配預(yù)測(cè)算法,直到選擇出與用戶預(yù)測(cè)需求信息最為匹配的預(yù)測(cè)算法?;趯?shí)施例I以及實(shí)施例2的相關(guān)步驟,在具體的實(shí)施過(guò)程中可進(jìn)一步遵循如下步驟a算法控制器讀取第一條預(yù)測(cè)需求信息,并以此為關(guān)鍵詞從預(yù)測(cè)算法文件或數(shù)據(jù)庫(kù)中匹配;b當(dāng)遇到第一個(gè)匹配到的算法時(shí),存儲(chǔ)到相應(yīng)的預(yù)測(cè)算法存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)中(此數(shù)據(jù)結(jié)構(gòu)只存儲(chǔ)最大匹配的預(yù)測(cè)算法信息),并針對(duì)此算法匹配下一條預(yù)測(cè)需求信息,若能繼續(xù)匹配,則依次類推,直到所有的預(yù)測(cè)信息完全匹配或存在某一條預(yù)測(cè)需求信息不能匹配;若所有的預(yù)測(cè)信息都已完全匹配,則將匹配后的算法信息更新到預(yù)測(cè)算法存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)中,提示匹配成功,退出算法選擇流程; 若存在某條預(yù)測(cè)需求信息不能匹配,則先將預(yù)測(cè)算法數(shù)據(jù)結(jié)構(gòu)中的已匹配的算法信息進(jìn)行備份,并清空預(yù)測(cè)算法存儲(chǔ)數(shù)據(jù)結(jié)構(gòu),再在未進(jìn)行匹配的算法信息中,繼續(xù)從步驟b開始執(zhí)行;c若預(yù)測(cè)算法存儲(chǔ)文件或數(shù)據(jù)庫(kù)中的所有算法都不能完全匹配預(yù)測(cè)需求信息時(shí),算法控制器根據(jù)用戶需求的強(qiáng)烈程度提供三種選擇i在用戶對(duì)預(yù)測(cè)算法不做要求的情況下(使用默認(rèn)的配置文件),算法控制器選擇默認(rèn)的預(yù)測(cè)算法并將其信息更新到預(yù)測(cè)算法存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)中,提示使用默認(rèn)預(yù)測(cè)算法,退出預(yù)測(cè)算法選擇流程;i i在用戶對(duì)預(yù)測(cè)算法需求比較溫和的情況下,算法控制器比較預(yù)測(cè)算法存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)和備份數(shù)據(jù)結(jié)構(gòu)中最大匹配的預(yù)測(cè)算法信息并更新到預(yù)測(cè)算法存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)中,提示使用溫和選擇模式,退出預(yù)測(cè)算法選擇流程;iii在用戶對(duì)預(yù)測(cè)算法需求強(qiáng)烈的情況下,由于預(yù)測(cè)算法存儲(chǔ)文件或數(shù)據(jù)庫(kù)中沒(méi)有能夠滿足要求的算法,則清空預(yù)測(cè)算法存儲(chǔ)數(shù)據(jù)結(jié)構(gòu)和備份數(shù)據(jù)結(jié)構(gòu),提示算法選擇失敗,退出預(yù)測(cè)算法選擇流程;d對(duì)預(yù)測(cè)算法的選擇返回結(jié)果,進(jìn)行相應(yīng)處理。實(shí)施例3如圖2所示的一種分布式集群管理系統(tǒng),包括集群調(diào)度模塊I、負(fù)載監(jiān)控模塊2、負(fù)載預(yù)測(cè)模塊3以及決策實(shí)施模塊4,負(fù)載預(yù)測(cè)模塊3進(jìn)一步包括配置文件301、算法控制器302以及算法執(zhí)行器303。集群調(diào)度模塊1,將外部輸入的用戶預(yù)測(cè)需求信息存儲(chǔ)于配置文件301,具體儲(chǔ)存的形式在具體實(shí)施過(guò)程中可以為鍵-值對(duì)的方式或以XML格式。算法控制器302,包括存儲(chǔ)能夠?qū)贺?fù)載進(jìn)行預(yù)測(cè)的預(yù)測(cè)算法及其相關(guān)參數(shù)信息的算法池320 ;算法控制器302對(duì)算法池320內(nèi)的預(yù)測(cè)算法及其相關(guān)參數(shù)信息實(shí)時(shí)更新,并解析配置文件301中的用戶預(yù)測(cè)需求信息;將已解析的用戶預(yù)測(cè)需求信息逐一地與算法池320內(nèi)儲(chǔ)存的預(yù)測(cè)算法進(jìn)行匹配,選擇匹配程度最大的預(yù)測(cè)算法,并將該預(yù)測(cè)算法及其相關(guān)參數(shù)信息發(fā)送至算法執(zhí)行器303。算法執(zhí)行器303,接收預(yù)測(cè)算法及其相關(guān)參數(shù)信息,并請(qǐng)求負(fù)載監(jiān)控模塊2監(jiān)測(cè)到的負(fù)載數(shù)據(jù),該負(fù)載數(shù)據(jù)也可以由外部設(shè)備提供;算法控制器302得到負(fù)載數(shù)據(jù)后,根據(jù)該預(yù)測(cè)算法及其相關(guān)參數(shù)信息建立負(fù)載預(yù)測(cè)模型,并利用該負(fù)載數(shù)據(jù)訓(xùn)練負(fù)載預(yù)測(cè)模型;使用訓(xùn)練好的負(fù)載預(yù)測(cè)模型對(duì)集群負(fù)載進(jìn)行預(yù)測(cè),并將得到預(yù)測(cè)結(jié)果返回至集群調(diào)度模塊I。集群調(diào)度模塊1,接收該預(yù)測(cè)結(jié)果并將該預(yù)測(cè)結(jié)果作為調(diào)度決策的參考,輸出調(diào)度決策至決策實(shí)施模塊4。決策實(shí)施模塊4,接收該調(diào)度決策,根據(jù)系統(tǒng)所處的實(shí)際物理環(huán)境執(zhí)行調(diào)度決策。本實(shí)施例輸入的用戶預(yù)測(cè)需求信息包括用戶所需的預(yù)測(cè)精度信息、預(yù)測(cè)規(guī)律類型信息、預(yù)測(cè)周期信息以及預(yù)測(cè)算法特性信息。算法控制器302內(nèi)設(shè)有信息需求存儲(chǔ)單元321,用以儲(chǔ)存已解析的用戶預(yù)測(cè)需求信息;因配置文件301中寫入的用戶預(yù)測(cè)需求信息的儲(chǔ)存方式有所不同,算法控制器302的具體解析過(guò)程包括如下兩種方式對(duì)以鍵-值對(duì)的方式存儲(chǔ)于配置文件301中的用戶預(yù)測(cè)需求信息,算法控制器302從配置文件301中逐條讀取所有的用戶預(yù)測(cè)需求信息并判斷讀取的信息是否合法若讀取的信息為合法輸入,則算法控制器302按鍵-值分隔符對(duì)該信息進(jìn)行分割并將分割后的鍵信息和值信息分別存儲(chǔ)于信息存儲(chǔ)單元321中;若讀入的信息為非法輸入則算法控制器302報(bào)錯(cuò);如此反復(fù),直到配置文件301的末尾。對(duì)以XML格式存儲(chǔ)于配置文件301中的用戶預(yù)測(cè)需求信息,算法控制器302首先解析用戶預(yù)測(cè)需求信息的數(shù)據(jù)根節(jié)點(diǎn),并將根節(jié)點(diǎn)及其屬性信息存儲(chǔ)于信息存儲(chǔ)單元321中,再以循環(huán)遍歷的方式解析用戶預(yù)測(cè)需求信息的子節(jié)點(diǎn)及其屬性信息,并存儲(chǔ)至信息存儲(chǔ)單元321中;以此類推,直到所有的用戶預(yù)測(cè)需求信息的節(jié)點(diǎn)信息都已解析完畢。算法控制器302還包括預(yù)測(cè)算法儲(chǔ)存單元322,用以儲(chǔ)存最大匹配的預(yù)測(cè)算法及其相關(guān)參數(shù)信息。算法控制器302具體的匹配流程包括以下步驟讀取第一條用戶預(yù)測(cè)需求信息,并以此為關(guān)鍵詞搜尋算法池內(nèi)匹配該信息的預(yù)測(cè)算法;當(dāng)遇到第一個(gè)與該信息適配的預(yù)測(cè)算法時(shí),停止搜索;針對(duì)該預(yù)測(cè)算法匹配下一條用戶預(yù)測(cè)需求信息若該預(yù)測(cè)算法對(duì)所有的用戶預(yù)測(cè)需求信息逐一適配,將該預(yù)測(cè)算法及其相關(guān)參數(shù)信息更新至預(yù)測(cè)算法儲(chǔ)存單元322 ;若該預(yù)測(cè)算法對(duì)所有的用戶預(yù)測(cè)需求信息不能逐一適配,則將該預(yù)測(cè)算法及其相關(guān)參數(shù)信息備份于系統(tǒng)中,并對(duì)算法池320內(nèi)未經(jīng)搜索的預(yù)測(cè)算法重復(fù)上述步驟;若算法池內(nèi)所有的預(yù)測(cè)算法均不能對(duì)所有的用戶預(yù)測(cè)需求逐一適配,選擇備份于系統(tǒng)中的預(yù)測(cè)算法中與所有的用戶預(yù)測(cè)需求信息最大匹配者,并將該預(yù)測(cè)算法及其相關(guān)參數(shù)信息更新至預(yù)測(cè)算法儲(chǔ)存單元322。 在本實(shí)施例中,算法池可以具體為指定的系統(tǒng)目錄下的文件或在算法信息量比較大的情況下選擇的數(shù)據(jù)庫(kù),即預(yù)測(cè)算法及相關(guān)參數(shù)信息以一定格式存儲(chǔ)于指定系統(tǒng)目錄下的文件或者在算法信息量比較大的情況下存儲(chǔ)于數(shù)據(jù)庫(kù)。預(yù)測(cè)算法的種類很多,能夠應(yīng)用到分布式集群系統(tǒng)負(fù)載的預(yù)測(cè)算法主要包括基于模擬人腦訓(xùn)練活動(dòng)的神經(jīng)網(wǎng)絡(luò)算法BP-NN(Back Propagation Neural Network)和基于時(shí)間序列的指數(shù)加權(quán)移動(dòng)平均算法EWMA(Exponentially Weighted Moving-Average)將本實(shí)施例的分布式集群管理系統(tǒng)用于具體物理機(jī)調(diào)度的部分關(guān)鍵實(shí)驗(yàn)過(guò)程如下用戶預(yù)測(cè)需求信息為預(yù)測(cè)周期為3、精度為0. 001 ;具體將該系統(tǒng)應(yīng)用于2臺(tái)物理機(jī),負(fù)載監(jiān)測(cè)模塊2提供該2臺(tái)物理機(jī)的負(fù)載數(shù)據(jù);集群調(diào)度模塊I將用戶預(yù)測(cè)需求信息輸入到xml格式的配置文件301中
< xm1 version=" 1.0" encoding="UTF-8" >
〈PREDICT VERSION=mO.I">
〈CYCLELENGTH VALUE="3M/>
〈PRECISION VALUE=mO.001"/>
〈/PREDICT〉算法控制器302根據(jù)用戶預(yù)測(cè)需求信息選擇出滿足需求的預(yù)測(cè)算法,即神經(jīng)網(wǎng)絡(luò)算法BP-NN,選擇后的預(yù)測(cè)算法及其相關(guān)參數(shù)信息用xml格式表示如下
< xm1 version=" 1.0" encoding="UTF-8" >
〈CONTROLOR PREDICT=mIm VERSION=mO.I"> 〈ALGORITHM NAME="Predict_BP-NN7>
〈PARAMETERNAME=nLength"VALUE=" 1000"
TYPE="D0UBLE7>
〈/ALGORITHM〉
〈CYCLELENGTH VALUE="3M/>
〈PRECISION VALUE=mO.001"/>
〈/CONTROLOR〉算法控制器302將該預(yù)測(cè)算法及其相關(guān)參數(shù)信息發(fā)送到算法執(zhí)行器303,算法執(zhí)行器303根據(jù)該預(yù)測(cè)算法及其相關(guān)參數(shù)信息建立預(yù)測(cè)模型,并基于輸入的負(fù)載數(shù)據(jù)對(duì)該預(yù)測(cè)模型進(jìn)行訓(xùn)練,將訓(xùn)練好的預(yù)測(cè)模型用于負(fù)載預(yù)測(cè),并將預(yù)測(cè)結(jié)果輸出。輸入的負(fù)載信息用xml格式表示如下(時(shí)間間隙為15秒)第一組訓(xùn)練數(shù)據(jù)
< xm1 version=" 1.0" encoding="UTF-8" >
〈DATA VERSION=mO.I" TIMEINTEVAL=" 15">
〈PMID="pm0" CPU=mO.I" MEM=Mn I0="100"/PM>
〈PM ID="pml" CPU="0.05" MEM=Mn IO="1007PM>
</DATA>第二組訓(xùn)練數(shù)據(jù)< xm1 version=" 1.0" encoding="UTF-8" >
〈DATA VERSION=mO.I" TIMEINTEVAL=" 15">
〈PM ID="pmO" CPU=mO.105" MEM="5" I0="100"/PM>
〈PM ID="pml" CPU="0.055" MEM="5" I0="100"/PM>
</DATA>第三組訓(xùn)練數(shù)據(jù)
< xm1 version=" 1.0" encoding="UTF-8" >
〈DATA VERSION=mO.I" TIMEINTEVAL=" 15">
〈PM ID="pmO" CPU="0.11" MEM="6" I0="100"/PM>
〈PM ID="pml" CPU="0.06" MEM="6" IO="1007PM>
</DATA>負(fù)載預(yù)測(cè)輸入數(shù)據(jù)
< xm1 version=" 1.0" encoding="UTF-8" >
〈DATA VERSION=mO.I" TIMEINTEVAL=" 15">
〈PM ID="pmO" CPU=mO. 115" MEM="7" IO="100M/PM>
〈PM ID="pml" CPU="0.065" MEM="7" I0="100"/PM>
</DATA>負(fù)載預(yù)測(cè)輸出數(shù)據(jù)
< xm1 version=" 1.0" encoding="UTF-8" >
〈DATA VERSION=mO.I" TIMEINTEVAL=" 15">
<PM ID="pmO" CPU=mO.123" MEM="7.200" I0="100"/PM> <PMID="pml" CPU="0.071" MEM="7.200" I0="100"/PM>
</DATA>算法執(zhí)行器輸出預(yù)測(cè)結(jié)果由上述實(shí)施例可以看出,在預(yù)測(cè)需求為精度為0.001,預(yù)測(cè)周期為3的情況下,算法控制器自適應(yīng)的選擇了滿足需求的神經(jīng)網(wǎng)絡(luò)算法BP-NN作為預(yù)測(cè)算法,并在負(fù)載趨勢(shì)為上升的情況下,給出了預(yù)測(cè)結(jié)果。從預(yù)測(cè)結(jié)果可以看出,預(yù)測(cè)算法給出的預(yù)測(cè)結(jié)果符合負(fù)載上升的趨勢(shì),滿足了預(yù)測(cè)需求。本實(shí)施系統(tǒng)的另一特性是支持算法池320內(nèi)預(yù)測(cè)算法的插拔,即算法控制器302對(duì)算法池320內(nèi)的預(yù)測(cè)算法及其相關(guān)參數(shù)信息實(shí)時(shí)更新,具體可通過(guò)下述步驟實(shí)現(xiàn)算法池 320內(nèi)預(yù)測(cè)算法的可插拔當(dāng)有滿足新的用戶預(yù)測(cè)需求的預(yù)測(cè)算法及其相關(guān)參數(shù)信息需要加入到算法池320內(nèi)時(shí),將預(yù)測(cè)算法以相應(yīng)的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)到算法控制器302中;同時(shí),將新的預(yù)測(cè)算法及其實(shí)現(xiàn)過(guò)程加入到算法控制器302中,并在算法控制器302內(nèi)注冊(cè)相應(yīng)接口 ;算法控制器302將 新的預(yù)測(cè)算法及其相關(guān)參數(shù)信息添加到算法池320中,實(shí)現(xiàn)對(duì)算法池320內(nèi)的預(yù)測(cè)算法及其相關(guān)參數(shù)信息的添加。當(dāng)需要將不能滿足當(dāng)前用戶預(yù)測(cè)需求信息或很少使用的預(yù)測(cè)算法從算法池320中刪除時(shí),只需在算法控制器302中將要?jiǎng)h除預(yù)測(cè)算法的相應(yīng)接口進(jìn)行注銷即可,如此則實(shí)現(xiàn)了對(duì)算法池320內(nèi)的預(yù)測(cè)算法及其相關(guān)參數(shù)信息的刪除。算法控制器302對(duì)算法池320內(nèi)的預(yù)測(cè)算法及其相關(guān)參數(shù)信息的添加以及刪除構(gòu)成了對(duì)算法池320內(nèi)預(yù)測(cè)算法的實(shí)時(shí)更新。
權(quán)利要求
1.一種集群負(fù)載預(yù)測(cè)方法,應(yīng)用于分布式集群系統(tǒng),包括步驟 在系統(tǒng)中設(shè)置預(yù)測(cè)算法存儲(chǔ)單元與算法池; 預(yù)先在算法池內(nèi)儲(chǔ)存能夠?qū)贺?fù)載進(jìn)行預(yù)測(cè)的預(yù)測(cè)算法及其相關(guān)參數(shù)信息,并對(duì)算法池內(nèi)的預(yù)測(cè)算法及其相關(guān)參數(shù)信息實(shí)時(shí)更新; 接收外部寫入的用戶預(yù)測(cè)需求信息,解析該用戶預(yù)測(cè)需求信息并將該信息存儲(chǔ)于系統(tǒng)中; 將已解析的用戶預(yù)測(cè)需求信息逐一地與算法池內(nèi)存儲(chǔ)的預(yù)測(cè)算法進(jìn)行匹配,選擇出匹配程度最大的預(yù)測(cè)算法并將該預(yù)測(cè)算法及其相關(guān)參數(shù)信息更新至預(yù)測(cè)算法存儲(chǔ)單元; 獲取系統(tǒng)提供的負(fù)載數(shù)據(jù); 基于預(yù)測(cè)算法存儲(chǔ)單元內(nèi)的預(yù)測(cè)算法及其相關(guān)參數(shù)信息建立負(fù)載預(yù)測(cè)模型,利用負(fù)載數(shù)據(jù)訓(xùn)練負(fù)載預(yù)測(cè)模型; 使用訓(xùn)練好的負(fù)載預(yù)測(cè)模型對(duì)集群負(fù)載進(jìn)行預(yù)測(cè),得到預(yù)測(cè)結(jié)果。
2.根據(jù)權(quán)利要求I所述的集群負(fù)載預(yù)測(cè)方法,其特征在于,所述的用戶預(yù)測(cè)需求信息包括用戶所需的預(yù)測(cè)精度信息、預(yù)測(cè)規(guī)律類型信息、預(yù)測(cè)周期信息以及預(yù)測(cè)算法特性信息。
3.根據(jù)權(quán)利要求I所述的集群負(fù)載預(yù)測(cè)方法,其特征在于,所述的接收外部寫入的用戶預(yù)測(cè)需求信息中,接收到的用戶預(yù)測(cè)需求信息是以鍵-值對(duì)的方式或以XML格式存儲(chǔ)于系統(tǒng)的配置文件中。
4.根據(jù)權(quán)利要求3所述的集群負(fù)載預(yù)測(cè)方法,其特征在于,所述的解析該用戶預(yù)測(cè)需求信息并將該信息存儲(chǔ)于系統(tǒng)中,包括 對(duì)以鍵-值對(duì)的方式存儲(chǔ)于配置文件中的用戶預(yù)測(cè)需求信息,從配置文件中逐條讀取所有的用戶預(yù)測(cè)需求信息并判斷讀取的信息是否合法 若讀取的信息為合法輸入,則按鍵-值分隔符對(duì)該信息進(jìn)行分割并將分割后的鍵信息和值信息分別存儲(chǔ)于系統(tǒng)中; 若讀入的信息為非法輸入則系統(tǒng)報(bào)錯(cuò); 如此反復(fù),直到配置文件的末尾; 對(duì)以XML格式存儲(chǔ)于配置文件中的用戶預(yù)測(cè)需求信息,首先解析用戶預(yù)測(cè)需求信息的數(shù)據(jù)根節(jié)點(diǎn),并將根節(jié)點(diǎn)及其屬性信息存儲(chǔ)于系統(tǒng)中,再以循環(huán)遍歷的方式解析用戶預(yù)測(cè)需求信息的子節(jié)點(diǎn)及其屬性信息,并存儲(chǔ)至系統(tǒng)中;以此類推,直到所有的用戶預(yù)測(cè)需求信息的節(jié)點(diǎn)信息都已解析完畢。
5.根據(jù)權(quán)利要求I所述的集群負(fù)載預(yù)測(cè)方法,其特征在于,將已解析的用戶預(yù)測(cè)需求信息逐一地與算法池內(nèi)存儲(chǔ)的預(yù)測(cè)算法進(jìn)行匹配,選擇出匹配程度最大的預(yù)測(cè)算法并將該預(yù)測(cè)算法及其相關(guān)參數(shù)信息更新至預(yù)測(cè)算法存儲(chǔ)單元,包括步驟 讀取第一條用戶預(yù)測(cè)需求信息,并以此為關(guān)鍵詞搜尋算法池內(nèi)匹配該信息的預(yù)測(cè)算法;當(dāng)遇到第一個(gè)與該信息適配的預(yù)測(cè)算法時(shí),停止搜索; 針對(duì)該預(yù)測(cè)算法匹配下一條用戶預(yù)測(cè)需求信息; 若該預(yù)測(cè)算法對(duì)所有的用戶預(yù)測(cè)需求信息逐一適配,將該預(yù)測(cè)算法及其相關(guān)參數(shù)信息更新至預(yù)測(cè)算法儲(chǔ)存單元; 若該預(yù)測(cè)算法對(duì)所有的用戶預(yù)測(cè)需求信息不能逐一適配,則將該預(yù)測(cè)算法及其相關(guān)參數(shù)信息備份于系統(tǒng)中,并對(duì)算法池內(nèi)未經(jīng)搜索的預(yù)測(cè)算法重復(fù)上述步驟;若算法池內(nèi)所有的預(yù)測(cè)算法均不能對(duì)所有的用戶預(yù)測(cè)需求逐一適配,選擇備份于系統(tǒng)中的預(yù)測(cè)算法中與所有的用戶預(yù)測(cè)需求信息最大匹配者,并將該預(yù)測(cè)算法及其相關(guān)參數(shù)信息更新至預(yù)測(cè)算法儲(chǔ)存單元。
6.一種分布式集群管理系統(tǒng),包括集群調(diào)度模塊、負(fù)載監(jiān)控模塊、負(fù)載預(yù)測(cè)模塊以及決策實(shí)施模塊,其特征在于,所述的負(fù)載預(yù)測(cè)模塊包括配置文件、算法控制器以及算法執(zhí)行器; 所述的集群調(diào)度模塊,將外部輸入的用戶預(yù)測(cè)需求信息存儲(chǔ)于配置文件; 所述的算法控制器,包括存儲(chǔ)能夠?qū)贺?fù)載進(jìn)行預(yù)測(cè)的預(yù)測(cè)算法及其相關(guān)參數(shù)信息的算法池;所述的算法控制器對(duì)算法池內(nèi)的預(yù)測(cè)算法及其相關(guān)參數(shù)信息實(shí)時(shí)更新,并解析配置文件中的用戶預(yù)測(cè)需求信息;將已解析的用戶預(yù)測(cè)需求信息逐一地與算法池內(nèi)儲(chǔ)存的預(yù)測(cè)算法進(jìn)行匹配,選擇匹配程度最大的預(yù)測(cè)算法,并將該預(yù)測(cè)算法及其相關(guān)參數(shù)信息發(fā)送至算法執(zhí)行器; 所述的算法執(zhí)行器,接收預(yù)測(cè)算法及其相關(guān)參數(shù)信息,并請(qǐng)求負(fù)載監(jiān)控模塊或外部設(shè)備監(jiān)測(cè)到的負(fù)載數(shù)據(jù);根據(jù)該預(yù)測(cè)算法及其相關(guān)參數(shù)信息建立負(fù)載預(yù)測(cè)模型,利用請(qǐng)求到的負(fù)載數(shù)據(jù)訓(xùn)練負(fù)載預(yù)測(cè)模型;使用訓(xùn)練好的負(fù)載預(yù)測(cè)模型對(duì)集群負(fù)載進(jìn)行預(yù)測(cè),并將得到預(yù)測(cè)結(jié)果返回至集群調(diào)度模塊; 所述的集群調(diào)度模塊,接收該預(yù)測(cè)結(jié)果并將該預(yù)測(cè)結(jié)果作為調(diào)度決策的參考,輸出調(diào)度決策至決策實(shí)施模塊; 所述的決策實(shí)施模塊,接收該調(diào)度決策,根據(jù)系統(tǒng)所處的實(shí)際物理環(huán)境執(zhí)行調(diào)度決策。
7.根據(jù)權(quán)利要求6所述的分布式集群管理系統(tǒng),其特征在于,所述的用戶預(yù)測(cè)需求信息包括用戶所需的預(yù)測(cè)精度信息、預(yù)測(cè)規(guī)律類型信息、預(yù)測(cè)周期信息以及預(yù)測(cè)算法特性信肩、O
8.根據(jù)權(quán)利要求6所述的分布式集群管理系統(tǒng),其特征在于,所述的用戶預(yù)測(cè)需求信息以鍵-值對(duì)的方式或以XML格式存儲(chǔ)于配置文件中。
9.根據(jù)權(quán)利要求8所述的分布式集群管理系統(tǒng),其特征在于,所述的算法控制器包括/[目息需求存儲(chǔ)單兀; 對(duì)以鍵-值對(duì)的方式存儲(chǔ)于配置文件中的用戶預(yù)測(cè)需求信息,所述的算法控制器從配置文件中逐條讀取所有的用戶預(yù)測(cè)需求信息并判斷讀取的信息是否合法 若讀取的信息為合法輸入,則按鍵-值分隔符對(duì)該信息進(jìn)行分割并將分割后的鍵信息和值信息分別存儲(chǔ)于所述的信息存儲(chǔ)單元中; 若讀入的信息為非法輸入則算法控制器報(bào)錯(cuò); 如此反復(fù),直到配置文件的末尾; 對(duì)以XML格式存儲(chǔ)于配置文件中的用戶預(yù)測(cè)需求信息,所述的算法控制器首先解析用戶預(yù)測(cè)需求信息的數(shù)據(jù)根節(jié)點(diǎn),并將根節(jié)點(diǎn)及其屬性信息存儲(chǔ)于所述的信息存儲(chǔ)單元中,再以循環(huán)遍歷的方式解析用戶預(yù)測(cè)需求信息的子節(jié)點(diǎn)及其屬性信息,并存儲(chǔ)至信息存儲(chǔ)單元中;以此類推,直到所有的用戶預(yù)測(cè)需求信息的節(jié)點(diǎn)信息都已解析完畢。
10.根據(jù)權(quán)利要求7所述的分布式集群管理系統(tǒng),其特征在于, 所述的算法控制器包括預(yù)測(cè)算法儲(chǔ)存單元,所述的算法控制器實(shí)現(xiàn)以下步驟 讀取第一條用戶預(yù)測(cè)需求信息,并以此為關(guān)鍵詞搜尋算法池內(nèi)匹配該信息的預(yù)測(cè)算法;當(dāng)遇到第一個(gè)與該信息適配的預(yù)測(cè)算法時(shí),停止搜索; 針對(duì)該預(yù)測(cè)算法匹配下一條用戶預(yù)測(cè)需求信息; 若該預(yù)測(cè)算法對(duì)所有的用戶預(yù)測(cè)需求信息逐一適配,將該預(yù)測(cè)算法及其相關(guān)參數(shù)信息更新至預(yù)測(cè)算法儲(chǔ)存單元; 若該預(yù)測(cè)算法對(duì)所有的用戶預(yù)測(cè)需求信息不能逐一適配,則將該預(yù)測(cè)算法及其相關(guān)參數(shù)信息備份于系統(tǒng)中,并對(duì)算法池內(nèi)未經(jīng)搜索的預(yù)測(cè)算法重復(fù)上述步驟; 若算法池內(nèi)所有的預(yù)測(cè)算法均不能對(duì)所有的用戶預(yù)測(cè)需求逐一適配,選擇備份于系統(tǒng)中的預(yù)測(cè)算法中與所有的用戶預(yù)測(cè)需求信息最大匹配者,并將該預(yù)測(cè)算法及其相關(guān)參數(shù)信息更新至預(yù)測(cè)算法儲(chǔ)存單元。
全文摘要
本發(fā)明涉及一種集群負(fù)載預(yù)測(cè)方法及分布式集群管理系統(tǒng)。本發(fā)明的方法包括步驟接收用戶預(yù)測(cè)需求信息并解析,并將已解析的用戶預(yù)測(cè)需求信息與算法池內(nèi)存儲(chǔ)的預(yù)測(cè)算法進(jìn)行匹配;對(duì)算法池內(nèi)的預(yù)測(cè)算法進(jìn)行更新;選擇匹配程度最大的預(yù)測(cè)算法及其相關(guān)參數(shù)信息建立負(fù)載預(yù)測(cè)模型,并用獲取的負(fù)載數(shù)據(jù)訓(xùn)練該負(fù)載預(yù)測(cè)模型;使用訓(xùn)練好的負(fù)載預(yù)測(cè)模型對(duì)集群負(fù)載進(jìn)行預(yù)測(cè),得到預(yù)測(cè)結(jié)果。本發(fā)明的系統(tǒng)包括集群調(diào)度模塊、負(fù)載監(jiān)控模塊、負(fù)載預(yù)測(cè)模塊以及決策實(shí)施模塊;所述的負(fù)載預(yù)測(cè)模塊包括配置文件、算法控制器以及算法執(zhí)行器。本發(fā)明的技術(shù)方案應(yīng)用于集群系統(tǒng)中,支持預(yù)測(cè)需求可配置、支持預(yù)測(cè)算法的自適應(yīng)選擇以及支持預(yù)測(cè)算法的可插拔。
文檔編號(hào)H04L29/08GK102624865SQ20121000540
公開日2012年8月1日 申請(qǐng)日期2012年1月9日 優(yōu)先權(quán)日2012年1月9日
發(fā)明者張濤, 王云霄, 王總輝, 陳建海, 陳文智 申請(qǐng)人:浙江大學(xué)