本發(fā)明涉及任務(wù)識別技術(shù)領(lǐng)域,更具體地說,涉及一種基于云平臺的多維度任務(wù)識別方法及裝置。
背景技術(shù):
numa架構(gòu)為非一致性內(nèi)存架構(gòu)(non-uniformmemoryarchitecture),是為了解決傳統(tǒng)的對稱多處理(symmetricmulti-processor)系統(tǒng)中的可擴展性問題而誕生的。在numa架構(gòu)中可運行很多不同類型的任務(wù),目前對不同類型任務(wù)的識別,一般是通過單一屬性進行識別,這種識別方式不準(zhǔn)確,并且無法知道不同類型任務(wù)的資源消耗情況。
因此,如何對任務(wù)進行準(zhǔn)確識別,是本領(lǐng)域技術(shù)人員需要解決的問題。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種基于云平臺的多維度任務(wù)識別方法及裝置,以實現(xiàn)準(zhǔn)確對任務(wù)進行識別。其具體方案如下:
一種基于云平臺的多維度任務(wù)識別方法,包括:
檢測任務(wù)的運行狀態(tài)及資源需求,并記錄所述任務(wù)的多維度參數(shù);
利用所述任務(wù)的運行狀態(tài)、資源需求以及多維度參數(shù),生成與所述任務(wù)對應(yīng)的指紋;
判斷經(jīng)驗數(shù)據(jù)庫中是否存在與所述指紋一致的目標(biāo)指紋;若存在,則識別成功;若不存在,則識別失敗;所述經(jīng)驗數(shù)據(jù)庫中包括已識別任務(wù)的指紋。
其中,所述檢測任務(wù)的運行狀態(tài)及資源需求,并記錄所述任務(wù)的多維度參數(shù);利用所述任務(wù)的運行狀態(tài)、資源需求以及多維度參數(shù),生成與所述任務(wù)對應(yīng)的指紋,包括:
通過計數(shù)器對所述任務(wù)的預(yù)定的硬件采樣事件進行信息采集,并記錄所述任務(wù)的多維度參數(shù);
對采集的信息進行分析挖掘,并利用所述多維度參數(shù)生成與所述任務(wù)對應(yīng)的指紋;其中,所述指紋包括:與所述任務(wù)對應(yīng)的多個硬件性能指標(biāo),以及與所述任務(wù)對應(yīng)的運行時間及運行地點。
其中,所述識別成功之后,還包括:
從所述經(jīng)驗數(shù)據(jù)庫中獲取與所述目標(biāo)指紋對應(yīng)的資源調(diào)度策略并執(zhí)行。
其中,所述經(jīng)驗數(shù)據(jù)庫的生成方法包括:
利用指紋以及基于數(shù)據(jù)挖掘的分類算法,對任務(wù)進行分類,生成多個任務(wù)分類集合;
通過資源分配器對每個任務(wù)分類集合中的每個任務(wù)進行動態(tài)資源調(diào)整,確定每個任務(wù)的資源調(diào)度策略,生成經(jīng)驗數(shù)據(jù)庫。
其中,所述利用指紋以及基于數(shù)據(jù)挖掘的分類算法,對任務(wù)進行分類,生成多個任務(wù)分類集合,包括:
利用指紋及kmeans分類算法對任務(wù)進行分類,生成多個任務(wù)分類集合。
一種基于云平臺的多維度任務(wù)識別裝置,包括:
檢測模塊,用于檢測任務(wù)的運行狀態(tài)及資源需求;
記錄模塊,用于記錄所述任務(wù)的多維度參數(shù);
指紋生成模塊,用于利用所述任務(wù)的運行狀態(tài)、資源需求以及多維度參數(shù),生成與所述任務(wù)對應(yīng)的指紋;
判斷模塊,用于判斷經(jīng)驗數(shù)據(jù)庫中是否存在與所述指紋一致的目標(biāo)指紋;若存在,則識別成功;若不存在,則識別失??;所述經(jīng)驗數(shù)據(jù)庫中包括已識別任務(wù)的指紋。
其中,所述檢測模塊通過計數(shù)器對所述任務(wù)的預(yù)定的硬件采樣事件進行信息采集;
所述指紋生成模塊通過對采集的信息進行分析挖掘,并利用所述多維度參數(shù)生成與所述任務(wù)對應(yīng)的指紋;其中,所述指紋包括:與所述任務(wù)對應(yīng)的多個硬件性能指標(biāo),以及與所述任務(wù)對應(yīng)的運行時間及運行地點。
其中,還包括:
執(zhí)行模塊,用于從所述經(jīng)驗數(shù)據(jù)庫中獲取與所述目標(biāo)指紋對應(yīng)的資源調(diào)度策略并執(zhí)行。
其中,還包括經(jīng)驗數(shù)據(jù)庫生成模塊;所述經(jīng)驗數(shù)據(jù)庫生成模塊包括:
分類單元,用于利用指紋以及基于數(shù)據(jù)挖掘的分類算法,對任務(wù)進行分類,生成多個任務(wù)分類集合;
資源調(diào)度策略生成模塊,用于通過資源分配器對每個任務(wù)分類集合中的每個任務(wù)進行動態(tài)資源調(diào)整,確定每個任務(wù)的資源調(diào)度策略,生成經(jīng)驗數(shù)據(jù)庫。
其中,所述分類單元利用指紋及kmeans分類算法對任務(wù)進行分類,生成多個任務(wù)分類集合。
通過以上方案可知,本發(fā)明實施例提供的一種基于云平臺的多維度任務(wù)識別方法,包括:檢測任務(wù)的運行狀態(tài)及資源需求,并記錄所述任務(wù)的多維度參數(shù);利用所述任務(wù)的運行狀態(tài)、資源需求以及多維度參數(shù),生成與所述任務(wù)對應(yīng)的指紋;判斷經(jīng)驗數(shù)據(jù)庫中是否存在與所述指紋一致的目標(biāo)指紋;若存在,則識別成功;若不存在,則識別失敗;所述經(jīng)驗數(shù)據(jù)庫中包括已識別任務(wù)的指紋;可見,在本實施例中,通過任務(wù)的運行狀態(tài)、資源需求,以及任務(wù)的多維參數(shù),可生成與每個任務(wù)相對應(yīng)的指紋,這樣在檢測到新的任務(wù)時,可通過將新任務(wù)的指紋與經(jīng)驗數(shù)據(jù)庫中存儲的已識別任務(wù)的指紋進行對比,實現(xiàn)對新任務(wù)的識別;本發(fā)明還公開了一種基于云平臺的多維度任務(wù)識別裝置,同樣能實現(xiàn)上述技術(shù)效果。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
圖1為本發(fā)明實施例公開的一種基于云平臺的任務(wù)識別方法流程圖;
圖2為本發(fā)明實施例公開的一種基于云平臺的任務(wù)識別裝置結(jié)構(gòu)示意圖;
圖3為本發(fā)明實施例公開的一種基于云平臺的多維度任務(wù)識別方法流程圖;
圖4為本發(fā)明實施例公開的一種基于云平臺的多維度任務(wù)識別裝置結(jié)構(gòu)示意圖;
圖5為本發(fā)明實施例公開的一種基于云平臺的任務(wù)瓶頸確定方法流程圖;
圖6為本發(fā)明實施例公開的一種基于云平臺的任務(wù)瓶頸確定裝置結(jié)構(gòu)示意圖。
具體實施方式
下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
當(dāng)前,numa架構(gòu)作為非一致性內(nèi)存架構(gòu),是為了解決傳統(tǒng)的對稱多處理系統(tǒng)中的可擴展性問題而誕生的。在numa架構(gòu)中可運行很多不同類型的任務(wù),目前對不同類型任務(wù)的識別,一般是通過單一屬性進行識別,這種識別方式不準(zhǔn)確,并且無法知道不同類型任務(wù)的資源消耗情況。如何對任務(wù)進行準(zhǔn)確識別,是本領(lǐng)域技術(shù)人員需要解決的問題。為此,本發(fā)明實施例相應(yīng)地公開了一種基于云平臺的任務(wù)識別方法及裝置,以實現(xiàn)對基于云平臺的任務(wù)進行識別。
參見圖1,本發(fā)明實施例提供的一種基于云平臺的任務(wù)識別方法,包括:
s101、檢測任務(wù)的運行狀態(tài)及資源需求;
具體的,本方案中的運行狀態(tài)和資源需求與實時統(tǒng)計的硬件事件信息相同,即為整個服務(wù)器硬件資源信息,從cpu信息到磁盤信息均可,包括硬件資源信息以及操作系統(tǒng)信息,通過這些信息均可以了解到任務(wù)的資源消耗以及資源需求。本方案的運行狀態(tài)為:當(dāng)前任務(wù)在運行過程中在哪些服務(wù)器硬件資源上的消耗情況,資源需求包括整體服務(wù)器的硬件資源,網(wǎng)絡(luò),計算,存儲等。
s102、利用所述任務(wù)的運行狀態(tài)及資源需求,生成與所述任務(wù)對應(yīng)的指紋;
具體的,為了精確了解每個任務(wù)的資源請求,在本方案中生成每個任務(wù)的指紋,以識別任務(wù)的資源需求。首先,需要提取任務(wù)的資源指紋,在提取資源指紋時,需要滿足如下策略,并且,通過任務(wù)的運行狀態(tài)及資源需求所生成的指紋,可以準(zhǔn)確的標(biāo)注任務(wù)的資源消耗,以及當(dāng)前資源供給與任務(wù)資源需要的匹配程度。
無干擾的監(jiān)測策略:由于云端上一般會運行多個不同的應(yīng)用任務(wù),在本方案中并不能假設(shè)云端所有的接口都是開放的,即,并不是所有的guestvm以及應(yīng)用任務(wù)的信息都是可以在生產(chǎn)環(huán)境中直接被獲得,因此,設(shè)計無干擾式的監(jiān)測手段并且不依賴生產(chǎn)環(huán)境的可用接口變得至關(guān)重要;
隔離性策略:為了保證采樣的精確性,需要確保應(yīng)用任務(wù)的指紋信息不受其他采樣過程的性能影響,并且確保任務(wù)指紋的采樣精確性不受其他任務(wù)的性能干擾;
輕量性策略:采樣指紋的過程會不可避免的帶來性能開銷,本方案設(shè)計的代理模塊將任務(wù)拷貝至采樣環(huán)境時,需要產(chǎn)生較少的開銷以避免給系統(tǒng)帶來額外的資源壓力。
s103、判斷經(jīng)驗數(shù)據(jù)庫中是否存在與所述指紋一致的目標(biāo)指紋;若存在,則識別成功;若不存在,則識別失敗;所述經(jīng)驗數(shù)據(jù)庫中包括已識別任務(wù)的指紋。
具體的,本方案中,可以使用底層的指標(biāo)捕捉負載任務(wù)的行為,為不同的任務(wù)打上唯一的標(biāo)簽,例如任務(wù)的指紋。通過這種方式,無需事先了解任務(wù)的信息以及訪問行為,便可以在任務(wù)運行時對任務(wù)進行識別;例如,對于benchmark的行為,本實施例在測試之前通常都已經(jīng)了解,而生產(chǎn)環(huán)境的任務(wù)行為通常情況下是無法被事先捕捉的,這樣通過設(shè)置與不同任務(wù)對應(yīng)的唯一指紋,便可以通過指紋識別該任務(wù)。
需要說明的是,虛擬化環(huán)境通常都已配置了多種資源監(jiān)控工具以標(biāo)注不同的虛擬機資源信息。例如,xeon中的xentop命令可以報告虛擬機的資源信息(cpu,mem,i/o)。此外,現(xiàn)代處理器使用多個特殊的寄存器,用于監(jiān)測性能計數(shù)器,并且產(chǎn)生的性能開銷極小。例如:hpc(hardwareperformancecounters,硬件性能計數(shù)器)可以用于負載異?,F(xiàn)場的監(jiān)測,以及在線請求的識別。此外,hpc的采樣過程可以避免改動guestvm。在vm調(diào)度之前讀取hpc,再根據(jù)hpc值進行下一步調(diào)度的建議。
具體的,在本實施例中,為了保證任務(wù)的指紋可以適用于任意的采樣時間長度,本實施例將指紋采樣的值歸一化于采樣的時間。這樣的選擇方式可以使得指紋采樣系統(tǒng)并不受采樣的時間長度所影響。并且,若從經(jīng)驗數(shù)據(jù)庫中能查到與該任務(wù)的指紋一樣的任務(wù),那么則說明對該任務(wù)已識別成功,識別成功后,并可根據(jù)該經(jīng)驗數(shù)據(jù)庫確定該任務(wù)的類型信息,或者確定與該任務(wù)對應(yīng)的資源調(diào)度策略。
基于上述實施例,所述檢測任務(wù)的運行狀態(tài)及資源需求,利用所述任務(wù)的運行狀態(tài)及資源需求,生成與所述任務(wù)對應(yīng)的指紋,包括:
通過計數(shù)器對所述任務(wù)的預(yù)定的硬件采樣事件進行信息采集,并對采集的信息進行分析挖掘,生成與所述任務(wù)對應(yīng)的指紋;其中,所述指紋中包括多個硬件性能指標(biāo)。
具體的,由于云環(huán)境下服務(wù)的多樣性,為了保證生成的任務(wù)指紋能夠準(zhǔn)確的識別不同的任務(wù),在本實施例中采用數(shù)據(jù)挖掘的方式來標(biāo)注負載任務(wù)之間的區(qū)別,確定與每個任務(wù)的硬件性能指標(biāo)對應(yīng)的數(shù)值范圍,在對任務(wù)進行識別時,只要該任務(wù)的硬件性能指標(biāo)的計數(shù)值落在相對應(yīng)的數(shù)值區(qū)間內(nèi),則認為該任務(wù)與該區(qū)間內(nèi)的任務(wù)屬于同一種類型的任務(wù)。需要說明的是,如果任務(wù)的訪問類型(例如,read/write比率)或者負載強度發(fā)生了變化,那么計數(shù)器采集的硬件性能指標(biāo)的值會出現(xiàn)差值,并且負載變化越強烈,該值的差異性將會越大,這樣,才可以通過不同類型的任務(wù)的指紋,對不同訪問類型的任務(wù)進行識別。此外,負載指紋采樣所需的其他計數(shù)器值將會降低歸類的噪聲以確保任務(wù)分類精度。
具體的,在本實施例中,使用典型特征的選擇過程,即通過分類算法進行指標(biāo)特征的選擇,可幫助本實施例理解任務(wù)的主要特性。在本方案中,可以采用weka機器學(xué)習(xí)工具用于采樣數(shù)據(jù)集的分類,并且,根據(jù)以往的經(jīng)驗,可將cfssubseteval技術(shù)與greedstepwise搜索方式結(jié)合,從而可以獲得較高的分類準(zhǔn)確性。需要說明的是,本實施例中的任務(wù)的指紋可以劃分為n個維度,其中每個維度均有hpc事件所表征:
ws={m1,m2,......,mn}
其中mi表示采樣的第i個硬件性能指標(biāo)i。為了保證采樣的精確性,本實施例會根據(jù)不同的任務(wù)類型選擇合適的采樣指標(biāo)。例如,以rubis負載請求為例,針對這樣模擬電商系統(tǒng)的benchmark,本實施例采用如表1所示的硬件采樣事件。這些事件囊括了一系列的性能信息,如cpu,cache,memory以及busqueue。
表1基于硬件底層信息的指紋標(biāo)簽
基于上述實施例,所述經(jīng)驗數(shù)據(jù)庫的生成方法包括:
利用指紋以及基于數(shù)據(jù)挖掘的分類算法,對任務(wù)進行分類,生成多個任務(wù)分類集合;通過資源分配器對每個任務(wù)分類集合中的每個任務(wù)進行動態(tài)資源調(diào)整,確定每個任務(wù)的資源調(diào)度策略,生成經(jīng)驗數(shù)據(jù)庫。
其中,所述利用指紋以及基于數(shù)據(jù)挖掘的分類算法,對任務(wù)進行分類,生成多個任務(wù)分類集合,包括:利用指紋及kmeans分類算法對任務(wù)進行分類,生成多個任務(wù)分類集合。
具體的,由于網(wǎng)絡(luò)相關(guān)任務(wù)的訪問周期性特征,本實施例需要確保較高的“訪問cache”命中率。本實施例首先需要確定任務(wù)的首選資源,并且還需要保證該資源信息將會在未來具有較高的復(fù)用度。而調(diào)整任務(wù)的資源分配與獲得的復(fù)用度之間存在一個折中的考慮。其中一個最簡易的辦法在于將每個任務(wù)的特征均進行記錄,也就是通過硬件性能指標(biāo)生成指紋時增加采樣的指標(biāo),這樣會帶來較大的訪問cache命中率但是這樣一來并不現(xiàn)實,會給指紋模塊以及分析過程帶來很大的性能開銷。例如,intelxeonx5472具有4個寄存器并且可以支撐60個不同的采樣事件。從實踐的角度分析,采樣如此之多的hpc事件并不完全實用,在進行任務(wù)分類過程時并不能起到區(qū)分的功效。從另外一個角度來說,降低采樣的數(shù)量將會降低樣本空間的維度并且可以顯著地加速機器學(xué)習(xí)算法的分類過程,但是如果刪除一些典型任務(wù)的采樣信息,將會導(dǎo)致無法接受的資源分配效率,直接帶來性能的下降。
為了解決該問題,在本實施例中采用任務(wù)分類以及任務(wù)集合的方式進行任務(wù)特征類型的標(biāo)注。首先,一段時間的監(jiān)測(例如,一天或者一個星期)。在采樣時間內(nèi),本實施例將會收集硬件的采樣事件信息。其次,將采樣信息進行分析,挖掘以生成任務(wù)的指紋信息,并且將每個任務(wù)用n維空間進行標(biāo)注(n表示指紋的采樣種類)。最后,本實施例將任務(wù)進行分類。
本實施例具體可以采用標(biāo)準(zhǔn)的分類工具,例如kmeans,生成任務(wù)的集合。本實施例希望該分類框架可以自動的確定集合的個數(shù),并且還能夠兼顧采樣的性能開銷以及“訪問cache”的命中率。本實施例假設(shè)生產(chǎn)環(huán)境的負載可以由該任務(wù)分類集合進行表征。用集合進行標(biāo)注生產(chǎn)環(huán)境的任務(wù)行為的優(yōu)點在于無需使得生產(chǎn)環(huán)境的hpc硬件指標(biāo)值與采樣環(huán)境完全相同。本實施例設(shè)計負載集合的方案用于將生產(chǎn)環(huán)境的任務(wù)行為與采樣環(huán)境的任務(wù)行為進行歸類標(biāo)注,例如,在采樣環(huán)境下,若負載a與負載b的行為更加接近,而與負載c的特性區(qū)分比較大,在采樣環(huán)境下表現(xiàn)的該集合特征同樣會在生產(chǎn)環(huán)境下出現(xiàn)。
一旦分類器生產(chǎn)了負載的分類集合,資源分配器(tuner)接下來對于集合中的每個任務(wù)進行動態(tài)資源調(diào)整。首先本實施例選擇靠近集合中心最近的負載任務(wù)。其次,資源調(diào)整策略確定高效的,充分的,而非浪費的資源分配方式(如,一系列虛擬化資源)用于確保任務(wù)滿足其slo(servicelevelobject)??梢酝ㄟ^實驗的方式確認最小的資源分配細節(jié)。此外,tuner的工作方式既可以是進行人工指定也會進行自適應(yīng)調(diào)整。tuner完成任意任務(wù)集合的資源分配之后,本實施例繼續(xù)設(shè)計一個表用于記錄任務(wù)的傾向性資源分配,生成指紋信息庫,即本方案中的經(jīng)驗數(shù)據(jù)庫,用于后續(xù)的“訪問cache”。對于tuner的設(shè)計,本實施例采用線性查找的方式,將一系列的目標(biāo)負載行為進行“重放”,再針對特定的虛擬機進行動態(tài)的增量式資源配給,隨后選擇可以滿足slo的最小資源分配。例如,動態(tài)的增量調(diào)整cpu以及memory的資源分配直到滿足slo。
基于上述任意實施例,所述識別成功之后,還包括:
從所述經(jīng)驗數(shù)據(jù)庫中獲取與所述目標(biāo)指紋對應(yīng)的資源調(diào)度策略并執(zhí)行。
具體的,在本實施例中,利用先驗的資源調(diào)度決策生成經(jīng)驗數(shù)據(jù)庫,在相似任務(wù)或者相同任務(wù)到來時復(fù)用該經(jīng)驗數(shù)據(jù)庫的資源調(diào)度策略以支持在線資源調(diào)度。本設(shè)計對于動態(tài)變化的負載特征同樣具有健壯性,選擇不同的,合適的時間點對于任務(wù)訪問強度進行采樣從而捕捉任務(wù)在不同需求強度下對于計算資源的需求。
具體的,在本實施例中,通過經(jīng)驗數(shù)據(jù)庫中的指紋對任務(wù)進行識別之后,通過自適應(yīng)資源調(diào)度器從經(jīng)驗數(shù)據(jù)庫中調(diào)取策略進行分配策略,該調(diào)度器需要確定一個可行性方案用于決定新到的任務(wù)屬于哪個任務(wù)分類集合-類似于cache查詢操作。本實施例采用前述分類的任務(wù)集合用于標(biāo)注任務(wù),并且將任務(wù)集合進行編號,這樣可以使得分類器快速選擇出任務(wù)隸屬的任務(wù)集合。本實施例采用weka機器學(xué)習(xí)包中的貝葉斯模型(bayesian)以及決策樹(decisiontrees)用于分類器的設(shè)計。一旦一個任務(wù)出現(xiàn)變化時(例如,強度或者其他資源需求),本實施例仍然需求收集底層的硬件信息去構(gòu)建新的任務(wù)指紋,緊接著查詢指紋信息庫用于在當(dāng)前可用指紋信息中尋找最優(yōu)匹配。在該基礎(chǔ)上,本實施例采用先前定義的分類策略并且輸出新到的任務(wù)類型需要的資源分配策略。
下面對本發(fā)明實施例提供的任務(wù)識別裝置進行介紹,下文描述的任務(wù)識別裝置與上文描述的任務(wù)識別方法可以相互參照。
參見圖2,本發(fā)明實施例提供的一種基于云平臺的任務(wù)識別裝置,包括:
檢測模塊201,用于檢測任務(wù)的運行狀態(tài)及資源需求;
指紋生成模塊202,用于利用所述任務(wù)的運行狀態(tài)及資源需求,生成與所述任務(wù)對應(yīng)的指紋;
判斷模塊203,用于判斷經(jīng)驗數(shù)據(jù)庫中是否存在與所述指紋一致的目標(biāo)指紋;若存在,則識別成功;若不存在,則識別失??;所述經(jīng)驗數(shù)據(jù)庫中包括已識別任務(wù)的指紋。
基于上述實施例,所述檢測模塊通過計數(shù)器對所述任務(wù)的預(yù)定的硬件采樣事件進行信息采集;
所述指紋生成模塊通過對采集的信息進行分析挖掘,生成與所述任務(wù)對應(yīng)的指紋;其中,所述指紋中包括多個硬件性能指標(biāo)。
基于上述實施例,還包括:
執(zhí)行模塊,用于從所述經(jīng)驗數(shù)據(jù)庫中獲取與所述目標(biāo)指紋對應(yīng)的資源調(diào)度策略并執(zhí)行。
基于上述實施例,還包括經(jīng)驗數(shù)據(jù)庫生成模塊;所述經(jīng)驗數(shù)據(jù)庫生成模塊包括:
分類單元,用于利用指紋以及基于數(shù)據(jù)挖掘的分類算法,對任務(wù)進行分類,生成多個任務(wù)分類集合;
資源調(diào)度策略生成模塊,用于通過資源分配器對每個任務(wù)分類集合中的每個任務(wù)進行動態(tài)資源調(diào)整,確定每個任務(wù)的資源調(diào)度策略,生成經(jīng)驗數(shù)據(jù)庫。
基于上述實施例,所述分類單元利用指紋及kmeans分類算法對任務(wù)進行分類,生成多個任務(wù)分類集合。
為了提升任務(wù)識別的細分程度,以便能夠提高任務(wù)識別精確度,本實施例進一步公開了一種基于云平臺的多維度任務(wù)識別方法進行介紹,該多維度任務(wù)識別方法是在上述任意實施例為基礎(chǔ)上進行多維度的識別;因此,下文描述的多維度任務(wù)識別方法及裝置與上文描述的任務(wù)識別方法及裝置可以相互參照,在本實施例中僅對不同之處進行描述,相同之處便不再贅述。
參見圖3,本發(fā)明實施例提供的一種基于云平臺的多維度任務(wù)識別方法,包括:
s301、檢測任務(wù)的運行狀態(tài)及資源需求,并記錄所述任務(wù)的多維度參數(shù);
具體的,本實施例中的運行狀態(tài)和資源需求與實時統(tǒng)計的硬件事件信息相同,即為整個服務(wù)器硬件資源信息,從cpu信息到磁盤信息均可,包括硬件資源信息以及操作系統(tǒng)信息,通過這些信息均可以了解到任務(wù)的資源消耗以及資源需求。本方案的運行狀態(tài)為:當(dāng)前任務(wù)在運行過程中在哪些服務(wù)器硬件資源上的消耗情況,資源需求包括整體服務(wù)器的硬件資源,網(wǎng)絡(luò),計算,存儲等;本實施例中的任務(wù)的多維度參數(shù)具體可以為任務(wù)的運行時間和運行地點等信息,通過該多維度參數(shù),能從多角度分析任務(wù),從而為任務(wù)匹配到更合適的指紋信息。
s302、利用所述任務(wù)的運行狀態(tài)、資源需求以及多維度參數(shù),生成與所述任務(wù)對應(yīng)的指紋;
具體的,在本方案中通過運行狀態(tài)、資源需求以及多維度參數(shù)生成與所述任務(wù)對應(yīng)的指紋的方法,與上述實施例中描述的指紋生成方式一致,唯一不同的是,在本實施例所生成的指紋中,還包括與任務(wù)對應(yīng)的多維度參數(shù),例如任務(wù)時間信息與運行地點信息等。
s303、判斷經(jīng)驗數(shù)據(jù)庫中是否存在與所述指紋一致的目標(biāo)指紋;若存在,則識別成功;若不存在,則識別失敗;所述經(jīng)驗數(shù)據(jù)庫中包括已識別任務(wù)的指紋。
具體的,任務(wù)的運行時間及運行地點的不同,會導(dǎo)致產(chǎn)生的指紋不同;因此,在本實施例中為了提高識別的準(zhǔn)確度,可將在檢測任務(wù)的運行狀態(tài)及資源需求時,同時采集該任務(wù)的多維度參數(shù),該多維度參數(shù)可以為任務(wù)的運行時間、運行地點等,這樣在對任務(wù)進行識別時,可優(yōu)先從經(jīng)驗數(shù)據(jù)庫中運行時間及運行地點一致的指紋開始查找,從而提高了任務(wù)識別的準(zhǔn)確度。
基于上述實施例,所述檢測任務(wù)的運行狀態(tài)及資源需求,并記錄所述任務(wù)的多維度參數(shù);利用所述任務(wù)的運行狀態(tài)、資源需求以及多維度參數(shù),生成與所述任務(wù)對應(yīng)的指紋,包括:
通過計數(shù)器對所述任務(wù)的預(yù)定的硬件采樣事件進行信息采集,并記錄所述任務(wù)的多維度參數(shù);
對采集的信息進行分析挖掘,并利用所述多維度參數(shù)生成與所述任務(wù)對應(yīng)的指紋;其中,所述指紋包括:與所述任務(wù)對應(yīng)的多個硬件性能指標(biāo),以及與所述任務(wù)對應(yīng)的運行時間及運行地點。
需要說明的是,為了保證生成的任務(wù)指紋能夠準(zhǔn)確的識別不同的任務(wù),在本實施例中采用數(shù)據(jù)挖掘的方式來標(biāo)注負載任務(wù)之間的區(qū)別,確定與每個任務(wù)的硬件性能指標(biāo)對應(yīng)的數(shù)值范圍,以及該類型的任務(wù)所對應(yīng)的運行時間信息或者運行地點信息;在對任務(wù)進行識別時,只要該任務(wù)的硬件性能指標(biāo)的計數(shù)值落在相對應(yīng)的數(shù)值區(qū)間內(nèi),以及與該區(qū)間內(nèi)的任務(wù)的運行時間和運行地點相同,則認為該任務(wù)與該區(qū)間內(nèi)的任務(wù)屬于同一種類型的任務(wù);在本實施例中對指紋的生成與上述實施例中的指紋生成方式相同,在此不再贅述。
基于上述實施例,所述經(jīng)驗數(shù)據(jù)庫的生成方法包括:
利用指紋以及基于數(shù)據(jù)挖掘的分類算法,對任務(wù)進行分類,生成多個任務(wù)分類集合;
通過資源分配器對每個任務(wù)分類集合中的每個任務(wù)進行動態(tài)資源調(diào)整,確定每個任務(wù)的資源調(diào)度策略,生成經(jīng)驗數(shù)據(jù)庫。
基于上述實施例,所述利用指紋以及基于數(shù)據(jù)挖掘的分類算法,對任務(wù)進行分類,生成多個任務(wù)分類集合,包括:
利用指紋及kmeans分類算法對任務(wù)進行分類,生成多個任務(wù)分類集合。
需要說明的是,本實施例中的經(jīng)驗數(shù)據(jù)庫的生成方法與上述實施例中的生成方式一致,在此不再贅述。
基于上述實施例,所述識別成功之后,還包括:
從所述經(jīng)驗數(shù)據(jù)庫中獲取與所述目標(biāo)指紋對應(yīng)的資源調(diào)度策略并執(zhí)行。
具體的,在本實施例中,首先利用先驗的資源調(diào)度決策生成經(jīng)驗數(shù)據(jù)庫,在相似任務(wù)或者相同任務(wù)到來時復(fù)用該經(jīng)驗數(shù)據(jù)庫的資源調(diào)度策略以支持在線資源調(diào)度。
需要說明的是,通過經(jīng)驗數(shù)據(jù)庫中的指紋對任務(wù)進行識別之后,通過自適應(yīng)資源調(diào)度器從經(jīng)驗數(shù)據(jù)庫中調(diào)取策略進行分配策略,該調(diào)度器需要確定一個可行性方案用于決定新到的任務(wù)屬于哪個任務(wù)分類集合-類似于cache查詢操作。本實施例采用前述分類的任務(wù)集合用于標(biāo)注任務(wù),并且將任務(wù)集合進行編號,這樣可以使得分類器快速選擇出任務(wù)隸屬的任務(wù)集合。本實施例采用weka機器學(xué)習(xí)包中的貝葉斯模型(bayesian)以及決策樹(decisiontrees)用于分類器的設(shè)計。一旦一個任務(wù)出現(xiàn)變化時(例如,強度或者其他資源需求),本實施例仍然需求收集底層的硬件信息去構(gòu)建新的任務(wù)指紋,緊接著查詢指紋信息庫用于在當(dāng)前可用指紋信息中尋找最優(yōu)匹配。在該基礎(chǔ)上,本實施例采用先前定義的分類策略并且輸出新到的任務(wù)類型需要的資源分配策略。
參見圖4,本發(fā)明實施例提供的一種基于云平臺的多維度任務(wù)識別裝置,包括:
檢測模塊401,用于檢測任務(wù)的運行狀態(tài)及資源需求;
記錄模塊402,用于記錄所述任務(wù)的多維度參數(shù);
指紋生成模塊403,用于利用所述任務(wù)的運行狀態(tài)、資源需求以及多維度參數(shù),生成與所述任務(wù)對應(yīng)的指紋;
判斷模塊404,用于判斷經(jīng)驗數(shù)據(jù)庫中是否存在與所述指紋一致的目標(biāo)指紋;若存在,則識別成功;若不存在,則識別失?。凰鼋?jīng)驗數(shù)據(jù)庫中包括已識別任務(wù)的指紋。
基于上述實施例,所述檢測模塊通過計數(shù)器對所述任務(wù)的預(yù)定的硬件采樣事件進行信息采集;
所述指紋生成模塊通過對采集的信息進行分析挖掘,并利用所述多維度參數(shù)生成與所述任務(wù)對應(yīng)的指紋;其中,所述指紋包括:與所述任務(wù)對應(yīng)的多個硬件性能指標(biāo),以及與所述任務(wù)對應(yīng)的運行時間及運行地點。
基于上述實施例,還包括:
執(zhí)行模塊,用于從所述經(jīng)驗數(shù)據(jù)庫中獲取與所述目標(biāo)指紋對應(yīng)的資源調(diào)度策略并執(zhí)行。
基于上述實施例,還包括經(jīng)驗數(shù)據(jù)庫生成模塊;所述經(jīng)驗數(shù)據(jù)庫生成模塊包括:
分類單元,用于利用指紋以及基于數(shù)據(jù)挖掘的分類算法,對任務(wù)進行分類,生成多個任務(wù)分類集合;
資源調(diào)度策略生成模塊,用于通過資源分配器對每個任務(wù)分類集合中的每個任務(wù)進行動態(tài)資源調(diào)整,確定每個任務(wù)的資源調(diào)度策略,生成經(jīng)驗數(shù)據(jù)庫。
基于上述實施例,所述分類單元利用指紋及kmeans分類算法對任務(wù)進行分類,生成多個任務(wù)分類集合。
綜上可見,在本方案中,通過任務(wù)的運行狀態(tài)、資源需求以及多維度運行參數(shù),可生成與每個任務(wù)相對應(yīng)的指紋,這樣在檢測到新的任務(wù)時,可通過將新任務(wù)的指紋與經(jīng)驗數(shù)據(jù)庫中存儲的已識別任務(wù)的指紋進行對比,實現(xiàn)對新任務(wù)的識別。
為了找到提升系統(tǒng)整體性能的技術(shù)方案,有必要準(zhǔn)確地對任務(wù)的瓶頸進行確定,由此,本發(fā)明實施例進一步公開了一種基于云平臺的任務(wù)瓶頸確定方法,需要說明的是,下文描述的任務(wù)瓶頸確定方法及裝置與上文描述的任務(wù)識別方法及裝置可以相互參照,僅對不同之處進行描述。
參見圖5,本發(fā)明實施例提供的一種基于云平臺的任務(wù)瓶頸確定方法,包括:
s501、檢測每個任務(wù)的運行狀態(tài)及資源需求;
具體的,本方案中的運行狀態(tài)和資源需求與實時統(tǒng)計的硬件事件信息相同,即為整個服務(wù)器硬件資源信息,從cpu信息到磁盤信息均可,包括硬件資源信息以及操作系統(tǒng)信息,通過這些信息均可以了解到任務(wù)的資源消耗以及資源需求。本方案的運行狀態(tài)為:當(dāng)前任務(wù)在運行過程中在哪些服務(wù)器硬件資源上的消耗情況,資源需求包括整體服務(wù)器的硬件資源,網(wǎng)絡(luò),計算,存儲等。
s502、根據(jù)每個任務(wù)的運行狀態(tài)及資源需求生成與每個任務(wù)對應(yīng)的指紋;
其中,所述檢測每個任務(wù)的運行狀態(tài)及資源需求;根據(jù)每個任務(wù)的運行狀態(tài)及資源需求生成與每個任務(wù)對應(yīng)的指紋,包括:
通過計數(shù)器對預(yù)定的硬件采樣事件進行信息采集;
對采集的信息進行分析挖掘,生成與所述任務(wù)對應(yīng)的指紋;其中,所述指紋中包括多個硬件性能指標(biāo)
需要說明的是,在本實施例中對指紋的生成,與上述實施例中對指紋的生成方式一致,在此不再贅述。
s503、從經(jīng)驗數(shù)據(jù)庫中獲取與每個任務(wù)的指紋對應(yīng)的資源調(diào)度策略并執(zhí)行;
其中,所述從經(jīng)驗數(shù)據(jù)庫中獲取與每個任務(wù)的指紋對應(yīng)的資源調(diào)度策略并執(zhí)行,包括:
判斷經(jīng)驗數(shù)據(jù)庫中是否存在與指紋一致的目標(biāo)指紋;
若存在,則從所述經(jīng)驗數(shù)據(jù)庫中獲取與所述目標(biāo)指紋對應(yīng)的資源調(diào)度策略并執(zhí)行;若不存在,則根據(jù)任務(wù)的指紋更新經(jīng)驗數(shù)據(jù)庫。
具體的,在本實施例中,對于新達到的任務(wù),如果分類系統(tǒng)發(fā)現(xiàn)該任務(wù)與經(jīng)驗庫的任務(wù)指紋相同,則采用經(jīng)驗庫中采納的調(diào)度策略。如果分類系統(tǒng)發(fā)現(xiàn)無法與經(jīng)驗庫內(nèi)緩存數(shù)據(jù)進行匹配,則執(zhí)行新的資源配置策略。如果分類系統(tǒng)無法監(jiān)測新達到的任務(wù),本實施例將給該任務(wù)最大的可用資源。該設(shè)計策略可以極大程度地降低不必要的資源配給以及保證任務(wù)的性能需求。
s504、監(jiān)測運行的任務(wù)間是否存在資源競爭;若存在,則對系統(tǒng)的資源瓶頸進行確定。
其中,所述對系統(tǒng)的資源瓶頸進行確定之后,包括:
確定不滿足目標(biāo)服務(wù)水平slo的目標(biāo)任務(wù);
根據(jù)所述目標(biāo)任務(wù)的資源瓶頸、任務(wù)類型以及任務(wù)指標(biāo),對所述目標(biāo)任務(wù)的資源調(diào)度策略進行調(diào)整;其中,所述任務(wù)指標(biāo)包括硬件性能指標(biāo)及任務(wù)固有性能指標(biāo)。
具體的,對于多任務(wù)處理系統(tǒng),會產(chǎn)生資源干擾,并且資源干擾會帶來性能的降級,從而使slo無法被滿足。因此,本實施例需要評估任務(wù)資源競爭對于性能的影響,并且考慮性能瓶頸資源的分配。在本實施例中,對系統(tǒng)的資源瓶頸進行確定時,是根據(jù)每個任務(wù)的特定硬件性能指標(biāo)對系統(tǒng)的資源瓶頸進行確定。即采用服務(wù)器的硬件計數(shù)器,對于計數(shù)器監(jiān)測的特定單元的性能參數(shù)進行統(tǒng)計,用于判斷資源瓶頸。并且在對目標(biāo)任務(wù)進行瓶頸資源調(diào)度時,需要根據(jù)任務(wù)類型進行合理的調(diào)度,比如說a,b兩個任務(wù)同時運行時的瓶頸資源為cache,本實施例判斷當(dāng)前ab任務(wù)的需求以及優(yōu)先級,進行cache級的任務(wù)調(diào)度以便a或者b都可以拿到合適的資源以滿足性能需求。
具體的,在本方案中,自適應(yīng)調(diào)度器需要實時的監(jiān)測任務(wù)的性能結(jié)果,例如:延遲,吞吐量或者任務(wù)完成時間等信息。如果slo無法被滿足,則需要進一步調(diào)整瓶頸資源的分配。任務(wù)資源的干擾需要與負載的變化進行區(qū)隔,因為資源干擾帶來的性能降級與負載強度的變化具有本質(zhì)的不同,負載強度變化可以從任務(wù)分類中體現(xiàn)出來。本實施例采用如下的公式標(biāo)識資源競爭帶來的性能影響:
該index表示在完成資源分配之后,資源競爭對于性能的影響。值得說明的是,本實施例并不僅僅依賴于底層硬件信息作為任務(wù)的性能指標(biāo),還依賴于任務(wù)本身固有的性能指標(biāo),例如,響應(yīng)時間與吞吐量。因此,當(dāng)任務(wù)競爭確實存在時,資源競爭分析器指定資源競爭的瓶頸,例如,共享cache以及i/o;并且,在運行調(diào)度策略后,如果任務(wù)固有的性能指標(biāo)無法被滿足,本實施例對資源調(diào)度策略進行調(diào)整,例如:調(diào)整最低的資源分配用于滿足任務(wù)的性能需求。此外,調(diào)度器通過任務(wù)的指紋從經(jīng)驗數(shù)據(jù)庫中查詢當(dāng)前瓶頸資源的分配建議,如果當(dāng)前的指紋信息庫中不包含到來任務(wù)的對應(yīng)指紋信息,調(diào)度器在指紋庫中找到類似的指紋索引,找出類似的資源分配策略用于執(zhí)行調(diào)度過程。
需要說明的是,如果資源競爭帶來的性能降級喚起資源的重新分配,那么分析器將會根據(jù)cpi的結(jié)果指定導(dǎo)致性能降級的瓶頸資源。cpi的結(jié)果可以很好的捕捉vm到底花了多長時間用于處理任務(wù)。性能干擾將會使得vm承受更多的stallcycles以及處理更少的工作。
本實施例進一步分析運行態(tài)的性能指標(biāo):
toverall=tcore+toff_core+tdisk+tnet
其中tcore表示在cpu核心上運行的指令數(shù),toff_core表示內(nèi)存訪問導(dǎo)致的額外cpu停頓,tdisk表示磁盤訪問的停頓時間,tnet表示網(wǎng)絡(luò)相關(guān)的運行時間。
參見圖6,本發(fā)明實施例提供的一種基于云平臺的任務(wù)瓶頸確定裝置,包括:
檢測模塊601,用于檢測每個任務(wù)的運行狀態(tài)及資源需求;
指紋生成模塊602,用于根據(jù)每個任務(wù)的運行狀態(tài)及資源需求生成與每個任務(wù)對應(yīng)的指紋;
執(zhí)行模塊603,用于從經(jīng)驗數(shù)據(jù)庫中獲取與每個任務(wù)的指紋對應(yīng)的資源調(diào)度策略并執(zhí)行;
資源瓶頸確定模塊604,用于監(jiān)測運行的任務(wù)間是否存在資源競爭;若存在,則對系統(tǒng)的資源瓶頸進行確定。
基于上述任意實施例,所述指紋生成模塊通過計數(shù)器對預(yù)定的硬件采樣事件進行信息采集,對采集的信息進行分析挖掘,生成與所述任務(wù)對應(yīng)的指紋;其中,所述指紋中包括多個硬件性能指標(biāo)。
基于上述任意實施例,所述執(zhí)行模塊,包括:
判斷單元,用于判斷經(jīng)驗數(shù)據(jù)庫中是否存在與指紋一致的目標(biāo)指紋;
執(zhí)行單元,用于在所述經(jīng)驗數(shù)據(jù)庫中存在與指紋一致的目標(biāo)指紋時,從所述經(jīng)驗數(shù)據(jù)庫中獲取與所述目標(biāo)指紋對應(yīng)的資源調(diào)度策略并執(zhí)行;
更新單元,用于在所述經(jīng)驗數(shù)據(jù)庫中不存在與指紋一致的目標(biāo)指紋時,根據(jù)任務(wù)的指紋更新經(jīng)驗數(shù)據(jù)庫。
基于上述任意實施例,所述資源瓶頸確定模塊根據(jù)每個任務(wù)的特定硬件性能指標(biāo)對系統(tǒng)的資源瓶頸進行確定。
基于上述任意實施例,本方案還包括:
目標(biāo)任務(wù)確定模塊,用于確定不滿足目標(biāo)服務(wù)水平slo的目標(biāo)任務(wù);
資源調(diào)度策略調(diào)整模塊,用于根據(jù)所述目標(biāo)任務(wù)的資源瓶頸、任務(wù)類型以及任務(wù)指標(biāo),對所述目標(biāo)任務(wù)的資源調(diào)度策略進行調(diào)整;其中,所述任務(wù)指標(biāo)包括硬件性能指標(biāo)及任務(wù)固有性能指標(biāo)。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個實體或者操作與另一個實體或操作區(qū)分開來,而不一定要求或者暗示這些實體或操作之間存在任何這種實際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
說明書中各個實施例采用遞進的方式描述,每個實施例重點說明的都是與其他實施例的不同之處,各個實施例之間相同相似部分互相參見即可。對于實施例公開的裝置而言,由于其與實施例公開的方法相對應(yīng),所以描述的比較簡單,相關(guān)之處參見方法部分說明即可。
專業(yè)人員還可以進一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認為超出本發(fā)明的范圍。
結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以直接用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機存儲器(ram)、內(nèi)存、只讀存儲器(rom)、電可編程rom、電可擦除可編程rom、寄存器、硬盤、可移動磁盤、cd-rom、或技術(shù)領(lǐng)域內(nèi)所公知的任意其它形式的存儲介質(zhì)中。
本文中應(yīng)用了具體個例對本發(fā)明的原理及實施方式進行了闡述,以上實施例的說明只是用于幫助理解本發(fā)明的方法及其核心思想。應(yīng)當(dāng)指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權(quán)利要求的保護范圍內(nèi)。