曹 振,鄧 莉,謝同磊,梁晨君
(武漢科技大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,武漢 430065) (智能信息處理與實時工業(yè)系統(tǒng)湖北省重點實驗室,武漢 430065)
近年來,隨著云計算技術(shù)的持續(xù)發(fā)展,云平臺數(shù)據(jù)中心的用戶規(guī)模一直處于穩(wěn)定上升的趨勢.然而研究表明,大多數(shù)云環(huán)境的資源利用率均處于較低水平[1,2],比如:阿里云平臺中每臺機(jī)器的平均CPU利用率都在40%以內(nèi)[3],而Google云平臺的CPU利用率則始終在10%~45%之間波動[4].數(shù)據(jù)中心的低效性會威脅到其盈利能力[5].云平臺資源的有效管理,已成為當(dāng)前數(shù)據(jù)中心所面臨的主要挑戰(zhàn)之一[6].有效地對云平臺任務(wù)進(jìn)行CPU負(fù)載預(yù)測可以促進(jìn)主動的作業(yè)調(diào)度,更好地做出CPU負(fù)載均衡決策,提高CPU資源利用率,在保證作業(yè)性能的前提下降低云平臺數(shù)據(jù)中心的運(yùn)營成本.
研究人員已經(jīng)進(jìn)行了相關(guān)CPU負(fù)載預(yù)測工作.云平臺中任務(wù)的CPU負(fù)載是一種特殊的時間序列,它兼具動態(tài)性、不確定性、突變性和時間依賴性等特點,這使得基于云平臺任務(wù)的CPU負(fù)載預(yù)測工作變得更具有挑戰(zhàn)性.為減輕數(shù)據(jù)中的噪聲對CPU負(fù)載預(yù)測的負(fù)面影響,Deguang等人提出了一種將降噪和糾錯相結(jié)合的云服務(wù)器CPU負(fù)載預(yù)測方法[7],一定程度上改善模型性能,但該方法忽略了時間序列缺失信號對預(yù)測的影響.為解決模型訓(xùn)練過程中的參數(shù)優(yōu)化問題,Yiping等人提出了一種名為DP-CUPA的模型[8],結(jié)合深度置信網(wǎng)絡(luò)(Deep Belief Network,DBN)和粒子群優(yōu)化算法(Particle Swarm Optimization,PSO)來預(yù)測云數(shù)據(jù)中心中物理機(jī)的CPU利用率.得益于PSO對DBN的參數(shù)優(yōu)化,該模型的預(yù)測結(jié)果要比原始模型EMDBN[9]的預(yù)測結(jié)果更為準(zhǔn)確.但是利用PSO對DBN進(jìn)行參數(shù)優(yōu)化的過程中可能會陷入局部最優(yōu).
本文通過對阿里云平臺數(shù)據(jù)集與Google云平臺數(shù)據(jù)集的分析,發(fā)現(xiàn)它們分別記錄了許多不同的特征,而這些不同特征與其待預(yù)測特征之間的相關(guān)性存在著較大差異.相比較于一般數(shù)據(jù)集,此類特征復(fù)雜多樣的時間序列數(shù)據(jù)集在模型訓(xùn)練過程中的特征選取及特征學(xué)習(xí)更顯重要.而現(xiàn)有的云平臺任務(wù)預(yù)測模型在特征學(xué)習(xí)規(guī)劃上都還存在不足,沒有完全挖掘出多個不同時間序列變量之間存在的內(nèi)在關(guān)系,從而影響目標(biāo)變量預(yù)測值的準(zhǔn)確性[10].本文提出基于多重長短期記憶n-LSTM(n-feature Long Short-Term Memory,n-LSTM)(https://blog.csdn.net/weixin_46649052/article/details/109693618)的CPU負(fù)載預(yù)測方法DPFE-n-LSTM(n-LSTM based on Data Preprocessing and Feature Extraction,DPFE-n-LSTM).數(shù)據(jù)預(yù)處理階段利用熱度圖篩選出數(shù)據(jù)集的特征,并將其中的每一個特征對應(yīng)獨(dú)立的LSTM層.利用長短期記憶網(wǎng)絡(luò)作為其基本單元來學(xué)習(xí)負(fù)載數(shù)據(jù)中各個特征的時間依賴關(guān)系,同時又考慮到多個特征之間的影響.這樣,既可以避免由于模型深度增加而造成的梯度彌散和梯度爆炸現(xiàn)象,又可以在防止丟失部分特征的同時選擇性地加強(qiáng)對某些相關(guān)性很高的特征的學(xué)習(xí).
隨著云計算的興起,數(shù)據(jù)中心變得越來越重要.數(shù)據(jù)中心主要服務(wù)于廣泛的應(yīng)用程序,比如:搜素引擎,視頻處理,機(jī)器學(xué)習(xí)以及第三方云應(yīng)用程序等[11].計算資源的有效使用是數(shù)據(jù)中心面臨的主要挑戰(zhàn)之一.準(zhǔn)確的資源負(fù)載預(yù)測有助于計算資源的優(yōu)化配置,從而大大降低數(shù)據(jù)中心的能耗.
CPU作為最重要的計算資源之一[8],其負(fù)載預(yù)測問題近些年來已經(jīng)引起了相關(guān)研究人員的關(guān)注.2014年Yu等使用誤差反向傳播(Back Propagation,BP)模型對Google云平臺任務(wù)的平均CPU 利用率進(jìn)行了預(yù)測[12].但是,BP模型具有收斂速度緩慢和容易陷入局部最優(yōu)值等缺點,同時目前云平臺在線任務(wù)的資源配置是依據(jù)其最大資源使用量進(jìn)行的[13].Duggan等在2017年使用循環(huán)神經(jīng)網(wǎng)絡(luò)對CPU使用率進(jìn)行預(yù)測[14],該模型彌補(bǔ)了BP模型在時間序列的時間特征學(xué)習(xí)上的缺陷,但是它在學(xué)習(xí)長距離依賴方面依舊存在著不足.Song等在2018年利用LSTM模型對CPU 的平均負(fù)載和實際負(fù)載進(jìn)行了預(yù)測[15].相比較于普通的RNN,LSTM模型在長時間序列的負(fù)載預(yù)測中具有更好的表現(xiàn),并且能夠解決長序列訓(xùn)練過程中的梯度消失和梯度爆炸問題,但是Song等人只提取出了CPU負(fù)載用于預(yù)測,沒有考慮到其他特征對CPU負(fù)載預(yù)測的影響.而且在輸入數(shù)據(jù)含有多個特征時,LSTM模型只能設(shè)置一個時間窗,會忽略不同特征之間的差異,從而影響最終的預(yù)測效果.2015年Xingjian等使用卷積長短期記憶神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network - Long Short-Terms Memory,CNN-LSTM)進(jìn)行了預(yù)測[16].與LSTM模型相比較,CNN-LSTM在保留學(xué)習(xí)長期時序依賴信息的能力的同時,還擁有了自動特征提取以及學(xué)習(xí)空間依賴信息的能力,但是CNN-LSTM模型在特征提取過程中會丟失底層特征,導(dǎo)致特征學(xué)習(xí)的不充分,降低預(yù)測精度.
對于CPU負(fù)載的預(yù)測工作,大多數(shù)研究人員都過分關(guān)注于預(yù)測模型的設(shè)計,卻忽略了數(shù)據(jù)的特征提取.在實際應(yīng)用中,合適的數(shù)據(jù)預(yù)處理和特征提取對模型預(yù)測精度的提升有著重要的作用.本文基于對真實數(shù)據(jù)集的分析,提取多個特征,并采用n-LSTM模型學(xué)習(xí)這些特征而得到更為優(yōu)良的預(yù)測效果.
本文所提出的基于多重長短期記憶的CPU負(fù)載預(yù)測方法DPFE-n-LSTM包括以下4個步驟:
步驟1.預(yù)處理有關(guān)CPU使用狀態(tài)的歷史時間序列數(shù)據(jù),以生成長度相同的數(shù)組列表.數(shù)據(jù)預(yù)處理主要包括缺失值處理、數(shù)據(jù)標(biāo)準(zhǔn)化和步長選擇等.
步驟2.利用熱度圖對任務(wù)負(fù)載的各特征進(jìn)行特征分析,據(jù)此完成特征選擇,并保留特征的相關(guān)性值,以供后續(xù)模型訓(xùn)練的參數(shù)設(shè)置.
步驟3.基于經(jīng)由數(shù)據(jù)預(yù)處理得到的最新數(shù)據(jù)集以及特征提取后的特征分布情況,設(shè)計并訓(xùn)練n-LSTM模型.
步驟4.基于訓(xùn)練好的n-LSTM模型,對給定的輸入數(shù)據(jù),生成最終的預(yù)測結(jié)果.
圖1描述了CPU負(fù)載預(yù)測方法DPFE-n-LSTM的具體實現(xiàn)流程.

