基於APMSSGA-LSTM的容器雲資源預測web
謝曉蘭1,2, 張徵徵1, 鄭強清1, 陳超泉1算法
1 桂林理工大學信息科學與工程學院,廣西 桂林 541004數組
2 廣西嵌入式技術與智能系統重點實驗室,廣西 桂林 541004安全
摘要:容器雲的發展與應用對資源的高併發、高可用、高彈性、高靈活性等的需求愈來愈強烈。在對容器雲資源預測問題研究現狀進行調查後,提出一種採用自適應機率的多選擇策略遺傳算法(APMSSGA)優化長短時間記憶網絡(LSTM)的容器雲資源預測模型。實驗結果代表,與簡單遺傳算法(SGA)相比,APMSSGA在LSTM參數最優解組合搜索方面更加高效,APMSSGA-LSTM模型的預測精度較高。網絡
關鍵詞: 容器雲 ; 資源預測 ; 長短時間記憶網絡 ; 遺傳算法併發
論文引用格式:ide
謝曉蘭, 張徵徵, 鄭強清, 陳超泉. 基於APMSSGA-LSTM的容器雲資源預測. 大數據[J], 2019, 5(6):62-72函數
XIE X L, ZHANG Z Z, ZHENG Q Q, CHEN C Q.Container cloud resource prediction based on APMSSGA-LSTM. Big Data Research[J], 2019, 5(6):62-72高併發
1 引言性能
近年來,容器技術憑藉着其靈活、快速、高效的特色,使雲計算高彈性、高可用性等特徵更加顯著,構建了新一代的雲計算生態體系。大量的國內外學者、互聯網公司和傳統企業積極研發和落地容器技術,容器技術的生態圈逐漸造成,基於容器技術的容器雲也迅速發展。如何在保證容器雲環境安全和穩定運行的前提下,對資源進行合理和高效的管理,成爲當前的研究熱點問題之一。
然而,容器雲發展時間較短,成熟度低,而且面臨着複雜的資源管理問題。例如,企業一般在購置設備時不得不考慮經濟成本和公司規模,所以不像雲服務商那樣擁有大量的備用設備。對於企業,資源的預留、分配與回收等成爲一個很是重要的問題,若是能較準確地預知將來一段時間內自身應用對資源的需求量,就能夠提早申請和購買相應設備,避免因物理資源不足致使業務中止運行,給企業形成負面的影響;若是將來一段時間的資源需求量遠低於現有設備數,就能夠進行數據和業務遷移,中止某些設備的運行,下降能耗,提升企業的經濟效益和資源利用率。
容器雲資源預測對推動容器雲理論和技術更進一步發展、提升企業經濟效益、避免資源浪費等具備重要意義,值得研究。而如何對平臺歷史資源負荷數據進行時效性、準確性的預測,是研究容器雲資源預測的重要問題之一。
筆者提出了適應機率的多選擇策略遺傳算法優化長短時間記憶(adaptive probability multi-selection strategy genetic algorithm-long short term memory,APMSSGA-LSTM)網絡的容器雲資源預測模型,經過對容器雲資源的歷史數據進行分析與處理,提取數據在時間維度上的先後相關性的潛在特徵,再使用長短時間記憶(long short term memory, LSTM)網絡對其進行建模,預測將來一段時間的資源需求量。同時,利用遺傳算法的全局尋優能力,在對遺傳算法進行改進的基礎上,經過智能調參來實現較高的預測精度。
2 相關工做
雲計算資源預測是雲計算平臺實現資源高效管理和系統安全、穩定運行的重要前提和保障措施之一,長期以來一直受到研究者的關注。不少學者對基於神經網絡、隱馬爾可夫、貝葉斯、支持向量機等算法的雲資源預測模型作了研究,這些模型能夠挖掘雲計算資源負荷隨機、動態的變化趨勢,獲得相對理想的雲計算資源預測結果。
Khan A等人首先對雲計算平臺中擁有相同特徵的資源負荷數據進行歸類,再使用隱馬爾可夫模型對劃分後的類進行特徵分析,最後在特徵分析的基礎上進行資源負荷預測。該方法加入了分類提取特徵的思想,相對於傳統算法,預測結果更加準確,可是對數據進行劃分會影響時間序列數據先後相關性。Di S等人使用貝葉斯網絡模型對雲計算資源長期時間間隔的平均資源負荷進行預測。該方法首先對負載節點的特徵進行收集,再經過肯定最有效的特徵組合進行預測。該方法的缺陷是特徵收集會對實驗結果產生重大影響。趙莉在使用混沌分析算法對雲計算資源負載的時間序列進行處理的基礎上,採用支持向量機(support vector machine ,SVM)創建雲計算資源負載的預測模型,並設計了組合核函數,以提升支持向量機的學習能力,更加準確地描述了雲計算資源負載的動態變化趨勢。
隨着生物啓發式算法的發展,許多學者將蜂羣算法、魚羣算法、粒子羣算法、遺傳算法(genetic alogrithm,GA)等引入雲計算資源預測模型,利用它們自然的自動尋優能力解決模型在構建過程當中面臨的最優參數選擇這一難題。這些生物啓發式算法具備結構簡單、查找能力強等特色,可以迅速找到預測模型的最優參數組合方案,節省訓練成本和時間。然而,在實際應用中,生物啓發式算法存在一些缺點,主要包括收斂速度慢、容易陷入局部最優等,從而不能得到最優的結果。爲此,許多學者對生物啓發式算法進行了改進,並將改進後的算法用於雲計算資源預測模型。
Barati M等人提出了改進的支持向量迴歸(tuned support vector regression,TSVR)模型,經過混合遺傳算法和粒子羣優化方法選擇3個支持向量迴歸(support vector regression,SVR)參數。同時在模型中引入混沌序列,在避免過早收斂的同時提升模型的預測精度。徐達宇等人提出了一種使用改進的灰狼搜索算法優化支持向量機的短時間雲計算資源負載預測模型(EGWO-SVM),更加準確地刻畫雲計算短時間資源負載的複雜變化趨勢,從而有效地提高雲計算資源負載短時間預測的精度。史振華採用改進的人工蜂羣算法與SVM結合的方式構建預測模型,不只經過反饋機制和森林法則下降了算法陷入局部最優的可能性,還經過改進的蜂羣算法獲得了預測模型的最佳參數,從而提升了模型的預測精度。Zhong W等人結合小波變換和支持向量機的優勢,提出了一種基於加權小波支持向量機(WWSVM)的雲負荷預測模型,提升了預測模型的準確性。
從以上研究成果能夠得出,目前雲計算的資源負荷預測的主要研究方向分爲短時間預測和長期預測2種,而依據歷史資源負荷時間序列的自身特性來肯定預測時間是長期仍是短時間的相關研究還較少。
3 APMSSGA-LSTM模型
3.1 概述
長短時間記憶網絡經過門機制使網絡具備記憶功能,避免了遞歸神經網絡(recurrent neural network,RNN)的梯度消失和梯度爆炸現象的發生,在時間序列預測領域取得了很好的效果。可是,爲了讓LSTM神經網絡記憶序列以前數據的特徵,須要將網絡前n次的計算做爲當前隱藏層神經網絡的輸入值,所以模型的訓練時間將隨着數據集規模的增大呈指數倍增加。並且,神經網絡的性能受參數的影響很大。如何選擇最佳參數組合以得到更好的預測結果,是LSTM預測模型必需要解決的主要問題之一。使用智能算法自動尋優是神經網絡調參的經常使用方法之一。
根據容器雲資源數據序列的特色,筆者提出APMSSGA-LSTM容器雲資源預測模型,預測當前時刻T後的W時段的資源使用量。模型結構如圖1所示。其中,在數據抓取階段,使用HTTP請求的方式實時抓取容器雲平臺上部署的全部集羣的信息數據,主要包括CPU、I/O、內存、存儲、網絡5種資源類型數據,並在數據提取階段將數據導出至CSV文件中。M是資源類型的個數,N是集羣個數。T+W時段資源請求表示用戶在T時刻以前提出在T~W時間段要使用的資源請求量,用來對預測序列進行最後的動態調整。
圖1 基於APMSSGA-LSTM的容器雲資源預測模型結構
3.2 APMSSGA
遺傳算法具備更好的全局優化能力和隱藏並行性等特色,所以在具備高維度和高計算問題的應用領域中具備很高的應用價值。然而,大量研究代表,GA仍存在諸如過早進入早熟收斂和難以維持種羣多樣性等問題。爲了達到平衡和協調算法快速收斂、保證種羣多樣性的目的,筆者改進了GA,提出一種採用自適應機率的多選擇策略遺傳算法(adaptive probability multiselection strategy genetic algorithm, APMSSGA)。
APMSSGA的基本思想是不修改原有的編碼方式,使用經常使用的二進制編碼。將解碼後的3個參數傳入LSTM模型中進行模型訓練、評估,而後將獲得的均方根偏差(root mean squared error, RMSE)做爲個體適應值,具體的改進方案以下所述。
(1)編碼和種羣初始化
須要根據優化的目標選擇恰當的編碼方式和種羣個體適應值;爲了防止成熟前收斂併兼顧收斂速度,須要根據實驗適當調整種羣規模。
(2)改進選擇策略
集成適應值比例選擇、Boltzmann選擇、排序選擇、聯賽選擇和精英選擇5種選擇策略的優點來進行個體選擇,以平衡和協調種羣多樣性和收斂速度2個需求。k-means算法用於對種羣中全部個體的適應值進行分類,爲分類後的每一個類別在5個選擇算子中隨機選擇一種進行個體篩選。在第一次迭代(即t=0)時,5種選擇算子的初始機率相等,均爲20%。交叉和變異後每一個類的整體適應值被做爲5個選擇算子機率更新的依據,若是子代優於父代,則相應的選擇算子機率增長,不然減小;若是子代和父代的選擇機率都上升或都降低,則以均值相對偏差比例增減選擇機率。
對於給定的規模爲n的羣體 圖片,個體aj∈P的適應值爲f(aj),適應值比例選擇的選擇機率爲:
其中,S爲選擇策略。式(1)用於計算後代種羣中個體的機率。經過選擇算子操做,產生種羣中用於交叉算子操做的個體。父代羣體中個體存活的預期值計算式爲:
Boltzmann選擇的選擇機率爲:
其中,T是模擬退火溫度,T>0。T隨着種羣迭代次數的增長逐漸減少,種羣個體面臨的選擇壓力逐漸增大。
對於給定的規模爲n的羣體圖片 ,知足個體適應值降序排列f(a1)≥f(a2)≥…≥f(an),則排序選擇的個體選擇機率爲:
其中,η+和η-分別表示當前種羣中最佳個體a1和最差個體an在通過選擇算子操做後的指望值。
在知足排序選擇條件下,聯賽選擇的個體aj的機率爲:
其中,q爲聯賽規模。
對於給定t代的規模爲n的羣體P={a1(t),a2(t),…,an(t)},精英選擇計算式爲:
(3)改進交叉策略
遵循「近親不能結婚」的規則,根據設定的交叉機率,每一個類的最優個體隨機交叉,類間剩餘個體隨機交叉。
(4)改進變異策略
增長全部類中平均適應值最低的類的變異機率,其餘類根據設定的變異機率執行變異操做。APMSSGA流程如圖2所示。
圖2 APMSSGA流程
3.3 基於APMSSGA調整LSTM參數
使用APMSSGA調整LSTM時間步長(timesteps)、隱藏層中的前饋神經網絡單元的數量(units)和預測多少單位時間(predictsteps)3個參數。APMSSGA自動搜索由timesteps、units、predictsteps組成的三維解空間,並得到知足當前訓練數據集潛在特徵的最佳參數組合,避免了人工手動嘗試調參,節省了時間和成本。基於APMSSGA的LSTM參數調整流程如圖3所示。
圖3 基於APMSSGA的LSTM參數調整流程
在初始值編碼中,因爲優化的目標是LSTM網絡的timesteps、units、predictsteps 這3個正整數參數,所以根據相關知識和經驗設置個體基因位的長度,並使用二進制碼錶示。而後設置3個位串區間,分別表示要優化的3個變量。爲了防止成熟前收斂,同時考慮收斂速度,須要根據實驗設置種羣相關參數,適當調整種羣的規模,而後設置當前LSTM的網絡結構,並初始化權重和偏置項。在初始化LSTM時,還須要根據批尺寸(batch_size)大小將不足batch_size的數據丟棄。
圖3中RMSE計算式爲:
其中,xi爲真實值,圖片爲預測值。
4 實驗與分析
4.1 實驗數據
爲了驗證所提出的預測模型的有效性,本文使用從Kaggle平臺下載的公共數據集做爲訓練和測試數據。該數據集共包含18 050條數據,是亞馬遜雲服務(Amazon web services,AWS)針對某一個特定集羣以時間間隔5 min採集的2個月左右的CPU平均使用率數據。
首先,在對數據異常值進行處理後,使用圖形觀察法和單位根檢驗法(ADF)檢驗該CPU使用量序列是否具備平穩性特徵。經過觀察統計量,獲得檢驗值爲-5.926 240,小於1%置信水平上的-3.430 713,統計量對應的機率值p值小於臨界值α(α=0.05),所以能夠判定該序列具備平穩性特徵,不須要進行進一步的差分操做。而後採用Box-Pierce推導出Q統計量、Box-Ljung推導出LB統計量(用於檢驗時間序列是否爲白噪聲序列)2種方法對該CPU使用量時間序列數據進行部分數據和所有數據的純隨機性檢驗,結果如圖4所示。
圖4 部分數據和所有數據純隨機性檢驗結果
4.2 實驗參數設置
通過初始測試獲得,當timesteps在[1,64]、predictsteps在[1,64]以及units在[256,512]內時,預測模型表現較好。所以,將染色體長度設置爲20,前6位表示timesteps,中間6位表示predictsteps,最後8位在解碼後加上256做爲units值,同時設置batch_size=16。簡單遺傳算法(simple genetic algorithm,SGA)和APMSSGA具體參數設置見表1。
4.3 模型驗證
分別使用SGA和APMSSGA對LSTM的3個參數在上述設定的區間內進行搜索。因爲不一樣timesteps、predictsteps和units構成的搜索空間大小不一致,因此即便初始權重和偏項值相同,3個參數的參數值也不相同。這使得即便使用相同的timesteps、predictsteps和units參數組合,得出的偏差值也不必定相同。考慮到時間關係,在使用APMSSGA調整LSTM參數時,LSTM的層數的初始值爲1,全部訓練樣本完成正向傳遞和一個反向傳遞的時期epochs=1。實驗結果如圖5所示。
從圖5能夠看出,SGA在通過20次迭代以後,得出的RMSE值具備較大的波動性。因爲LSTM具備必定的波動性,因此SGA在搜索最優值時受到的干擾性較大,致使難以收斂,難以得出最優值。在使用APMSSGA後,因爲結合了5種不一樣的選擇策略,而且根據父代與子代適應值對比實現了選擇策略自適應,在必定程度上保證了種羣的多樣性和收斂性。從實驗結果能夠得出:與SGA相比,APMSSGA在LSTM參數優化方面具備更大的優點。
圖5 SGA-LSTM和APMSSGA-LSTM的RMSE值對比
根據APMSSGA的搜索結果,最終設置timesteps=2一、predictsteps=12和units=384。同時,設置LSTM的batch_size=1六、層數爲2,epochs=50,獲得訓練時的均方根偏差TrainRMSE=8.538 173, TestRMSE=10.888 364。APMSSGA優化LSTM神經網絡參數模型結構及 RMSE值如圖6所示。
APMSSGA-LSTM模型訓練中loss值變化趨勢如圖7所示。
爲了更清楚地顯示預測效果,使用APMSSGA-LSTM訓練好的模型預測將來16.7個小時內的CPU使用量序列,並將預測值與真實值進行對比。APMSSGALSTM模型的預測結果如圖8所示。
圖6 APMSSGA優化LSTM NN參數後模型結構及RMSE值
圖7 APMSSGA-LSTM模型loss值變化趨勢
圖8 APMSSGA-LSTM模型的預測結果
從圖8能夠得出,真實數據的峯值波動相對頻繁,致使預測模型對序列數據峯值的擬合效果不佳,但序列的趨勢預測比較準確,在去除峯值以後,其餘數據段的重疊率比較高。在將來的16.7個小時內,數據預測相對準確。這代表APMSSGA-LSTM模型在必定程度上提升了預測精度。
5 結束語
本文經過分析容器雲資源預測問題的特色,提出了APMSSGA-LSTM模型,並經過實驗驗證了模型的有效性。結論以下。● 利用LSTM 網絡學習容器雲資源數據的時間依賴關係,可獲得更高的預測精度。● 因爲真實數據的峯值波動比較頻繁,致使預測模型在序列數據峯值上擬合的效果不明顯,可是序列的趨勢預測比較準確,而且,除去峯值後,其餘數據段預測效果較好。● 與SGA相比,APMSSGA在LSTM參數優化方面表現更好。● 與RNN、LSTM、SGA-LSTM等模型相比,APMSSGA-LSTM模型表現更好,有利於推動容器雲理論和技術進一步發展,提高雲計算服務能力。