徐雅斌 彭宏恩
摘 要:針對缺乏PaaS平臺(tái)下資源需求的有效預(yù)測與優(yōu)化分配的問題,提出一種資源需求預(yù)測模型和分配方法。首先,根據(jù)PaaS平臺(tái)中應(yīng)用對資源需求的周期性來對資源序列進(jìn)行切分,并在短期預(yù)測的基礎(chǔ)上結(jié)合應(yīng)用的多周期性特征,利用多元回歸算法建立綜合的預(yù)測模型。然后,基于MapReduce架構(gòu)設(shè)計(jì)實(shí)現(xiàn)了一個(gè)Master-Slave模式的PaaS平臺(tái)資源分配系統(tǒng)。最后,結(jié)合當(dāng)前任務(wù)請求和資源需求預(yù)測結(jié)果進(jìn)行資源分配。實(shí)驗(yàn)結(jié)果表明,采用該資源需求預(yù)測模型和分配方法后,相比于自回歸模型和指數(shù)平滑算法,平均絕對百分比誤差分別下降8.71個(gè)百分點(diǎn)和2.07個(gè)百分點(diǎn),均方根誤差分別下降2.01個(gè)百分點(diǎn)和0.46個(gè)百分點(diǎn)。所提預(yù)測模型的預(yù)測結(jié)果不僅誤差小,與真實(shí)值的擬合程度也較高,而且利用較小的時(shí)間開銷就可以獲得較高的準(zhǔn)確度。此外,使用該預(yù)測模型的PaaS平臺(tái)的資源請求的平均等待時(shí)間有了明顯的下降。
關(guān)鍵詞:云計(jì)算;平臺(tái)即服務(wù);需求預(yù)測;資源分配;多元回歸
中圖分類號: TP393.09;TP391
文獻(xiàn)標(biāo)志碼:A
Abstract: In view of the lack of effective resource demand forecasting and optimal allocation in Platform-as-a-Service (PaaS) platform, a resource demand forecasting model and an allocation method were proposed. Firstly, according to the periodicity of the application demand for resources in PaaS platform, the resource sequence was segmented. And on the basis of short-term prediction, combined with the multi-periodicity characteristics of the application, a comprehensive prediction model was established by using the multiple regression algorithm. Then, based on MapReduce architecture, a PaaS platform resource allocation system based on Master-Slave mode was designed and implemented. Finally, the resources were allocated based on current task request and resource demand prediction results. The experimental results show that, compared with autoregressive model and exponential smoothing algorithm, the proposed resource demand forecasting model and allocation method has the mean absolute percentage error drop of 8.71 percentage points and 2.07 percentage points respectively, root mean square error drop of 2.01 percentage points and 0.46 percentage points respectively. It can be seen that the prediction result of the prediction model has little error and its fitting degree with real value is high, while high accuracy costs little time. Besides, the average waiting time of PaaS platform with the proposed prediction model for resource requests decreases significantly.
Key words: cloud computing; Platform-as-a-Service (PaaS); demand forecasting; resource allocation; multiple regression
0 引言
云計(jì)算以其便捷、高可靠性的資源服務(wù)方式獲得了人們的青睞并得到了快速的發(fā)展[1],越來越多的應(yīng)用開始部署在云中。在云計(jì)算的三層服務(wù)體系中,作為承上啟下的平臺(tái)即服務(wù)(Platform-as-a-Service, PaaS)層通過為應(yīng)用程序提供完備的部署和運(yùn)行環(huán)境,使開發(fā)者在開發(fā)的過程中只需關(guān)注應(yīng)用開發(fā)本身,而不需要關(guān)心軟件及硬件環(huán)境,這可以在很大程度上節(jié)省開發(fā)人員的工作量,縮短開發(fā)周期。
PaaS平臺(tái)中資源需求量的獲取主要有兩種方式:一種是實(shí)時(shí)獲取應(yīng)用對資源的訪問次數(shù)及使用量,并估算出當(dāng)前應(yīng)用對資源的需求量。由于PaaS平臺(tái)中的應(yīng)用一般規(guī)模較大,并發(fā)程度較高,且資源需求變化較快[2],這種實(shí)時(shí)獲取的方法不可避免地會(huì)有一定的滯后性,給資源分配策略帶來較大的壓力,甚至?xí)`反服務(wù)等級協(xié)議(Service-Level Agreement, SLA)[3]。另一種方式是采用預(yù)測算法對PaaS中應(yīng)用的資源需求量進(jìn)行預(yù)測,根據(jù)歷史數(shù)據(jù),預(yù)測應(yīng)用在未來一段時(shí)間可能的資源需求量。一旦獲知未來的資源需求量,資源分配器就可以提前制定相應(yīng)的策略[4]。這種方式能夠?yàn)镻aaS平臺(tái)的資源分配提供更加科學(xué)、合理的決策支持,對PaaS平臺(tái)的資源優(yōu)化配置以及系統(tǒng)的穩(wěn)定運(yùn)行有直接的影響。因此,資源需求預(yù)測是目前PaaS平臺(tái)資源分配研究的重點(diǎn)。
目前的云計(jì)算資源預(yù)測模型可以分為兩類:第一類是基于時(shí)間序列的基礎(chǔ)預(yù)測模型;第二類是基于神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)(Support Vector Machine, SVM)等機(jī)器學(xué)習(xí)方法的預(yù)測模型。
文獻(xiàn)[5]利用動(dòng)態(tài)趨勢預(yù)測的思想,通過當(dāng)前負(fù)載與上一時(shí)刻負(fù)載的比較來預(yù)測負(fù)載上升或下降的趨勢,并且通過當(dāng)前負(fù)載與歷史負(fù)載均值的比較,調(diào)整負(fù)載增加或減少的幅度,計(jì)算下一時(shí)刻的負(fù)載值。該模型簡單快速,但是預(yù)測誤差率相對較大。
文獻(xiàn)[6]采用指數(shù)平滑的技術(shù)實(shí)現(xiàn)對即將到來任務(wù)的預(yù)測,在云計(jì)算系統(tǒng)中獲得最近的任務(wù)序列,采用指數(shù)平滑(Exponential Smoothing, ES)算法,通過任務(wù)的歷史信息預(yù)測即將到來的任務(wù)的趨勢,如到達(dá)時(shí)間、任務(wù)大小和執(zhí)行時(shí)間。
文獻(xiàn)[7]提出了云計(jì)算中的彈性資源擴(kuò)展預(yù)測方案,在該方案中,采用輕量級的信號處理技術(shù)與統(tǒng)計(jì)學(xué)方法,實(shí)現(xiàn)動(dòng)態(tài)的資源需求的在線預(yù)測。具體方法為:利用快速傅里葉變換技術(shù)分析資源需求序列的特征,在沒有相似負(fù)載模式時(shí)使用離散的馬爾可夫過程對資源需求進(jìn)行預(yù)測。
文獻(xiàn)[8]綜合考慮最小化成本與SLA,采用基于二階自回歸移動(dòng)均值的預(yù)測模型。通過建立用戶行為模型,對用戶的歷史行為進(jìn)行分析,計(jì)算出未來短期內(nèi)負(fù)載所需的資源量。該算法中將部分變量賦予固定值,這可能會(huì)影響算法的適應(yīng)能力以及算法的靈活性。
文獻(xiàn)[9]中基于虛擬機(jī)的外部表現(xiàn),提出了利用TCP-like模式計(jì)算指數(shù)加權(quán)移動(dòng)平均值來預(yù)測服務(wù)器上的CPU負(fù)載。模型中最重要的是穩(wěn)定性與響應(yīng)能力的折中因子a,通過實(shí)驗(yàn)確定合適的a,并且通過調(diào)整a的正負(fù)性,實(shí)現(xiàn)對負(fù)載波動(dòng)趨勢的預(yù)測。
以上基于時(shí)間序列的傳統(tǒng)預(yù)測方法具有模型簡單、收斂速度快等特點(diǎn)。但是,由于PaaS中應(yīng)用業(yè)務(wù)內(nèi)容的多樣性以及服務(wù)時(shí)間的不一致性的影響,導(dǎo)致應(yīng)用對資源的需求量具有很強(qiáng)的不確定性。傳統(tǒng)的基于時(shí)間序列的預(yù)測模型在這種情況下會(huì)不可避免地產(chǎn)生較大的誤差,不僅可能會(huì)引發(fā)違反SLA問題,而且可能導(dǎo)致資源浪費(fèi)。因此,許多研究者將機(jī)器學(xué)習(xí)方法應(yīng)用到資源需求預(yù)測中。
文獻(xiàn)[10]采用兩層的前向反饋徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)來對云計(jì)算環(huán)境中單虛擬機(jī)能耗進(jìn)行預(yù)測。由于神經(jīng)網(wǎng)絡(luò)具有較強(qiáng)的非線性擬合能力,可以通過訓(xùn)練逼近復(fù)雜的非線性函數(shù)[11],得到較好的近似解。
針對傳統(tǒng)的單值預(yù)測所包含的信息量過少、不能支持完善的自適應(yīng)調(diào)整策略、會(huì)引發(fā)不必要的調(diào)整等問題,文獻(xiàn)[12]利用SVM對云環(huán)境中用戶的并發(fā)量進(jìn)行預(yù)測,并采用梯度下降粒子群算法進(jìn)行優(yōu)化。
文獻(xiàn)[13]采用兩層模式進(jìn)行資源預(yù)測。第一層采用包括自回歸、移動(dòng)均值、神經(jīng)網(wǎng)絡(luò)等多個(gè)子模型的自回歸組合,并且根據(jù)預(yù)測誤差對組合中的每個(gè)預(yù)測子模型的權(quán)重進(jìn)行調(diào)整。該模型的第二層利用不同虛擬機(jī)之間的關(guān)系以及不同序列之間的相關(guān)性來消除噪聲數(shù)據(jù)的干擾,提高預(yù)測的健壯性。這個(gè)預(yù)測模型綜合考慮了不同虛擬機(jī)的交叉相關(guān)性,但是在云服務(wù)中,僅能根據(jù)虛擬機(jī)的外在表現(xiàn)(如CPU、內(nèi)存的使用情況)判斷其不同虛擬機(jī)之間的差別,而這種差別是微弱的。
綜合云計(jì)算中資源預(yù)測的發(fā)展趨勢以及國內(nèi)外研究現(xiàn)狀得出,傳統(tǒng)的基于簡單時(shí)間序列的預(yù)測方法很難適應(yīng)云計(jì)算環(huán)境中復(fù)雜多變的環(huán)境。而目前基于機(jī)器學(xué)習(xí)的預(yù)測方法,無論是神經(jīng)網(wǎng)絡(luò)、SVM還是其他一些算法,大部分是針對IaaS層的,是以虛擬機(jī)為基本對象的預(yù)測算法[14],而針對PaaS層面資源預(yù)測方法的研究相對較少。由于PaaS層主要面向的對象為應(yīng)用,導(dǎo)致其與IaaS層有較大的不同,主要表現(xiàn)在:
1) 資源需求變化幅度不同。一般情況下,IaaS平臺(tái)中的資源短期內(nèi)變動(dòng)幅度較小,而PaaS平臺(tái)中的資源變動(dòng)幅度較大,并且可能出現(xiàn)激增的情況。
2) 資源需求的周期性不同。在云計(jì)算環(huán)境中,應(yīng)用多采用跨虛擬機(jī)以及跨服務(wù)器的部署方式[15],因此一個(gè)應(yīng)用可能存在多個(gè)實(shí)例,并且部署在不同的虛擬機(jī)中,這種情況下,單個(gè)虛擬機(jī)的資源需求量沒有明顯的周期性,而對于PaaS平臺(tái)中的某個(gè)應(yīng)用而言,通過分析是可以發(fā)現(xiàn)其周期性的。
通過對PaaS平臺(tái)中應(yīng)用對資源的需求進(jìn)行準(zhǔn)確的預(yù)測,可以優(yōu)化PaaS平臺(tái)的資源配置,合理、有效地進(jìn)行資源分配,從而提高云平臺(tái)的應(yīng)用效率,確保PaaS平臺(tái)上應(yīng)用的穩(wěn)定運(yùn)行[16]。準(zhǔn)確的預(yù)測算法能使PaaS平臺(tái)預(yù)知應(yīng)用負(fù)載的變化趨勢,并根據(jù)負(fù)載變化趨勢更好地實(shí)現(xiàn)資源的有效配置和彈性分配,使PaaS平臺(tái)上的應(yīng)用可以高效平穩(wěn)地運(yùn)行,避免不必要的開銷。因此,資源需求預(yù)測技術(shù)可以有效提高資源分配的科學(xué)性和準(zhǔn)確性。
為此,本文提出并設(shè)計(jì)了面向PaaS平臺(tái)的資源需求預(yù)測模型和資源分配方法,通過基于時(shí)間序列的短期預(yù)測與周期性預(yù)測相結(jié)合進(jìn)行綜合預(yù)測,從而對PaaS平臺(tái)的資源進(jìn)行科學(xué)、合理的分配。
1 基于時(shí)間序列的短期預(yù)測
短期預(yù)測對于云計(jì)算的資源配置有著重要的意義[17]。短期時(shí)間序列預(yù)測的主要思想是利用某一事物過去的行為來預(yù)測其將來的可能變化,即通過一段時(shí)間內(nèi)的歷史數(shù)據(jù)來預(yù)測將來短期內(nèi)該事物的變化趨勢。相較其他方法而言,由于自回歸模型具有高效、簡潔的特點(diǎn),因而我們采用自回歸模型進(jìn)行短期時(shí)間序列預(yù)測。
自回歸模型(Autoregressive Model)的特點(diǎn)是用自身作回歸變量,是一種利用前期若干時(shí)刻的隨機(jī)變量的線性組合,預(yù)測即將到來的短時(shí)間內(nèi)變量變化趨勢的線性回歸模型[18]。具體形式如式(1):
為了獲得自回歸模型的最佳擬合系數(shù),需要找到一種參數(shù)擬合方法。最小二乘法是一種數(shù)學(xué)優(yōu)化技術(shù),通過最小化誤差的平方和尋找數(shù)據(jù)的最佳匹配,其特點(diǎn)是簡潔高效,不需要大量迭代。為此,本文中使用最小二乘法進(jìn)行參數(shù)擬合,使其與實(shí)際值的擬合誤差最小。通過求得模型中參數(shù)的最優(yōu)值,解決回歸問題。
在回歸模型中,使總的擬合誤差(即擬殘差)達(dá)到最小作為選擇擬合曲線有三種方法:
1)用“殘差和最小”確定直線的位置。但是這個(gè)標(biāo)準(zhǔn)存在一些不足,如果只是對誤差進(jìn)行簡單的相加求和,會(huì)出現(xiàn)“殘差和” 相互抵消的問題。
2)為了解決“殘差和”會(huì)抵消的問題,可以使用“殘差”絕對值的和最小作為標(biāo)準(zhǔn),但是絕對值計(jì)算起來比較麻煩。
3)以“殘差平方和最小”為標(biāo)準(zhǔn),使用最小二乘法解決問題。采用這種方法,不僅計(jì)算比較方便,得到的估計(jì)量還具有優(yōu)良的特性。
在本文的回歸模型中,采用第三種方法,需要使所有的觀測值的“殘差平方和”最小,通過計(jì)算得到自回歸模型的平方損失函數(shù):
2 基于多元回歸模型的綜合預(yù)測
單獨(dú)使用基于時(shí)間序列的算法或回歸算法的預(yù)測結(jié)果都是不準(zhǔn)確的。因?yàn)?,短期時(shí)間序列算法只能根據(jù)近期的數(shù)據(jù)進(jìn)行趨勢預(yù)測,不能充分利用歷史數(shù)據(jù),因而預(yù)測的精度不高;如果只考慮周期性預(yù)測,雖然能充分利用歷史數(shù)據(jù),但是不能很好地掌握當(dāng)前資源需求的變化趨勢,尤其是在資源需求波動(dòng)性較大的情況下,會(huì)產(chǎn)生較大的誤差。在本文的模型中,充分考慮了這兩者的不足,結(jié)合時(shí)間序列與回歸分析的優(yōu)勢來預(yù)測PaaS平臺(tái)中應(yīng)用的動(dòng)態(tài)資源需求。
在本文提出的預(yù)測模型中,因?yàn)橐C合考慮資源需求的短期趨勢以及周期性,這時(shí)采用自回歸以及一元回歸分析進(jìn)行預(yù)測是難以奏效的。因此,在本文的預(yù)測算法中,采用多元回歸模型作為綜合預(yù)測的基礎(chǔ)。
多元回歸是自然科學(xué)領(lǐng)域的一種非常重要的多元統(tǒng)計(jì)分析方法,它以數(shù)理統(tǒng)計(jì)為基礎(chǔ),通過對大量觀測值或者歷史數(shù)據(jù)的分析,確定各個(gè)變量之間的相關(guān)性。在一個(gè)變量受多個(gè)因素影響的問題中,多元回歸算法是一種行之有效的方法[19]。在本文的問題中,假設(shè)需要預(yù)測的值為y,樣本變量為x,每組樣本數(shù)量為p,n組觀測值為:
使用梯度下降算法計(jì)算時(shí),b首先被初始化,然后通過不斷迭代計(jì)算b的參數(shù),最終結(jié)果收斂于最優(yōu)值。
在梯度下降算法中,α決定了迭代搜索的速度。如果α取值較大,可能在迭代的過程中越過最小值,出現(xiàn)overshoot minimum的現(xiàn)象;如果α過小,會(huì)造成迭代次數(shù)過多,導(dǎo)致算法的速度很慢。因此,應(yīng)該依據(jù)問題的具體情況確定合適的α值。
梯度下降算法的步驟如下:
1)確定移動(dòng)步長的大小(Learning rate)。
2)給定一個(gè)初始值集合{b1,b2,…,bp} 。
3)確定一個(gè)梯度下降的方向,然后根據(jù)開始確定的移動(dòng)步長向下移動(dòng),并更新b1,b2,…,bp。
4)當(dāng)下降的高度小于定義的閾值的時(shí)候,則停止下降;否則繼續(xù)迭代搜索。
在多元線性回歸模型中,變量的權(quán)值確定分為兩種:一種是參數(shù)學(xué)習(xí)法,一種是非參數(shù)學(xué)習(xí)法。在參數(shù)學(xué)習(xí)法中,模型通過訓(xùn)練數(shù)據(jù)得到一系列權(quán)值(參數(shù)),然后根據(jù)這些權(quán)值來預(yù)測數(shù)據(jù)。非參數(shù)學(xué)習(xí)法在預(yù)測的過程中,每次都需要重新訓(xùn)練新的數(shù)據(jù),得到新的權(quán)值,這將導(dǎo)致每次訓(xùn)練得到的權(quán)值也是不一樣的。
在本文的問題中,PaaS平臺(tái)中資源需求量的波動(dòng)性可能會(huì)比較大,所以選擇非參數(shù)學(xué)習(xí)法進(jìn)行資源需求的預(yù)測。
3 PaaS平臺(tái)資源分配系統(tǒng)設(shè)計(jì)
為了能夠提供最優(yōu)的資源分配和計(jì)算服務(wù),并獲得整體更好的性價(jià)比和處理效率,就需要采用PaaS架構(gòu)的云計(jì)算平臺(tái)來進(jìn)行資源分配和服務(wù)。在這種PaaS架構(gòu)的云計(jì)算平臺(tái)中可以綜合考慮服務(wù)質(zhì)量(Quality of Service, QoS)、資源使用情況、服務(wù)器與虛擬機(jī)數(shù)量等諸多因素[21]。為此,本文在原有的云計(jì)算平臺(tái)基礎(chǔ)上,基于Hadoop的MapReduce架構(gòu)實(shí)現(xiàn)了一個(gè)Master-Slave模式的PaaS架構(gòu),并由此進(jìn)行資源分配和計(jì)算服務(wù),從而可以有效實(shí)現(xiàn)大型應(yīng)用的分布式部署,將一個(gè)應(yīng)用映射成多個(gè)應(yīng)用實(shí)例,實(shí)現(xiàn)應(yīng)用實(shí)例的跨虛擬機(jī)或者跨服務(wù)器部署。
為了能夠有效地收集PaaS平臺(tái)中的相關(guān)信息,并據(jù)此進(jìn)行負(fù)載預(yù)測和資源分配,以進(jìn)一步優(yōu)化和提高PaaS平臺(tái)的整體性能,構(gòu)建了如圖1所示的資源分配系統(tǒng)。
本文提出并采用的資源分配系統(tǒng)主要由APP Master節(jié)點(diǎn)和Web服務(wù)器集群組成,Web服務(wù)器提供對外訪問服務(wù),也是資源分配的主要對象。APP Master作為管理節(jié)點(diǎn)對集群的資源進(jìn)行管理,主要負(fù)責(zé)外部訪問的解析以及資源的分配,由請求解析模塊、監(jiān)控器、需求預(yù)測模塊、資源分配器等組成。各個(gè)模塊具體功能如下:
1)解析器主要負(fù)責(zé)對外部訪問的解析,當(dāng)有外部訪問時(shí),解析器會(huì)對其進(jìn)行信息提取,并對這些信息進(jìn)行相應(yīng)的計(jì)算得到負(fù)載值,以便預(yù)測算法和調(diào)度模塊更好地對資源進(jìn)行預(yù)測與調(diào)度。
2)監(jiān)控器會(huì)周期性地收集集群中各個(gè)服務(wù)器的資源負(fù)載信息,以及其中虛擬機(jī)、應(yīng)用實(shí)例所占資源的比率,然后將這些信息提交給資源分配器。
3)需求預(yù)測模塊中的預(yù)測算法能根據(jù)應(yīng)用的歷史負(fù)載信息預(yù)測應(yīng)用在下一時(shí)刻的資源需求量,并將其提交給資源分配器,作為其資源分配時(shí)的重要參考指標(biāo)。
4)資源分配器根據(jù)預(yù)測模塊的預(yù)測值以及監(jiān)控器提供的信息,利用其中的調(diào)度算法制定資源分配方案并實(shí)施。
在本調(diào)度系統(tǒng)中,APP Master是資源分配的核心節(jié)點(diǎn),依據(jù)用戶提交的請求或任務(wù)調(diào)度相應(yīng)的資源。它不僅需要在SLA范圍內(nèi)及時(shí)響應(yīng)用戶的請求,而且還需要盡可能提高云計(jì)算服務(wù)的資源利用率。然而,盲目地提高服務(wù)器的資源利用率會(huì)嚴(yán)重影響其中應(yīng)用的服務(wù)質(zhì)量,因此需要一個(gè)需求預(yù)測模塊來對云平臺(tái)中的應(yīng)用負(fù)載進(jìn)行預(yù)測,提前知曉應(yīng)用在下一時(shí)刻的負(fù)載,即資源需求量。這樣,可以使Mater中的資源分配器制定出更加合理、有效的資源分配方案,在保證SLA的同時(shí)提高云平臺(tái)的資源利用率。所以,需求預(yù)測模塊有著極其重要的意義,也是本文的研究重點(diǎn)。在此模塊中,本文設(shè)計(jì)了短期預(yù)測與周期性預(yù)測相結(jié)合的綜合模型。通過記錄在數(shù)據(jù)庫中的歷史數(shù)據(jù),計(jì)算出PaaS平臺(tái)中的應(yīng)用在未來時(shí)刻對資源的需求量。
4 實(shí)驗(yàn)結(jié)果及分析
實(shí)驗(yàn)中,從如圖1所示架構(gòu)的PaaS平臺(tái)資源分配系統(tǒng)的監(jiān)控模塊收集資源需求量數(shù)據(jù),作為相應(yīng)的數(shù)據(jù)集合。該P(yáng)aaS平臺(tái)主要用于提供Web訪問以及數(shù)據(jù)處理功能,對外訪問功能主要由Weblogic調(diào)度,數(shù)據(jù)處理功能由Oracle實(shí)現(xiàn)。對2016年10月到11月期間我們構(gòu)建的資源分配系統(tǒng)監(jiān)控模塊獲取的資源需求量數(shù)據(jù)進(jìn)行實(shí)驗(yàn)。
本文實(shí)驗(yàn)數(shù)據(jù)集包括20160條資源請求數(shù)據(jù)。選擇其中的3/4作為訓(xùn)練集,剩下的1/4作為測試集。為了彌補(bǔ)數(shù)據(jù)量的不足,采用交叉驗(yàn)證的方法來檢驗(yàn)資源需求預(yù)測模型預(yù)測的準(zhǔn)確性和性能的穩(wěn)定性。為了充分驗(yàn)證預(yù)測模型的有效性,本文在同一實(shí)驗(yàn)環(huán)境中重復(fù)進(jìn)行多次實(shí)驗(yàn),選擇多次實(shí)驗(yàn)的均值作為實(shí)驗(yàn)結(jié)果數(shù)據(jù)。通過這種方法,可以有效排除偶然因素帶來的實(shí)驗(yàn)干擾。
本文預(yù)測模型對資源需求量的預(yù)測值與實(shí)際值的對比結(jié)果如圖2所示。其中,虛線代表預(yù)測值,實(shí)線代表測試獲取的真實(shí)值??v坐標(biāo)為CPU數(shù)量,單位為臺(tái)。橫坐標(biāo)為時(shí)間,單位為毫秒。由圖2可以看出,資源需求預(yù)測結(jié)果與實(shí)際結(jié)果基本相同,雖然由于趨勢慣性的影響,在峰值時(shí)會(huì)產(chǎn)生一定的誤差,但很快就能收回來,與實(shí)際值保持一致??偟膩碚f,本文提出的預(yù)測模型能夠比較準(zhǔn)確地預(yù)測資源需求量變化的趨勢。
5 結(jié)語
針對PaaS平臺(tái)應(yīng)用負(fù)載具有周期性的特點(diǎn),本文設(shè)計(jì)了一種在資源需求預(yù)測的基礎(chǔ)上進(jìn)行資源分配的方法。針對資源需求預(yù)測,將短期預(yù)測與周期性預(yù)測相結(jié)合,利用多元回歸模型以及梯度下降算法對PaaS平臺(tái)中的資源需求量進(jìn)行預(yù)測。在資源分配上,基于MapReduce架構(gòu)設(shè)計(jì)實(shí)現(xiàn)了一個(gè)Master-Slave模式的PaaS架構(gòu),并由此進(jìn)行資源分配和計(jì)算服務(wù)。
實(shí)驗(yàn)結(jié)果表明,本文提出的模型和方法在預(yù)測準(zhǔn)確性方面相較傳統(tǒng)預(yù)測算法有明顯的提高,資源消耗量和任務(wù)平均等待時(shí)間分別有不同程度的下降。通過資源需求預(yù)測結(jié)果進(jìn)行資源分配,不僅能提高資源利用率,節(jié)省服務(wù)的成本,也能縮短對用戶的響應(yīng)時(shí)間,提升用戶的服務(wù)體驗(yàn),有效保證SLA的執(zhí)行。但由于實(shí)驗(yàn)部分所采用的數(shù)據(jù)集是從自己團(tuán)隊(duì)構(gòu)建的PaaS平臺(tái)中獲取的實(shí)驗(yàn)數(shù)據(jù),數(shù)據(jù)量不是很大,而且不一定具有廣泛的代表性,因此系統(tǒng)的性能指標(biāo)可能會(huì)因?qū)嶒?yàn)環(huán)境和實(shí)驗(yàn)數(shù)據(jù)的不同而不同。接下來,我們將進(jìn)一步搜集并采用公開的數(shù)據(jù)集來檢驗(yàn)?zāi)P秃头椒ǖ挠行浴?/p>
參考文獻(xiàn) (References)
[1] ARMBRUST M, FOX A, GRIFFITH R, et al. A view of cloud computing[J]. Communications of the ACM, 2010, 53(4): 50-58.
[2] XU P, ZHANG Y, SUN S. PaaS cloud resource scheduling techno-logy research [J]. Journal of Huazhong University of Science and Technology (Natural Science Edition), 2013, S2(41): 53-56.
[3] XU L, ZHANG S, LI J. A density based performance prediction model for cloud services [C]// Proceedings of the 2013 International Conference on Cloud Computing and Big Data. Washington, DC: IEEE Computer Society, 2013: 92-99.
[4] HU Y, DENG B, PENG F, et al. Workload prediction for cloud computing elasticity mechanism [C]// Proceedings of the 2016 IEEE International Conference on Cloud Computing and Big Data Analysis. Piscataway, NJ: IEEE, 2016: 244-249.
[5] 周文俊,曹健.基于預(yù)測及蟻群算法的云計(jì)算資源調(diào)度策略[J].計(jì)算機(jī)仿真,2012,29(9):239-242.(ZHOU W J, CAO J. Cloud computing resource scheduling strategy based on prediction and ACO algorithm [J]. Computer Simulation, 2012, 29(9): 239-242.)
[6] WANG C, HUNG W, YANG C. A prediction based energy conserving resources allocation scheme for cloud computing [C]// Proceedings of the 2014 IEEE International Conference on Granular Computing. Piscataway, NJ: IEEE, 2014: 320-324.
[7] GONG Z, GU X, WILKES J. Press: predictive elastic resource scaling for cloud systems [C]// Proceedings of the 2010 International Conference on Network and Service Management. Piscataway, NJ: IEEE, 2010: 9-16.
[8] ROY N, DUBEY A, GOKHALE A. Efficient autoscaling in the cloud using predictive models for workload forecasting [C]// Proceedings of the 4th IEEE International Conference on Cloud Computing. Piscataway, NJ: IEEE, 2011: 500-507.
[9] SONG W, XIAO Z, CHEN Q. Dynamic resource allocation using virtual machines for cloud computing environment [J]. IEEE Transactions on Parallel and Distributed Systems, 2013, 24(6): 1107-1117.
[10] 徐浩.基于神經(jīng)網(wǎng)絡(luò)的虛擬機(jī)能耗預(yù)測模型研究[D].北京:北京郵電大學(xué),2015: 41-49.(XU H. Research on neural network based virtual machine's power prediction model [D]. Beijing: Beijing University of Posts and Telecommunications, 2015: 41-49.)
[11] 王維,張英堂.BP 神經(jīng)網(wǎng)絡(luò)進(jìn)行時(shí)問序列預(yù)測的不足及改進(jìn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2007,28(21):5292-5294.(WANG W, ZHANG Y T. Analysis and improving way of BP ANN in predicting time series data [J]. Computer Engineering and Design, 2007, 28(21): 5292-5294.)
[12] 孟煜,張斌,郭軍,等.云計(jì)算環(huán)境下云服務(wù)用戶并發(fā)量的區(qū)間預(yù)測模型[J].計(jì)算機(jī)學(xué)報(bào),2017,40(2):378-396.(MENG Y, ZHANG B, GUO J, et al. Prediction interval estimation model of user concurrent request for cloud service in cloud environment [J]. Chinese Journal of Computers, 2017, 40(2): 378-396.)
[13] JIANG Y, PERNG C, CHEN R, et al. ASAP: a self-adaptive prediction system for instant cloud resource demand provisioning [C]// Proceedings of the 2011 IEEE 11th International Conference on Data Mining. Piscataway, NJ: IEEE, 2011: 1104-1109.
[14] PARK S, MUN Y. Prediction method about power consumption by using utilization rate of resource in cloud computing environment [C]// Proceedings of the 2016 International Conference on Big Data and Smart Computing. Piscataway, NJ: IEEE, 2016: 265-268.
[15] 溫鑒榮.PaaS云平臺(tái)中Java Web應(yīng)用調(diào)度機(jī)制的研究與實(shí)現(xiàn)[D].北京:北京郵電大學(xué),2013:10-19.(WEN J R. Research and implementation of Java Web application scheduling mechanism in PaaS [D]. Beijing: Beijing University of Posts and Telecommunications, 2013: 10-19.)
[16] CHEN H, FU X, TANG Z, et al. Resource monitoring and prediction in cloud computing environments [C]// Proceedings of the 3rd International Conference on Applied Computing and Information Technology/2nd International Conference on Computational Science and Intelligence. Piscataway, NJ:IEEE, 2015: 288-292.
[17] XU D, ZHANG X. An incremental clustering pattern sequence-based short-term load prediction for cloud computing [J]. International Journal of Grid and Utility Computing, 2016, 7(4): 304-312.)
[18] SHUMWAY R H, STOFFER D S. Time Series Analysis and Its Applications: with R Examples [M]. Berlin: Springer, 2006: 84-165.
[19] 張顯,王建學(xué),王錫凡,等.考慮多重周期性的短期電價(jià)預(yù)測[J].電力系統(tǒng)自動(dòng)化,2007,31(3):4-8.(ZHANG X, WANG J X, WANG X F, et al. Short-term electricity price forecasting based on price subsequences [J]. Automation of Electric Power Systems, 2007, 31(3): 4-8.)
[20] 沈富可,張衛(wèi),常潘.應(yīng)用時(shí)間序列分析進(jìn)行網(wǎng)絡(luò)負(fù)載預(yù)測[J].中山大學(xué)學(xué)報(bào)(自然科學(xué)版),2009,48(S1):84-86.(SHEN F K, ZHANG W, CHANG P. Time series analysis used to predict network load [J]. Acta Scientiarum Naturalium Universitatis Sunyatseni, 2009, 48(S1): 84-86.)
[21] 趙宏偉,申德榮,田力威.云計(jì)算環(huán)境下資源需求預(yù)測與調(diào)度方法的研究[J].小型微型計(jì)算機(jī)系統(tǒng),2016,37(4):659-663.(ZHAO H W, SHEN D R, TIAN L W. Research on resources forecasting and scheduling method in cloud computing environment [J]. Journal of Chinese Computer Systems, 2016, 37(4): 659-663.)