史愛武,張義欣,韓 超,黃 河
(武漢紡織大學 計算機與人工智能學院,湖北 武漢 430200)
集群技術是指將多臺計算機通過集群軟件相互連接,組成一個單一系統(tǒng)模式進行管理,其目的是為了通過較低的成本獲取更高性能,增加系統(tǒng)的可擴展性與可靠性。隨著科技飛速發(fā)展,人工智能等計算機技術漸漸融入大眾生活,隨之而來的大規(guī)模訪問量、海量數(shù)據(jù)處理等問題給服務器集群的負載均衡能力帶來了新的挑戰(zhàn)。目前,大多數(shù)廠商與平臺均定期獲取集群中計算機硬件的各項使用情況并計算相應權值,然后根據(jù)整個集群的情況對任務進行調(diào)度并作出相應的負載均衡策略,但該策略在應對某些訪問量、數(shù)據(jù)量突然增長的時間點時會出現(xiàn)調(diào)度不及時的情況,導致集群部分計算機壓力過大,資源分配不均,甚至造成服務器宕機,此時將嚴重影響平臺用戶體驗,對平臺造成無法挽回的經(jīng)濟損失。對一個服務器集群而言,及時、靈活地進行負載均衡,對集群負載進行預測,根據(jù)預測數(shù)據(jù)作出相應的預調(diào)度策略使集群面對大訪問量時存在一定的緩沖階段,避免集群服務器壓力過高。因此,增加集群資源利用率,減少服務器響應時間,提升服務質(zhì)量具有實際價值,其中最重要的是需要建立一個準確的集群負載預測模型。
目前,已有許多學者對負載預測進行研究,主要預測模型包括傳統(tǒng)時間序列模型與機器學習算法。其中,對于傳統(tǒng)時間序列模型包含差分整合移動平均自回歸模型(Autoregressive Integrated Moving Average Model,ARIMA)[1-2]、指數(shù)平滑法(Exponential Smoothing,ES)[3],但該方法無法提取數(shù)據(jù)的非線性特征,而集群負載數(shù)據(jù)通常為非線性,因此難以保證預測精度;機器學習算法包含循環(huán)神經(jīng)網(wǎng)絡(Recurrent Neural Network,RNN)[4-5]、長短期記憶人工神經(jīng)網(wǎng)絡(Long Short-Term Memory,LSTM)[6-7]等,該算法相較于傳統(tǒng)算法預測精度更高。
近年來,研究發(fā)現(xiàn)RNN、LSTM 為使用最為廣泛的時序預測模型之一,但時間卷積網(wǎng)絡(Temporal Convolutional Network,TCN)[8-9]由于自身梯度的穩(wěn)定性和并行性等優(yōu)點,在某些場景上的預測效果要優(yōu)于RNN 與LSTM 模型。進一步研究發(fā)現(xiàn),由于部分時序數(shù)據(jù)的非線性與非平穩(wěn)性特點,組合模型相較于單一模型能表現(xiàn)出更優(yōu)異預測效果。因此,在時序序列預測的相關應用研究中,許多學者從降低時間序列的非平穩(wěn)性與復雜性角度出發(fā),提出基于經(jīng)驗模態(tài)分解(Empirical Mode Decomposition,EMD)[10]和人工智能模型相結合的新模型,例如EMD-SVM[11]、EMDLSTM[12]、EMD-RNN[13]等方法。這些組合模型相較于單一模型的預測更精準,但在經(jīng)典經(jīng)驗模態(tài)分解EMD 中仍存在模態(tài)混疊與信號分解不完全的問題,影響模型預測精度。
為此,本文提出基于CEEMDAN-SE-TCN 的集群負載預測模型。該模型首先利用CEEMDAN 模型分解非線性和非平穩(wěn)的時間序列,然后在TCN 模型基礎上加入通道注意力機制(Squeeze And Excitation Network,SENet)[14]模塊增強網(wǎng)絡的特征提取能力,最后與CEEMDAN 模型相融合達到最佳預測效果。
由于經(jīng)驗模態(tài)分解EMD 中存在模態(tài)混疊問題,提出改進算法集合經(jīng)驗模態(tài)分解(Ensemble Empirical Mode Decomposition,EEMD)[15]和完備集成經(jīng)驗模態(tài)分解(Complete Ensemble Empirical Mode Decomposition,CEEMD)[16]算法分別在原信號中加入N對白噪聲和N對正、負輔助白噪聲減少EMD 分解的模態(tài)混疊現(xiàn)象。雖然,這兩種模型在一定程度上解決了模態(tài)混疊問題,但分解信號后得到的本征模態(tài)分量(Intrinsic Mode Function,IMF)會殘留一定的白噪聲,繼而影響后續(xù)預測模型的訓練時間和準確率。
為了解決該問題,Torres 等[17]提出完全自適應噪聲集合經(jīng)驗模態(tài)分解(Complete EEMD with Adaptive Noise,CEEMDAN)模型。該模型基于EEMD,在分解的每個階段添加自適應高斯白噪聲,有效解決了模態(tài)混疊及白噪聲殘留問題。具體步驟如下:
步驟1:在原始信號x(t)中加入服從正態(tài)分布的白噪聲αεi(t),形成新序列yi(t)。
其中,i=1,2,3,…,n為加入白噪聲的次數(shù),α為噪聲標準差,εi(t)為第i次添加的白噪聲信號。
步驟2:使用EMD 模型對yi(t)進行進一步分解,得到第一個模態(tài)imf1(t),同時得到第一個余量信號r1(t)。
SENet 是視覺神經(jīng)網(wǎng)絡的一種,該模型對各通道間的關系與相關性更敏感,通過忽視相關性較小或非相關性特征通道,增強模型特征提取能力,提升TCN 網(wǎng)絡模型性能。由于模型計算量較小,使用方便,可直接插入TCN 模型中形成SE-TCN。SENet模型主要包括以下4個步驟:
步驟1:Transformation(變換)。將輸入特征通道進行傳統(tǒng)卷積變換,形成新的特征圖U?RH×W×>C。
步驟2:Sequeeze(擠壓)。通過全局池化方法將每個通道的二維特征(H×W)壓縮為一個實數(shù),具體計算方法如式(9)所示。
步驟3:Excitation(激勵)。通過特征參數(shù),使用兩個全連接層為每個特征通道生成一個權重值,如圖1所示。
Fig.1 Excitation圖1 激勵
步驟4:Scale(縮放)。將步驟3 得到的權重逐個乘以對應通道的權重系數(shù),得到最終特征圖。
時間卷積網(wǎng)絡是一種可用于處理時序序列預測問題的神經(jīng)網(wǎng)絡,與RNN 相似之處在于可接收任意長度的輸入序列作為輸入,將其映射為等長的輸出序列,但由于TCN 包含了因果卷積與空洞卷積,相較于RNN、TCN 具有更好的并行性,因此內(nèi)存占用率更低。
因果卷積是時間卷積網(wǎng)絡預測中最為關鍵的一環(huán),原因在于因果卷積是單向的。相較于普通卷積,在因果卷積中無法知曉未來數(shù)據(jù),即t時刻的輸出值yt只與t、t時刻前的輸入值{xt,xt-1…x0}相關,從而增加了數(shù)據(jù)的保密性。
如果需要知曉更長遠的數(shù)據(jù)信息,就需要增加網(wǎng)絡層數(shù),但隨著網(wǎng)絡模型層數(shù)增加,模型可能會出現(xiàn)訓練復雜、梯度消失等問題。為了解決該問題,在時間卷積網(wǎng)絡中引入空洞卷積,使其與因果卷積結合形成空洞因果卷積,跳過部分輸入值讓卷積核能應用于大于自身大小的部分,使卷積感受野呈指數(shù)級增長,具體結構如圖2所示。
Fig.2 Dilatative causal convolution圖2 膨脹因果卷積
圖2 中d代表膨脹因子,膨脹因果卷積可通過間隔采樣方法在不增加網(wǎng)絡層數(shù)的同時擴大網(wǎng)絡野。同時,在時間卷積網(wǎng)絡中還加入了WeightNorm 與Dropout 正則化,以降低模型發(fā)生過擬合現(xiàn)象的風險。此外,加入殘差連接模塊使模型網(wǎng)絡以跨層方式傳遞信息,防止模型發(fā)生梯度爆炸與梯度消失問題。
服務器集群的負載數(shù)據(jù)呈現(xiàn)非線性與高噪聲特點,例如在工作日數(shù)據(jù)變換較為平緩,但在節(jié)假日與工作日間存在負載變換迅速的邊緣,此時數(shù)據(jù)變化波動較大,通過單一模型預測困難較大。為此,本文將SENet 嵌入TCN 模型形成SE-TCN 模型(見圖3),利用SENet 通道的增強特性提升TCN 模型特征提取能力。該模型相較于單一TCN 與LSTM 模型,能解決在數(shù)據(jù)快速變化時特征值提取能力不足的問題。
Fig.3 Structure of SE-TCN model圖3 SE-TCN模型結構
同時,利用CEEMEDAN 解決數(shù)據(jù)非線性與高噪聲的特點,將帶有噪聲的非線性原始序列分解為相對平穩(wěn)、簡單的IMF 分量與一個殘余分量Res,各IMF 分量相互獨立。最后,將相對穩(wěn)定的信號輸入預測模型中進行預測,以提升預測精度。
目前。不少學者將信號分解模型與網(wǎng)絡預測模型相結合,大多是將分解后的IMF 分量與Res 分量分別輸入人工智能預測模型中得到每個IMF 分量和Res 分量的預測結果,然后將各預測結果進行重組得到最終預測結果。該方法預測結果準確率較高,但訓練和預測的時間復雜度較高,無法滿足服務器數(shù)據(jù)預測的時效性要求。為此,本文提出CEEMDAN-SE-TCN 方法(見圖4)對數(shù)據(jù)進行處理,具體步驟如下:
步驟1:歸一化處理原始服務器負載數(shù)據(jù),將預處理好的數(shù)據(jù)進行CEEMDAN 分解。
步驟2:從低頻信號開始,通過相關系數(shù)法將分解好的IMF 分量與原始序列進行比較,求解相關系數(shù),計算公式如式(10)所示。
其中,μ為序列平均值,當μ<0.1 時證明該分量可能為過度分解的分量,與原序列關系性不大。
步驟3:將剩余IMF 分量與Res 分量構建成一個二維矩陣,使用滑動窗口法對數(shù)據(jù)進行重構,將其轉(zhuǎn)化為一個有監(jiān)督學習的過程。
步驟4:將重構完成的數(shù)據(jù)輸入SE-TCN 模型中進行訓練。
Fig.4 CEEMDAN-SE-TCN prediction process圖4 CEEMDAN-SE-TCN 預測流程
本文實驗環(huán)境為:Windows10 操作系統(tǒng),顯卡為RTX 3060,在PyCharm 平臺下采用Python 3.7 進行編程操作。實驗數(shù)據(jù)集為谷歌官方的公開的Google Cluster Data,記錄了12 500 臺機器集群從2011 年5 月開始29 天內(nèi)每臺機器的CPU 使用率、內(nèi)存占用率、任務調(diào)度情況等重要信息。由于CPU 使用情況基本能展現(xiàn)機器的整體使用情況,因此本文采用CPU 利用率作為集群負載預測指標進行預測,將Google Cluster Data 數(shù)據(jù)集前70%數(shù)據(jù)作為訓練集,剩余30%數(shù)據(jù)作為測試集,使用插值法對數(shù)據(jù)進行補充,再對數(shù)據(jù)進行Min-Max Normalization 歸一化處理。
本文實驗的時間卷積網(wǎng)絡初始參數(shù)由人工經(jīng)驗選取,通過多次實驗反復調(diào)整參數(shù)得到最優(yōu)結果,具體參數(shù)如表1所示。
Table 1 Parameters of TCN model表1 TCN模型參數(shù)表
為驗證本文所提模型的有效性,將LSTM、TCN、EMDTCN 與CEEMDAN-SE-TCN 模型進行比較分析。同時,使用平均絕對誤差(Mean Absolute Error,MAE)、平均絕對百分比誤差(Mean Absolute Percentage Error,MAPE)、均方根誤差(Root Mean Square Error,RMSE)共3 個指標作為預測結果的評判標準,預測結果如圖5所示。
Fig.5 Comparison of prediction models圖5 預測模型對比圖
由圖5 可見,LSTM 與TCN 的預測結果與實際存在一定偏差,且具有一定的延遲性;EMD-TCN 模型、CEEMDAN-SE-TCN 模型的預測結果與原始數(shù)據(jù)曲線較為貼合,選取數(shù)據(jù)抖動較為頻繁的部分放大比較可清晰地發(fā)現(xiàn)EMD-TCN、CEEMDAN-SE-TCN 模型預測結果相較于LSTM、TCN 更理想,但在數(shù)據(jù)快速變換時CEEMDAN-SETCN 模型的預測值更接近實際值。模型具體評價指標數(shù)據(jù)如表2所示。
Table 2 Comparison of model prediction results表2 模型預測比較結果
由表2 可見,LSTM、TCN 模型對服務器負載這種非線性波動性較大的數(shù)據(jù)而言,預測效果相較于組合模型并不理想,可明顯看出EMD-TCN、CEEMDAN-SE-TCN 模型的預測結果更好,擬合度更高,且CEEMDAN-SE-TCN 模型預測精準度最高。雖然,本文在原有的分解—預測模型中加入SENet 模塊,但SENet 模型自身計算量小,相較原模型增加的參數(shù)不足0.01%,因此時間復雜度基本與原模型一致。
為進一步證明模型的有效性,將CEEMDAN-SE-TCN模型應用于Kubernetes 所搭建的Docker 集群中,該集群由一個Master 節(jié)點與一個Node 節(jié)點構成,集成Promethues 工具監(jiān)控節(jié)點資源指標情況。使用JMeter 壓力測試工具模擬用戶訪問Web 應用,實驗結果表明使用本文模型的集群在面對用戶模擬請求時,CPU 平均利用率相較于其他模型高出5.545%~12.312%,在面對模擬用戶訪問請求時節(jié)點平均響應時間提升60.3~115.6ms。
綜上所述,CEEMDAN-SE-TCN 模型的各項指標數(shù)據(jù)均在一定程度上優(yōu)于其他模型,證明了該模型應用于服務器負載預測的有效性。
服務器集群的負載控制是保證集群能正常運行的關鍵,預測集群負載數(shù)據(jù)應對突發(fā)狀況,根據(jù)預測結果提前對集群機器進行相關操作,可減少服務器集群負荷,節(jié)省服務器資源。本文改進原有預測模型,提出更適合服務器負載預測實際情況的CEEMDAN-SE-TCN。實驗表明,CEEMDAN-SE-TCN 在各項性能上均優(yōu)于其他模型。
雖然,CPU 能基本反映負荷情況,但在實際應用過程中還需考慮內(nèi)存、帶寬等影響因素,綜合評價服務器負載情況的預測效果,從而得到更客觀、全面的預測結果。