圖1 云平臺任務(wù)CPU負(fù)載預(yù)測方法DPFE-n-LSTM Fig.1 CPU load prediction method DPFE-n-LSTM of cloud tasks on cloud platform
如圖1所示,首先基于云平臺在連續(xù)時間內(nèi)任務(wù)的資源使用數(shù)據(jù),整理出任務(wù)在時間間隔T內(nèi)的資源使用率信息,然后對數(shù)據(jù)集進(jìn)行進(jìn)一步數(shù)據(jù)處理,其中包括缺失值填充、特征分析及提取、數(shù)據(jù)標(biāo)準(zhǔn)化處理和輸入數(shù)據(jù)步長選擇等操作.最后再基于經(jīng)過數(shù)據(jù)處理后的最新數(shù)據(jù)集,利用分析得出的特征信息來搭建n-LSTM模型,使用訓(xùn)練集中的任務(wù)負(fù)載歷史數(shù)據(jù)以訓(xùn)練n-LSTM模型,提供測試集中的前L步任務(wù)負(fù)載信息以預(yù)測第L+1步的CPU利用率.
云平臺數(shù)據(jù)中心所提供的跟蹤數(shù)據(jù)的主要來源是周期性的遠(yuǎn)程過程調(diào)用,而當(dāng)監(jiān)控系統(tǒng)或者主機(jī)發(fā)生超載現(xiàn)象時,有可能會丟失掉一些監(jiān)測數(shù)據(jù),因此需要對數(shù)據(jù)集中的缺失值進(jìn)行填充操作,以避免遺漏掉某個缺失字段,從而影響后續(xù)的模型訓(xùn)練過程.本文采用的方法是先進(jìn)行前向填充,再進(jìn)行后向填充,這樣能防止數(shù)據(jù)集中任意位置的缺失值填充遺漏.
缺失值填充能有效降低模型訓(xùn)練過程中意外事件發(fā)生的可能性.緊接著需要決定使用數(shù)據(jù)集中的哪些信息來進(jìn)行模型訓(xùn)練,這會對預(yù)測結(jié)果產(chǎn)生很大的影響.特征選擇(Feature Selection,FS)的過程還可以減少計算時間,降低數(shù)據(jù)存儲需求,簡化模型,規(guī)避維數(shù)爆炸,并增強(qiáng)泛化能力,避免過擬合[17].目前的特征選擇技術(shù)主要是基于4個指標(biāo):特征方差,與目標(biāo)的相關(guān)性,回歸器之間的冗余度和特征重要性.
本文基于與目標(biāo)特征的相關(guān)性來實現(xiàn)特征選擇,使用熱度圖(heatmap)分別對阿里云trace和Google云trace進(jìn)行特征相關(guān)性分析,從而決定用于CPU負(fù)載預(yù)測而保留的特征集合.圖2分別展示了阿里云平臺與Google云平臺各自的特征的相關(guān)性分布.
從圖2(a)可知,阿里數(shù)據(jù)集中的預(yù)測特征cpu_used(已使用的CPU所占百分比)與load1(以1分鐘為一個單位的CPU平均負(fù)載)、load5(以5分鐘為一個單位的CPU平均負(fù)載)、load15(以15分鐘為一個單位的CPU平均負(fù)載)、avg_mpki(每1000條指令的平均的最后一級高速緩存未命中數(shù))、max_cpi(最大指令周期)、max_mpki(每1000條指令的最大的最后一級高速緩存未命中數(shù))以及其自身的相關(guān)性比較強(qiáng),這些特征與cpu_used的特征相關(guān)性的值均大于0.5.需要注意的是,每個特征與其自身的特征相關(guān)性的值都為1.其中,load1、load5和load15兩兩之間的相關(guān)性又趨近于1,可以僅取其中與cpu_used的特征相關(guān)性最大的load15作為預(yù)測cpu_used的代表特征.而max_mpki、max_cpi以及avg_mpki兩兩間的相關(guān)性也很高,為避免后期模型訓(xùn)練過程的過擬合問題,則僅取max_mpki作為預(yù)測cpu_used的代表特征.因此,最終選擇只保留阿里云trace中cpu_used,load15,max_mpki這3個特征,其中cpu_used同時也是目標(biāo)特征.從圖2(b)可知,在Google云trace中,目標(biāo)特征maximum CPU usage(最大CPU利用率)與其他特征的相關(guān)性均較低且彼此相近,取值范圍為0.01-0.13,且除去maximum CPU usage與自身的特征相關(guān)性以外,其余特征相關(guān)性絕對值的總和為0.94.根據(jù)以上分析可知,Google數(shù)據(jù)集中提供的特征與目標(biāo)特征之間的關(guān)聯(lián)性均較弱,如果選擇的特征過少,則將有很大概率會導(dǎo)致欠擬合現(xiàn)象的發(fā)生.因此為避免丟失過多特征而影響預(yù)測精度,選擇保留Google數(shù)據(jù)集中的所有可用特征.
通過熱度圖對兩個數(shù)據(jù)集的特征分析,可以發(fā)現(xiàn)阿里云trace和Google云trace中的特征分布存在著很大的差異,這也在一定程度上說明了模型訓(xùn)練過程中的特征選擇與特征學(xué)習(xí)的重要性,只有在合適的特征提取以及合理的特征學(xué)習(xí)的基礎(chǔ)上才能有效地提高目標(biāo)特征的預(yù)測精度.表1與表2分別列出從阿里云平臺和Google云平臺的任務(wù)數(shù)據(jù)集中提取到的全部特征及其含義.

