原文連結
Abstract
準確的工作負載預測對於雲使用者和提供商來說非常有價值,因為它可以有效指導許多實踐,例如效能保證、降低成本和能耗最佳化。然而,由於工作負載的複雜性和動態性,雲工作負載預測非常具有挑戰性,並且已經提出了各種解決方案來增強預測行為,與現有調查不同,我們首次從一個新的角度,即面向應用而非預測方法本身,對工作負載預測的發展格局進行全面梳理和分析。具體來說,我們首先介紹工作負載預測的基本特徵,然後根據雲應用程式的兩個顯著特徵:可變性和異構性對現有工作進行分析和分類
1 Introduction
由於雲環境的動態性、使用者請求和服務的多樣性以及雲資源的彈性配置,資源管理面臨著巨大的挑戰:排隊時間長,效能不穩定,資源競爭,資源空閒,能耗高
為解決上述問題,下圖展示了用於實施 IT 運營人工智慧 (AIOps) 的主動框架
其中AIOps框架(位於Cloud platform層)
Monitoring(監控):
由監控中心(Monitor center)負責收集系統執行狀態和效能資料。
Analysis(分析):
Workload predictor(工作負載預測器):預測未來的負載情況。
SLA analyzer(SLA分析器):分析服務是否滿足服務水平協議(SLA)。
Planning(規劃):
Decision maker(決策者):基於預測和分析結果,制定資源配置和最佳化計劃。
Execution(執行):
Executor(執行者):根據決策者的計劃執行具體的資源調整。
2 Basic Characteristic
2.1 Predicted Targets 預測目標
主要考慮以下兩種
請求工作負載:外部訪問請求(http請求、api呼叫等)和 內部系統呼叫(應用系統內不同元件或服務相互呼叫而產生的請求)
資源工作負載:常規資源,包括CPU、記憶體、磁碟和網路頻寬
2.2 Modeling Technologies 建模技術
統計方法:移動平均(MA)、自迴歸(AR)、指數平滑(ES)、自迴歸積分移動平均(ARIMA)、季節性自迴歸積分移動平均(SARIMA)方法等
ML:線性迴歸(LR)、邏輯迴歸(LoR)、支援向量機(SVM)、K近鄰(KNN)、樸素貝葉斯(NB)、決策樹( DT)、隨機森林(RF)等
DL:人工神經網路(ANN)、極限學習機(ELM)、迴圈神經網路(RNN)、長短期記憶網路(LSTM)、門控迴圈單元網路(GRU)、卷積神經網路(CNN)和時間卷積神經網路(TCN)
RL:Q-Learning、深度Q網路(DQN)等
2.3 Evaluation Metrics 評估指標
以下是直接指標
1.平均絕對誤差 (MAE):\(\begin{equation*} \text{MAE} =\frac{\sum_{t=1}^{m}\vert y_{t}-\hat{y}_{t}\vert }{m} \tag{1} \end{equation*}\)
2.均方誤差 (MSE):\(\begin{equation*} \text{MSE} =\frac{\sum_{t=1}^{m}\vert y_{t}-\hat{y}_{t}\vert ^{2}}{m} \tag{2} \end{equation*}\)
3.均方根誤差 (RMSE):\(\begin{equation*} \text{RMSE}=\sqrt{\text{MSE}}=\sqrt{\frac{\sum_{t=1}^m\left\vert y_t-\hat{y}_t\right\vert^2}{m}} \tag{3} \end{equation*}\)
4.平均絕對百分比誤差 (MAPE):\(\begin{equation*} \text { MAPE }=\frac{1}{m} \sum_{t=1}^m\left\vert\frac{y_t-\hat{y}_t}{y_t}\right\vert \tag{4} \end{equation*}\)它是一種相對誤差測量,使用絕對值來防止正誤差和負誤差相互抵消。
5.決定係數 (R2):\(\begin{equation*} R^{2}= \frac{\Sigma_{t=1}^{m}\vert \hat{y}_{t}-\overline{y}_{t}\vert ^{2}}{\Sigma_{t=1}^{m}\vert y_{t}-\overline{y}_{t}\vert ^{2}} \tag{5} \end{equation*}\)殘差平方和與總平方和的比值
基於分類的工作負載預測模型:讓我們首先定義以下四個基本分類指標:
1.真陽性 (TP):真實值為正且預測也為正的樣本數量。
2.誤報 (FP):真實值為負且預測為正的樣本數量。
3.真陰性 (TN):真實值為負並且預測也為負的樣本數量。
4.假陰性 (FN):真實值為正且預測為負的樣本數量。
可以得到以下評價指標:
1.準確性:\(\begin{equation*} \text { Accuracy }=\frac{\text{TP}+\text{TN}}{\text{TP}+\text{TN}+\text{FP}+\text{FN}} \tag{6} \end{equation*}\),它是正確預測的樣本數與所有樣本數的比值
2.精度:\(\begin{equation*} \text { Precision }=\frac{\text{TP}}{\text{TP}+\text{FP}} \tag{7} \end{equation*}\),是正確預測為陽性的樣本數與所有預測為陽性的樣本數的比率
3.召回:\(\begin{equation*} \text { Recall }=\frac{\text{TP}}{\text{TP}+\text{FN}} \tag{8} \end{equation*}\),它是正確預測為陽性的樣本數與所有真陽性樣本數的比率
4.F1 分數:\(\begin{equation*} \text { F1 Score }=\frac{2 \times \text { Precision } \times \text { Recall }}{\text { Precision }+ \text { Recall }} \tag{9} \end{equation*}\),它是精確率和召回率的調和平均值。 F1 分數越高,表明模型具有更好的平衡精度和召回率。
以下還有一些間接指標:執行時間,吞吐量,成功率,SLA 違反率,資源利用,執行緒數,成本(資源,違規,管理),利潤,能源消耗
2.4 資料集
谷歌叢集資料:它跟蹤來自 Google 叢集管理系統(也稱為 Borg)的資料。
阿里巴巴叢集資料:它跟蹤來自阿里巴巴生產叢集的資料幷包含有關作業/應用程式的詳細資訊。
微軟Azure跟蹤:它跟蹤 Microsoft Azure 系統的資料,包括虛擬機器 (VM) 跟蹤和 Azure Function 跟蹤。
WS-Dream:它維護三個資料集:(1) QoS 資料集, (2) 日誌資料集,以及 (3) 評論資料集。
Wikipedia Pagccounts-Raw:它是對維基百科伺服器發出的 Web 請求、中斷以及可能影響跟蹤的伺服器問題的跟蹤。
Docker Registry Trace Player:它用於重播登錄檔的匿名生產級跟蹤。這些痕跡來自 IBM docker 登錄檔。
Grid Workloads Archive:它是多個網格的使用痕跡的儲存庫。
Failure Trace Archive:它是並行和分散式系統可用性跟蹤的儲存庫。
Planetlab Workload Traces:它是隨機 10 天期間從 PlanetLab VM 收集的一組 CPU 使用率跟蹤資料。
Parallel Workloads Archive:它是高效能運算 (HPC) 機器的工作負載跟蹤和模型的集合。
Lublin-Feitelsont:它是超級計算機中並行任務的模型。
Pegasus Synthetic Workflows:它是 20 個綜合工作流應用程式的分析資料,每個應用程式都有不同的大小選項。
Fisher:它是來自真實 Kubernetes 系統的資源和效能指標的集合,在 30 天內記錄了 10 個容器。
3 Application-Oriented Workload Prediction 面向應用的工作負載預測
3.1 工作負載可變性
3.1.1 高波動
與 HPC 系統和網格計算不同,雲應用程式的互動性更強,工作負載的變化也更大。它們的平均噪聲幾乎是網格計算的 20 倍
1.線性分析
研究人員基於對歷史資料的統計分析以擬合統計模型,提出了 MA、AR、ES、ARIMA 和 SARIMA 的解決方案。
2.非線性分析
測試了KNN、ANN、RF、SVM等機器學習演算法,證實RF具有最高的預測精度,提出了一種基於改進的 LSTM 的工作負載預測方法,透過拼接 BiLSTM 和 GridLSTM 生成新的 RNN 架構,利用深度 Q 學習進行聯合雲工作負載預測,這是一種提取潛在模式並最佳化 VM 資源分配的模型等
3.1.2 模式多樣
新的工作負載模式總是隨著使用者行為、應用程式和環境的演變而出現。此外,非靜態工作負載呈現出隨時間變化的不同模式,更頻繁地重新生成模型並相應增加開銷
因此,整合預測方法已逐漸應用於雲工作負載預測,提出了一種整合特徵選擇和八種機器學習方法的預測方法 REAP,以獲得優異的預測精度,提出了一種基於 ARIMA 和 ANN 的混合模型來預測 CPU 和記憶體利用率。 ARIMA 檢測線性分量,ANN 使用 ARIMA 匯出的殘差分析非線性分量等
3.2 工作負載異構性
3.2.1 預測目標
1.請求工作負載
提出了一種基於ANN的工作負載預測模型
2.資源工作負載
提出了一種基於多元時間序列的多屬性資源分配工作負載預測框架,並建立了 BiLSTM 模型來預測多種資源的供應和利用
3.2.2 組織結構
隨著應用程式從整體架構到面向服務的架構,再到微服務架構的演變,研究人員探索工作負載預測模型如何結合應用程式的結構特徵。
1.獨立分析
研究人員僅關注應用程式本身的工作負載變化進行建模。提出了一種考慮自適應滑動視窗和時間區域性性整合的整合工作負載預測模型
2.相關分析
面對分散式或分層應用,研究人員透過分析一個應用中不同元件的工作負載變化來設計預測方法。提出了一種基於深度學習的端到端工作負載預測方法,並創造性地提出了工作負載群體行為的概念
3.大規模分析
大型雲應用程式可能有數千個例項。平衡預測精度和模型開銷已成為大規模工作負載預測的嚴峻挑戰。提出了一種特徵選擇方法來減少預測模型的推理時間
3.2.3 執行型別
1.叢集/資料中心粒度
提出了一種基於群體最佳化演算法的樹層次深度卷積神經網路,提出了一種具有三維自適應能力的改進自適應差分進化(AADE)學習演算法,並將其應用於訓練用於資料中心工作負載預測的神經網路
2.PM/VM粒度
SARIMA在長期任務中表現優於LSTM,但在短期任務中表現較差
3.容器粒度
隨著虛擬化技術的不斷完善,很多應用已經從傳統的基於PM/VM的部署轉變為基於Serverful的容器部署
提出了ARIMA和三重指數平滑的混合模型,分別負責挖掘和預測容器資源工作負載序列中的線性和非線性關係
4.Serverless例項粒度
提出了一種基於機率的無伺服器應用程式工作負載預測和預熱模型,該模型基於快速傅立葉變換來預測特定時間間隔內函式是否會被呼叫和併發,並指導函式預熱和儲存
4 ntegration With Resource Management 與資源管理整合
4.1 主動容量規劃
規劃應用程式的雲基礎設施容量是一個關鍵問題,可能會帶來顯著的服務改進、成本節約和環境可持續性。
出了雲資料中心的容量規劃系統,該系統提引入了場景組合的概念,允許探索異構可能的拓撲和資源,以及水平和垂直資源擴充套件
4.2 主動應用部署
應用程式部署使應用程式例項能夠放置在雲基礎設施上,這通常決定了應用程式的初始位置。主動部署有助於防止共置應用程式進入不良狀態,例如資源爭用和浪費
提出了一種容器化任務部署演算法,透過部署共置容器來最佳化伺服器資源利用率。它採用K-means演算法對歷史軌跡進行任務分類,參考CPU使用率、記憶體消耗、磁碟儲存、網路頻寬等工作負載維度。
4.3 主動請求排程
有效的流量感知可以指導使用者請求的主動排程
提出了一種利用資料聚類實現彈性任務排程的方法。使用ARIMA預測每個類簇中的任務數量,為資源配置提供參考。然後,所提出的節能資源分配方法動態地為每個叢集中的任務提供資源
4.4 主動資源分配
資源分配本質上是短期容量規劃,這是從已安裝的容量中配置和分配資源的過程。在執行時為應用程式分配適當的資源是一個關鍵問題,因為雲端計算是一種按需分配和按需付費的模型。
為無伺服器工作流應用程式設計了記憶體分配最佳化模型SLAM。它使用分散式跟蹤來識別函式之間的關係並估計不同記憶體配置的工作流執行時間
4.5 主動彈性伸縮
彈性是雲端計算模型為應用程式提供的一個關鍵特性 [105] ,其中水平和垂直縮放及其組合的變體是常見的實現操作。主動彈性伸縮可以提前增減資源,減少資源伸縮時間的影響,保證高質量的服務和成本效率。
提出了一種基於 Kubernetes 的擴充套件系統,其中包括基於 BiLSTM 的具有注意力機制的工作負載預測演算法和強化學習方法,以實現被動式和主動式擴充套件
4.6 主動動態遷移
應用遷移本質上是動態應用部署,動態調整應用例項與基礎設施之間的對映。因此,需要實現應用程式從源位置到目標位置的轉換。
出了一種基於工作負載預測的虛擬機器遷移策略來提高能源效率。 利用神經網路進行工作負載預測,並根據提出的 Harris Hawks Spider Monkey Optimization 執行虛擬機器遷移,其中決策過程考慮功率、工作負載和資源引數。
5. Future Direction 未來方向
大規模工作負載預測,無伺服器例項的工作負載預測,多拓撲指導工作負載預測,應用於工作負載預測的大型模型,模型的可解釋性,模型不可靠性