云環(huán)境下的虛擬機(jī)負(fù)載評(píng)估系統(tǒng)、方法以及服務(wù)節(jié)點(diǎn)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及云監(jiān)控技術(shù),并且更具體來說,涉及云環(huán)境下虛擬機(jī)的負(fù)載評(píng)估。
【背景技術(shù)】
[0002] 云計(jì)算中虛擬化技術(shù),在某些方面對(duì)傳統(tǒng)問題解決方案提供了一種新的思路,但 虛擬化技術(shù)作為一門新興的技術(shù),它在虛擬機(jī)資源性能管理與檢測(cè)等方面所做的工作仍然 有許多的不足之處。11 年的一篇論文《Toward an architecture for monitoring private clouds》中,作者同樣指出云監(jiān)控的重要性,盡管對(duì)云的管理部署的解決方案有許多,但是 云監(jiān)控的技術(shù)卻沒有跟上步伐。
[0003] -個(gè)系統(tǒng)的性能特征是由其本身特征以及運(yùn)行在上面的應(yīng)用服務(wù)的負(fù)載特征決 定的,它定量描述了一個(gè)基本的系統(tǒng)特征。如何去判斷應(yīng)用服務(wù)的負(fù)載特征從而了解整個(gè) 系統(tǒng)所處的環(huán)境具有重要意義。
[0004] 目前在虛擬機(jī)負(fù)載評(píng)估方面,并沒有精確的解決方案,大多基于人為或者虛擬機(jī) 宏觀運(yùn)行狀態(tài)表現(xiàn)判斷負(fù)載情況(例如:通過用戶數(shù)量預(yù)測(cè)一個(gè)負(fù)載今后運(yùn)行的情況與大 致性能需求),負(fù)載狀態(tài)評(píng)估相對(duì)單一、簡(jiǎn)略。
【發(fā)明內(nèi)容】
[0005] 傳統(tǒng)機(jī)器負(fù)載評(píng)估通常采用機(jī)器本身的系統(tǒng)數(shù)據(jù)進(jìn)行評(píng)分,通過預(yù)先設(shè)定的參數(shù) 來對(duì)機(jī)器本身進(jìn)行評(píng)估。這種方法在云環(huán)境下并不適用,因?yàn)樵骗h(huán)境下存在大量虛擬機(jī),用 戶與管理員真正需要了解的不僅是各個(gè)虛擬機(jī)性能上的差異性,更需要的是整體上的一個(gè) 較為精確地宏觀對(duì)比,從而了解具體應(yīng)用對(duì)資源的占用情況。
[0006] 為解決上述問題,本申請(qǐng)?zhí)峁┝艘环N云環(huán)境下的虛擬機(jī)負(fù)載評(píng)估系統(tǒng),包括:監(jiān)控 數(shù)據(jù)采集模塊,其配置成從云數(shù)據(jù)中心內(nèi)的一個(gè)或多個(gè)虛擬機(jī)處采集監(jiān)控?cái)?shù)據(jù);以及監(jiān)控 數(shù)據(jù)處理模塊,與所述監(jiān)控?cái)?shù)據(jù)采集模塊耦合,并配置成:針對(duì)所述一個(gè)或多個(gè)虛擬機(jī)中的 每一個(gè),利用第一 KMeans算法來將所述監(jiān)控?cái)?shù)據(jù)進(jìn)行聚集分組,每一個(gè)組具有一中心點(diǎn)坐 標(biāo),并根據(jù)所述分組和各組的中心點(diǎn)坐標(biāo)計(jì)算所述一個(gè)或多個(gè)虛擬機(jī)中每個(gè)虛擬機(jī)的性能 表征,即第一特征值;基于每個(gè)虛擬機(jī)的所述第一特征值,利用第二KMeans算法來將所述 一個(gè)或多個(gè)虛擬機(jī)進(jìn)行聚集分組,從而確定所述一個(gè)或多個(gè)虛擬機(jī)中每個(gè)虛擬機(jī)的特征類 型以及性能負(fù)載值;其中,所述第一 KMeans算法中的類型參數(shù)K大于所述第二KMeans算法 中的類型參數(shù),并且所述第一 KMeans算法的初始中心被選擇為使得初始類別之間保持盡 可能遠(yuǎn)的距離,而所述第二Kmeans算法的初始中心被選擇為所述第一 KMeans算法的初始 中心的子集。
[0007] 在上述虛擬機(jī)負(fù)載評(píng)估系統(tǒng)中,所述監(jiān)控?cái)?shù)據(jù)與一個(gè)或多個(gè)虛擬機(jī)的中央處理單 元、存儲(chǔ)器、硬盤輸入或輸出以及網(wǎng)絡(luò)輸入或輸出關(guān)聯(lián)。
[0008] 在上述虛擬機(jī)負(fù)載評(píng)估系統(tǒng)中,所述虛擬機(jī)的特征類型包括CPU密集型、Network 密集型以及Memory密集型。
[0009] 在上述虛擬機(jī)負(fù)載評(píng)估系統(tǒng)中,所述第一 KMeans算法中的類型參數(shù)K等于4,而所 述第二KMeans算法中的類型參數(shù)等于3。
[0010] 在上述虛擬機(jī)負(fù)載評(píng)估系統(tǒng)中,所述第一 KMeans算法的初始中心被選擇為 P1 (100,0,0)、P2(0,100,0)、P3(0,0,100)以及 P4 (0,0,0)。
[0011] 在上述虛擬機(jī)負(fù)載評(píng)估系統(tǒng)中,每一組中樣本的占比為4%、8%、(:%、0%,而每一 組的中心點(diǎn)坐標(biāo)分別為(XI,Yl,Zl),(X2, Y2, Z2),(X3, Y3, Z3)以及(X4, Y4, Z4),則所述 第一特征值由下面的等式來表示:
[0012]
[0013] 在上述虛擬機(jī)負(fù)載評(píng)估系統(tǒng)中,所述監(jiān)控?cái)?shù)據(jù)處理模塊進(jìn)一步被配置成根據(jù)所述 一個(gè)或多個(gè)虛擬機(jī)中的性能負(fù)載值來對(duì)虛擬機(jī)進(jìn)行重新分布,實(shí)現(xiàn)資源的有效利用。
[0014] 根據(jù)本申請(qǐng)的另一個(gè)方面,提供了一種云環(huán)境下對(duì)虛擬機(jī)進(jìn)行負(fù)載評(píng)估的方法, 包括:針對(duì)云數(shù)據(jù)中心內(nèi)的一個(gè)或多個(gè)虛擬機(jī)中的每一個(gè),利用第一 KMeans算法來將從所 述一個(gè)或多個(gè)虛擬機(jī)處獲得的監(jiān)控?cái)?shù)據(jù)進(jìn)行聚集分組,每一個(gè)組具有一中心點(diǎn)坐標(biāo),并根 據(jù)所述分組和各組的中心點(diǎn)坐標(biāo)計(jì)算所述一個(gè)或多個(gè)虛擬機(jī)中每個(gè)虛擬機(jī)的性能表征,即 第一特征值;基于每個(gè)虛擬機(jī)的所述第一特征值,利用第二KMeans算法來將所述一個(gè)或多 個(gè)虛擬機(jī)進(jìn)行聚集分組,從而確定所述一個(gè)或多個(gè)虛擬機(jī)中每個(gè)虛擬機(jī)的特征類型以及性 能負(fù)載值;其中,所述第一 KMeans算法中的類型參數(shù)K大于所述第二KMeans算法中的類型 參數(shù),并且所述第一 KMeans算法的初始中心被選擇為使得初始類別之間保持盡可能遠(yuǎn)的 距離,而所述第二Kmeans算法的初始中心被選擇為所述第一 KMeans算法的初始中心的子 集。
[0015] 在上述方法中,所述監(jiān)控?cái)?shù)據(jù)與一個(gè)或多個(gè)虛擬機(jī)的中央處理單元、存儲(chǔ)器、硬盤 輸入或輸出以及網(wǎng)絡(luò)輸入或輸出關(guān)聯(lián)。
[0016] 在上述方法中,所述虛擬機(jī)的特征類型包括CPU密集型、Network密集型以及 Memory密集型。
[0017] 在上述方法中,所述第一 KMeans算法中的類型參數(shù)K等于4,而所述第二KMeans 算法中的類型參數(shù)等于3。
[0018] 在上述方法中,所述第一 KMeans算法的初始中心被選擇為Pl(100,0,0)、P2(0, 100,0)、P3 (0,0,100)以及 P4 (0,0,0)。
[0019] 在上述方法中,每一組中樣本的占比為A%、B%、C%、D%,每一組的中心點(diǎn)坐標(biāo)分 別為(XI,Yl,Zl),(X2, Y2, Z2),(X3, Y3, Z3)以及(X4, Y4, Z4),則所述第一特征值由下面 的等式來表示:
[0020]
[0021] 上述方法還可包括根據(jù)所述一個(gè)或多個(gè)虛擬機(jī)中的性能負(fù)載值來對(duì)虛擬機(jī)進(jìn)行 重新分布,實(shí)現(xiàn)資源的有效利用。
[0022] 根據(jù)本申請(qǐng)的又一個(gè)方面,提供了一種包括前面所述的虛擬機(jī)負(fù)載評(píng)估系統(tǒng)的服 務(wù)節(jié)點(diǎn)。
[0023] 本申請(qǐng)通過采用KMeans聚類算法實(shí)現(xiàn)虛擬機(jī)負(fù)載宏觀情況的評(píng)估監(jiān)測(cè),并且克 服了傳統(tǒng)的KMeans算法所存在的聚類結(jié)果的準(zhǔn)確性受很多因素的影響(包括初始中心的 選擇,噪聲、孤立點(diǎn)的處理與否)等缺陷。
【附圖說明】
[0024] 在參照附圖閱讀了本發(fā)明的【具體實(shí)施方式】以后,本領(lǐng)域技術(shù)人員將會(huì)更清楚地了 解本發(fā)明的各個(gè)方面。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解的是:這些附圖僅僅用于配合具體實(shí)施方 式說明本發(fā)明的技術(shù)方案,而并非意在對(duì)本發(fā)明的保護(hù)范圍構(gòu)成限制。
[0025] 圖1是根據(jù)本申請(qǐng)的實(shí)施例,包含虛擬機(jī)負(fù)載評(píng)估系統(tǒng)的云平臺(tái)應(yīng)用環(huán)境的示意 圖;
[0026] 圖2是根據(jù)本申請(qǐng)的實(shí)施例,虛擬機(jī)負(fù)載評(píng)估系統(tǒng)的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0027] 下面介紹的是本發(fā)明的多個(gè)可能實(shí)施例中的一些,旨在提供對(duì)本發(fā)明的基本了 解,并不旨在確認(rèn)本發(fā)明的關(guān)鍵或決定性的要素或限定所要保護(hù)的范圍。容易理解,根據(jù)本 發(fā)明的技術(shù)方案,在不變更本發(fā)明的實(shí)質(zhì)精神下,本領(lǐng)域的一般技術(shù)人員可以提出可相互 替換的其它實(shí)現(xiàn)方式。因此,以下【具體實(shí)施方式】以及附圖僅是對(duì)本發(fā)明的技術(shù)方案的示例 性說明,而不應(yīng)當(dāng)視為本發(fā)明的全部或者視為對(duì)本發(fā)明技術(shù)方案的限定或限制。
[0028] 圖1是根據(jù)本申請(qǐng)的實(shí)施例,包含虛擬機(jī)負(fù)載評(píng)估系統(tǒng)的云平臺(tái)應(yīng)用環(huán)境的示意 圖。在圖1中,用戶在諸如Openstack等云數(shù)據(jù)中心140的一個(gè)或多個(gè)虛擬機(jī)實(shí)例上部署 相關(guān)應(yīng)用服務(wù)。應(yīng)用服務(wù)的有關(guān)數(shù)據(jù)就是服務(wù)節(jié)點(diǎn)120中虛擬機(jī)負(fù)載評(píng)估系統(tǒng)130所要采 集的對(duì)象,包括CPU、Memory、disk I/O以及network 10等數(shù)據(jù)源,然后就虛擬機(jī)負(fù)載評(píng)估 系統(tǒng)130對(duì)采集的數(shù)據(jù)進(jìn)行處理分析,并將分析結(jié)果返回到前端展示模塊110。
[0029] 圖2是根據(jù)本申請(qǐng)的實(shí)施例,虛擬機(jī)負(fù)載評(píng)估系統(tǒng)的結(jié)構(gòu)示意圖。結(jié)合圖1,虛擬 機(jī)負(fù)載評(píng)估系統(tǒng)130中的監(jiān)控?cái)?shù)據(jù)采集模塊210負(fù)責(zé)從云數(shù)據(jù)中心140采集數(shù)據(jù)并將采集 數(shù)據(jù)提供給監(jiān)控?cái)?shù)據(jù)處理模塊220。該監(jiān)控?cái)?shù)據(jù)處理模塊按照下面所述的虛擬機(jī)性能數(shù)據(jù) 處理的方案對(duì)數(shù)據(jù)進(jìn)行處理分析,并將分析結(jié)果返回到前端展示模塊110。
[0030] 虛擬機(jī)性能數(shù)據(jù)處理主要分為兩部分,第一部分是利用云環(huán)境下改進(jìn)的KMeans 算法來計(jì)算出虛擬機(jī)的特征值,通過性能負(fù)載評(píng)估算法得出虛擬機(jī)近期的性能表征(特征 值)。第二部分是計(jì)算出所有虛擬機(jī)的特征表現(xiàn),主要分為三類即CPU、Network和Memory 限制型,并在此基礎(chǔ)之上得出虛擬機(jī)性能負(fù)載值,從而依據(jù)聚類結(jié)果評(píng)估應(yīng)用類型。
[0031] 在一個(gè)具體的實(shí)施例中,改進(jìn)的KMeans算法的類型參數(shù)K被選擇為4。這主要考 慮了算法對(duì)"噪聲"和"孤立點(diǎn)"敏感,故在常見三種云環(huán)境平臺(tái)虛擬機(jī)特征表現(xiàn)的基礎(chǔ)上 再加一簇,將噪聲與孤立點(diǎn)等納入該簇(大多數(shù)噪聲與孤立點(diǎn)來自于某些情況下沒有負(fù)載 的虛擬機(jī)實(shí)例),避免此類點(diǎn)對(duì)最終聚類結(jié)果的影響,從而提高聚類結(jié)果的準(zhǔn)確性。改進(jìn)的 KMeans算法中初始的中心選擇遵循的原則是:為保持聚類的明顯性,必須選取的中心相互 距離都較遠(yuǎn)。該方案能夠很好地排除類邊緣點(diǎn)和噪聲點(diǎn)的影響,并且能夠適應(yīng)數(shù)據(jù)集中各 個(gè)實(shí)際類別密度分布不平衡的情況,最終獲得較好的聚類效果,從而準(zhǔn)確得出虛擬機(jī)資源 利用情況。
[0032] 改進(jìn)的KMeans算法是具體算法描述如下:
[0033] 1)在所有的樣本點(diǎn)數(shù)據(jù)集A中依據(jù)已知條件,有目的性的(傳統(tǒng)Kmeans算法初始 中心的選擇具有隨機(jī)性)選擇K個(gè)樣本點(diǎn),將K個(gè)樣本點(diǎn)的值分別賦給初始時(shí)的聚類中心
[0034] 2)當(dāng)?shù)趈次迭代時(shí),對(duì)樣本點(diǎn)A中所有樣本點(diǎn)Pt (t = 1,2, 3--,η),依次計(jì)算到 各個(gè)聚類中心勺歐式距離d(t,i)
[0035]
[0036] 3)找出Pt關(guān)于_的最小的距離,將Pt劃入到關(guān)于.距離的最小的簇中
[0037] 4)更新各個(gè)簇的聚類中心點(diǎn)
[0038]
[0039] 5)計(jì)算數(shù)據(jù)集A中所有的點(diǎn)的平方誤差Ei,并與前一次的誤差Ei i比較
[0040]
[0041] 若|E1+1_E」< δ貝lj算法結(jié)束,否則轉(zhuǎn)入2)進(jìn)行再一次