表1 阿里云trace中提取的特征Table 1 Features extracted from Alibaba Cloud trace

表2 Google云trace中提取的特征Table 2 Features extracted from Google Cloud trace
特征提取后,經(jīng)觀察發(fā)現(xiàn)不同特征之間的取值范圍有較大差別.為了消除差別并使不同特征之間存在可比性,本文選擇使用最大最小標(biāo)準(zhǔn)化方法對兩個數(shù)據(jù)集中的每個特征依次進(jìn)行處理,處理方式如公式(1)所示.
(1)
其中,MIN是某特征在所有樣本中的最小值,MAX是某特征在所有樣本中的最大值,x是某樣本的原特征值,x′是該樣本處理后的特征值.
數(shù)據(jù)經(jīng)過標(biāo)準(zhǔn)化處理后既能在后續(xù)的模型訓(xùn)練過程中加快梯度下降求解最優(yōu)值的速度,也能在一定程度上提高預(yù)測的精度.
圖3描述了數(shù)據(jù)預(yù)處理的最后一步操作,是對已經(jīng)按時間戳排好序的每組實例信息構(gòu)造多個長度為L+1 的子序列,即將子序列的前L步視為輸入,最后一步視為目標(biāo)輸出.即,本文模型訓(xùn)練的目標(biāo)是通過前L步的任務(wù)資源負(fù)載信息預(yù)測下一步的CPU利用率.

