楊 云,閆振國
(陜西科技大學(xué) 電子信息與人工智能學(xué)院,陜西 西安 710021)
云原生容器技術(shù)的生態(tài)系統(tǒng)正在快速發(fā)展,以Kubernetes為代表的容器云成為新的分布式架構(gòu)解決方案.容器云封裝整個軟件運(yùn)行時環(huán)境,為開發(fā)者提供用于構(gòu)建、發(fā)布和運(yùn)行分布式應(yīng)用的平臺[1].云資源的調(diào)度管理與部署是影響系統(tǒng)性能的重要因素.資源供應(yīng)不足會導(dǎo)致服務(wù)水平協(xié)議(Service-Level Agreement,SLA)違約和服務(wù)質(zhì)量(Quality of Service,Qos)下降,而過度供應(yīng)又會帶來資源浪費(fèi),增加網(wǎng)絡(luò)、冷卻和維護(hù)成本[2].高效的資源管理需要與應(yīng)用需求動態(tài)貼合.但是新資源從請求、調(diào)度、部署到啟動存在一定的時間延遲,這意味著,當(dāng)系統(tǒng)達(dá)到某個負(fù)載閾值才請求新資源的反應(yīng)性技術(shù),在業(yè)務(wù)繁忙期會增大系統(tǒng)運(yùn)行壓力.而應(yīng)對高流量的臨時系統(tǒng)擴(kuò)容又是必不可少的,包括系統(tǒng)規(guī)格擴(kuò)增、服務(wù)擴(kuò)展以及后端擴(kuò)容.所以在系統(tǒng)過載之前預(yù)測未來時間窗口的云資源請求,提前進(jìn)行調(diào)度分配與編排部署是應(yīng)對該問題的有效解決辦法.
云資源需求的波動不是一個隨機(jī)游走過程,而是前后關(guān)聯(lián)的.其相似的形態(tài)模式隨業(yè)務(wù)規(guī)律會差異性復(fù)現(xiàn).因為云資源序列與時間的高度相關(guān),現(xiàn)有研究將其作為時序問題開展分析.針對云資源預(yù)測,早期的方法有基于統(tǒng)計學(xué)的自回歸移動平均法(ARIMA)[3]、指數(shù)平滑法[4]等.ARIMA要求時序數(shù)據(jù)經(jīng)過差分化之后是穩(wěn)定的,本質(zhì)上只能捕捉線性關(guān)系.指數(shù)平滑法對數(shù)據(jù)進(jìn)行非等權(quán)處理,給予近期數(shù)據(jù)較大權(quán)值,但對轉(zhuǎn)折點(diǎn)缺乏鑒別能力,長期效果較差.后來傳統(tǒng)機(jī)器學(xué)習(xí)方法得到了廣泛發(fā)展,Zia等[5]利用自回歸神經(jīng)網(wǎng)絡(luò)(AR-NN)組合模型預(yù)測實時資源使用情況;Jitendra Kumar等[6]提出神經(jīng)網(wǎng)絡(luò)與自適應(yīng)差分進(jìn)化的結(jié)合方法,在精度上優(yōu)于反向傳播網(wǎng)絡(luò);Gopal等[7]利用貝葉斯模型預(yù)測內(nèi)存密集型應(yīng)用的資源需求.趙莉[8]采用支持向量機(jī)(Support Vector Machine,SVM)結(jié)合混沌分析方法對云資源序列進(jìn)行處理,仿真實驗對比神經(jīng)網(wǎng)絡(luò)大幅提高了預(yù)測精度;Wei等[9]將小波變換與支持向量機(jī)的優(yōu)點(diǎn)結(jié)合,提出一種基于加權(quán)小波支持向量機(jī)的云負(fù)載預(yù)測模型,為不同樣本賦予不同等級權(quán)重,同時利用改進(jìn)的粒子群算法優(yōu)化參數(shù)組合,進(jìn)一步提升了預(yù)測效率.以上模型中神經(jīng)網(wǎng)絡(luò)具備良好的非線性映射能力,但隨復(fù)雜度的提高閾值和權(quán)重參數(shù)成倍增加,訓(xùn)練結(jié)果容易過擬合或陷入局部最優(yōu),貝葉斯模型只適合特定預(yù)測場景.而相比其他學(xué)習(xí)算法,支持向量機(jī)同時考慮經(jīng)驗風(fēng)險和結(jié)構(gòu)風(fēng)險最小化,使用核方法進(jìn)行非線性學(xué)習(xí),其作為二次凸優(yōu)化問題同時避免了神經(jīng)網(wǎng)絡(luò)的局部最優(yōu)缺陷,取得了更為理想的效果.
隨著深度學(xué)習(xí)在時序預(yù)測領(lǐng)域的發(fā)展[10],研究者開始利用卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)及其變體長短時記憶網(wǎng)絡(luò)(Long Short-Term Memory,LSTM)等深度模型對序列進(jìn)行處理.Yonghua Zhu等[11]使用循環(huán)神經(jīng)網(wǎng)絡(luò)提出基于注意力機(jī)制的LSTM云負(fù)載預(yù)測方法;Omer等[12]使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)將時間序列轉(zhuǎn)換為二維圖像,根據(jù)原始時間序列起伏標(biāo)注圖像特征;Alberto Mozo等[13]利用CNN預(yù)測本地數(shù)據(jù)中心網(wǎng)絡(luò)流量負(fù)載的短期變化,證實了CNN可以捕捉具有高度非線性規(guī)律的TCP連接數(shù)量;S Chan 等[14]使用CNN-SVM的混合建模技術(shù)對非平穩(wěn)的多元時間序列進(jìn)行了短期負(fù)荷預(yù)測,相比傳統(tǒng)時序方法在精度上取得了顯著優(yōu)勢.
在云場景中,資源需求波動是一個逐漸演變的過程,存在時間維上局部相關(guān)性的同時,受到空間維拓?fù)浣Y(jié)構(gòu)的影響,各結(jié)點(diǎn)的負(fù)載波動會鏈?zhǔn)綆悠渌Y(jié)點(diǎn)的計算資源管理彈性變化[15].例如Kubernetes云平臺依據(jù)服務(wù)發(fā)布Pod的負(fù)載情況動態(tài)調(diào)整外部存儲對于業(yè)務(wù)的擴(kuò)縮容響應(yīng).卷積神經(jīng)網(wǎng)絡(luò)并行化效率高,結(jié)構(gòu)穩(wěn)定,能夠從局部特征關(guān)聯(lián)聚合得到整體,從各維度挖掘潛在模式,相比其他方法更能滿足云場景的時空維建模需求.現(xiàn)有方法中,通常使用單一預(yù)測模型或者是使用組合模型對不同預(yù)測結(jié)果進(jìn)行權(quán)重集成,雖然有一定性能提升,但并未根本解決較差模型的短板影響.基于此,本文提出一種使用卷積網(wǎng)絡(luò)與支持向量機(jī)相結(jié)合的預(yù)測算法,將卷積網(wǎng)絡(luò)的特征學(xué)習(xí)能力與支持向量機(jī)的回歸擬合能力結(jié)合,利用圖卷積建模拓?fù)浣Y(jié)構(gòu)的空間維特征,同時利用遺傳算法改善支持向量機(jī)的參數(shù)優(yōu)化.從特征建模與擬合回歸兩方面提升現(xiàn)有方法預(yù)測能力.
定義1(拓?fù)溆成?容器云平臺應(yīng)用集群的資源負(fù)載隨業(yè)務(wù)邏輯調(diào)用及時序演變呈非線性動態(tài)變化,將結(jié)點(diǎn)間的拓?fù)潢P(guān)聯(lián)映射為圖結(jié)構(gòu)數(shù)據(jù),用無向圖G=(V,E)表示,V是結(jié)點(diǎn)集,結(jié)點(diǎn)個數(shù)|V|=N,E為邊集,代表結(jié)點(diǎn)間拓?fù)溥B接.
定義2(時序數(shù)據(jù))結(jié)點(diǎn)監(jiān)測M個云資源指標(biāo)(包含CPU、Memory等)的時間序列數(shù)據(jù),即結(jié)點(diǎn)在特定時間切片產(chǎn)生M維特征向量.用三元組
x(v,m,τ)表示結(jié)點(diǎn)v的m維指標(biāo)在時刻τ的監(jiān)測記錄,其中v為結(jié)點(diǎn)標(biāo)識,m∈M為特征標(biāo)識,τ為時間標(biāo)識.用t=[tstart,tend)表示某個時間區(qū)間,Δt=tend-tstart為區(qū)間長度,則在t時段內(nèi),所有結(jié)點(diǎn)的第m維指標(biāo)監(jiān)測序列記錄表示為張量Xm=
|{x(v,m,τ)|x.v∈N∧x.m=m∧x.τ∈t}|.用
Xτ=|{x(v,m,τ)|x.v∈N∧x.m∈M∧x.τ=τ}|
表示所有結(jié)點(diǎn)的所有監(jiān)測指標(biāo)在時刻τ的記錄值.
定義3(滑動窗口)利用滑動窗口采集歷史時間序列記錄,將moveGAP[tstart,Δt]=Xm(tstart為起始記錄,Δt為窗口長度)稱為m維指標(biāo)的Δt滑動采集窗口.
定義4(問題定義)本文的預(yù)測任務(wù)為,依據(jù)應(yīng)用集群歷史時序片段的資源使用記錄值,預(yù)測未來時間窗口TP的資源使用需求.記當(dāng)前時刻為t0,用X=(Xt0-Th+1,Xt0-Th+2,…,Xt0)∈Th×N×M表示所有結(jié)點(diǎn)在歷史區(qū)間Th的記錄值,用Y=(Xt0+1,Xt0+2,…,Xt0+Tp)∈Tp×N×M表示所有結(jié)點(diǎn)在未來區(qū)間Tp的待預(yù)測值,則本文的目標(biāo)是學(xué)習(xí)如公式(1)所示的映射模型f(·).
(Xt0+1,Xt0+2,…,Xt0+Tp)
(1)
數(shù)據(jù)準(zhǔn)備:云資源時序數(shù)據(jù)的待預(yù)測時段隨集群業(yè)務(wù)負(fù)載變化而與其近期、日周期、周周期片段產(chǎn)生關(guān)聯(lián),滑動窗口依據(jù)規(guī)律特性從三個維度采集序列數(shù)據(jù).假設(shè)結(jié)點(diǎn)監(jiān)測的采樣頻率為每天l次,用χr表示從近期片段采集的時序數(shù)據(jù),即與預(yù)測窗口直接相鄰的時序片段,則有χr=moveGAP[tstart,Δt](tstart=t0-Tr),其中Δt=Tr為近期片段長度;用χd表示按日周期規(guī)律采集的時序數(shù)據(jù),即與預(yù)測窗口相鄰日期的同時段數(shù)據(jù),則有χd=moveGAP[tstart,Δt](tstart=t0-(Td/Tp)×l,t0-(Td/Tp-1)×l,…,t0-l),其中Δt=Tp,Td為日周期片段總長,采集步長為l;用χw表示按周周期規(guī)律采集的時序數(shù)據(jù),即在預(yù)測窗口相鄰周內(nèi)同星期且同時段屬性的數(shù)據(jù),則有χw=moveGAP[tstart,Δt](tstart=t0-(Tw/Tp)×7×l,t0-(Tw/Tp-1)×7×l,…,t0-7×l),其中Δt=Tp,Tw為周周期片段總長,采集步長為7×l.Tr、Td及Tw均為預(yù)測窗口Tp的整數(shù)倍.將三個維度的采集片段作為原始輸入,確保模型充分捕獲時間維特征.則模型的輸入數(shù)據(jù)X及歷史區(qū)間Th可由公式(2)、(3)表示.
Th=Tr+Td+Tw
(2)
X=[χr,χd,χw]∈Th×N×M
(3)
本文通過圖卷積建模云資源拓?fù)浣Y(jié)構(gòu)的空間維特征,刻畫鄰近結(jié)點(diǎn)的信息聚合,再沿時間軸卷積,捕獲序列數(shù)據(jù)的時間維依賴,通過多個圖卷積與時間維卷積的堆疊網(wǎng)絡(luò)學(xué)習(xí)特征表示.
現(xiàn)有的圖卷積神經(jīng)網(wǎng)絡(luò)主要有兩類:譜圖方法和空間方法.本文通過譜圖方法在譜域定義圖卷積.譜圖方法概括說就是利用圖的拉普拉斯矩陣的特征值和特征向量研究圖的性質(zhì),通過對譜空間的信號做傅里葉變換實現(xiàn)卷積操作,而傅里葉變換的定義依賴于拉普拉斯矩陣[16].無向圖G的拉普拉斯矩陣的一般定義為L=D-A,其中D是頂點(diǎn)的度矩陣,為對角矩陣,對角線上的元素依次為各個頂點(diǎn)的度,A是鄰接矩陣.
gθ*Gx=gθ(L)x=gθ(UΛUT)x=
Ugθ(Λ)UTx
(4)
youtput=σ(Ugθ(Λ)UTx)
(5)
其中,gθ(Λ)=diag([Θ0,…,ΘN-1]),卷積核參數(shù)通過初始化賦值然后利用反向傳播進(jìn)行調(diào)整.因為非線性變換在非歐空間數(shù)據(jù)的圖結(jié)構(gòu)中作用有限,使得圖卷積操作發(fā)揮作用的是每一層的特征傳播機(jī)制[18],所以本文放棄層之間的非線性變換,即將特征傳播融合到一個層內(nèi),進(jìn)行維度變換后再由激活函數(shù)作用在聚合結(jié)果上.σ(·)是激活函數(shù),本文使用線性修正單元ReLU.youtput即為卷積層輸出,刻畫鄰近節(jié)點(diǎn)的信息聚合.但是由于每一次前向傳播都要進(jìn)行譜分解及計算大規(guī)模的矩陣乘積,代價較高,所以本文采用切比雪夫多項式進(jìn)行近似求解[17]:
(6)
gθ*Gx≈
θ0x+θ1(L-IN)x+θ2(2(L-IN)2-IN)x
(7)
簡化計算以K=2為例,卷積操作表示為:
gθ*Gx≈θ0x+θ1(L-IN)x=
(8)
(9)
經(jīng)過圖卷積建立結(jié)點(diǎn)數(shù)據(jù)間的空間相關(guān)性,再由標(biāo)準(zhǔn)卷積提取隱藏的時間維特征信息,組成一個時間圖卷積模塊,由多個時間圖卷積結(jié)構(gòu)堆疊形成卷積網(wǎng)絡(luò)層,如圖1所示.
圖1 時間圖卷積結(jié)構(gòu)
以x∈N×Hi×Ti代表一層時間圖卷積模塊的輸入,Hi代表結(jié)點(diǎn)的輸入特征維度,Ti為輸入時間維長度,用N×Ho×To表示該層時間圖卷積的輸出,也即為下一層的輸入,Ho與To分別為輸出特征維度與時間維長度,則一個時間圖卷積模塊的形式化定義為:
(10)
其中,σ(·)是時間維卷積單元的激活函數(shù),本文使用修正線性單元ReLU.Γ*為時間維卷積操作.gθ∈K×Hi×Ho為待學(xué)習(xí)的圖卷積核參數(shù).結(jié)點(diǎn)特征由Hi維轉(zhuǎn)化到Ho維.時間維卷積示意圖如圖2所示.使用訓(xùn)練好的時間圖卷積模型對原始輸入數(shù)據(jù)進(jìn)行特征提取,進(jìn)行維度轉(zhuǎn)換后從全連接層提取特征數(shù)據(jù)輸入支持向量回歸機(jī)(Support Vector Regression,SVR)完成回歸訓(xùn)練.
圖2 時間維卷積示意圖
將經(jīng)過多層時間圖卷積獲得的特征向量送入支持向量回歸機(jī)(SVR)訓(xùn)練,在過擬合時利用主成分分析降低特征向量維數(shù).實驗中發(fā)現(xiàn)特征提取相比SVR調(diào)參對預(yù)測結(jié)果的影響更大,而時間圖卷積模塊確保了特征提取不會成為提高準(zhǔn)確率的瓶頸.
(11)
s.t.ω·φ(xi)+bi-yi≤+ξi,
yi-(ω·φ(xi)+bi)≤
ω,b是待確定的目標(biāo)模型參數(shù),分別為回歸模型中的權(quán)重向量與偏置量,φ(x)為映射函數(shù),C為正則化常數(shù),對結(jié)構(gòu)風(fēng)險和經(jīng)驗風(fēng)險進(jìn)行折中,
ω·φ(xi)+bi為模型估計,yi為真實輸出.面對該類二次規(guī)劃問題,通過引入拉格朗日乘子求得上式對應(yīng)拉格朗日函數(shù),繼而代入模型參數(shù)與松弛變量的偏導(dǎo)等式得其對偶問題,依據(jù)Karush-Kuhn-Tucker條件,解得拉格朗日乘子,即可通過下式解得模型偏置量b,可取多個樣本得其平均值:
b*=yi+
(12)
κ(x,xi)=μκRBF(x,xi)+(1-μ)κPOLY(x,xi)
(13)
(14)
κPOLY(x,xi)=(xTxi)d
(15)
其中,μ為權(quán)值系數(shù),d≥1為多項式次數(shù),ρ為帶寬.SVR的決策回歸函數(shù)為:
(16)
參數(shù)的選擇對模型的預(yù)測精準(zhǔn)度與泛化能力有著重要影響,相對于文獻(xiàn)[8]的主觀取參方式,本文結(jié)合云資源序列的非線性與復(fù)雜性特點(diǎn),利用遺傳算法(Genetic Algorithm,GA)進(jìn)行參數(shù)尋優(yōu).
GA尋優(yōu)的SVR參數(shù)包括:懲罰參數(shù)C、核函數(shù)系數(shù)ρ、多項式核最高次項次數(shù)d、核函數(shù)組合權(quán)值系數(shù)μ.算法步驟描述如下:
(1)初始化種群.隨機(jī)生成初始群體,以C、ρ、d、μ參數(shù)作為基因構(gòu)建n個染色體,采用多參數(shù)級聯(lián)拼接方式,懲罰參數(shù)C和核函數(shù)帶寬ρ使用間接二進(jìn)制編碼,去除小數(shù)點(diǎn)與符號位,避免交叉變異結(jié)果出現(xiàn)一串基因兩位符號位或小數(shù)點(diǎn).次數(shù)d和權(quán)值系數(shù)μ采用格雷碼編碼.指定參數(shù)尋優(yōu)區(qū)間
C∈[2-8,28],ρ∈[2-8,28],d∈[1,3],μ∈
[0.1,0.9].當(dāng)前迭代次數(shù)t←1,最大迭代次數(shù)
T=200.
(2)依據(jù)各條染色體基因編碼中的參數(shù)在訓(xùn)練集上訓(xùn)練SVR模型,采用式(17)的均方誤差作為適應(yīng)度函數(shù)進(jìn)行評估并排序,淘汰后10%個體,依據(jù)適應(yīng)度大小按梯度選擇復(fù)制,保持個體總數(shù)不變.
(17)
式(17)中:S為評估樣本數(shù)目,fi為模型預(yù)測值,yi為真實值,γ為適應(yīng)度.
(3)從種群隨機(jī)選擇2個染色體作為親代染色體,每個染色體的選擇概率依據(jù)式(18)計算.
(18)
式(18)中:p1(i)表示被選為親代染色體的概率,γi為適應(yīng)度值.
(4)將親代染色體進(jìn)行基因交叉重組,交叉算子如下:
(19)
(20)
(21)
(22)
式(22)中:γi為突變個體適應(yīng)度值,β2為調(diào)節(jié)因子.
t←t+1,若t≤T,則執(zhí)行步驟2;否則執(zhí)行步驟6.
(6)將當(dāng)前種群中最佳適應(yīng)度染色體的基因編碼作為最優(yōu)解解碼輸出,即得C、ρ、d、μ的最優(yōu)參數(shù)值,依此在訓(xùn)練集訓(xùn)練最終的SVR預(yù)測模型.
遺傳算法具備自適應(yīng)和自學(xué)習(xí)性,其從問題解域搜索的并行化實現(xiàn)使得在參數(shù)尋優(yōu)中避免了陷入局部最優(yōu)的風(fēng)險.
為了驗證本文模型的有效性,本節(jié)介紹實驗設(shè)置以及與其他模型的對比分析.
本文使用Google云公開數(shù)據(jù)集,數(shù)據(jù)來自Google云計算中心Borg集群計算單元的工作負(fù)載.CusterData2019數(shù)據(jù)集提供了2019年5月8個cells跨度30天的資源請求、調(diào)度與任務(wù)記錄,單個cell包含12 500臺機(jī)器,672 000個作業(yè),去除了終端用戶對存儲系統(tǒng)的訪問模式等額外數(shù)據(jù).數(shù)據(jù)集中的CPU使用信息依據(jù)5 m一個周期的頻率采樣匯總,同時包含帶時間戳的內(nèi)存、帶寬等多維特征信息.本文篩選計算節(jié)點(diǎn)的數(shù)據(jù)子集作為需求序列信息,以前25天作為訓(xùn)練集,后5天作為測試集.
對輸入數(shù)據(jù)進(jìn)行預(yù)處理.利用線性插值法填補(bǔ)空缺值,為了使模型性能不受大規(guī)模輸入樣本影響,再通過中心化和歸一化得到均值為0的規(guī)范化輸入.模型的訓(xùn)練和測試采用深度學(xué)習(xí)框架Pytorch.卷積網(wǎng)絡(luò)參數(shù)設(shè)置如表1所示.
表1 實驗參數(shù)
實驗中對切比雪夫多項式系數(shù)K∈{1,2,3}分別取值測試,預(yù)測誤差隨K值增大而減小,鄰居節(jié)點(diǎn)超過3階后卷積聚合不滿足局部性要求.圖卷積與時間維卷積均采用32個濾波器進(jìn)行局部特征提取,以3個時間維周期采樣片段作為3個通道(channel),通過調(diào)整步長改變序列長度.學(xué)習(xí)率在對數(shù)尺度進(jìn)行取樣.優(yōu)化算法采用小批量梯度下降(mini-batch gradient descent),實驗中批處理大小(batch_size)取值過小其損失值隨迭代會震蕩式下降,故取樣測試后在2的冪次方尺度以64為最佳.遺傳算法獲取的SVR最佳超參數(shù)分別為C=105.32,ρ=0.89,d=2,μ=0.6.尋優(yōu)過程中的適應(yīng)度函數(shù)變化曲線如圖3所示.
圖3 遺傳算法優(yōu)化參數(shù)適應(yīng)度曲線變化圖
圖中平均適應(yīng)度在種群進(jìn)化后期收斂到值域為[0.02,0.03]的小幅波動區(qū)間,最佳適應(yīng)度在20代之后趨于穩(wěn)定.
本文針對云資源預(yù)測模型的改進(jìn)主要立足于支持向量回歸與卷積網(wǎng)絡(luò)的結(jié)合,具體創(chuàng)新點(diǎn)為融合圖卷積的空間維建模以及對SVR的GA尋參優(yōu)化.因此,本文基于支持向量回歸和卷積神經(jīng)網(wǎng)絡(luò)分別選擇對比模型,包括:本文提出的新的預(yù)測模型;本文未融合圖卷積網(wǎng)絡(luò)結(jié)構(gòu)的(CNN-SVM);文獻(xiàn)[8]未進(jìn)行GA尋優(yōu)的支持向量機(jī)(SVM)模型;以及進(jìn)行泛化對比的經(jīng)典時序預(yù)測算法ARIMA、LSTM.
因為容器云平臺的計算資源管理主要針對CPU與Memory進(jìn)行,超過使用閾值即進(jìn)行擴(kuò)縮容響應(yīng),所以對比試驗針對CPU利用率與Memory使用量序列進(jìn)行預(yù)測研究.使用均方根誤差(RMSE)、平均絕對誤差(MAE)、平均絕對值百分比誤差(MAPE)、平均均方誤差(MSE)評估對比模型,計算式如下:
(23)
(24)
(25)
(26)
式(23)~(26)中:n為預(yù)測樣本數(shù),yi為實際值,fi為預(yù)測值.
各模型在測試數(shù)據(jù)集上對未來2 h每隔5 min的單步預(yù)測結(jié)果對比見圖4和圖5所示,以original表示原始數(shù)據(jù),ours為本文模型.
圖4 各模型CPU預(yù)測結(jié)果對比
圖5 各模型內(nèi)存預(yù)測結(jié)果對比
從圖4和圖5的實驗結(jié)果可以觀察到,所有算法與原始序列的趨勢基本一致,本文模型相比其他算法,取得了更加理想的擬合效果.同時也可以看到,CPU序列數(shù)據(jù)起伏波動較大,各算法相比內(nèi)存序列在轉(zhuǎn)折點(diǎn)處預(yù)測偏差更為明顯.為了進(jìn)一步量化對比結(jié)果,各模型具體誤差統(tǒng)計見圖6和圖7所示.
圖6 CPU預(yù)測誤差對比
圖7 內(nèi)存預(yù)測誤差對比
從圖6和圖7可以更清楚地看到,在CPU和內(nèi)存序列的預(yù)測中,本文模型相比其他方法具有更低的預(yù)測誤差,且融合圖卷積與GA優(yōu)化的效果反映在圖中表現(xiàn)為對CNN-SVM和SVM的明顯精度優(yōu)勢,這說明本文的改進(jìn)思路是有效的.但是也應(yīng)當(dāng)注意到,面對隨機(jī)性更強(qiáng)且波動劇烈的CPU序列,各模型的預(yù)測穩(wěn)定性顯著降低,本文模型也出現(xiàn)了較為明顯的精度波動,且相較于內(nèi)存序列優(yōu)勢減小,這說明面對弱平穩(wěn)的不規(guī)則波動,本文模型依然存在可優(yōu)化空間,這也是未來的工作方向.各模型的詳細(xì)誤差指標(biāo)如表2和表3所示.
表2 預(yù)測性能對比(CPU)/10-2
表3 預(yù)測性能對比(內(nèi)存)
云資源預(yù)測主要針對未來一段時間的變化趨勢進(jìn)行分析,單步預(yù)測結(jié)果只能描述下一時刻的資源變化情況,為了檢驗本文方法的泛化能力,每隔6、12、18個原始采集點(diǎn)分別求取平均,以此構(gòu)建30 min、60 min、90 min間隔的資源序列作為新的訓(xùn)練樣本,在測試集的多步預(yù)測結(jié)果如表4和表5所示.
表4 不同間隔步長的預(yù)測性能(CPU)/10-2
表5 不同間隔步長的預(yù)測性能(內(nèi)存)
從表中可以看到,隨時間間隔增加,預(yù)測難度越來越大,但本文模型在不同步長依然保持較低的預(yù)測誤差,能夠穩(wěn)定地描述資源的多步變化趨勢,證明了模型的可靠性與穩(wěn)健性,且具備一定的泛化能力.這為實際云場景中通過多步需求預(yù)測為基礎(chǔ)平臺的彈性承載力賦能提供了重要指導(dǎo)意義.
本文提出一種基于卷積網(wǎng)絡(luò)與支持向量回歸的云資源預(yù)測模型,該模型結(jié)合圖卷積與標(biāo)準(zhǔn)卷積提取網(wǎng)絡(luò)拓?fù)湎碌臅r序數(shù)據(jù)特征,并利用遺傳算法優(yōu)化SVR預(yù)測性能.在谷歌云計算中心數(shù)據(jù)集上的實驗表明,本文模型相比傳統(tǒng)時序預(yù)測方法提高了預(yù)測精度與穩(wěn)定性,提升了容器云平臺的資源分配與調(diào)度效率.