本發(fā)明涉及計(jì)算機(jī)技術(shù)領(lǐng)域,具體地說(shuō)是一種實(shí)用性強(qiáng)、OpenStack平臺(tái)計(jì)算資源的監(jiān)控預(yù)測(cè)方法。
背景技術(shù):
隨著OpenStack平臺(tái)的廣泛使用,OpenStack平臺(tái)的監(jiān)控受到越來(lái)越多的關(guān)注,本發(fā)明針對(duì)這一現(xiàn)狀,提出了一種針對(duì)OpenStack平臺(tái)計(jì)算資源的監(jiān)控、預(yù)測(cè)方法。
OpenStack平臺(tái)允許資源超配,例如,OpenStack平臺(tái)默認(rèn)的CPU超配比是16、默認(rèn)的內(nèi)存超配比是1.5。通過(guò)超配OpenStack平臺(tái)可以支持更多數(shù)量的虛擬機(jī),提高了資源利用率。但是這也引入了一個(gè)問(wèn)題,當(dāng)同一臺(tái)宿主機(jī)上大量虛擬機(jī)的負(fù)載很高時(shí),虛擬機(jī)的性能會(huì)受很大影響,更嚴(yán)重的后果是宿主機(jī)上相關(guān)進(jìn)程被殺死導(dǎo)致虛擬機(jī)被關(guān)機(jī)。因此在做了資源超配時(shí),需要關(guān)注資源的分配情況和宿主機(jī)(計(jì)算節(jié)點(diǎn))的負(fù)載。隨著業(yè)務(wù)的發(fā)展,運(yùn)維人員會(huì)關(guān)心未來(lái)某個(gè)時(shí)間點(diǎn)計(jì)算資源的需求,因此也需要預(yù)測(cè)未來(lái)的計(jì)算資源的需求情況。總之,宿主機(jī)的負(fù)載、現(xiàn)有資源的分配情況以及未來(lái)資源的需求是運(yùn)維人員在運(yùn)維過(guò)程中比較關(guān)注的幾點(diǎn),但是現(xiàn)有監(jiān)控方案往往沒(méi)有從這個(gè)角度設(shè)計(jì)方案,也沒(méi)有考慮到將預(yù)測(cè)技術(shù)納入方案設(shè)計(jì)。針對(duì)這一情況,現(xiàn)提供一種OpenStack平臺(tái)計(jì)算資源的監(jiān)控預(yù)測(cè)方法。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的技術(shù)任務(wù)是針對(duì)以上不足之處,提供一種實(shí)用性強(qiáng)、OpenStack平臺(tái)計(jì)算資源的監(jiān)控預(yù)測(cè)方法。
一種OpenStack平臺(tái)計(jì)算資源的監(jiān)控預(yù)測(cè)方法,其實(shí)現(xiàn)過(guò)程為:
首先使用SNMP協(xié)議對(duì)OpenStack平臺(tái)計(jì)算節(jié)點(diǎn)進(jìn)行性能監(jiān)控;
然后使用OpenStack API進(jìn)行平臺(tái)資源分配情況的監(jiān)控;
最后建立差分整合自回歸移動(dòng)平均模型,對(duì)未來(lái)資源需求進(jìn)行預(yù)測(cè)。
所述計(jì)算節(jié)點(diǎn)的性能監(jiān)控是指在OpenStack平臺(tái)計(jì)算節(jié)點(diǎn)上使能SNMP協(xié)議,以固定時(shí)間間隔使用SNMP協(xié)議采集該節(jié)點(diǎn)的CPU利用率、內(nèi)存使用情況并存儲(chǔ)。
所述平臺(tái)計(jì)算資源分配情況的監(jiān)控是指以固定時(shí)間間隔使用OpenStack API采集OpenStack平臺(tái)中各虛擬機(jī)的虛擬CPU數(shù)、內(nèi)存分配數(shù)并求和存儲(chǔ)。
所述未來(lái)資源需求預(yù)測(cè)過(guò)程為,基于差分整合自回歸移動(dòng)平均模型,利用現(xiàn)有計(jì)算資源分配時(shí)間序列數(shù)據(jù),預(yù)測(cè)未來(lái)計(jì)算資源需求,這里的計(jì)算資源分配時(shí)間序列數(shù)據(jù)是指將平臺(tái)計(jì)算資源分配情況的監(jiān)控過(guò)程中獲取的虛擬CPU分配數(shù)、內(nèi)存分配量取出,按時(shí)間從前向后排列,得到的一個(gè)時(shí)間序列樣本數(shù)據(jù)。
建立差分整合自回歸移動(dòng)平均模型的過(guò)程為:基于獲取的時(shí)間序列樣本數(shù)據(jù),使用該序列數(shù)據(jù)建立ARIMA模型,ARIMA模型表示為ARIMA(p,d,q),其中p的含義是某一時(shí)刻的數(shù)據(jù)與前p個(gè)時(shí)刻的數(shù)據(jù)之間具有相關(guān)關(guān)系;q的含義是某一時(shí)刻的數(shù)據(jù)與前q個(gè)時(shí)刻的隨機(jī)干擾具有相關(guān)關(guān)系;d表示原始時(shí)間序列樣本經(jīng)過(guò)d階差分后得到了一個(gè)平穩(wěn)的時(shí)間序列樣本;ARIMA(p,d,q)模型如下公式所示:
其中xt表示時(shí)間序列在時(shí)刻t的觀察值,εt表示時(shí)間序列在時(shí)刻t的隨機(jī)干擾,而▽d=(1-B)d表示d階差分運(yùn)算,Φ(B)=1-φ1B-…-φpBp,Θ(B)=1-θ1B-…-θqBq,其中B為延遲算子,以B乘以某序列值xt就相當(dāng)于將該序列值的時(shí)刻向前回?fù)芰艘粋€(gè)時(shí)間單位,即Bxt=xt-1;而φ1…φpθ1…θq為參數(shù);模型中的第二行表示隨機(jī)干擾序列{εt}是零均值白噪聲序列,第三行表示當(dāng)期的隨機(jī)干擾與過(guò)去的序列值無(wú)關(guān)。
預(yù)測(cè)未來(lái)計(jì)算資源需求的過(guò)程為:首先判斷時(shí)間序列的平穩(wěn)性,如果序列不是平穩(wěn)序列,那么將其轉(zhuǎn)換為平穩(wěn)序列;再進(jìn)行模型的識(shí)別,使用自相關(guān)函數(shù)和偏自相關(guān)函數(shù)識(shí)別模型相關(guān)參數(shù);進(jìn)行模型的檢驗(yàn),通過(guò)檢驗(yàn)殘差序列是否為白噪聲序列,若參數(shù)序列是白噪聲序列,說(shuō)明模型有效,繼續(xù)進(jìn)行下一步;最后進(jìn)行序列預(yù)測(cè),根據(jù)現(xiàn)有數(shù)據(jù)預(yù)測(cè)平臺(tái)未來(lái)資源需求。
在判斷序列的平穩(wěn)性過(guò)程中,如果序列不是平穩(wěn)序列將其轉(zhuǎn)換為平穩(wěn)序列的過(guò)程為:首先通過(guò)做時(shí)序圖、自相關(guān)圖或DF檢驗(yàn)的方法檢驗(yàn)序列是否平穩(wěn),如果序列不是平穩(wěn)序列,則對(duì)樣本進(jìn)行d階差分將其轉(zhuǎn)換為平穩(wěn)序列。
在模型的識(shí)別過(guò)程中分別計(jì)算自相關(guān)函數(shù)和偏自相關(guān)函數(shù)用于識(shí)別模型中的p、q的值,其中自相關(guān)函數(shù)表示時(shí)間序列和與它相差某個(gè)固定時(shí)間的序列之間的相關(guān)性的測(cè)試;偏自相關(guān)函數(shù)表示相聚某個(gè)固定時(shí)間段的序列值之間的相關(guān)性測(cè)試。
識(shí)別模型中的p、q的值的具體過(guò)程為:自相關(guān)函數(shù)和偏自相關(guān)函數(shù)是截尾或拖尾的,截尾是指在某一點(diǎn)后函數(shù)值截?cái)酁?,拖尾是指函數(shù)值沒(méi)有截?cái)喽且恢北3窒氯?;通過(guò)繪制偏自相關(guān)函數(shù)圖確定ARIMA模型中的p的取值,過(guò)程如下:若自相關(guān)函數(shù)拖尾、偏自相關(guān)函數(shù)n階截尾,則令q為0,p為n;若自相關(guān)函數(shù)m階截尾,偏自相關(guān)函數(shù)拖尾,則令q為m,p為0;若自相關(guān)函數(shù)和偏自相關(guān)函數(shù)均拖尾,則窮舉p、q的值,然后使用最小信息準(zhǔn)則進(jìn)行定階。
在模型識(shí)別過(guò)程中計(jì)算完計(jì)算自相關(guān)函數(shù)和偏自相關(guān)函數(shù)后,對(duì)模型進(jìn)行參數(shù)估計(jì),該估計(jì)使用矩估計(jì)、極大似然估計(jì)和最小二乘估計(jì)方法進(jìn)行,根據(jù)已經(jīng)確定的三個(gè)參數(shù)p、q、d的值,將它們帶入模型中即可根據(jù)時(shí)間序列進(jìn)行參數(shù)估計(jì)。
本發(fā)明的一種OpenStack平臺(tái)計(jì)算資源的監(jiān)控預(yù)測(cè)方法,具有以下優(yōu)點(diǎn):
本發(fā)明的一種OpenStack平臺(tái)計(jì)算資源的監(jiān)控預(yù)測(cè)方法,使用時(shí)間序列分析方法對(duì)計(jì)算資源進(jìn)行了預(yù)測(cè),可根據(jù)現(xiàn)有數(shù)據(jù)預(yù)測(cè)平臺(tái)未來(lái)資源分配數(shù)據(jù)。本發(fā)明即可用于預(yù)警資源枯竭、又可以為資源調(diào)度提供參考,可提供宿主機(jī)的負(fù)載、現(xiàn)有資源的分配情況以及未來(lái)資源的需求狀況分析,滿足運(yùn)維人員的運(yùn)維需求,實(shí)用性強(qiáng),適用范圍廣泛,易于推廣。
附圖說(shuō)明
為了更清楚的說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單的介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
附圖1為本發(fā)明的實(shí)現(xiàn)流程圖。
具體實(shí)施方式
為了使本技術(shù)領(lǐng)域的人員更好地理解本發(fā)明方案,下面結(jié)合附圖和具體實(shí)施方式對(duì)本發(fā)明作進(jìn)一步的詳細(xì)說(shuō)明。顯然,所描述的實(shí)施例僅僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
如附圖1所示,一種OpenStack平臺(tái)計(jì)算資源的監(jiān)控預(yù)測(cè)方法,包含了計(jì)算節(jié)點(diǎn)的性能監(jiān)控;平臺(tái)計(jì)算資源分配情況的監(jiān)控;基于時(shí)間序列分析方法對(duì)平臺(tái)的未來(lái)計(jì)算資源需求的預(yù)測(cè)。
本發(fā)明的技術(shù)方案如下:
1、計(jì)算節(jié)點(diǎn)的性能監(jiān)控。
在OpenStack平臺(tái)計(jì)算節(jié)點(diǎn)使能SNMP協(xié)議,以固定時(shí)間間隔使用SNMP協(xié)議采集該節(jié)點(diǎn)的CPU利用率,內(nèi)存使用情況并存儲(chǔ)。
2、平臺(tái)計(jì)算資源分配情況的監(jiān)控。
以固定時(shí)間間隔使用OpenStack API采集OpenStack平臺(tái)中各虛擬機(jī)的虛擬CPU數(shù)、內(nèi)存分配數(shù)并求和存儲(chǔ)。
3、計(jì)算資源需求的預(yù)測(cè)。
將各時(shí)間點(diǎn)的虛擬CPU分配數(shù),內(nèi)存分配量取出,按時(shí)間從前向后排列,得到一個(gè)時(shí)間序列樣本,使用該序列數(shù)據(jù)建立ARIMA模型。
經(jīng)過(guò)分析發(fā)現(xiàn),某一時(shí)刻的資源分配數(shù)據(jù)與之前若干時(shí)刻的資源分配數(shù)據(jù)、隨機(jī)干擾是有一定相關(guān)性的;計(jì)算資源分配的時(shí)間序列數(shù)據(jù)一般不是平穩(wěn)的,通過(guò)做若干階的差分往往可以使差分后的序列變得平穩(wěn)。同時(shí)將以上兩點(diǎn)因素納入考慮,本發(fā)明使用時(shí)間序列分析方法中的差分整合自回歸移動(dòng)平均模型(ARIMA)預(yù)測(cè)未來(lái)某個(gè)時(shí)間點(diǎn)的計(jì)算資源分配情況。ARIMA模型的思想是通過(guò)多階差分等方法將原時(shí)間序列轉(zhuǎn)為一個(gè)平穩(wěn)的時(shí)間序列,在平穩(wěn)的時(shí)間序列中尋找某一時(shí)刻數(shù)據(jù)與之前若干時(shí)刻數(shù)據(jù)以及隨機(jī)干擾的關(guān)系。它可以表示為ARIMA(p,d,q),其中p的含義是某一時(shí)刻的數(shù)據(jù)與前p個(gè)時(shí)刻的數(shù)據(jù)之間具有相關(guān)關(guān)系;q的含義是某一時(shí)刻的數(shù)據(jù)與前q個(gè)時(shí)刻的隨機(jī)干擾具有相關(guān)關(guān)系;d表示原始時(shí)間序列樣本經(jīng)過(guò)d階差分后得到了一個(gè)平穩(wěn)的時(shí)間序列樣本。ARIMA(p,d,q)模型如下公式所示:
其中xt表示時(shí)間序列在時(shí)刻t的觀察值,εt表示時(shí)間序列在時(shí)刻t的隨機(jī)干擾,而▽d=(1-B)d表示d階差分運(yùn)算,Φ(B)=1-φ1B-…-φpBp,Θ(B)=1-θ1B-…-θqBq,其中B為延遲算子,以B乘以某序列值xt就相當(dāng)于將該序列值的時(shí)刻向前回?fù)芰艘粋€(gè)時(shí)間單位,即Bxt=xt-1;而φ1…φpθ1…θq為參數(shù)。模型中的第二行表示隨機(jī)干擾序列{εt}是零均值白噪聲序列,第三行表示當(dāng)期的隨機(jī)干擾與過(guò)去的序列值無(wú)關(guān)。
在進(jìn)行預(yù)測(cè)時(shí),可按照以下步驟進(jìn)行操作:基于差分整合自回歸移動(dòng)平均模型,利用現(xiàn)有計(jì)算資源分配時(shí)間序列數(shù)據(jù),預(yù)測(cè)未來(lái)計(jì)算資源需求。具體步驟為:判斷序列的平穩(wěn)性,如果序列不是平穩(wěn)序列,那么需要將樣本轉(zhuǎn)換為平穩(wěn)序列;模型的識(shí)別,使用自相關(guān)函數(shù)和偏自相關(guān)函數(shù)識(shí)別模型相關(guān)參數(shù);模型的檢驗(yàn)。通過(guò)檢驗(yàn)殘差序列是否為白噪聲序列判斷進(jìn)行模型檢驗(yàn);序列預(yù)測(cè)。
更為具體的,上述步驟的實(shí)現(xiàn)過(guò)程為:
3.1、判斷序列的平穩(wěn)性,可以做時(shí)序圖、自相關(guān)圖或DF檢驗(yàn)等方法檢驗(yàn)序列是否平穩(wěn)。如果序列不是平穩(wěn)序列,那么需要對(duì)樣本進(jìn)行d階差分將其轉(zhuǎn)換為平穩(wěn)序列。
3.2、模型的識(shí)別,分別計(jì)算自相關(guān)函數(shù)和偏自相關(guān)函數(shù),用于識(shí)別模型中的p、q的值。
自相關(guān)函數(shù)表示時(shí)間序列和與它相差某個(gè)固定時(shí)間的序列之間的相關(guān)性的測(cè)試。偏自相關(guān)函數(shù)表示相聚某個(gè)固定時(shí)間段的序列值之間的相關(guān)性測(cè)試。
自相關(guān)函數(shù)和偏自相關(guān)函數(shù)可能是截尾或拖尾的,截尾是指在某一點(diǎn)后函數(shù)值截?cái)酁?,拖尾是指函數(shù)值沒(méi)有截?cái)喽且恢北3窒氯?。通過(guò)繪制偏自相關(guān)函數(shù)圖可以確定ARIMA模型中的p的取值。規(guī)則如下:若自相關(guān)函數(shù)拖尾、偏自相關(guān)函數(shù)n階截尾,則令q為0,p為n;若自相關(guān)函數(shù)m階截尾,偏自相關(guān)函數(shù)拖尾,則令q為m,p為0;若自相關(guān)函數(shù)和偏自相關(guān)函數(shù)均拖尾,則可嘗試窮舉p、q的值,然后使用最小信息準(zhǔn)則進(jìn)行定階。
3.3、對(duì)模型進(jìn)行參數(shù)估計(jì),可使用矩估計(jì)、極大似然估計(jì)和最小二乘估計(jì)等方法對(duì)模型進(jìn)行參數(shù)估計(jì)。
即由上文已經(jīng)可以確定三個(gè)參數(shù)p、q、d的值,將它們帶入模型中即可根據(jù)時(shí)間序列進(jìn)行參數(shù)估計(jì),可使用矩估計(jì)、極大似然估計(jì)和最小二乘估計(jì)等方法。
3.4、模型的檢驗(yàn)。通過(guò)檢驗(yàn)殘差序列是否為白噪聲序列判斷進(jìn)行模型檢驗(yàn)。若參數(shù)序列是白噪聲序列,說(shuō)明模型有效,可用來(lái)進(jìn)行預(yù)測(cè);否則,需重新選擇模型。
參數(shù)估計(jì)完成后,我們需要檢驗(yàn)?zāi)P偷挠行?,如果模型足夠好,那么它?yīng)該可以從觀察序列中提取幾乎所有的樣本相關(guān)信息,即擬合殘差中幾乎不蘊(yùn)含任何信息。所以我們通過(guò)檢驗(yàn)殘差序列是否為白噪聲序列判斷進(jìn)行模型檢驗(yàn)。若參數(shù)序列是白噪聲序列,說(shuō)明模型有效,可用來(lái)進(jìn)行預(yù)測(cè);否則,需重新選擇模型。
3.5、序列預(yù)測(cè)。有了模型即可根據(jù)現(xiàn)有數(shù)據(jù)預(yù)測(cè)平臺(tái)未來(lái)資源需求,給運(yùn)維人員資源調(diào)度提供參考。
在實(shí)施過(guò)程中需要考慮到,隨著新數(shù)據(jù)的產(chǎn)生,原預(yù)測(cè)模型預(yù)測(cè)的數(shù)據(jù)可能與真實(shí)數(shù)據(jù)之間存在誤差。為了避免這種場(chǎng)景出現(xiàn),當(dāng)新數(shù)據(jù)較多時(shí),將新數(shù)據(jù)納入考慮并重復(fù)以上步驟重新建模即可。
上述具體實(shí)施方式僅是本發(fā)明的具體個(gè)案,本發(fā)明的專利保護(hù)范圍包括但不限于上述具體實(shí)施方式,任何符合本發(fā)明的一種OpenStack平臺(tái)計(jì)算資源的監(jiān)控預(yù)測(cè)方法的權(quán)利要求書的且任何所述技術(shù)領(lǐng)域的普通技術(shù)人員對(duì)其所做的適當(dāng)變化或替換,皆應(yīng)落入本發(fā)明的專利保護(hù)范圍。