圖3 時間序列中的步長設(shè)置Fig.3 Step size in time series
步長L值的確定,主要基于多次實驗分析的經(jīng)驗.分別在阿里云trace和Google云trace中隨機(jī)選定一個任務(wù),對步長設(shè)置不同的值,使用LSTM模型進(jìn)行預(yù)測,依據(jù)CPU負(fù)載預(yù)測的4個評價指標(biāo)(均方誤差、均方根誤差、正規(guī)化均方根誤差和平均絕對誤差),確定最終的時間序列輸入步長.
目前,用于云平臺任務(wù)資源利用率的預(yù)測模型有BP模型[12]、LSTM模型[15]和CNN-LSTM模型[16]等.BP模型適用于任何非線性映射問題,具備著高度的并行性、良好的容錯性與聯(lián)想記憶功能,以及很強(qiáng)的自學(xué)習(xí)能力和對環(huán)境的自適應(yīng)能力.但是它存在著3個問題:1)參數(shù)優(yōu)化難度大,耗時耗力;2)學(xué)習(xí)速度慢;3)模型容易陷入局部最優(yōu)解,從而導(dǎo)致學(xué)習(xí)不夠充分.BP模型既不能實現(xiàn)特征維度上的靈活調(diào)節(jié),也不能完成時間維度上的特征學(xué)習(xí).LSTM模型是一種特殊的循環(huán)神經(jīng)網(wǎng)絡(luò)(Recurrent Neural Network,RNN)模型,主要是為了解決一般的RNN所存在的長期依賴問題.LSTM模型包含4個基本組件:單元、輸入門、遺忘門和輸出門,其中3個門跟蹤并控制著單元中數(shù)據(jù)流的輸入和輸出.輸入門決定當(dāng)前輸入數(shù)據(jù)中保留哪些信息,遺忘門決定要忘記之前沒用的信息,輸出門則確定當(dāng)前時刻節(jié)點的輸出.LSTM模型在特征學(xué)習(xí)的靈活性上有所欠缺,它沒能在學(xué)習(xí)過程中將不同特征有效分隔開.CNN-LSTM模型會在輸入數(shù)據(jù)通過CNN層時丟失掉底層特征,這將有一定概率使模型學(xué)習(xí)到的特征過少,而導(dǎo)致欠擬合現(xiàn)象的發(fā)生.
經(jīng)觀察發(fā)現(xiàn),基于長期的復(fù)雜的多元數(shù)據(jù)進(jìn)行預(yù)測時,包括LSTM在內(nèi)的循環(huán)神經(jīng)網(wǎng)絡(luò)的性能均會有所下降.特別是在輸入為多維的情況下,合理把握變量之間的關(guān)系對于預(yù)測更顯得尤為重要[18].
考慮到多維特征,本文采用n-LSTM作為預(yù)測模型.不同于以往多層LSTM模型在縱向上的加深,n-LSTM模型是基于LSTM層和輸入特征在橫向上的擴(kuò)展.其基本原理是根據(jù)各個特征與預(yù)測特征之間的相關(guān)性大小,對輸入數(shù)據(jù)的每一個特征設(shè)計一個專門的LSTM層進(jìn)行特征學(xué)習(xí),每個LSTM層的輸入特征的時間窗維度可以不同,因此輸入數(shù)據(jù)的每個特征在n-LSTM模型中的學(xué)習(xí)程度也會不同,時間窗越大,對應(yīng)特征通過LSTM層時被學(xué)習(xí)到的細(xì)節(jié)就越多.n-LSTM模型中的每一個LSTM層可以被看作是一個獨(dú)立的特征提取器,這種針對不同特征進(jìn)行不同分析的做法既能避免因丟棄掉過多特征而導(dǎo)致的模型欠擬合現(xiàn)象,又能防止保留過多嘈雜特征而引發(fā)的模型過擬合現(xiàn)象.根據(jù)特征相關(guān)性的大小決定不同特征提取器的提取力度,既可以減小對于保留下來的嘈雜特征的學(xué)習(xí)強(qiáng)度,又可以加大對于重要特征的學(xué)習(xí)強(qiáng)度.在各個特征分別經(jīng)由其所對應(yīng)的LSTM層同步學(xué)習(xí)以后,將所有LSTM的輸出進(jìn)行拼接,最后通過一個全連接層得出最終的預(yù)測結(jié)果.n-LSTM模型的實現(xiàn)框架如圖4所示.

