張飛飛,吳 杰,呂智慧
(復旦大學 計算機科學技術學院,上海200433)
云計算技術的不斷發展,使得云計算能夠靈活地、可擴展地、按需地為應用分配所需資源。然而,靜態地為虛擬機分配物理資源可能會產生一些問題。如果根據應用的最高負載分配資源可能會導致資源利用率比較低,然而分配資源少了又將導致違反應用的服務等級協議 (SLA)。為了有效地管理資源,實現資源利用率最大化,云計算通常采用基于預測技術的資源管理方法。
目前,在云資源管理方法中存在很多種預測模型,這些模型各有優缺點及適用環境。本文將這些模型分為三大類,分別介紹了這些預測模型的特點,并列出了每種預測模型的主要特征。通過對這些模型的分析,我們給出了基于預測技術的動態云資源管理方法的一般流程。雖然這些模型在某些云環境中能夠很好的進行預測,然而應用的多樣化致使這些模型并不能適用于所有的情況,也就是說這些預測模型本身還存在一些不足之處。針對這些不足,本文從以下幾方面展望了云計算預測模型的發展方向。
預測技術由來已久,也有一些比較成熟的預測模型。文獻 [1]研究了一些短期預測模型,包括差分自回歸移動平均模型 (ARIMA),自回歸模型 (AR),霍爾特-溫特斯指數平滑模型 (Holt-Winters exponential smoothing)。文獻[2]通過采用自回歸分數整合滑動平均 (FARIMA)過程同時提供短期預測和長期預測。文獻 [2]提出一種全局方法進行長期預測。這些傳統模型相對復雜,考慮到預測給系統帶來的開銷,云計算系統通常并不會直接采用這些模型。
隨著云計算技術的發展,為了實現虛擬資源的有效管理,預測技術被引入到云資源管理中。目前大部分的預測模型都是基于時間序列分析。本文將預測模型分為三類:基礎預測模型,基于反饋的預測模型和多時間序列預測模型。其中基礎預測模型和基于反饋的預測模型是單時間序列的預測模型,其分類如圖1所示。

圖1 預測模型分類
下面分類介紹每個預測模型及其特點:
文獻 [3]提出一種預測方法,該方法主要用于云資源自動調整大小時應用負載的預測。這個方法采用了二階自回歸移動均值 (ARMA)模型過濾器,其表達式如下

式中:變量β和γ的值分別為0.8和0.15,λ (t)——t時刻負載值。這個算法是ARMA模型的簡單應用,存在一些不足點。第一,原始數據未經處理。通常原始數據存在一些干擾數據,需經過預處理,將干擾數據過濾出去,這樣有助于提高預測的準確度。第二,將變量β和γ賦值固定值會影響算法的靈活性,降低算法的適應能力。
文獻 [4]采用指數平滑 (ES)方法預測請求訪問速率,其模型如下

式中:T1——時間粒度,該模型預測T1時間之后的訪問速率,即^Λik(t+T1),為上個樣本數據Λik(t)和預測數據^Λik(t)的加權平均值,0<γik(t)<1。此模型通過重估計平滑因子γik(t)動態獲得合適的平滑指數模型,其中γik(t)定義為平滑誤差Aik(t)與絕對誤差Eik(t)的比值,即γik(t)=Aik(t)/Eik(t)。在這個模型中,平滑因子的估計很重要,因為這個值直接影響到算法的準確性。
文獻 [5]提出一種模型來預測系統在將來某時刻需要的物理機數量。這個預測模型基于自回歸分析來進行預測,其模型如下

其中預測值m0為參數向量a與歷史需求值mi(i<0)的內積,參數向量a可以通過最小二乘法獲得。
以上3個模型都是通過歷史數據直接建模并預測,沒有考慮到負載模式的特點,這會使得預測模型的適用性受到限制,即在某些情況中預測準確度可能會降低。
文獻 [6]提出了一個適用于周期性負載模式的模型,該模型如下

