劉春紅,張志華,焦 潔,程 渤
1.河南師范大學(xué) 計(jì)算機(jī)與信息工程學(xué)院,河南 新鄉(xiāng)453007
2.智慧商務(wù)與物聯(lián)網(wǎng)技術(shù)河南省工程實(shí)驗(yàn)室,河南 新鄉(xiāng)453007
3.北京郵電大學(xué) 網(wǎng)絡(luò)與交換技術(shù)國家重點(diǎn)實(shí)驗(yàn)室,北京100876
云計(jì)算是一種按需付費(fèi)的計(jì)算范式,對提高云平臺資源利用率、降低用戶成本具有重要的作用。彈性資源管理是云平臺實(shí)現(xiàn)按需服務(wù)的關(guān)鍵,基于負(fù)載預(yù)測的自動伸縮技術(shù)被經(jīng)常用于彈性資源管理中,以實(shí)現(xiàn)資源的動態(tài)提供和釋放。因負(fù)載預(yù)測的結(jié)果為系統(tǒng)提供決策依據(jù),故如何構(gòu)建準(zhǔn)確性高、時(shí)效性強(qiáng)的負(fù)載預(yù)測模型,成為當(dāng)前云平臺彈性資源管理需要解決的關(guān)鍵問題。
目前,負(fù)載預(yù)測方法成為云計(jì)算研究的熱點(diǎn),取得了一些研究成果。常見的有采用傳統(tǒng)的時(shí)間序列預(yù)測模型和當(dāng)前流行的機(jī)器學(xué)習(xí)模型等,這些方法利用單個(gè)負(fù)載序列的歷史信息構(gòu)建預(yù)測模型,或者建立多元負(fù)載序列預(yù)測模型,并取得了較好預(yù)測效果。然而大規(guī)模云平臺許多任務(wù)的運(yùn)行周期都相對較短,本文將任務(wù)的運(yùn)行時(shí)長較短的視為小樣本負(fù)載序列,由于其具有歷史數(shù)值少的特點(diǎn),這使得任務(wù)負(fù)載序列提供建模的先驗(yàn)信息較少,導(dǎo)致現(xiàn)有負(fù)載預(yù)測方法的性能受到影響,因此如何從短負(fù)載序列中獲取更多有價(jià)值的信息,成為提高預(yù)測模型性能的挑戰(zhàn)。
由于云平臺中每個(gè)虛擬機(jī)(virtual machine,VM)上運(yùn)行著多種應(yīng)用程序,每個(gè)應(yīng)用程序在運(yùn)行過程中需要同時(shí)消耗各種資源(如CPU、內(nèi)存、磁盤、I/O),以保證程序的正常執(zhí)行。圖1 表明了消耗的多種負(fù)載序列之間存在內(nèi)在的相關(guān)性。因此,為解決上述問題,本文從多維負(fù)載間關(guān)系出發(fā),提出多變量負(fù)載序列結(jié)構(gòu)化預(yù)測方法(structured prediction of multivariable workload sequences,SP-MWS)。該方法的核心在于利用多維負(fù)載類型之間的結(jié)構(gòu)化信息,提高小樣本數(shù)據(jù)的預(yù)測精度,并實(shí)現(xiàn)多種類型負(fù)載的同時(shí)預(yù)測。首先,采用MIC 和信息熵進(jìn)行負(fù)載類型的度量,選擇相關(guān)性強(qiáng)的負(fù)載類型;然后,將相關(guān)負(fù)載序列同時(shí)輸入到TNR-MTL(trace-norm regularization multi-task learning)模型,實(shí)現(xiàn)結(jié)構(gòu)化信息的挖掘,并完成多種負(fù)載的同步預(yù)測。同時(shí)從可解釋性角度對預(yù)測模型的決策依據(jù)進(jìn)行分析,得出每種變量對預(yù)測模型的貢獻(xiàn)度。所提方法的創(chuàng)新性在于,將任務(wù)運(yùn)行過程中使用的多維資源間的內(nèi)在聯(lián)系引入到預(yù)測模型中,實(shí)現(xiàn)信息共享,有效彌補(bǔ)了小樣本數(shù)據(jù)信息不足的缺陷,提高了模型的預(yù)測性能。
圖1 VM中的各種資源Fig. 1 Various resources in VM
許多學(xué)者從時(shí)序角度建立基于時(shí)序的負(fù)載預(yù)測模型,分為單變量預(yù)測模型和多變量預(yù)測模型。
對于單變量預(yù)測模型,如Calheiros等利用經(jīng)典的差分自回歸移動平均模型(auto regressive integrated moving average,ARIMA)來預(yù)測未來工作量需求,實(shí)現(xiàn)對非平穩(wěn)時(shí)間序列的有效預(yù)測。隨著人工智能的興起,大量的機(jī)器學(xué)習(xí)方法被用于負(fù)載預(yù)測中。Liu 等提出一種基于負(fù)載特征識別的預(yù)測方法,根據(jù)負(fù)載變化的速度自動分配線性回歸(linear regression,LR)或支持向量回歸(support vector regression,SVR)模型;Islam等提出基于人工神經(jīng)網(wǎng)絡(luò)(artificial neural network,ANN)和LR 的資源需求預(yù)測模型,并將這兩種方法與滑動窗口相結(jié)合;Nguyen等利用長短時(shí)記憶神經(jīng)網(wǎng)絡(luò)(long short-term memory,LSTM)實(shí)現(xiàn)連續(xù)區(qū)間平均負(fù)載的多步預(yù)測。
根據(jù)文獻(xiàn)調(diào)研,云平臺中從多變量角度實(shí)現(xiàn)資源預(yù)測的工作相對較少。Hieu 等提出一種基于多資源預(yù)測的虛擬機(jī)整合算法,利用多元LR估計(jì)輸入和輸出數(shù)據(jù)間的映射,以提高云數(shù)據(jù)中心的性能。該資源預(yù)測的模型本質(zhì)上屬于線性模型,故不適應(yīng)多個(gè)變量間存在非線性關(guān)系的場景。Tran 等利用模糊技術(shù)進(jìn)行資源的預(yù)處理,然后選擇相關(guān)變量作為LSTM 模型的輸入,實(shí)現(xiàn)多變量時(shí)間序列的預(yù)測。由于深度學(xué)習(xí)模型需要大量的數(shù)據(jù)和時(shí)間,故當(dāng)負(fù)載的歷史信息較少時(shí),模型的預(yù)測性能受到影響,且未達(dá)到資源的及時(shí)響應(yīng)。
為對云平臺中運(yùn)行周期較短應(yīng)用程序的多種負(fù)載進(jìn)行同時(shí)、有效的預(yù)測,提出了多變量負(fù)載序列結(jié)構(gòu)化預(yù)測方法。流程圖見圖2 所示,包括四部分:數(shù)據(jù)收集、數(shù)據(jù)預(yù)處理、相關(guān)負(fù)載類型的獲取、結(jié)構(gòu)化預(yù)測模型的構(gòu)建及預(yù)測輸出。
圖2 SP-MWS流程圖Fig. 2 Flowchart of SP-MWS
首先,數(shù)據(jù)收集主要指從數(shù)據(jù)庫收集任務(wù)在運(yùn)行過程中使用到的多種資源(CPU、內(nèi)存和磁盤等)的歷史信息以及其他信息。其次,在數(shù)據(jù)預(yù)處理階段,采用二次指數(shù)平滑法和歸一化對得到的負(fù)載進(jìn)行預(yù)處理,去除噪聲和序列間差異。然后,在相關(guān)負(fù)載類型獲取階段,采用最大互信息系數(shù)法,同時(shí)從線性和非線性角度計(jì)算資源間的相關(guān)性,引入信息熵判斷模型信息量的增長情況,結(jié)合二者的結(jié)果實(shí)現(xiàn)相關(guān)負(fù)載類型的選擇,這是在離線狀態(tài)下進(jìn)行的。最后,在線狀態(tài)下,構(gòu)建結(jié)構(gòu)化預(yù)測模型,采用TNR-MTL模型作為預(yù)測模型,將上階段獲得的多種負(fù)載類型分別當(dāng)作一個(gè)學(xué)習(xí)任務(wù),利用訓(xùn)練數(shù)據(jù)完成模型的訓(xùn)練后,預(yù)測數(shù)據(jù)按照負(fù)載類型,輸入到各自對應(yīng)的學(xué)習(xí)任務(wù)中,從而完成運(yùn)行周期較短任務(wù)多種資源的同時(shí)預(yù)測和輸出。
針對小樣本負(fù)載序列預(yù)測過程中樣本信息量不足而導(dǎo)致預(yù)測性能受限的問題,為了增加預(yù)測模型所需的先驗(yàn)信息,將任務(wù)的多維數(shù)據(jù)信息引入到負(fù)載預(yù)測模型中。由于負(fù)載序列之間的相關(guān)度越大,其蘊(yùn)含的結(jié)構(gòu)化信息越多,故不同類型負(fù)載序列間的相關(guān)程度,將直接影響預(yù)測模型的性能。目前有學(xué)者從信息論角度研究多變量時(shí)間序列間的相關(guān)性,但對于云負(fù)載的類似研究工作比較少。此外,對于不同類型的負(fù)載,它們各自選擇的相關(guān)負(fù)載類型可能存在差異,比如與CPU 變化密切相關(guān)的負(fù)載類型不一定與內(nèi)存的變化也密切相關(guān),因此為實(shí)現(xiàn)多種資源類型的同時(shí)預(yù)測輸出,必須保障預(yù)測模型所含的信息量能夠滿足、適合每一種待預(yù)測負(fù)載類型的建模,即應(yīng)選擇與CPU和內(nèi)存都相關(guān)的負(fù)載類型。
為實(shí)現(xiàn)上述目標(biāo),本文將MIC 和信息熵結(jié)合使用。對于MIC,由于其能夠衡量兩個(gè)變量的線性函數(shù)關(guān)系和非線性函數(shù)關(guān)系,對數(shù)據(jù)分布沒有嚴(yán)格要求和假設(shè),同時(shí)具有計(jì)算復(fù)雜度低、魯棒性高的特點(diǎn),被用于衡量任務(wù)運(yùn)行過程中所使用的各種負(fù)載之間的相關(guān)性;在信息論中,熵表示隨機(jī)變量的不確定性,不確定性越大,熵越大。信息熵可理解為要消除或降低這種不確定性,仍需引入多少額外信息量的度量。信息熵越大,說明此時(shí)系統(tǒng)自身所提供的信息量較少,則需要引入更多的信息;相反,信息熵越小,說明此時(shí)系統(tǒng)自身所含的信息量多,需要引入的信息量少。因此,本文依據(jù)信息熵值的增減,判斷添加的相關(guān)變量為預(yù)測模型提供信息量的情況。
首先分別計(jì)算其他負(fù)載與每個(gè)待預(yù)測負(fù)載的MIC值。根據(jù)MIC的大小進(jìn)行排序,即MIC值越大,表明這兩種負(fù)載類型間的關(guān)系越緊密;MIC值越小,表明二者越疏遠(yuǎn);然后選擇每種待預(yù)測負(fù)載的前位,從中將超過半數(shù)待預(yù)測負(fù)載共有的負(fù)載類型,依次添加到預(yù)測模型中,并計(jì)算此時(shí)模型的信息熵,信息熵最小時(shí)所對應(yīng)的負(fù)載類型即為獲取到的最終相關(guān)負(fù)載類型。設(shè)任務(wù)有種負(fù)載,種待預(yù)測負(fù)載,∈{1,},詳細(xì)計(jì)算過程如下:
計(jì)算MIC 值,然后分別對每種待預(yù)測負(fù)載和其他負(fù)載的MIC值從大到小進(jìn)行排序。
歸一化后得預(yù)測結(jié)果評價(jià)矩陣:
計(jì)算此時(shí)預(yù)測系統(tǒng)信息熵InE,見式(2):
重復(fù)步驟3,直到=時(shí)終止。
求出InE最小時(shí)所對應(yīng)的,即為最終獲得相關(guān)負(fù)載類型。
以上過程全部在離線階段完成。
為充分利用具有相關(guān)性的負(fù)載序列間的結(jié)構(gòu)化信息,對每個(gè)任務(wù)構(gòu)建基于核范數(shù)正則化的多任務(wù)學(xué)習(xí)模型(TNR-MTL),用滑動窗口進(jìn)行預(yù)測。針對上述得到的+種負(fù)載序列,將每一種負(fù)載序列分別作為TNR-MTL模型中的一個(gè)學(xué)習(xí)任務(wù),其中在每一個(gè)學(xué)習(xí)任務(wù)內(nèi),包含該負(fù)載類型下的多個(gè)任務(wù)負(fù)載序列,每次將滑動窗口大小的采樣點(diǎn)作為輸入數(shù)據(jù),相應(yīng)下一時(shí)刻的值作為輸出值。模型完成訓(xùn)練后,測試集數(shù)據(jù)根據(jù)各自的負(fù)載類型,選擇訓(xùn)練好的預(yù)測模型,完成多個(gè)負(fù)載的結(jié)構(gòu)化預(yù)測。TNR-MTL模型的目標(biāo)函數(shù)見式(3)。
其中,=[,,…,w]表示權(quán)重矩陣,w是第個(gè)學(xué)習(xí)任務(wù)的權(quán)重向量;為模型中學(xué)習(xí)任務(wù)的個(gè)數(shù),X和Y分別代表第個(gè)學(xué)習(xí)任務(wù)的輸入和輸出,表示超參數(shù),控制權(quán)重矩陣的秩。因矩陣的秩可反映該矩陣中變量間的相關(guān)性,矩陣秩越低,表明變量相關(guān)性越強(qiáng),故對權(quán)重矩陣進(jìn)行核范數(shù)約束,使得矩陣呈現(xiàn)低秩狀態(tài),即將每個(gè)任務(wù)多種負(fù)載序列的信息投影到一個(gè)共享、合理、相關(guān)程度高的低維子空間。在該模型空間中,建模所需的通用領(lǐng)域知識被多個(gè)學(xué)習(xí)任務(wù)共享,提升了每個(gè)學(xué)習(xí)任務(wù)的學(xué)習(xí)性能,從而實(shí)現(xiàn)同一個(gè)任務(wù)中所有負(fù)載類型的聯(lián)合學(xué)習(xí),以及多種負(fù)載的同時(shí)預(yù)測。
本文采用大型通用云平臺Google數(shù)據(jù)集進(jìn)行實(shí)驗(yàn)驗(yàn)證。它是Google數(shù)據(jù)中心公開的2011年5月期間的監(jiān)控日志,記錄多個(gè)計(jì)算節(jié)點(diǎn)29天的運(yùn)行情況,包括約672 074個(gè)作業(yè),2 600萬個(gè)任務(wù)。其中數(shù)據(jù)集中的task resource usage 表記錄任務(wù)運(yùn)行過程中消耗各種資源信息。實(shí)驗(yàn)數(shù)據(jù)如表1所示。
表1 實(shí)驗(yàn)數(shù)據(jù)對象Table 1 Experimental data objects
實(shí)驗(yàn)共分3 組:(1)相關(guān)負(fù)載類型的獲??;(2)實(shí)驗(yàn)預(yù)測效果展示,包括所提方法預(yù)測性能的分階段展示多種方法對比的實(shí)驗(yàn)結(jié)果和分析,其中對比實(shí)驗(yàn)中分別選擇兩個(gè)不同大小的滑動窗口,并從時(shí)間性能和預(yù)測性能兩方面進(jìn)行對比;(3)負(fù)載貢獻(xiàn)度分析。
本實(shí)驗(yàn)中回歸預(yù)測精度的評定指標(biāo)采用均方根誤差(root mean square error,RMSE)、平均絕對誤差(mean absolute error,MAE)、平均相對誤差(mean relative error,MRE)和對稱平均絕對百分率(symmetric mean absolute percentage error,SMAPE)。
任務(wù)在運(yùn)行過程中需要消耗多種資源,為提高多變量負(fù)載序列預(yù)測的準(zhǔn)確性,對多種資源間的相關(guān)性進(jìn)行分析,選擇具有相關(guān)性的負(fù)載類型。首先分別計(jì)算CPU、內(nèi)存和磁盤與除自身以外的其他剩余負(fù)載之間MIC 值。為得到公平的結(jié)果,實(shí)驗(yàn)時(shí)選擇100 個(gè)任務(wù)進(jìn)行相同的操作,然后對結(jié)果進(jìn)行統(tǒng)計(jì),得到大多數(shù)情況下每種待預(yù)測負(fù)載與其他負(fù)載的相關(guān)性,按從大到小的順序排序,結(jié)果如表2 所示??梢钥闯雒糠N待預(yù)測負(fù)載與其他負(fù)載類型之間的相關(guān)程度不完全相同。
在計(jì)算模型信息熵時(shí),本次實(shí)驗(yàn)取每種待預(yù)測負(fù)載相關(guān)性排行榜中,除待預(yù)測負(fù)載外,MIC值排行前三的負(fù)載類型。由表2 可得,對于CPU 是mean-DiskIO、aMem、maxDiskIO;對于內(nèi)存是meanDiskIO、aMem、maxMem;對于磁盤是aMem、meanDiskIO、maxDiskIO,如表2中粗體部分。
表2 待預(yù)測負(fù)載與其他負(fù)載類型的相關(guān)性統(tǒng)計(jì)結(jié)果Table 2 Statistical results of correlation between load to be predicted and other load types
因meanDiskIO 在CPU 和內(nèi)存中MIC 值均處于第一位,MIC值越大,表明這兩種負(fù)載類型間的關(guān)系越緊密。故將meanDiskIO首先添加到負(fù)載預(yù)測模型中,計(jì)算此時(shí)模型信息熵;依次類推,將aMem 和maxDiskIO分別添加到模型中,并計(jì)算每種情況下的模型信息熵,結(jié)果如圖3 所示。為方便介紹,將負(fù)載添加過程分為幾個(gè)階段:變量個(gè)數(shù)為3 記V3(包括CPU、內(nèi)存和磁盤),變量個(gè)數(shù)為4 記V4(包括CPU、內(nèi)存、磁盤和meanDiskIO),變量個(gè)數(shù)為5記V5(包括CPU、內(nèi)存、磁盤、meanDiskIO和aMem),以及變量個(gè)數(shù)為6 記為V6(包括CPU、內(nèi)存、磁盤、meanDiskIO、aMem和maxDiskIO)。
圖3 不同階段信息熵Fig. 3 Information entropy at different stages
由圖3 可得,隨著負(fù)載序列變量個(gè)數(shù)增加,系統(tǒng)信息熵逐漸遞減,信息熵越小,說明此時(shí)系統(tǒng)所含的信息量多,將多維信息添加到預(yù)測模型中,有助于信息間的交叉驗(yàn)證,提高預(yù)測的準(zhǔn)確性。故將V6所對應(yīng)的負(fù)載類型作為最終獲得的相關(guān)負(fù)載類型。
為驗(yàn)證隨著相關(guān)變量的添加,預(yù)測模型的準(zhǔn)確度也不斷提升,對不同階段進(jìn)行負(fù)載預(yù)測。以CPU的預(yù)測結(jié)果為例,結(jié)果見表3。
表3 不同階段的預(yù)測結(jié)果Table 3 Forecast results at different stages
從表3中可以得出,對于所有評價(jià)指標(biāo),都在V6時(shí)取得了最低誤差值;除了RMSE 指標(biāo)存在V4 階段的誤差值高于V3階段外,剩余其他指標(biāo)中,誤差下降的順序均沿著V3、V4、V5的方向,故從整體上看各種誤差呈現(xiàn)下降趨勢。這說明了隨著相關(guān)負(fù)載類型的引入,確實(shí)能夠補(bǔ)充建模時(shí)所需要的有效信息,提高預(yù)測精度,而且表中預(yù)測精度提升的幅度與圖3中信息熵值降低的幅度呈正比。
由于多數(shù)任務(wù)的運(yùn)行周期較短,故設(shè)置大小不同的滑動窗口,模擬不同長度的時(shí)間序列,進(jìn)行實(shí)驗(yàn),其中滑動窗口的大小分別為60和30,即將待預(yù)測時(shí)刻的前60 個(gè)采樣點(diǎn)作為已知數(shù)據(jù),和將待預(yù)測時(shí)刻的前30個(gè)采樣點(diǎn)作為已知數(shù)據(jù)。為驗(yàn)證所提方法的性能,將SP-MWS 與多元線性回歸、SVR和LSTM進(jìn)行對比。這里SVR方法指事先需要采用多變量相空間重構(gòu)技術(shù),然后利用SVR模型進(jìn)行預(yù)測,為方便描述,將其記為P-SVR;LSTM 方法主要采用的是多變量LSTM模型(multivariate LSTM,M-LSTM)。在進(jìn)行多變量重構(gòu)過程中,6 種變量(CPU、內(nèi)存、磁盤、meanDiskIO、aMem 和maxDiskIO)的時(shí)延分別為2、1、2、2、2、2,嵌入維分別為6、7、2、2、2、2;LSTM 模型的隱藏層神經(jīng)元個(gè)數(shù)為50,迭代次數(shù)均為500次。
(1)滑動窗口為60
表4~表6是所提方法和其他方法在RMSE、MAE、MRE和SMAPE四種性能指標(biāo)的對比結(jié)果。
表4 不同方法下CPU預(yù)測誤差對比Table 4 Comparison of CPU prediction errors under different methods
表5 不同方法下內(nèi)存預(yù)測誤差對比Table 5 Comparison of memory prediction errors under different methods
表6 不同方法下磁盤預(yù)測誤差對比Table 6 Comparison of disk prediction errors under different methods
雖然在表5的RMSE指標(biāo)中,所提方法的預(yù)測誤差略大于P-SVR,但是SP-MWS 在剩余其他評價(jià)指標(biāo),以及其他待預(yù)測負(fù)載類型的所有評價(jià)指標(biāo)中,都取到了最小的預(yù)測誤差,故從整體上看,SP-MWS 的預(yù)測結(jié)果是最優(yōu)的,其次是多元線性方法或P-SVR方法,預(yù)測效果相對較差的是M-LSTM。分析可知,SP-MWS對各種資源建立預(yù)測模型時(shí),將它們的模型參數(shù)信息用秩約束到共享特征子空間,從而使得建模信息之間具有高相關(guān)性,并實(shí)現(xiàn)信息的共享,彌補(bǔ)了各自樣本信息不足的缺點(diǎn),然后利用負(fù)載間的結(jié)構(gòu)化信息進(jìn)行預(yù)測,因此取得了較好的性能;多元線性方法本質(zhì)上屬于線性回歸,而在實(shí)際的云平臺中,負(fù)載序列之間普遍存在非線性關(guān)系,同時(shí)由于數(shù)據(jù)量較小,導(dǎo)致多元線性模型未能挖掘數(shù)據(jù)中隱藏的有用信息;對于P-SVR模型而言,雖然SVR適合小樣本數(shù)據(jù)的預(yù)測,但是P-SVR仍屬于單任務(wù)學(xué)習(xí)模型,預(yù)測過程中也只是利用了單個(gè)負(fù)載的信息,而且多變量重構(gòu)時(shí)每個(gè)變量均需要確定對應(yīng)的模型參數(shù),而參數(shù)的選擇和設(shè)定對于預(yù)測模型的效果具有直接的影響;M-LSTM模型屬于深度學(xué)習(xí)模型,需要大量的訓(xùn)練數(shù)據(jù),而當(dāng)任務(wù)運(yùn)行周期較短,所使用的歷史數(shù)據(jù)信息相對較少時(shí),該方法的預(yù)測誤差較高。
表7 是滑動窗口等于60 時(shí)所提方法和其他方法在時(shí)間性能上的對比結(jié)果,將每種方法重復(fù)運(yùn)行30次,取平均時(shí)間作為該方法的最終預(yù)測時(shí)間。
表7 不同方法下三種資源的預(yù)測時(shí)間(滑動窗口為60)Table 7 Forecasting time of three resources under different methods(sliding window is 60)
觀察表7 發(fā)現(xiàn),對三種資源同時(shí)預(yù)測時(shí),多元線性方法消耗的時(shí)間是最短的,其次是SP-MWS、PSVR,時(shí)間最長的是M-LSTM。分析可知,多元線性模型的本質(zhì)屬于線性模型,結(jié)構(gòu)比較簡單,故運(yùn)行速度較快;SP-MWS 利用負(fù)載間的關(guān)系,使得多種相關(guān)負(fù)載類型協(xié)作預(yù)測,達(dá)到并行輸出的效果,從而用時(shí)短;而P-SVR 和M-LSTM 均需要耗費(fèi)大量的時(shí)間尋找最優(yōu)參數(shù),導(dǎo)致模型的時(shí)間較長。雖然所提方法的時(shí)間性能不如多元線性方法,但是SP-MWS 的預(yù)測準(zhǔn)確度優(yōu)于多元線性方法。
(2)滑動窗口為30
為進(jìn)一步表明所提方法在任務(wù)運(yùn)行周期較短時(shí),也能很好地進(jìn)行負(fù)載預(yù)測,將滑動窗口縮小為30。圖4是不同方法對三種資源進(jìn)行預(yù)測時(shí)的誤差情況,表8是所提方法在滑動窗口等于30 時(shí),和其他方法在時(shí)間性能上的對比結(jié)果。
表8 不同方法下三種資源的預(yù)測時(shí)間(滑動窗口為30)Table 8 Forecasting time of three resources under different methods(sliding window is 30)
圖4 不同方法對三種資源的預(yù)測效果(滑動窗口為30)Fig. 4 Prediction effects of different methods on three resources(sliding window is 30)
由圖4 可得,對三種不同的資源類型,SP-MWS的預(yù)測誤差在四種評價(jià)指標(biāo)上均取得最小值;表8中,SP-MWS的時(shí)間性能仍位于第二。對比表7,表8中各種方法的預(yù)測時(shí)間均縮短,說明時(shí)間序列縮短時(shí),消耗時(shí)間也縮短,所提方法縮短明顯。由此驗(yàn)證了所提方法對小樣本負(fù)載序列進(jìn)行預(yù)測的可行性。
綜上所述,本文方法的時(shí)間性能雖略差于多元線性方法,但預(yù)測性能優(yōu)于多元線性方法;與其他方法相比,SP-MWS在時(shí)間性能和預(yù)測性能上都取得較好的預(yù)測效果。從整體上看,所提方法的性能更優(yōu),適合云平臺多種短負(fù)載序列的預(yù)測。
為進(jìn)一步探索每個(gè)輸入變量對所構(gòu)建模型貢獻(xiàn)度的大小,了解影響目標(biāo)變化的原因,引入Shapley值實(shí)現(xiàn)各預(yù)測變量對模型預(yù)測效果貢獻(xiàn)度的分析。它表示在實(shí)現(xiàn)最終目標(biāo)利益的聯(lián)盟中,每個(gè)局中人的相對貢獻(xiàn)度。在多變量負(fù)載預(yù)測問題中,局中人對應(yīng)了多種負(fù)載序列類型,聯(lián)盟為預(yù)測模型,聯(lián)盟利益則為預(yù)測模型的準(zhǔn)確性。因此,Shapley 值可表示在實(shí)現(xiàn)預(yù)測模型的準(zhǔn)確度達(dá)到較為滿意的過程中,輸入變量對模型預(yù)測結(jié)果貢獻(xiàn)度的大小,Shapley 值越大,則貢獻(xiàn)度越大。
為清晰表示各輸入變量在每種待預(yù)測負(fù)載預(yù)測時(shí)的相對重要程度,將計(jì)算結(jié)果分開展示。圖5是每種負(fù)載類型在預(yù)測過程中對CPU、內(nèi)存和磁盤預(yù)測時(shí)的貢獻(xiàn)度。橫軸是每種負(fù)載類型的平均Shapley值,縱坐標(biāo)為負(fù)載類型,按貢獻(xiàn)度的大小進(jìn)行排序。
圖5 各負(fù)載類型對最終預(yù)測結(jié)果的貢獻(xiàn)度Fig. 5 Contribution of each load type to final prediction result
由圖5 可知,在對待預(yù)測負(fù)載進(jìn)行預(yù)測時(shí),每種負(fù)載類型對不同待預(yù)測負(fù)載的貢獻(xiàn)度不相同,但是都具有兩個(gè)共同點(diǎn):(1)所選擇的負(fù)載類型,對預(yù)測模型中每種待預(yù)測負(fù)載的預(yù)測過程,都起到了不同程度的促進(jìn)作用;(2)每種待預(yù)測負(fù)載歷史信息的貢獻(xiàn)度都是最大的,比如圖5(a)中,在對CPU下一時(shí)刻進(jìn)行預(yù)測時(shí),CPU 負(fù)載歷史信息對最終預(yù)測結(jié)果的貢獻(xiàn)度居于首位,這也非常符合實(shí)際場景。對每個(gè)子圖分別進(jìn)行以下分析:
(1)圖5(a)中,meanDiskIO 的貢獻(xiàn)度排第二,然后是內(nèi)存,說明除CPU歷史信息外,與其他負(fù)載類型相比,影響CPU 預(yù)測結(jié)果好壞的主要因素是mean-DiskIO 和內(nèi)存。雖然meanDiskIO 和內(nèi)存都與CPU相關(guān)性較高,但對CPU預(yù)測來說,meanDiskIO對提高模型預(yù)測性能的促進(jìn)作用相對較大。
(2)圖5(b)中,貢獻(xiàn)度排在第二位的是CPU,然后meanDiskIO,這說明除內(nèi)存歷史信息外,CPU 和meanDiskIO 是影響內(nèi)存預(yù)測準(zhǔn)確度的主要原因,但CPU的影響程度要大于meanDiskIO。
(3)圖5(c)中,CPU 和maxDiskIO 貢獻(xiàn)度相對較高,說明對磁盤預(yù)測而言,除其本身的歷史信息外,相對重要的負(fù)載類型是CPU和maxDiskIO。
針對云平臺中大量任務(wù)運(yùn)行周期短,小樣本負(fù)載序列所提供建模的先驗(yàn)信息少,且同一任務(wù)在運(yùn)行中需消耗多種資源的情況,將任務(wù)的多維負(fù)載序列信息添加到預(yù)測模型中,有助于信息間的交叉驗(yàn)證。本文提出了多變量負(fù)載序列結(jié)構(gòu)化預(yù)測方法。該方法采用最大互信息系數(shù)度量任務(wù)運(yùn)行過程中消耗的多種資源之間的相關(guān)度,并聯(lián)合信息熵完成相關(guān)負(fù)載類型的選擇,使用TNR-MTL 構(gòu)建預(yù)測模型,以捕捉和利用相關(guān)負(fù)載間的結(jié)構(gòu)化信息。結(jié)果顯示所提方法取得了較優(yōu)的預(yù)測效果,同時(shí)分析了輸入變量與最終預(yù)測結(jié)果之間的關(guān)系。
由于大規(guī)模云平臺中負(fù)載之間的關(guān)系具有強(qiáng)復(fù)雜性,故下一步工作將研究多種復(fù)雜負(fù)載序列間的內(nèi)在關(guān)系,并對其進(jìn)行深層次的挖掘和探索,從而進(jìn)一步提高預(yù)測模型的性能。