圖4 n-LSTM模型實現(xiàn)框架Fig.4 Implementation framework of the n-LSTM model
n-LSTM模型在特征學(xué)習(xí)方面采取了分而治之的策略,即先將各個特征分開后借助LSTM層依次學(xué)習(xí)其時間依賴信息,然后借助全連接層學(xué)習(xí)各個特征之間的關(guān)系并實現(xiàn)信息的整合,這樣便能很好的避免特征學(xué)習(xí)過程中的過擬合與欠擬合現(xiàn)象.相比較于BP模型、LSTM模型和CNN-LSTM模型,n-LSTM模型能合理利用數(shù)據(jù)預(yù)處理及特征提取階段所獲取到的特征信息,進(jìn)而對云平臺任務(wù)的資源使用特征進(jìn)行更好的學(xué)習(xí),從而產(chǎn)生更為準(zhǔn)確的預(yù)測結(jié)果.
本文選擇使用阿里云trace以及Google云trace分別進(jìn)行負(fù)載預(yù)測實驗,評估本文所提出的云平臺任務(wù)CPU負(fù)載預(yù)測方法DPFE-n-LSTM的性能,同時驗證數(shù)據(jù)預(yù)處理及特征提取階段對于最終預(yù)測性能提升的有效性.為多角度評估不同預(yù)測方法的性能,本文將采用4種不同的評估指標(biāo).
實驗在6核CPU(型號為AMD 銳龍 5 4600H)、16G DDR4內(nèi)存、win10操作系統(tǒng)的環(huán)境中進(jìn)行.
該實驗采用了兩個數(shù)據(jù)集,分別是2017年發(fā)布的阿里云平臺跟蹤數(shù)據(jù)集(https://github.com/alibaba/clusterdata/blob/master/cluster-trace-v2017/trace_201708.md)和2011年發(fā)布的Google云平臺跟蹤數(shù)據(jù)集(https://github.com/google/cluster-data/blob/master/ClusterData2011_2.md).
阿里云平臺在2017年發(fā)布的跟蹤數(shù)據(jù)集提供了連續(xù)24小時內(nèi)對某生產(chǎn)集群的跟蹤數(shù)據(jù).數(shù)據(jù)包括機(jī)器的一部分工作負(fù)載和整個集群的工作負(fù)載.集群中的所有機(jī)器都能運(yùn)行在線任務(wù)與批處理任務(wù).數(shù)據(jù)集包含6類表格,分別是服務(wù)器事件表(server_event.csv)、服務(wù)器利用率表(server_usage.csv)、批處理任務(wù)表(batch_task.csv)、批處理實例表(batch_instance.csv)、在線任務(wù)事件表(container_event.csv)和在線任務(wù)利用率表(container_usage.csv).本文只使用了在線任務(wù)利用率表,并從中隨機(jī)提取100個在線任務(wù)在24小時內(nèi)保存下來的資源利用率數(shù)據(jù).
Google云平臺在2011年發(fā)布的跟蹤數(shù)據(jù)集提供了自2011年5月開始的長達(dá)29天的跟蹤數(shù)據(jù),其生產(chǎn)集群包含了大約12.5千臺計算機(jī).Google云trace主要包含6類表格,其中,機(jī)器事件表(machine_events.csv)和機(jī)器屬性表(machine_attributes.csv)共同描述了機(jī)器信息;作業(yè)事件表(job_events.csv)和任務(wù)事件表(task_events.csv)分別描述了作業(yè)信息、任務(wù)信息;任務(wù)約束表(task_constraints.csv)描述了任務(wù)放置的約束信息;任務(wù)資源使用情況表(task_resource_usage.csv)記錄了集群中運(yùn)行的任務(wù)的資源變化信息.本文只使用了該數(shù)據(jù)集中的任務(wù)資源使用情況表,并從中隨機(jī)提取100個任務(wù)在29天時間里保存下來的資源利用率數(shù)據(jù).
為了評估不同模型對云平臺任務(wù)CPU資源利用率預(yù)測的性能,本文選擇使用均方誤差(Mean Square Error,MSE)、均方根誤差(Root Mean Square Error,RMSE)、正規(guī)化均方根誤差(Normalized Root Mean Square Error,NRMSE)和平均絕對誤差(Mean Absolute Error,MAE)這4個評價指標(biāo).
它們的定義公式如下所示.
(2)
(3)
(4)
(5)

MSE作為最常用的回歸損失函數(shù),它可以評價數(shù)據(jù)的變化程度,MSE值越小,說明預(yù)測模型描述實驗數(shù)據(jù)具有更好的精確度.RMSE是對MSE的開方,它可以解決MSE公式中改變量綱的問題,并且RMSE對一組預(yù)測結(jié)果中的特小誤差反映更為敏感.NRMSE是將RMSE正規(guī)化后所得到的統(tǒng)計數(shù)值,它會將RMSE的值轉(zhuǎn)換到(0,1)之間,當(dāng)它的值較低時,代表著較少的殘差變異.MAE同樣是常用于回歸模型的損失函數(shù),它能避免誤差相互抵消的問題,因而可以準(zhǔn)確反映實際預(yù)測誤差的大小.
3.3.1 參數(shù)設(shè)置
基于不同步長,LSTM模型在阿里云數(shù)據(jù)集上進(jìn)行CPU負(fù)載預(yù)測時得到的4個評價指標(biāo)分別如表3所示.

表3 不同步長下的阿里云任務(wù)預(yù)測精度比較Table 3 Prediction accuracy comparison of Alibaba Cloud task with different step sizes
從表3可以觀察到,當(dāng)步長為5時,LSTM模型在4個評價指標(biāo)上所展示出來的性能表現(xiàn)為最優(yōu).因此,在預(yù)測阿里云任務(wù)的CPU資源利用率時,將時間序列的步長L設(shè)置為5,即基于阿里云平臺任務(wù)的前5步時間序列信息,預(yù)測下一步的CPU負(fù)載特征值.
基于阿里云數(shù)據(jù)集的負(fù)載預(yù)測實驗中,經(jīng)過多次模型優(yōu)化測試,最終確定各個模型的重要參數(shù).其中,BP模型的第1個全連接層的神經(jīng)元數(shù)量設(shè)置為6,第2個全連接層的神經(jīng)元數(shù)量設(shè)置為12,學(xué)習(xí)的周期數(shù)設(shè)置為160.LSTM模型的第1個LSTM層的神經(jīng)元數(shù)量設(shè)置為8,第2個LSTM層的神經(jīng)元數(shù)量設(shè)置為14,學(xué)習(xí)的周期數(shù)設(shè)置為150.CNN-LSTM模型的一維卷積層擁有32個大小為2的卷積核,該卷積層的步長設(shè)置為1,將它的一維最大池化層的池化窗口大小設(shè)置為2,其池化操作的移動步幅設(shè)置為1,將它的第1個LSTM層的神經(jīng)元數(shù)量設(shè)置為8,第2個LSTM層的神經(jīng)元數(shù)量設(shè)置為14,學(xué)習(xí)的周期數(shù)設(shè)置為120.n-LSTM模型的LSTM層的數(shù)量是由數(shù)據(jù)集的特征數(shù)所決定的,對于阿里云平臺任務(wù)數(shù)據(jù)集,它擁有3個并行的LSTM層,LSTM層的神經(jīng)元數(shù)量依次為20、17、12,神經(jīng)元數(shù)量設(shè)置與該層所對應(yīng)特征與預(yù)測特征的特征相關(guān)性大小有關(guān),學(xué)習(xí)的周期數(shù)設(shè)置為130.
3.3.2 不同方法的性能對比
在本節(jié)實驗中,將n-LSTM模型與已經(jīng)提出的BP模型、LSTM模型和CNN-LSTM模型等3種模型進(jìn)行比較,這些方法在云平臺任務(wù)的CPU負(fù)載預(yù)測方面都已經(jīng)體現(xiàn)出了優(yōu)良的性能.
實驗流程是:從前面已經(jīng)進(jìn)行了數(shù)據(jù)預(yù)處理的100個云平臺任務(wù)的數(shù)據(jù)集中隨機(jī)選取出50個云平臺任務(wù),并利用這50個任務(wù)各自80%的負(fù)載信息參與模型訓(xùn)練,20%參與模型預(yù)測.考慮到實際應(yīng)用場景中除了參與模型訓(xùn)練的任務(wù)存在預(yù)測需求以外,還有部分任務(wù)需要直接依賴模型進(jìn)行負(fù)載預(yù)測,本文選擇保留剩余的50個云平臺任務(wù)不參與模型訓(xùn)練,但同樣需要利用其各自20%的負(fù)載信息參與模型預(yù)測.經(jīng)過模型預(yù)測,針對每一個任務(wù),每個模型均會得到4個評價指標(biāo).最后,基于這些評價指標(biāo)的數(shù)據(jù)分別繪制累計分布圖(Cumulative Distribution Function,CDF).圖5分別描述了4種模型在MSE、RMSE、NRMSE和MAE四個評價指標(biāo)上的性能比較.

圖5 基于不同模型的阿里云任務(wù)負(fù)載預(yù)測精度比較Fig.5 Prediction accuracy comparison of Alibaba Cloud task load based on different models
在圖5(a)中,代表n-LSTM模型的曲線始終處于另外3條曲線的上方,而代表BP模型的曲線幾乎一直處于最下方.在MSE取值為[0,0.008]或[0.010,0.015]時,LSTM模型的曲線整體上高于CNN-LSTM模型的曲線.在MSE取值為[0.008,0.010]時,LSTM的曲線整體上低于CNN-LSTM曲線.由此可知,n-LSTM模型在MSE上表現(xiàn)出的性能最優(yōu),BP模型的性能則會略差于另外3種模型,LSTM模型和CNN-LSTM模型的性能則處于居中位置,兩者不相上下,時好時壞.例如,當(dāng)MSE為0.012時,n-LSTM曲線的CDF為0.7,而LSTM曲線、CNN-LSTM曲線以及BP曲線的CDF分別為0.6、0.58和0.57,這表明,阿里數(shù)據(jù)集中的100個在線任務(wù)在分別經(jīng)過4種模型的預(yù)測后,n-LSTM模型得到的MSE集合中有70%小于或等于0.012,而LSTM模型、CNN-LSTM模型和BP模型則分別有60%、58%以及57%的預(yù)測值的MSE小于或等于0.012.
與圖5(a)相類似,圖5(b)、圖5(c)和圖5(d)中,n-LSTM曲線始終位于最上側(cè)而BP曲線位于最下側(cè).除了在圖5(c)中LSTM曲線幾乎一直位于CNN-LSTM曲線之上,另外三圖中它們都是處于居中位置且會隨著橫坐標(biāo)的變化而上下波動.綜上所述,當(dāng)對阿里云平臺的在線任務(wù)進(jìn)行CPU負(fù)載預(yù)測時,以4個不同的評價指標(biāo)作為判別標(biāo)準(zhǔn),n-LSTM模型都具有最好的預(yù)測效果.n-LSTM模型預(yù)測性能的提升主要是來源于其針對不同負(fù)載特征分而治之的思想和特殊的橫向體系結(jié)構(gòu),這也是其他模型所欠缺的.
4個模型在阿里云平臺的100個任務(wù)的預(yù)測實驗中所得到的4個評價指標(biāo)的平均值如表4所示.從表4可知,當(dāng)將參與訓(xùn)練的任務(wù)與未參與訓(xùn)練的任務(wù)的預(yù)測結(jié)果統(tǒng)一分析時,n-LSTM模型在4個評價指標(biāo)上的性能保持最優(yōu),擁有更高的預(yù)測精度.從MSE、RMSE和MAE這3個評價指標(biāo)上來看,模型的預(yù)測性能由好到壞排序依次為:n-LSTM模型、LSTM模型、CNN-LSTM模型、BP模型.從NRMSE這個評價指標(biāo)上來看,模型的預(yù)測性能由好到壞排序依次為:n-LSTM模型、CNN-LSTM模型、LSTM模型、BP模型.相比較次優(yōu)模型,n-LSTM模型的MSE大約減少了8.35%,RMSE大約減少了5.24%,NRMSE大約減少了7.76%,MAE大約減少了7.92%.相比較最差模型,n-LSTM模型的MSE大約減少了13.56%,RMSE大約減少了8.21%,NRMSE大約減少了11.81%,MAE大約減少了13.04%.

表4 基于不同模型的阿里云任務(wù)負(fù)載預(yù)測精度平均值Table 4 Average load prediction accuracy of Alibaba Cloud tasks based on different models
將阿里云任務(wù)分成參與訓(xùn)練的任務(wù)集合和未參與訓(xùn)練的任務(wù)集合,分別統(tǒng)計4個模型所得到的4個評價指標(biāo)的平均值與最大值,結(jié)果如表5所示.從表5可知,無論任務(wù)是否參與模型訓(xùn)練,n-LSTM模型都能擁有最優(yōu)預(yù)測性能,這正是源自于n-LSTM模型在特征學(xué)習(xí)上的優(yōu)勢.以4個評價指標(biāo)的平均值作為模型性能的評判標(biāo)準(zhǔn),n-LSTM相比較另外3個模型總能獲得最小的預(yù)測誤差,因此n-LSTM模型具有最好的整體預(yù)測性能.基于評價指標(biāo)的最大值比較模型性能,n-LSTM模型同樣能獲得最小的預(yù)測誤差,則在實際預(yù)測任務(wù)中n-LSTM模型相比較其他模型能在最大程度上盡量避免最壞預(yù)測結(jié)果的發(fā)生.

表5 基于不同模型的阿里云任務(wù)負(fù)載預(yù)測精度比較Table 5 Comparison of load prediction accuracy for Alibaba Cloud tasks based on different models
3.4.1 參數(shù)設(shè)置
基于不同步長,使用LSTM模型在Google數(shù)據(jù)集上進(jìn)行CPU負(fù)載預(yù)測時得到的4個評價指標(biāo)記錄在表6中.

表6 不同步長下的Google云任務(wù)預(yù)測精度比較Table 6 Prediction accuracy comparison of Google Cloud task with different step sizes
從表6可知,步長為5時LSTM模型在4個評價指標(biāo)上所展示出來的性能表現(xiàn)為最優(yōu).
因此,在預(yù)測Google云任務(wù)的CPU資源利用率時,將時間序列的步長L設(shè)置為5,即基于任務(wù)的前5步時間序列信息,預(yù)測下一步的CPU負(fù)載特征值.
在基于Google數(shù)據(jù)集的實驗中,經(jīng)過多次模型優(yōu)化測試,最終確定各個模型的重要參數(shù).與基于阿里云數(shù)據(jù)集的實驗不同的是,BP模型學(xué)習(xí)的周期數(shù)設(shè)置為100,CNN-LSTM模型學(xué)習(xí)的周期數(shù)設(shè)置為100,n-LSTM模型學(xué)習(xí)的周期數(shù)設(shè)置為150.同時將CNN-LSTM的第1個LSTM層的神經(jīng)元數(shù)量設(shè)置為6,第2個LSTM層的神經(jīng)元數(shù)量設(shè)置為13.對于Google云平臺任務(wù)數(shù)據(jù)集,為n-LSTM模型設(shè)置13個并行的LSTM層,這些LTSM層中包含的神經(jīng)元的數(shù)量依次為12、1、1、1、1、1、1、1、1、1、1、1、1.
3.4.2 不同方法的性能對比
在本節(jié)實驗中,將n-LSTM模型與BP模型、LSTM模型和CNN-LSTM模型進(jìn)行了比較.實驗流程是:從前面已經(jīng)進(jìn)行了數(shù)據(jù)預(yù)處理的100個任務(wù)中選取出50個云平臺任務(wù),并利用這50個任務(wù)各自80%的負(fù)載信息參與模型訓(xùn)練,20%參與模型預(yù)測.剩余的50個云平臺任務(wù)不參與模型訓(xùn)練,但同樣需要利用其各自20%的負(fù)載信息參與模型預(yù)測.經(jīng)過模型預(yù)測,針對每一個任務(wù),每個模型均會得到4個評價指標(biāo).針對這些評價指標(biāo)分別繪制CDF圖.圖6分別描述了4種模型在MSE、RMSE、NRMSE和MAE4個評價指標(biāo)上的性能比較.

圖6 基于不同模型的Google云任務(wù)負(fù)載預(yù)測精度比較Fig.6 Prediction accuracy comparison of Google Cloud task load based on different models
在圖6(a)、圖6(b)、圖6(c)以及圖6(d)中n-LSTM模型的曲線的位置明顯高于另外3種曲線,而另外3種曲線的相對位置則會隨著橫坐標(biāo)的變化而變化.由此可知,無論以哪個評價指標(biāo)來比較模型的優(yōu)劣,由于得益于對不同特征學(xué)習(xí)的合理把握,n-LSTM模型都始終具有最優(yōu)性能,而另外3種模型的性能則相對不太穩(wěn)定.
在圖6(d)中,當(dāng)橫坐標(biāo)取值為0.050時,n-LSTM曲線、LSTM曲線、CNN-LSTM曲線以及BP曲線在縱坐標(biāo)上分別對應(yīng)著0.37、0.30、0.28以及0.25,這表明Google數(shù)據(jù)集中的100個任務(wù)在分別經(jīng)過4種模型的預(yù)測后,n-LSTM模型所得到的MAE集合中有37%的值小于或等于0.050,而LSTM模型、CNN-LSTM模型和BP模型則分別有30%、28%以及25%的MAE值小于或等于0.050.
上述實驗中,4個評價指標(biāo)的平均值分別如表7所示.

表7 基于不同模型的Google云任務(wù)負(fù)載預(yù)測精度平均值Table 7 Average load prediction accuracy of Google Cloud tasks based on different models
從表7可知,當(dāng)將參與訓(xùn)練的任務(wù)與未參與訓(xùn)練的任務(wù)的預(yù)測結(jié)果統(tǒng)一分析時,n-LSTM模型在4個評價指標(biāo)上的性能始終保持最優(yōu),即在Google云平臺的任務(wù)CPU利用率預(yù)測上n-LSTM模型相比較其它3個模型整體上擁有更高的預(yù)測精度.從MSE和RMSE這2個評價指標(biāo)上來看,模型的預(yù)測性能由好到壞排序依次為:n-LSTM模型、LSTM模型、BP模型、CNN-LSTM模型.以NRMSE為評價指標(biāo),模型的預(yù)測性能由好到壞排序依次為:n-LSTM模型、CNN-LSTM模型、LSTM模型、BP模型.以MAE為評價指標(biāo),模型的預(yù)測性能由好到壞排序依次為:n-LSTM模型、LSTM模型、CNN-LSTM模型、BP模型.相比較次優(yōu)模型,n-LSTM模型的MSE大約減少了9.54%,RMSE大約減少了6.04%,NRMSE大約減少了8.28%,MAE大約減少了5.80%.相比較最差模型,n-LSTM模型的MSE大約減少了11.91%,RMSE大約減少了7.12%,NRMSE大約減少了10.41%,MAE大約減少了8.64%.
4個模型分別在Google云平臺參與訓(xùn)練和未參與訓(xùn)練的任務(wù)集合的預(yù)測實驗中所得到的4個評價指標(biāo)的平均值與最大值如表8所示.

表8 基于不同模型的Google云任務(wù)負(fù)載預(yù)測精度比較Table 8 Comparison of load prediction accuracy for Google Cloud tasks based on different models
從表8可知,無論預(yù)測實驗所用任務(wù)集是否參與模型訓(xùn)練,n-LSTM模型的預(yù)測結(jié)果在所有評價指標(biāo)上的平均值以及最大值都保持最小,與阿里云任務(wù)負(fù)載預(yù)測實驗相同,Google云任務(wù)負(fù)載預(yù)測實驗中n-LSTM模型同樣既能具備最優(yōu)整體預(yù)測性能,也能最大程度提高預(yù)測精度的底線值.
現(xiàn)如今隨著越來越多的企業(yè)實現(xiàn)了業(yè)務(wù)云端化,云計算已經(jīng)逐漸邁開了從單一的互聯(lián)網(wǎng)行業(yè)滲透到各個傳統(tǒng)產(chǎn)業(yè)領(lǐng)域的步伐,這將使得云計算的發(fā)展更為迅速,與此同時云平臺所承擔(dān)的業(yè)務(wù)量也在不停增長.然而,隨著各大云平臺的運(yùn)行成本穩(wěn)定上升,其資源利用率卻一直沒能達(dá)到令人滿意的程度.對云平臺任務(wù)資源利用率的準(zhǔn)確預(yù)測能在很大程度上改善整個云平臺資源的有效使用.
本文專注于多元時間序列建模和預(yù)測單變量,旨在進(jìn)一步提高云平臺任務(wù)資源利用率的精度,為此提出基于n-LSTM模型的負(fù)載預(yù)測方法DPFE-n-LSTM,該方法在時間維度上的性能優(yōu)勢的基礎(chǔ)上又增添了在特征維度上更為靈活準(zhǔn)確的學(xué)習(xí)方式,它能在云平臺任務(wù)的CPU負(fù)載方面表現(xiàn)出良好的性能.本文使用了Alibaba Trace和Google Trace兩個真實負(fù)載跟蹤數(shù)據(jù)集基于4個不同的評價指標(biāo)來對模型進(jìn)行評估.根據(jù)實驗結(jié)果可知,n-LSTM模型具備著優(yōu)異的自適應(yīng)能力,在兩個數(shù)據(jù)集上都是n-LSTM模型的性能最好.實驗結(jié)果證明了n-LSTM模型在多元特征時間序列預(yù)測任務(wù)上的優(yōu)異性能.但是,在某些現(xiàn)實情況下,可能會存在一些特征量較少的數(shù)據(jù)集.未來的工作將研究原始數(shù)據(jù)集特征數(shù)量的不足給模型預(yù)測精度帶來的影響.