式中:T——負載周期,y(t)——負載值。這個模型包括兩個部分,參數ak所在部分為周期預測,它是y值在周期T上的自回歸。參數bj所在部分為局部調整,考慮到y(t)與緊跟在y(t)之前的值的相關性。參數n和m為這兩個部分的階。這個模型對周期性負載進行預測時準確度比較高,但是當負載不存在明顯的周期性時,該預測模型無法保證其準確性。
文獻 [7]提出了一種應用于云計算環境的可預測性彈性資源伸縮方案 (PRESS),該方案采用輕量級的信號處理與統計分析的方法對云環境中資源需求進行預測。該模型利用信號處理技術觀察序列的特征,通過快速傅里葉轉換計算負載的主頻,設為fd,PRESS得到大小為Z的模式窗口,其中Z= (1/fd)×r,r為采樣頻率。將原始序列分為Q= W/Z 個模式窗口:P1= {l1,…,lz},P2={lz+1,…,l2Z},…,PQ= {l(Q-1)Z,…,lQZ}。PRESS評估所有窗口對Pi和Pj之間是否包含相似模式,如果所有模式窗口都相似,PRESS將所有窗口相同位置樣本值的平均值作為預測窗口的值。如果負載沒有相似模式,PRESS采用離散馬爾科夫鏈進行短期預測。該預測模型考慮到了負載的模式,并針對不同的負載模式采用了不同的預測方法。
盡管基礎預測模型在某些云計算環境中能夠滿足系統需求,但是為了保證應用的SLA,也有一些預測模型會在預測出結果之后再進行一些工作,比如增加一個補償值,或者是通過考慮反饋信息進一步完善預測模型的性能等。
文獻 [8]為數據庫即服務系統提出了一種動態資源分配架構 (DRAF)。在他們使用的預測模型中,時間序列被看作是趨勢與噪聲的組合,Pi,k(t)=Tri.k(t)+ei,k,其中Tri,k(t)表示趨勢,ei,k表示噪聲。Tri,k(t)通過自回歸分析得到,ei,k認為是正態分布。趨勢模式可以表示為Tri.k(t)=b0+b1t+b2t2。噪聲用兩個參數表示,均值μ和標準差σ。根據正態分布表,μ+1.96σ可以覆蓋95%的噪音,所以ei,k=μ+1.96σ。為了減少因資源不足造成應用性能降低的情況,作為一種彌補手段,會在預測值之上增加一個補償值。然而這樣直接加上一個補償值有時候可能造成資源的浪費。
文獻 [9]提出了CloudScale系統,它采用在線資源需求預測和預測誤差處理來實現云環境中自適應資源分配。資源需求預測經常存在高估或低估的情況。高估時可能會造成一些資源的浪費,但是應用的性能不會受到影響;然而,低估卻會導致違反服務等級協議,因此該模型的重點在于消除低估誤差。CloudScale采用在線的自適應的填補方法來解決低估誤差。一種方法是在預測的需求之上再加上一個額外的補償值。另一種方法是在系統運行過程中出現資源不足時,直接將其資源配額提高到做大,或者是通過因子a(a>1)逐步加大。這個模型提示我們預測模型可以通過有效的控制預測誤差來提高本身的性能。
文獻 [10]提出了一種虛擬資源控制系統AutoControl,在這個系統中,模型估算器輸入過去資源分配信息和應用性能信息,得到應用將來的性能目標,然后優化器分配所需資源。對于每一個控制階段,模型估算器重新計算線性模型。這個線性模型用來逼近應用的資源分配 (ua)與其性能 (ya)之間的量化關系。他們的關系可以表示如下

其中a1(k)和a2(k)描述了應用過去和當前性能之間的關系。參數向量b0(k)和b1(k)描述了應用當前性能和最近資源分配之間的關系。有了性能目標,優化器就可以進行所需資源的分配。這個模型充分結合了控制論的理論,應用將來資源需求量由應用的性能和過去資源分配情況共同決定。
在多時間序列預測中,模型不但考慮了同種資源的自相關性,同時考慮不同資源之間的交叉相關性。在某些情況下,考慮不同資源的交叉相關性能夠提高預測模型的預測效果。
文獻 [11]分別從微觀和宏觀的角度出發對數據中心資源的消耗進行預測。在微觀的預測中使用了自回歸方法,具體表示如下

式 中:X1j(t)——CPU 的 使 用,X2j(t)——內 存 的 使 用,ε1j(t),ε2j(t)——白噪聲 WN (0,σ2)。
文獻 [12]提出了應用于云計算環境的多時間序列模型,該模型用于虛擬機負載的特征描述和預測。該模型首先將虛擬機進行分組,然后進行預測。預測分3個步驟:首先,以不同時間粒度分析虛擬機負載在時間上的相關性和不同虛擬機在空間上的相關性,并決定最優時間間隔來建模;其次,從原先的分組中找出可預測的分組;最后,進行預測。該模型采用隱馬爾科夫模型 (HMM)進行預測。估計出狀態轉換以及觀察頻率之后,給定時刻t的觀察可以計算出在時刻t+l時觀察概率ot+l

根據這個概率估計就可以預測在時刻t+l最可能的觀察

