本發(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ù)的識別,一般是通過單一屬性進行識別,這種識別方式不準確,并且無法知道不同類型任務(wù)的資源消耗情況。
因此,如何對任務(wù)進行準確識別,是本領(lǐng)域技術(shù)人員需要解決的問題。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提供一種基于云平臺的任務(wù)識別方法及裝置,以實現(xiàn)對云平臺任務(wù)的準確識別。其具體方案如下:
一種基于云平臺的任務(wù)識別方法,包括:
檢測任務(wù)的運行狀態(tài)及資源需求;
利用所述任務(wù)的運行狀態(tài)及資源需求,生成與所述任務(wù)對應(yīng)的指紋;
判斷經(jīng)驗數(shù)據(jù)庫中是否存在與所述指紋一致的目標指紋;若存在,則識別成功;若不存在,則識別失??;所述經(jīng)驗數(shù)據(jù)庫中包括已識別任務(wù)的指紋。
其中,所述檢測任務(wù)的運行狀態(tài)及資源需求,利用所述任務(wù)的運行狀態(tài)及資源需求,生成與所述任務(wù)對應(yīng)的指紋,包括:
通過計數(shù)器對所述任務(wù)的預(yù)定的硬件采樣事件進行信息采集,并對采集的信息進行分析挖掘,生成與所述任務(wù)對應(yīng)的指紋;其中,所述指紋中包括多個硬件性能指標。
其中,所述識別成功之后,還包括:
從所述經(jīng)驗數(shù)據(jù)庫中獲取與所述目標指紋對應(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ù)的運行狀態(tài)及資源需求,生成與所述任務(wù)對應(yīng)的指紋;
判斷模塊,用于判斷經(jīng)驗數(shù)據(jù)庫中是否存在與所述指紋一致的目標指紋;若存在,則識別成功;若不存在,則識別失??;所述經(jīng)驗數(shù)據(jù)庫中包括已識別任務(wù)的指紋。
其中,所述檢測模塊通過計數(shù)器對所述任務(wù)的預(yù)定的硬件采樣事件進行信息采集;
所述指紋生成模塊通過對采集的信息進行分析挖掘,生成與所述任務(wù)對應(yīng)的指紋;其中,所述指紋中包括多個硬件性能指標。
其中,還包括:
執(zhí)行模塊,用于從所述經(jīng)驗數(shù)據(jù)庫中獲取與所述目標指紋對應(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ù)的運行狀態(tài)及資源需求,生成與所述任務(wù)對應(yīng)的指紋;判斷經(jīng)驗數(shù)據(jù)庫中是否存在與所述指紋一致的目標指紋;若存在,則識別成功;若不存在,則識別失?。凰鼋?jīng)驗數(shù)據(jù)庫中包括已識別任務(wù)的指紋??梢?,在本方案中,通過任務(wù)的運行狀態(tài)及資源需求,可生成與每個任務(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ā)明保護的范圍。
當前,numa架構(gòu)作為非一致性內(nèi)存架構(gòu),是為了解決傳統(tǒng)的對稱多處理系統(tǒng)中的可擴展性問題而誕生的。在numa架構(gòu)中可運行很多不同類型的任務(wù),目前對不同類型任務(wù)的識別,一般是通過單一屬性進行識別,這種識別方式不準確,并且無法知道不同類型任務(wù)的資源消耗情況。如何對任務(wù)進行準確識別,是本領(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)為:當前任務(wù)在運行過程中在哪些服務(wù)器硬件資源上的消耗情況,資源需求包括整體服務(wù)器的硬件資源,網(wǎng)絡(luò),計算,存儲等。
s102、利用所述任務(wù)的運行狀態(tài)及資源需求,生成與所述任務(wù)對應(yīng)的指紋;
具體的,為了精確了解每個任務(wù)的資源請求,在本方案中生成每個任務(wù)的指紋,以識別任務(wù)的資源需求。首先,需要提取任務(wù)的資源指紋,在提取資源指紋時,需要滿足如下策略,并且,通過任務(wù)的運行狀態(tài)及資源需求所生成的指紋,可以準確的標注任務(wù)的資源消耗,以及當前資源供給與任務(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ù)庫中是否存在與所述指紋一致的目標指紋;若存在,則識別成功;若不存在,則識別失敗;所述經(jīng)驗數(shù)據(jù)庫中包括已識別任務(wù)的指紋。
具體的,本方案中,可以使用底層的指標捕捉負載任務(wù)的行為,為不同的任務(wù)打上唯一的標簽,例如任務(wù)的指紋。通過這種方式,無需事先了解任務(wù)的信息以及訪問行為,便可以在任務(wù)運行時對任務(wù)進行識別;例如,對于benchmark的行為,本實施例在測試之前通常都已經(jīng)了解,而生產(chǎn)環(huán)境的任務(wù)行為通常情況下是無法被事先捕捉的,這樣通過設(shè)置與不同任務(wù)對應(yīng)的唯一指紋,便可以通過指紋識別該任務(wù)。
需要說明的是,虛擬化環(huán)境通常都已配置了多種資源監(jiān)控工具以標注不同的虛擬機資源信息。例如,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)的指紋;其中,所述指紋中包括多個硬件性能指標。
具體的,由于云環(huán)境下服務(wù)的多樣性,為了保證生成的任務(wù)指紋能夠準確的識別不同的任務(wù),在本實施例中采用數(shù)據(jù)挖掘的方式來標注負載任務(wù)之間的區(qū)別,確定與每個任務(wù)的硬件性能指標對應(yīng)的數(shù)值范圍,在對任務(wù)進行識別時,只要該任務(wù)的硬件性能指標的計數(shù)值落在相對應(yīng)的數(shù)值區(qū)間內(nèi),則認為該任務(wù)與該區(qū)間內(nèi)的任務(wù)屬于同一種類型的任務(wù)。需要說明的是,如果任務(wù)的訪問類型(例如,read/write比率)或者負載強度發(fā)生了變化,那么計數(shù)器采集的硬件性能指標的值會出現(xiàn)差值,并且負載變化越強烈,該值的差異性將會越大,這樣,才可以通過不同類型的任務(wù)的指紋,對不同訪問類型的任務(wù)進行識別。此外,負載指紋采樣所需的其他計數(shù)器值將會降低歸類的噪聲以確保任務(wù)分類精度。
具體的,在本實施例中,使用典型特征的選擇過程,即通過分類算法進行指標特征的選擇,可幫助本實施例理解任務(wù)的主要特性。在本方案中,可以采用weka機器學習工具用于采樣數(shù)據(jù)集的分類,并且,根據(jù)以往的經(jīng)驗,可將cfssubseteval技術(shù)與greedstepwise搜索方式結(jié)合,從而可以獲得較高的分類準確性。需要說明的是,本實施例中的任務(wù)的指紋可以劃分為n個維度,其中每個維度均有hpc事件所表征:
ws={m1,m2,......,mn}
其中mi表示采樣的第i個硬件性能指標i。為了保證采樣的精確性,本實施例會根據(jù)不同的任務(wù)類型選擇合適的采樣指標。例如,以rubis負載請求為例,針對這樣模擬電商系統(tǒng)的benchmark,本實施例采用如表1所示的硬件采樣事件。這些事件囊括了一系列的性能信息,如cpu,cache,memory以及busqueue。
表1基于硬件底層信息的指紋標簽
基于上述實施例,所述經(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ù)的特征均進行記錄,也就是通過硬件性能指標生成指紋時增加采樣的指標,這樣會帶來較大的訪問cache命中率但是這樣一來并不現(xiàn)實,會給指紋模塊以及分析過程帶來很大的性能開銷。例如,intelxeonx5472具有4個寄存器并且可以支撐60個不同的采樣事件。從實踐的角度分析,采樣如此之多的hpc事件并不完全實用,在進行任務(wù)分類過程時并不能起到區(qū)分的功效。從另外一個角度來說,降低采樣的數(shù)量將會降低樣本空間的維度并且可以顯著地加速機器學習算法的分類過程,但是如果刪除一些典型任務(wù)的采樣信息,將會導(dǎo)致無法接受的資源分配效率,直接帶來性能的下降。
為了解決該問題,在本實施例中采用任務(wù)分類以及任務(wù)集合的方式進行任務(wù)特征類型的標注。首先,一段時間的監(jiān)測(例如,一天或者一個星期)。在采樣時間內(nèi),本實施例將會收集硬件的采樣事件信息。其次,將采樣信息進行分析,挖掘以生成任務(wù)的指紋信息,并且將每個任務(wù)用n維空間進行標注(n表示指紋的采樣種類)。最后,本實施例將任務(wù)進行分類。
本實施例具體可以采用標準的分類工具,例如kmeans,生成任務(wù)的集合。本實施例希望該分類框架可以自動的確定集合的個數(shù),并且還能夠兼顧采樣的性能開銷以及“訪問cache”的命中率。本實施例假設(shè)生產(chǎn)環(huán)境的負載可以由該任務(wù)分類集合進行表征。用集合進行標注生產(chǎn)環(huán)境的任務(wù)行為的優(yōu)點在于無需使得生產(chǎn)環(huán)境的hpc硬件指標值與采樣環(huán)境完全相同。本實施例設(shè)計負載集合的方案用于將生產(chǎn)環(huán)境的任務(wù)行為與采樣環(huán)境的任務(wù)行為進行歸類標注,例如,在采樣環(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è)計,本實施例采用線性查找的方式,將一系列的目標負載行為進行“重放”,再針對特定的虛擬機進行動態(tài)的增量式資源配給,隨后選擇可以滿足slo的最小資源分配。例如,動態(tài)的增量調(diào)整cpu以及memory的資源分配直到滿足slo。
基于上述任意實施例,所述識別成功之后,還包括:
從所述經(jīng)驗數(shù)據(jù)庫中獲取與所述目標指紋對應(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ù)集合用于標注任務(wù),并且將任務(wù)集合進行編號,這樣可以使得分類器快速選擇出任務(wù)隸屬的任務(wù)集合。本實施例采用weka機器學習包中的貝葉斯模型(bayesian)以及決策樹(decisiontrees)用于分類器的設(shè)計。一旦一個任務(wù)出現(xiàn)變化時(例如,強度或者其他資源需求),本實施例仍然需求收集底層的硬件信息去構(gòu)建新的任務(wù)指紋,緊接著查詢指紋信息庫用于在當前可用指紋信息中尋找最優(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ù)庫中是否存在與所述指紋一致的目標指紋;若存在,則識別成功;若不存在,則識別失??;所述經(jīng)驗數(shù)據(jù)庫中包括已識別任務(wù)的指紋。
基于上述實施例,所述檢測模塊通過計數(shù)器對所述任務(wù)的預(yù)定的硬件采樣事件進行信息采集;
所述指紋生成模塊通過對采集的信息進行分析挖掘,生成與所述任務(wù)對應(yīng)的指紋;其中,所述指紋中包括多個硬件性能指標。
基于上述實施例,還包括:
執(zhí)行模塊,用于從所述經(jīng)驗數(shù)據(jù)庫中獲取與所述目標指紋對應(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)為:當前任務(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ù)庫中是否存在與所述指紋一致的目標指紋;若存在,則識別成功;若不存在,則識別失?。凰鼋?jīng)驗數(shù)據(jù)庫中包括已識別任務(wù)的指紋。
具體的,任務(wù)的運行時間及運行地點的不同,會導(dǎo)致產(chǎn)生的指紋不同;因此,在本實施例中為了提高識別的準確度,可將在檢測任務(wù)的運行狀態(tài)及資源需求時,同時采集該任務(wù)的多維度參數(shù),該多維度參數(shù)可以為任務(wù)的運行時間、運行地點等,這樣在對任務(wù)進行識別時,可優(yōu)先從經(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)的多個硬件性能指標,以及與所述任務(wù)對應(yīng)的運行時間及運行地點。
需要說明的是,為了保證生成的任務(wù)指紋能夠準確的識別不同的任務(wù),在本實施例中采用數(shù)據(jù)挖掘的方式來標注負載任務(wù)之間的區(qū)別,確定與每個任務(wù)的硬件性能指標對應(yīng)的數(shù)值范圍,以及該類型的任務(wù)所對應(yīng)的運行時間信息或者運行地點信息;在對任務(wù)進行識別時,只要該任務(wù)的硬件性能指標的計數(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ù)庫中獲取與所述目標指紋對應(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ù)集合用于標注任務(wù),并且將任務(wù)集合進行編號,這樣可以使得分類器快速選擇出任務(wù)隸屬的任務(wù)集合。本實施例采用weka機器學習包中的貝葉斯模型(bayesian)以及決策樹(decisiontrees)用于分類器的設(shè)計。一旦一個任務(wù)出現(xiàn)變化時(例如,強度或者其他資源需求),本實施例仍然需求收集底層的硬件信息去構(gòu)建新的任務(wù)指紋,緊接著查詢指紋信息庫用于在當前可用指紋信息中尋找最優(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ù)庫中是否存在與所述指紋一致的目標指紋;若存在,則識別成功;若不存在,則識別失敗;所述經(jīng)驗數(shù)據(jù)庫中包括已識別任務(wù)的指紋。
基于上述實施例,所述檢測模塊通過計數(shù)器對所述任務(wù)的預(yù)定的硬件采樣事件進行信息采集;
所述指紋生成模塊通過對采集的信息進行分析挖掘,并利用所述多維度參數(shù)生成與所述任務(wù)對應(yīng)的指紋;其中,所述指紋包括:與所述任務(wù)對應(yīng)的多個硬件性能指標,以及與所述任務(wù)對應(yīng)的運行時間及運行地點。
基于上述實施例,還包括:
執(zhí)行模塊,用于從所述經(jīng)驗數(shù)據(jù)庫中獲取與所述目標指紋對應(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ù)方案,有必要準確地對任務(wù)的瓶頸進行確定,由此,本發(fā)明實施例進一步公開了一種基于云平臺的任務(wù)瓶頸確定方法,需要說明的是,下文描述的任務(wù)瓶頸確定方法及裝置與上文描述的任務(wù)識別方法及裝置可以相互參照,僅對不同之處進行描述。
參見圖5,本發(fā)明實施例提供的一種基于云平臺的任務(wù)瓶頸確定方法,包括:
s501、檢測每個任務(wù)的運行狀態(tài)及資源需求;
具體的,本方案中的運行狀態(tài)和資源需求與實時統(tǒng)計的硬件事件信息相同,即為整個服務(wù)器硬件資源信息,從cpu信息到磁盤信息均可,包括硬件資源信息以及操作系統(tǒng)信息,通過這些信息均可以了解到任務(wù)的資源消耗以及資源需求。本方案的運行狀態(tài)為:當前任務(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)的指紋;其中,所述指紋中包括多個硬件性能指標
需要說明的是,在本實施例中對指紋的生成,與上述實施例中對指紋的生成方式一致,在此不再贅述。
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ù)庫中是否存在與指紋一致的目標指紋;
若存在,則從所述經(jīng)驗數(shù)據(jù)庫中獲取與所述目標指紋對應(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)的資源瓶頸進行確定之后,包括:
確定不滿足目標服務(wù)水平slo的目標任務(wù);
根據(jù)所述目標任務(wù)的資源瓶頸、任務(wù)類型以及任務(wù)指標,對所述目標任務(wù)的資源調(diào)度策略進行調(diào)整;其中,所述任務(wù)指標包括硬件性能指標及任務(wù)固有性能指標。
具體的,對于多任務(wù)處理系統(tǒng),會產(chǎn)生資源干擾,并且資源干擾會帶來性能的降級,從而使slo無法被滿足。因此,本實施例需要評估任務(wù)資源競爭對于性能的影響,并且考慮性能瓶頸資源的分配。在本實施例中,對系統(tǒng)的資源瓶頸進行確定時,是根據(jù)每個任務(wù)的特定硬件性能指標對系統(tǒng)的資源瓶頸進行確定。即采用服務(wù)器的硬件計數(shù)器,對于計數(shù)器監(jiān)測的特定單元的性能參數(shù)進行統(tǒng)計,用于判斷資源瓶頸。并且在對目標任務(wù)進行瓶頸資源調(diào)度時,需要根據(jù)任務(wù)類型進行合理的調(diào)度,比如說a,b兩個任務(wù)同時運行時的瓶頸資源為cache,本實施例判斷當前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)出來。本實施例采用如下的公式標識資源競爭帶來的性能影響:
該index表示在完成資源分配之后,資源競爭對于性能的影響。值得說明的是,本實施例并不僅僅依賴于底層硬件信息作為任務(wù)的性能指標,還依賴于任務(wù)本身固有的性能指標,例如,響應(yīng)時間與吞吐量。因此,當任務(wù)競爭確實存在時,資源競爭分析器指定資源競爭的瓶頸,例如,共享cache以及i/o;并且,在運行調(diào)度策略后,如果任務(wù)固有的性能指標無法被滿足,本實施例對資源調(diào)度策略進行調(diào)整,例如:調(diào)整最低的資源分配用于滿足任務(wù)的性能需求。此外,調(diào)度器通過任務(wù)的指紋從經(jīng)驗數(shù)據(jù)庫中查詢當前瓶頸資源的分配建議,如果當前的指紋信息庫中不包含到來任務(wù)的對應(yīng)指紋信息,調(diào)度器在指紋庫中找到類似的指紋索引,找出類似的資源分配策略用于執(zhí)行調(diào)度過程。
需要說明的是,如果資源競爭帶來的性能降級喚起資源的重新分配,那么分析器將會根據(jù)cpi的結(jié)果指定導(dǎo)致性能降級的瓶頸資源。cpi的結(jié)果可以很好的捕捉vm到底花了多長時間用于處理任務(wù)。性能干擾將會使得vm承受更多的stallcycles以及處理更少的工作。
本實施例進一步分析運行態(tài)的性能指標:
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)的指紋;其中,所述指紋中包括多個硬件性能指標。
基于上述任意實施例,所述執(zhí)行模塊,包括:
判斷單元,用于判斷經(jīng)驗數(shù)據(jù)庫中是否存在與指紋一致的目標指紋;
執(zhí)行單元,用于在所述經(jīng)驗數(shù)據(jù)庫中存在與指紋一致的目標指紋時,從所述經(jīng)驗數(shù)據(jù)庫中獲取與所述目標指紋對應(yīng)的資源調(diào)度策略并執(zhí)行;
更新單元,用于在所述經(jīng)驗數(shù)據(jù)庫中不存在與指紋一致的目標指紋時,根據(jù)任務(wù)的指紋更新經(jīng)驗數(shù)據(jù)庫。
基于上述任意實施例,所述資源瓶頸確定模塊根據(jù)每個任務(wù)的特定硬件性能指標對系統(tǒng)的資源瓶頸進行確定。
基于上述任意實施例,本方案還包括:
目標任務(wù)確定模塊,用于確定不滿足目標服務(wù)水平slo的目標任務(wù);
資源調(diào)度策略調(diào)整模塊,用于根據(jù)所述目標任務(wù)的資源瓶頸、任務(wù)類型以及任務(wù)指標,對所述目標任務(wù)的資源調(diào)度策略進行調(diào)整;其中,所述任務(wù)指標包括硬件性能指標及任務(wù)固有性能指標。
最后,還需要說明的是,在本文中,諸如第一和第二等之類的關(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)當指出,對于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以對本發(fā)明進行若干改進和修飾,這些改進和修飾也落入本發(fā)明權(quán)利要求的保護范圍內(nèi)。