徐建中 王 俊 周迅釗 徐 雷
彈性伸縮的策略可以有效提高用戶滿意度,很好地處理了由于不穩(wěn)定的應(yīng)用系統(tǒng)所導(dǎo)致的資源利用率低的問題,是云計(jì)算的關(guān)鍵技術(shù)之一。目前主流的云計(jì)算系統(tǒng)的自動伸縮都是基于閾值確定的,即當(dāng)用戶服務(wù)負(fù)載達(dá)到某個閾值將增加相應(yīng)的資源,或者當(dāng)負(fù)載低于某個閾值減少資源。這種固定的策略不夠完善,例如當(dāng)用戶服務(wù)負(fù)載增加并達(dá)到預(yù)設(shè)的閾值,系統(tǒng)立刻增加相應(yīng)的資源以滿足用戶的需求,但是如果這種負(fù)載增加只是暫時的,且又很快降低,這種資源增加就造成了系統(tǒng)資源的浪費(fèi),并且,頻繁的伸縮對系統(tǒng)本身也是很大的負(fù)擔(dān)[1]。
本文設(shè)計(jì)了一種基于需求預(yù)測的云計(jì)算彈性伸縮策略,根據(jù)參考指標(biāo)的當(dāng)前狀態(tài),和未來趨勢來共同決定是否伸縮。大體流程為:首先,設(shè)定參考指標(biāo)的分析參數(shù);然后,根據(jù)收集到的歷史序列,應(yīng)用不同的預(yù)測模型對未來可能的取值進(jìn)行預(yù)測;最后,根據(jù)預(yù)測模型給出的預(yù)測結(jié)果和指標(biāo)的當(dāng)前狀態(tài),決定增容或擴(kuò)容。
云計(jì)算彈性伸縮是指云計(jì)算系統(tǒng)根據(jù)需求變化而自動調(diào)整技術(shù)。用戶需求的資源在不同時間是動態(tài)改變的,為了能夠適應(yīng)需求的動態(tài)改變,云計(jì)算數(shù)據(jù)中心具有彈性伸縮技術(shù)就非常必要。借助彈性伸縮,可以在峰值期間無縫地?cái)U(kuò)展資源來處理增加的工作負(fù)載,并在峰值過后自動減少資源來保持合理的容量和最大程度地降低成本[2]。云計(jì)算彈性伸縮又有橫向和縱向之分,所謂橫向是通過增加或減少實(shí)例資源,然后將資源整合為統(tǒng)一的資源來工作或?qū)ν夥?wù);所謂縱向是通過增加現(xiàn)有實(shí)例資源上的配置水平來提高體統(tǒng)整體的處理能力。自動擴(kuò)展在以往研究中有多種實(shí)現(xiàn)方式,比如基于閾值的策略[3]、增強(qiáng)型學(xué)習(xí)、隊(duì)列理論、控制理論以及時間序列分析等。其中,基于閾值的策略在目前的云中實(shí)現(xiàn)得較為普遍[4]。
目前,時間序列預(yù)測分析方法有自回歸預(yù)測模型、指數(shù)預(yù)測模型和人工神經(jīng)網(wǎng)絡(luò)模型等。本文將通過自回歸預(yù)測模型、指數(shù)預(yù)測模型和BP人工神經(jīng)網(wǎng)絡(luò)三種模型的使用,建立一個基于需求預(yù)測的云計(jì)算彈性伸縮策略,并和傳統(tǒng)閾值伸縮策略相比較。
1)自回歸預(yù)測模型。自回歸模型是用過去若干時刻的變量的線性組合來預(yù)測以后某時刻隨機(jī)變量的線性回歸模型[5~6]。
2)指數(shù)平滑預(yù)測模型。指數(shù)平滑法是一種特殊的加權(quán)平均法,對本期觀察值和本期預(yù)測值賦予不同的權(quán)重,求得下一期預(yù)測值的方法,它最早是由Brown提出的,后來經(jīng)統(tǒng)計(jì)學(xué)家深入研究使得指數(shù)平滑法非常豐富[7~8]。
3)BP神經(jīng)網(wǎng)絡(luò)預(yù)測模型。BP神經(jīng)網(wǎng)絡(luò)的核心是BP算法:將正確的結(jié)果和產(chǎn)生的結(jié)果進(jìn)行比較,得到誤差,再逆推對神經(jīng)網(wǎng)中的權(quán)重進(jìn)行反饋修正,從而來完成學(xué)習(xí)的過程,這種向后反饋的學(xué)習(xí)機(jī)制被稱為BP神經(jīng)網(wǎng)絡(luò)的反饋機(jī)制。
本文的伸縮策略采用橫向模式,為了簡化模型,本文只考慮CPU指標(biāo),并假設(shè)只有一種虛擬機(jī)類型。本文設(shè)計(jì)的基于需求預(yù)測的云計(jì)算彈性伸縮策略大體流程為:首先,設(shè)定指標(biāo)的分析參數(shù);然后,根據(jù)收集到的歷史序列,應(yīng)用預(yù)測模型對未來值進(jìn)行預(yù)測;最后,根據(jù)預(yù)測模型給出的預(yù)測結(jié)果和指標(biāo)的當(dāng)前狀態(tài),決定增容或擴(kuò)容。具體流程如圖1所示。
圖1 彈性伸縮策略流程
1)監(jiān)控模塊設(shè)計(jì)。監(jiān)控模塊實(shí)時監(jiān)控伸縮組的CPU使用情況,計(jì)算CPU使用系數(shù),CPU利用率表示為
CPU使用系數(shù)為
其中,是虛擬機(jī)i的CPU被使用量,是虛擬機(jī)i的CPU總量,i∈{1,…,m},m是用戶當(dāng)前運(yùn)行的虛擬機(jī)數(shù)量,Utarget為預(yù)設(shè)的CPU利用率。
2)伸縮活動執(zhí)行程序設(shè)計(jì)。伸縮活動執(zhí)行程序根據(jù)CPU使用系數(shù)的當(dāng)前狀態(tài),和未來趨勢來共同決定是否伸縮。用UratioTlr表示CPU使用系數(shù)可接受的變化范圍,UusageRatio表示當(dāng)前時刻CPU使用系數(shù),表示未來τ個時刻預(yù)測的CPU平均使用系數(shù)。則不需要伸縮的條件為
執(zhí)行擴(kuò)容的條件為
執(zhí)行縮容的條件為
伸縮規(guī)則設(shè)計(jì)。如果需要伸縮,則系統(tǒng)中虛擬機(jī)個數(shù)計(jì)算如下:
其中,NcurReplicas表示當(dāng)前啟動的虛擬機(jī)個數(shù),Nmin表示虛擬機(jī)最小個數(shù),Nmax表示用戶可以使用的最大虛擬機(jī)個數(shù),NnextReplicas表示下個時間預(yù)測的虛擬機(jī)個數(shù),表示向上取整。
4)伸縮活動設(shè)計(jì)。給定伸縮頻率Hinc、Hdec,為了避免系統(tǒng)短時間內(nèi)頻繁伸容、縮容,設(shè)置上次伸縮的Hinc時間內(nèi)不能再次擴(kuò)容,Hdec時間內(nèi)不能縮容。
為了驗(yàn)證本文提出的基于需求預(yù)測的云計(jì)算彈性伸縮策略的有效性,利用Google云計(jì)算平臺一周的CPU需求作為實(shí)驗(yàn)數(shù)據(jù),在Matlab上進(jìn)行仿真,相關(guān)參數(shù)設(shè)置為:CPU預(yù)設(shè)利用率Utarget=0.8,CPU可接受變化范圍UratioTlr=0.1,最小虛擬機(jī)數(shù)量Nmin=1,最大虛擬機(jī)數(shù)量 Nmax=50,Hinc=Hdec=60s,自回歸模型的階數(shù)設(shè)為2,BP神經(jīng)網(wǎng)絡(luò)模型的中間層神經(jīng)元個數(shù)設(shè)為12,為了簡化分析設(shè)每個虛擬機(jī)CPU大小為0.02,監(jiān)控間隔為10s,預(yù)測長度τ=5。
圖2給出了一周內(nèi)四種算法的平均虛擬機(jī)數(shù)量,可以看出基于自回歸模型預(yù)測(AR)、基于指數(shù)平滑預(yù)測(ES)、基于BP神經(jīng)網(wǎng)絡(luò)預(yù)測(BP)相對基于閾值的彈性伸縮(TBR)的虛擬機(jī)數(shù)量有一定的降低,這主要是由于本文提出的基于預(yù)測的彈性伸縮的“延遲伸”機(jī)制決定的。TBR策略當(dāng)CPU利用率高于閥值就增加資源,并沒有考慮CPU的未來需求趨勢,可能導(dǎo)致的結(jié)果是,未來一段時間,CPU需求處于較低狀態(tài),而一段時間內(nèi)不能重復(fù)伸縮,所以導(dǎo)致了資源的浪費(fèi)。而基于預(yù)測的彈性伸縮會考慮CPU需求的未來趨勢,根據(jù)CPU使用率的當(dāng)前狀態(tài)和未來狀態(tài)共同決定是否需要減少資源,從而避免了資源浪費(fèi)。
圖2 平均虛擬機(jī)數(shù)量對比
本文首先介紹了云計(jì)算彈性伸縮策略的必要性和現(xiàn)存策略的弊端,提出一種基于需求預(yù)測的云計(jì)算彈性伸縮策略。采用自回歸預(yù)測模型、指數(shù)平滑模型和BP神經(jīng)網(wǎng)絡(luò)三種預(yù)測模型,對未來一段時間的CPU需求做預(yù)測,結(jié)合當(dāng)前CPU的使用量和未來使用量決定是否需要伸縮,并對三種模型做對比。通過實(shí)驗(yàn)表明,本文提出的基于預(yù)測的云計(jì)算彈性伸縮策略在資源消耗方面有了一定的改善,很好地解決了降低資源消耗和不影響用戶滿意度直接的矛盾,表明此策略的優(yōu)越性。
[1]龔強(qiáng).云計(jì)算關(guān)鍵技術(shù)之彈性伸縮控制技術(shù)認(rèn)知研究[J].信息技術(shù),2014,38(1):1-2.
GONG Qiang.Research on the Cognition of Elastic Retractable Control Technology—One of the Key Technology of Cloud Computing[J].Information Technology,2014,38(1):1-2.
[2]李冰利,劉釗遠(yuǎn),賈威威.基于NBD的彈性云存儲研究與設(shè)計(jì)[J].計(jì)算機(jī)與數(shù)字工程,2015,43(2):343-346.
LI Bingli,LIU Zhaoyuan,JIA Weiwei.Research and Design of elastic cloud storage based on NBD[J].Computer&Digital Engineering,2015,43(2):343-346.
[3]Hasan M Z,Magana E,Clemm A,et al.Integrated and autonomic cloud resource scaling[J].2012,104(5):1327-1334.
[4]王偉兵.一種基于云計(jì)算的動態(tài)可擴(kuò)展應(yīng)用模型[J].計(jì)算機(jī)工程與應(yīng)用,2011,47(15):15-18.
WANG Weibing.Dynamically scaling application model based on cloud computing[J].Computer Engineering and Applications,2011,47(15):15-18.
[5]Nezhad SM T,Nazari M,Gharavol E A.A Novel DoSand DDoS Attacks Detection Algorithm Using ARIMA Time Series Model and Chaotic System in Computer Networks[J].IEEE Communications Letters,2016,20(4):700-703.
[6]Yunus K,Thiringern T,Chen P.ARIMA-Based Frequency-Decomposed Modeling of Wind Speed Time Series[J].IEEETransactions on Power Systems,2015,31(4):1-11.
[7]Xie X,Wei X,Wang L.Prediction of logistics demand based on exponential smoothing model for Hohhot,Baotou and Ordos[J].Journal of Arid Land Resources&Environment,2013,27(1):58-62.
[8]Prestwich SD,Tarim SA,Rossi R,et al.Forecasting intermittent demand by hyperbolic-exponential smoothing[J].International Journal of Forecasting,2014,30(4):928-933
[9]董輝.基于優(yōu)化遺傳算法的灰色-RBF神經(jīng)網(wǎng)絡(luò)預(yù)測模型研究[J].新鄉(xiāng)學(xué)院學(xué)報(bào),2012,29(3):237-240.
DONG Hui.Research of Grey-RBF Neural Network Prediction Model Based on Optimized Genetic Algorithm[J].Journal of Xinxiang Teachers College,2012,29(3):237-240.
[10]Lian C,Chen CL P,Zeng Z,et al.Prediction Intervals for Landslide Displacement Based on Switched Neural Networks[J].IEEE Transactions on Reliability,2016:1-13.