下一個觀察就代表了將會出現哪些組。為了提高預測的準確度,這個方法采用了一種綜合負載時間相關性和空間相關性的聚類算法。
文獻 [13]提出了一個在線系統 (ASAP)來預測云系統虛擬機需求,它采用兩層模式進行建模和預測。第一層是多個子模型的自回歸組合,在這個組合中,每個子預測模型的權重根據預測誤差進行調整。這些子預測模型包括移動均值,自回歸,神經網絡等。第二層考慮到不同虛擬機之間的關系并利用這種關系來提高預測的健壯性,不同序列之間的相關性能夠幫助消除噪聲數據的干擾。設cov(t)ij表示資源類型i與它的第j個相關資源的協方差,則類型i在時刻t的需求為

本文將預測模型分為三類:基礎預測模型,基于反饋的預測模型和多時間序列預測模型。經過對不同預測模型的分析發現,基于反饋的預測模型和多時間序列預測模型的核心都是基于基礎預測模型實現的,同時多時間序列預測模型可以引入反饋信息的分析以提高其性能,所以多時間序列可以同時兼顧到基于反饋預測模型的優點。我們將這三類模型之間的關系表示如圖2所示。
本節我們將分類對預測模型進行分析和比較,對于每種類型,采用不同的屬性進行描述。
2.2.1 基礎預測模型
表1列出了基礎預測模型的主要特征。其核心方法是自回歸,自回歸方法是預測技術的基本方法且應用廣泛。本文介紹的預測模型大部分是采用最小二乘法估計參數。對于ES模型,平滑因子γik(t)的評估直接影響這個模型的準確度。在這類模型中,PRESS[7]和稀疏自回歸模型可以對周期性負載進行相對長期的預測,其它模型都是短期預測,對于長期預測無法保證預測的準確度。

圖2 預測模型關系
2.2.2 基于反饋的預測模型
表2列出了基于反饋的預測模型的主要特征。為了保證服務等級協議 (SLA),避免因資源不足導致應用服務性能降低,最簡單的一種方法就是在預測結果之上再加上一個額外的補償值。這種方法相對簡單,但是可能會造成資源的浪費。第二種方法就是根據應用的反饋信息,預測模型重新建模,估計模型參數,使得預測模型能夠實時的響應應用的變化。
2.2.3 多時間序列預測模型
表3列出了多時間序列預測模型的主要特征。此類預測模型在建模時不但需要考慮同種資源的自相關性,同時考慮不同資源之間的交叉相關性。當系統中不同資源之間存在相關性時,多序列模型能夠更好的反映出引起資源變化的因素,有助于提高預測的準確度。同時,采用資源間的交叉相關性能夠幫助消除噪聲數據對模型準確度的影響。
隨著云計算技術的不斷發展,動態資源供應已成為云計算環境不可或缺的一部分。為了實現資源的有效利用并保證服務的質量,幾乎所有的資源供應方案都采用了預測技術。在應用預測模型的時候需要準確度與復雜性兼顧。通常準確度越高的模型復雜度相對越高,會給系統帶來一定的開銷,所以在設計與選擇預測模型時應考慮云環境的需求,選擇適用于它的預測模型。
根據上面的討論,我們總結出云計算環境中資源供應方案通常包含以下幾步:建模,預測,誤差糾正,性能分析,重建模,如圖3所示。

表1 基礎預測模型的分析與比較

表2 基于反饋的預測模型的分析與比較

表3 多時間序列預測模型的分析與比較

