近年來,云計算行業快速崛起。云計算的虛擬化概念和自動伸縮功能使計算或應用外包到云成為一種常見的范式
,以按需購買和按需付費模式使用資源可以節約資源和成本。但是,云環境的高度靈活性使資源伸縮問題變得更加復雜
。云環境中的工作負載是不確定的,這一點在涉及面向用戶的應用程序中尤為突出
。
自動伸縮是一種調整應用程序資源量以滿足不斷變化的工作負載需求,同時最小化成本或資源的技術
。目前,已經提出了許多自動伸縮方法,這些方法可以分為響應式和預測式兩種
。響應式方法主要包括基于閾值的策略、排隊論和控制論等,預測式方法則包含時間序列分析和強化學習方法。由于提前做出了伸縮決策,預測式方法的伸縮及時性比響應式要好。時間序列分析通常包含兩個階段,第一階段是工作量預測,第二階段是根據預測的工作量做出擴展決策
。然而,許多時間序列分析方法都是基于閾值來做出伸縮決策,存在閾值設置過程復雜并且難以確定達到閾值后擴展或收縮的實例數的問題。基于強化學習(RL)的伸縮方法具有自適應性和魯棒性
,不需要任何先驗知識,可以確保當工作負載動態變化時應用軟件的資源利用處于相對穩定的狀態,因此RL是云環境中進行自動伸縮的一種有前景的方法。
目前的工作大部分都集中于在水平伸縮領域進行
。但是,水平伸縮通常面臨動作空間難以準確設置的問題。……