圖3 基于預測的資源供應框架
我們介紹并分析了應用于云計算資源管理方法中的預測模型。為了更有效的輔助云計算資源管理,預測模型也隨之發展與完善,從最基本的基礎模型,到基于反饋的預測模型以及多時間序列預測模型。雖然預測模型得到了不斷的進步與發展,其中仍有一些需解決的問題,這些問題可以從以下3個方面進行說明:
(1)誤差糾正:很明顯,預測模型的準確度直接影響了資源管理的有效性。為了實現資源利用率最大化,同時保證應用性能,云計算系統需準確地為應用分配所需的資源。資源分配的依據就是預測模型得到的預測值,所以高準確度的預測更有助于實現云計算資源管理的目標。在預測中,誤差是不可避免,可以通過誤差修正以提高預測模型的準確度。在基于反饋的預測模型中,一些模型就是利用了預測值與觀察值之間的差值進行誤差糾正,比如增加一個補償值或是增大虛擬機資源配額。這些誤差修正方法相對簡單,而且本身也存在很多問題。比如,補償值的大小如何確定,資源配額多大合適,以及何時進行誤差糾正等等。如果有一個好的誤差糾正方法,預測模型的準確度也將得到提高。
(2)應用性能保證:預測模型輔助云計算資源管理更好地管理與分配資源,然而在應用運行過程中應用資源不足的情況時有發生,所以我們并不能完全依賴預測模型。應用運行時可以通過應用的性能參數 (響應時間,吞吐量等)或是SLA指標觀察應用當前運行狀態,一旦監測到參數或指標不滿足要求時,云資源管理應即刻做出反應。為了實現這一目的,有一些預測模型引入了控制論的方法。在這類模型中,實時地監測應用的運行狀態,并在不滿足要求時立刻做出響應。然而控制論方法在云計算資源管理中的應用還處在初期,有很大的研究空間。
(3)新型預測模型:目前很多的預測模型都是基于統計分析方法的,然而也存在一些其它的預測模型,例如文獻 [14]中采用的基于遺傳算法的預測模型,文獻 [2]中采用的基于人工神經網絡的預測模型以及文獻 [7]中采用的馬爾科夫鏈模型等等。對于預測技術,也許存在其它更好的方法來使得預測結果更準確,開銷更小等,所以新型的預測模型是值得研究的。
云計算作為一種新型的計算模式受到了廣泛關注。在工業界已有一些成功案例,比如Google公司的AppEngine,Microsoft公司的Azure,IBM公司的Blue Cloud,Amazon公司的EC2和S3等。云計算資源管理一直都是云計算的核心,是實現云計算靈活性,可伸縮性,資源共享等特征的基礎。為了實現動態資源供應,云計算資源管理通常需要借助預測技術來實現。
本文分析與討論了應用于云計算環境的預測模型,包括基礎預測模型,基于反饋的預測模型和多時間序列預測模型,并在此基礎上總結了云計算環境中動態資源供應方法的一般流程。我們可以看到預測模型從基礎模型到基于反饋的預測模型及多時間序列預測模型,它一直都在發展與完善。然而這些模型中還是存在一些不足之處,我們從誤差糾正,保證應用性能和發展新模型3個方面介紹了預測模型還需完善的地方。預測模型作為云計算資源管理的輔助手段,它的發展必將有助于云計算技術的進步。
[1]Taylor J W,de Menezes L M,McSharry P E.A comparison of univariate methods for forecasting electricity demand up to a day ahead [J].International Journal of Forecasting,2006,22(1):1-16.
[2]Sorjanmaa A,Hao J,Reyhani N,et al.Methodology for long-term prediction of time series [J].Neurocomputing,2007,70 (16-18):2861-2869.
[3]Roy N,Dubey A,Gokhale A.Efficient autoscaling in the cloud using predictive models for workload forecasting [C]//Washington,DC:IEEE 4th International Conference on Cloud Computing,2011:500-507.
[4]Ardagna D,Casolari S,Panicucci B.Flexible distributed capacity allocation and load redirect algorithms for cloud systems[C]//Washington,DC:IEEE 4th International Conference on Cloud Computing,2011:163-170.
[5]Guaenter B,Jain N, Williams C. Managing cost,performance,and reliability tradeoffs for energy-aware server provisioning [C]//Shanghai: Proceedings IEEE INFOCOM,2011:1332-1340.
[6]Chen G,He W,Liu J,et al.Energy-aware server provisioning and load dispatching for connection-intensive internet services [C]//Francisco,California:5th USENIX Symposium on Networked Systems Design and Implementation,2008:337-350.
[7]Gong Z,Gu X,Wilkes J.PRESS:Predictive elastic resource scaling for cloud systems [C]//Niagara Fall:International Conference on Network and Service Management,2010:9-16.
[8]Zhu J,Gao B,Wang Z,et al.A dynamic resource allocation algorithm for database-as-a-service [C]//Washington,DC:IEEE International Conference on Web Services,2011:564-571.
[9]Shen Z,Subbiah S,Gu X,et al.CloudScale:Elastic resource scaling for multi-tenant cloud systems [C]//Cascais,Portugal:2nd ACM Symposium on Cloud Computing,2011:1-14.
[10]Padala P,Hou K Y,Shin KG,et al.Automated control of multiple virtualized resources [C]//Nuremberg,Germany:ACM European Conference on Computer Systems,2009:13-26.
[11]Tan J,Dube P,Meng X,et al.Exploiting resource usage patterns for better utilization prediction [C]//Minneapolis,MN:31st International Conference on Distributed Computing Systems Workshops,2011:14-19.
[12]Khan A,Yan X,Tao S,et al.Workload characterization and prediction in the cloud:A multiple time series approach[C]//Hawaii:13th IEEE/IFIP Network Operations and Management Symposium,2012:1287-1294.
[13]Yexi J,Chang-shing P,Tao L,et al.ASAP:A self-adaptive prediction system for instant cloud resource demand provisioning [C]//Vancouver,BC:11th IEEE International Conference on Data Mining,2011:1104-1109.
[14]Luque C,María J,Ferrán V,et al.Time series forcasting by means of evolutionary algorithms [C]//Long Beach,IEEE International Conference on Parallel and Distributed Processing Symposium,2007:1-7.