徐雅斌 彭宏恩
摘 要:針對(duì)缺乏PaaS平臺(tái)下資源需求的有效預(yù)測(cè)與優(yōu)化分配的問(wèn)題,提出一種資源需求預(yù)測(cè)模型和分配方法。首先,根據(jù)PaaS平臺(tái)中應(yīng)用對(duì)資源需求的周期性來(lái)對(duì)資源序列進(jìn)行切分,并在短期預(yù)測(cè)的基礎(chǔ)上結(jié)合應(yīng)用的多周期性特征,利用多元回歸算法建立綜合的預(yù)測(cè)模型。然后,基于MapReduce架構(gòu)設(shè)計(jì)實(shí)現(xiàn)了一個(gè)Master-Slave模式的PaaS平臺(tái)資源分配系統(tǒng)。最后,結(jié)合當(dāng)前任務(wù)請(qǐng)求和資源需求預(yù)測(cè)結(jié)果進(jìn)行資源分配。實(shí)驗(yàn)結(jié)果表明,采用該資源需求預(yù)測(cè)模型和分配方法后,相比于自回歸模型和指數(shù)平滑算法,平均絕對(duì)百分比誤差分別下降8.71個(gè)百分點(diǎn)和2.07個(gè)百分點(diǎn),均方根誤差分別下降2.01個(gè)百分點(diǎn)和0.46個(gè)百分點(diǎn)。所提預(yù)測(cè)模型的預(yù)測(cè)結(jié)果不僅誤差小,與真實(shí)值的擬合程度也較高,而且利用較小的時(shí)間開(kāi)銷就可以獲得較高的準(zhǔn)確度。此外,使用該預(yù)測(cè)模型的PaaS平臺(tái)的資源請(qǐng)求的平均等待時(shí)間有了明顯的下降。
關(guān)鍵詞:云計(jì)算;平臺(tái)即服務(wù);需求預(yù)測(cè);資源分配;多元回歸
中圖分類號(hào): 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],越來(lái)越多的應(yīng)用開(kāi)始部署在云中。在云計(jì)算的三層服務(wù)體系中,作為承上啟下的平臺(tái)即服務(wù)(Platform-as-a-Service, PaaS)層通過(guò)為應(yīng)用程序提供完備的部署和運(yùn)行環(huán)境,使開(kāi)發(fā)者在開(kāi)發(fā)的過(guò)程中只需關(guān)注應(yīng)用開(kāi)發(fā)本身,而不需要關(guān)心軟件及硬件環(huán)境,這可以在很大程度上節(jié)省開(kāi)發(fā)人員的工作量,縮短開(kāi)發(fā)周期。
PaaS平臺(tái)中資源需求量的獲取主要有兩種方式:一種是實(shí)時(shí)獲取應(yīng)用對(duì)資源的訪問(wèn)次數(shù)及使用量,并估算出當(dāng)前應(yīng)用對(duì)資源的需求量。由于PaaS平臺(tái)中的應(yīng)用一般規(guī)模較大,并發(fā)程度較高,且資源需求變化較快[2],這種實(shí)時(shí)獲取的方法不可避免地會(huì)有一定的滯后性,給資源分配策略帶來(lái)較大的壓力,甚至?xí)`反服務(wù)等級(jí)協(xié)議(Service-Level Agreement, SLA)[3]。另一種方式是采用預(yù)測(cè)算法對(duì)PaaS中應(yīng)用的資源需求量進(jìn)行預(yù)測(cè),根據(jù)歷史數(shù)據(jù),預(yù)測(cè)應(yīng)用在未來(lái)一段時(shí)間可能的資源需求量。一旦獲知未來(lái)的資源需求量,資源分配器就可以提前制定相應(yīng)的策略[4]。這種方式能夠?yàn)镻aaS平臺(tái)的資源分配提供更加科學(xué)、合理的決策支持,對(duì)PaaS平臺(tái)的資源優(yōu)化配置以及系統(tǒng)的穩(wěn)定運(yùn)行有直接的影響。因此,資源需求預(yù)測(cè)是目前PaaS平臺(tái)資源分配研究的重點(diǎn)。
目前的云計(jì)算資源預(yù)測(cè)模型可以分為兩類:第一類是基于時(shí)間序列的基礎(chǔ)預(yù)測(cè)模型;第二類是基于神經(jīng)網(wǎng)絡(luò)、支持向量機(jī)(Support Vector Machine, SVM)等機(jī)器學(xué)習(xí)方法的預(yù)測(cè)模型。
文獻(xiàn)[5]利用動(dòng)態(tài)趨勢(shì)預(yù)測(cè)的思想,通過(guò)當(dāng)前負(fù)載與上一時(shí)刻負(fù)載的比較來(lái)預(yù)測(cè)負(fù)載上升或下降的趨勢(shì),并且通過(guò)當(dāng)前負(fù)載與歷史負(fù)載均值的比較,調(diào)整負(fù)載增加或減少的幅度,計(jì)算下一時(shí)刻的負(fù)載值。該模型簡(jiǎn)單快速,但是預(yù)測(cè)誤差率相對(duì)較大。
文獻(xiàn)[6]采用指數(shù)平滑的技術(shù)實(shí)現(xiàn)對(duì)即將到來(lái)任務(wù)的預(yù)測(cè),在云計(jì)算系統(tǒng)中獲得最近的任務(wù)序列,采用指數(shù)平滑(Exponential Smoothing, ES)算法,通過(guò)任務(wù)的歷史信息預(yù)測(cè)即將到來(lái)的任務(wù)的趨勢(shì),如到達(dá)時(shí)間、任務(wù)大小和執(zhí)行時(shí)間。
文獻(xiàn)[7]提出了云計(jì)算中的彈性資源擴(kuò)展預(yù)測(cè)方案,在該方案中,采用輕量級(jí)的信號(hào)處理技術(shù)與統(tǒng)計(jì)學(xué)方法,實(shí)現(xiàn)動(dòng)態(tài)的資源需求的在線預(yù)測(cè)。具體方法為:利用快速傅里葉變換技術(shù)分析資源需求序列的特征,在沒(méi)有相似負(fù)載模式時(shí)使用離散的馬爾可夫過(guò)程對(duì)資源需求進(jìn)行預(yù)測(cè)。
文獻(xiàn)[8]綜合考慮最小化成本與SLA,采用基于二階自回歸移動(dòng)均值的預(yù)測(cè)模型。通過(guò)建立用戶行為模型,對(duì)用戶的歷史行為進(jìn)行分析,計(jì)算出未來(lái)短期內(nèi)負(fù)載所需的資源量。該算法中將部分變量賦予固定值,這可能會(huì)影響算法的適應(yīng)能力以及算法的靈活性。
文獻(xiàn)[9]中基于虛擬機(jī)的外部表現(xiàn),提出了利用TCP-like模式計(jì)算指數(shù)加權(quán)移動(dòng)平均值來(lái)預(yù)測(cè)服務(wù)器上的CPU負(fù)載。模型中最重要的是穩(wěn)定性與響應(yīng)能力的折中因子a,通過(guò)實(shí)驗(yàn)確定合適的a,并且通過(guò)調(diào)整a的正負(fù)性,實(shí)現(xiàn)對(duì)負(fù)載波動(dòng)趨勢(shì)的預(yù)測(cè)。
以上基于時(shí)間序列的傳統(tǒng)預(yù)測(cè)方法具有模型簡(jiǎn)單、收斂速度快等特點(diǎn)。但是,由于PaaS中應(yīng)用業(yè)務(wù)內(nèi)容的多樣性以及服務(wù)時(shí)間的不一致性的影響,導(dǎo)致應(yīng)用對(duì)資源的需求量具有很強(qiáng)的不確定性。傳統(tǒng)的基于時(shí)間序列的預(yù)測(cè)模型在這種情況下會(huì)不可避免地產(chǎn)生較大的誤差,不僅可能會(huì)引發(fā)違反SLA問(wèn)題,而且可能導(dǎo)致資源浪費(fèi)。因此,許多研究者將機(jī)器學(xué)習(xí)方法應(yīng)用到資源需求預(yù)測(cè)中。
文獻(xiàn)[10]采用兩層的前向反饋徑向基函數(shù)神經(jīng)網(wǎng)絡(luò)來(lái)對(duì)云計(jì)算環(huán)境中單虛擬機(jī)能耗進(jìn)行預(yù)測(cè)。由于神經(jīng)網(wǎng)絡(luò)具有較強(qiáng)的非線性擬合能力,可以通過(guò)訓(xùn)練逼近復(fù)雜的非線性函數(shù)[11],得到較好的近似解。
針對(duì)傳統(tǒng)的單值預(yù)測(cè)所包含的信息量過(guò)少、不能支持完善的自適應(yīng)調(diào)整策略、會(huì)引發(fā)不必要的調(diào)整等問(wèn)題,文獻(xiàn)[12]利用SVM對(duì)云環(huán)境中用戶的并發(fā)量進(jìn)行預(yù)測(cè),并采用梯度下降粒子群算法進(jìn)行優(yōu)化。
文獻(xiàn)[13]采用兩層模式進(jìn)行資源預(yù)測(cè)。第一層采用包括自回歸、移動(dòng)均值、神經(jīng)網(wǎng)絡(luò)等多個(gè)子模型的自回歸組合,并且根據(jù)預(yù)測(cè)誤差對(duì)組合中的每個(gè)預(yù)測(cè)子模型的權(quán)重進(jìn)行調(diào)整。該模型的第二層利用不同虛擬機(jī)之間的關(guān)系以及不同序列之間的相關(guān)性來(lái)消除噪聲數(shù)據(jù)的干擾,提高預(yù)測(cè)的健壯性。這個(gè)預(yù)測(cè)模型綜合考慮了不同虛擬機(jī)的交叉相關(guān)性,但是在云服務(wù)中,僅能根據(jù)虛擬機(jī)的外在表現(xiàn)(如CPU、內(nèi)存的使用情況)判斷其不同虛擬機(jī)之間的差別,而這種差別是微弱的。
綜合云計(jì)算中資源預(yù)測(cè)的發(fā)展趨勢(shì)以及國(guó)內(nèi)外研究現(xiàn)狀得出,傳統(tǒng)的基于簡(jiǎn)單時(shí)間序列的預(yù)測(cè)方法很難適應(yīng)云計(jì)算環(huán)境中復(fù)雜多變的環(huán)境。而目前基于機(jī)器學(xué)習(xí)的預(yù)測(cè)方法,無(wú)論是神經(jīng)網(wǎng)絡(luò)、SVM還是其他一些算法,大部分是針對(duì)IaaS層的,是以虛擬機(jī)為基本對(duì)象的預(yù)測(cè)算法[14],而針對(duì)PaaS層面資源預(yù)測(cè)方法的研究相對(duì)較少。由于PaaS層主要面向的對(duì)象為應(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ī)的資源需求量沒(méi)有明顯的周期性,而對(duì)于PaaS平臺(tái)中的某個(gè)應(yīng)用而言,通過(guò)分析是可以發(fā)現(xiàn)其周期性的。
通過(guò)對(duì)PaaS平臺(tái)中應(yīng)用對(duì)資源的需求進(jìn)行準(zhǔn)確的預(yù)測(cè),可以優(yōu)化PaaS平臺(tái)的資源配置,合理、有效地進(jìn)行資源分配,從而提高云平臺(tái)的應(yīng)用效率,確保PaaS平臺(tái)上應(yīng)用的穩(wěn)定運(yùn)行[16]。準(zhǔn)確的預(yù)測(cè)算法能使PaaS平臺(tái)預(yù)知應(yīng)用負(fù)載的變化趨勢(shì),并根據(jù)負(fù)載變化趨勢(shì)更好地實(shí)現(xiàn)資源的有效配置和彈性分配,使PaaS平臺(tái)上的應(yīng)用可以高效平穩(wěn)地運(yùn)行,避免不必要的開(kāi)銷。因此,資源需求預(yù)測(cè)技術(shù)可以有效提高資源分配的科學(xué)性和準(zhǔn)確性。
為此,本文提出并設(shè)計(jì)了面向PaaS平臺(tái)的資源需求預(yù)測(cè)模型和資源分配方法,通過(guò)基于時(shí)間序列的短期預(yù)測(cè)與周期性預(yù)測(cè)相結(jié)合進(jìn)行綜合預(yù)測(cè),從而對(duì)PaaS平臺(tái)的資源進(jìn)行科學(xué)、合理的分配。
1 基于時(shí)間序列的短期預(yù)測(cè)
短期預(yù)測(cè)對(duì)于云計(jì)算的資源配置有著重要的意義[17]。短期時(shí)間序列預(yù)測(cè)的主要思想是利用某一事物過(guò)去的行為來(lái)預(yù)測(cè)其將來(lái)的可能變化,即通過(guò)一段時(shí)間內(nèi)的歷史數(shù)據(jù)來(lái)預(yù)測(cè)將來(lái)短期內(nèi)該事物的變化趨勢(shì)。相較其他方法而言,由于自回歸模型具有高效、簡(jiǎn)潔的特點(diǎn),因而我們采用自回歸模型進(jìn)行短期時(shí)間序列預(yù)測(cè)。
自回歸模型(Autoregressive Model)的特點(diǎn)是用自身作回歸變量,是一種利用前期若干時(shí)刻的隨機(jī)變量的線性組合,預(yù)測(cè)即將到來(lái)的短時(shí)間內(nèi)變量變化趨勢(shì)的線性回歸模型[18]。具體形式如式(1):
為了獲得自回歸模型的最佳擬合系數(shù),需要找到一種參數(shù)擬合方法。最小二乘法是一種數(shù)學(xué)優(yōu)化技術(shù),通過(guò)最小化誤差的平方和尋找數(shù)據(jù)的最佳匹配,其特點(diǎn)是簡(jiǎn)潔高效,不需要大量迭代。為此,本文中使用最小二乘法進(jìn)行參數(shù)擬合,使其與實(shí)際值的擬合誤差最小。通過(guò)求得模型中參數(shù)的最優(yōu)值,解決回歸問(wèn)題。
在回歸模型中,使總的擬合誤差(即擬殘差)達(dá)到最小作為選擇擬合曲線有三種方法:
1)用“殘差和最小”確定直線的位置。但是這個(gè)標(biāo)準(zhǔn)存在一些不足,如果只是對(duì)誤差進(jìn)行簡(jiǎn)單的相加求和,會(huì)出現(xiàn)“殘差和” 相互抵消的問(wèn)題。
2)為了解決“殘差和”會(huì)抵消的問(wèn)題,可以使用“殘差”絕對(duì)值的和最小作為標(biāo)準(zhǔn),但是絕對(duì)值計(jì)算起來(lái)比較麻煩。
3)以“殘差平方和最小”為標(biāo)準(zhǔn),使用最小二乘法解決問(wèn)題。采用這種方法,不僅計(jì)算比較方便,得到的估計(jì)量還具有優(yōu)良的特性。
在本文的回歸模型中,采用第三種方法,需要使所有的觀測(cè)值的“殘差平方和”最小,通過(guò)計(jì)算得到自回歸模型的平方損失函數(shù):
2 基于多元回歸模型的綜合預(yù)測(cè)
單獨(dú)使用基于時(shí)間序列的算法或回歸算法的預(yù)測(cè)結(jié)果都是不準(zhǔn)確的。因?yàn)?,短期時(shí)間序列算法只能根據(jù)近期的數(shù)據(jù)進(jìn)行趨勢(shì)預(yù)測(cè),不能充分利用歷史數(shù)據(jù),因而預(yù)測(cè)的精度不高;如果只考慮周期性預(yù)測(cè),雖然能充分利用歷史數(shù)據(jù),但是不能很好地掌握當(dāng)前資源需求的變化趨勢(shì),尤其是在資源需求波動(dòng)性較大的情況下,會(huì)產(chǎn)生較大的誤差。在本文的模型中,充分考慮了這兩者的不足,結(jié)合時(shí)間序列與回歸分析的優(yōu)勢(shì)來(lái)預(yù)測(cè)PaaS平臺(tái)中應(yīng)用的動(dòng)態(tài)資源需求。
在本文提出的預(yù)測(cè)模型中,因?yàn)橐C合考慮資源需求的短期趨勢(shì)以及周期性,這時(shí)采用自回歸以及一元回歸分析進(jìn)行預(yù)測(cè)是難以奏效的。因此,在本文的預(yù)測(cè)算法中,采用多元回歸模型作為綜合預(yù)測(cè)的基礎(chǔ)。
多元回歸是自然科學(xué)領(lǐng)域的一種非常重要的多元統(tǒng)計(jì)分析方法,它以數(shù)理統(tǒng)計(jì)為基礎(chǔ),通過(guò)對(duì)大量觀測(cè)值或者歷史數(shù)據(jù)的分析,確定各個(gè)變量之間的相關(guān)性。在一個(gè)變量受多個(gè)因素影響的問(wèn)題中,多元回歸算法是一種行之有效的方法[19]。在本文的問(wèn)題中,假設(shè)需要預(yù)測(cè)的值為y,樣本變量為x,每組樣本數(shù)量為p,n組觀測(cè)值為:
使用梯度下降算法計(jì)算時(shí),b首先被初始化,然后通過(guò)不斷迭代計(jì)算b的參數(shù),最終結(jié)果收斂于最優(yōu)值。
在梯度下降算法中,α決定了迭代搜索的速度。如果α取值較大,可能在迭代的過(guò)程中越過(guò)最小值,出現(xiàn)overshoot minimum的現(xiàn)象;如果α過(guò)小,會(huì)造成迭代次數(shù)過(guò)多,導(dǎo)致算法的速度很慢。因此,應(yīng)該依據(jù)問(wèn)題的具體情況確定合適的α值。
梯度下降算法的步驟如下:
1)確定移動(dòng)步長(zhǎng)的大小(Learning rate)。
2)給定一個(gè)初始值集合{b1,b2,…,bp} 。
3)確定一個(gè)梯度下降的方向,然后根據(jù)開(kāi)始確定的移動(dòng)步長(zhǎng)向下移動(dòng),并更新b1,b2,…,bp。
4)當(dāng)下降的高度小于定義的閾值的時(shí)候,則停止下降;否則繼續(xù)迭代搜索。
在多元線性回歸模型中,變量的權(quán)值確定分為兩種:一種是參數(shù)學(xué)習(xí)法,一種是非參數(shù)學(xué)習(xí)法。在參數(shù)學(xué)習(xí)法中,模型通過(guò)訓(xùn)練數(shù)據(jù)得到一系列權(quán)值(參數(shù)),然后根據(jù)這些權(quán)值來(lái)預(yù)測(cè)數(shù)據(jù)。非參數(shù)學(xué)習(xí)法在預(yù)測(cè)的過(guò)程中,每次都需要重新訓(xùn)練新的數(shù)據(jù),得到新的權(quán)值,這將導(dǎo)致每次訓(xùn)練得到的權(quán)值也是不一樣的。
在本文的問(wèn)題中,PaaS平臺(tái)中資源需求量的波動(dòng)性可能會(huì)比較大,所以選擇非參數(shù)學(xué)習(xí)法進(jìn)行資源需求的預(yù)測(cè)。
3 PaaS平臺(tái)資源分配系統(tǒng)設(shè)計(jì)
為了能夠提供最優(yōu)的資源分配和計(jì)算服務(wù),并獲得整體更好的性價(jià)比和處理效率,就需要采用PaaS架構(gòu)的云計(jì)算平臺(tái)來(lá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ù)測(cè)和資源分配,以進(jìn)一步優(yōu)化和提高PaaS平臺(tái)的整體性能,構(gòu)建了如圖1所示的資源分配系統(tǒng)。
本文提出并采用的資源分配系統(tǒng)主要由APP Master節(jié)點(diǎn)和Web服務(wù)器集群組成,Web服務(wù)器提供對(duì)外訪問(wèn)服務(wù),也是資源分配的主要對(duì)象。APP Master作為管理節(jié)點(diǎn)對(duì)集群的資源進(jìn)行管理,主要負(fù)責(zé)外部訪問(wèn)的解析以及資源的分配,由請(qǐng)求解析模塊、監(jiān)控器、需求預(yù)測(cè)模塊、資源分配器等組成。各個(gè)模塊具體功能如下:
1)解析器主要負(fù)責(zé)對(duì)外部訪問(wèn)的解析,當(dāng)有外部訪問(wèn)時(shí),解析器會(huì)對(duì)其進(jìn)行信息提取,并對(duì)這些信息進(jìn)行相應(yīng)的計(jì)算得到負(fù)載值,以便預(yù)測(cè)算法和調(diào)度模塊更好地對(duì)資源進(jìn)行預(yù)測(cè)與調(diào)度。
2)監(jiān)控器會(huì)周期性地收集集群中各個(gè)服務(wù)器的資源負(fù)載信息,以及其中虛擬機(jī)、應(yīng)用實(shí)例所占資源的比率,然后將這些信息提交給資源分配器。
3)需求預(yù)測(cè)模塊中的預(yù)測(cè)算法能根據(jù)應(yīng)用的歷史負(fù)載信息預(yù)測(cè)應(yīng)用在下一時(shí)刻的資源需求量,并將其提交給資源分配器,作為其資源分配時(shí)的重要參考指標(biāo)。
4)資源分配器根據(jù)預(yù)測(cè)模塊的預(yù)測(cè)值以及監(jiān)控器提供的信息,利用其中的調(diào)度算法制定資源分配方案并實(shí)施。
在本調(diào)度系統(tǒng)中,APP Master是資源分配的核心節(jié)點(diǎn),依據(jù)用戶提交的請(qǐng)求或任務(wù)調(diào)度相應(yīng)的資源。它不僅需要在SLA范圍內(nèi)及時(shí)響應(yīng)用戶的請(qǐng)求,而且還需要盡可能提高云計(jì)算服務(wù)的資源利用率。然而,盲目地提高服務(wù)器的資源利用率會(huì)嚴(yán)重影響其中應(yīng)用的服務(wù)質(zhì)量,因此需要一個(gè)需求預(yù)測(cè)模塊來(lái)對(duì)云平臺(tái)中的應(yīng)用負(fù)載進(jìn)行預(yù)測(cè),提前知曉應(yīng)用在下一時(shí)刻的負(fù)載,即資源需求量。這樣,可以使Mater中的資源分配器制定出更加合理、有效的資源分配方案,在保證SLA的同時(shí)提高云平臺(tái)的資源利用率。所以,需求預(yù)測(cè)模塊有著極其重要的意義,也是本文的研究重點(diǎn)。在此模塊中,本文設(shè)計(jì)了短期預(yù)測(cè)與周期性預(yù)測(cè)相結(jié)合的綜合模型。通過(guò)記錄在數(shù)據(jù)庫(kù)中的歷史數(shù)據(jù),計(jì)算出PaaS平臺(tái)中的應(yīng)用在未來(lái)時(shí)刻對(duì)資源的需求量。
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訪問(wèn)以及數(shù)據(jù)處理功能,對(duì)外訪問(wèn)功能主要由Weblogic調(diào)度,數(shù)據(jù)處理功能由Oracle實(shí)現(xiàn)。對(duì)2016年10月到11月期間我們構(gòu)建的資源分配系統(tǒng)監(jiān)控模塊獲取的資源需求量數(shù)據(jù)進(jìn)行實(shí)驗(yàn)。
本文實(shí)驗(yàn)數(shù)據(jù)集包括20160條資源請(qǐng)求數(shù)據(jù)。選擇其中的3/4作為訓(xùn)練集,剩下的1/4作為測(cè)試集。為了彌補(bǔ)數(shù)據(jù)量的不足,采用交叉驗(yàn)證的方法來(lái)檢驗(yàn)資源需求預(yù)測(cè)模型預(yù)測(cè)的準(zhǔn)確性和性能的穩(wěn)定性。為了充分驗(yàn)證預(yù)測(cè)模型的有效性,本文在同一實(shí)驗(yàn)環(huán)境中重復(fù)進(jìn)行多次實(shí)驗(yàn),選擇多次實(shí)驗(yàn)的均值作為實(shí)驗(yàn)結(jié)果數(shù)據(jù)。通過(guò)這種方法,可以有效排除偶然因素帶來(lái)的實(shí)驗(yàn)干擾。
本文預(yù)測(cè)模型對(duì)資源需求量的預(yù)測(cè)值與實(shí)際值的對(duì)比結(jié)果如圖2所示。其中,虛線代表預(yù)測(cè)值,實(shí)線代表測(cè)試獲取的真實(shí)值。縱坐標(biāo)為CPU數(shù)量,單位為臺(tái)。橫坐標(biāo)為時(shí)間,單位為毫秒。由圖2可以看出,資源需求預(yù)測(cè)結(jié)果與實(shí)際結(jié)果基本相同,雖然由于趨勢(shì)慣性的影響,在峰值時(shí)會(huì)產(chǎn)生一定的誤差,但很快就能收回來(lái),與實(shí)際值保持一致??偟膩?lái)說(shuō),本文提出的預(yù)測(cè)模型能夠比較準(zhǔn)確地預(yù)測(cè)資源需求量變化的趨勢(shì)。
5 結(jié)語(yǔ)
針對(duì)PaaS平臺(tái)應(yīng)用負(fù)載具有周期性的特點(diǎn),本文設(shè)計(jì)了一種在資源需求預(yù)測(cè)的基礎(chǔ)上進(jìn)行資源分配的方法。針對(duì)資源需求預(yù)測(cè),將短期預(yù)測(cè)與周期性預(yù)測(cè)相結(jié)合,利用多元回歸模型以及梯度下降算法對(duì)PaaS平臺(tái)中的資源需求量進(jìn)行預(yù)測(cè)。在資源分配上,基于MapReduce架構(gòu)設(shè)計(jì)實(shí)現(xiàn)了一個(gè)Master-Slave模式的PaaS架構(gòu),并由此進(jìn)行資源分配和計(jì)算服務(wù)。
實(shí)驗(yàn)結(jié)果表明,本文提出的模型和方法在預(yù)測(cè)準(zhǔn)確性方面相較傳統(tǒng)預(yù)測(cè)算法有明顯的提高,資源消耗量和任務(wù)平均等待時(shí)間分別有不同程度的下降。通過(guò)資源需求預(yù)測(cè)結(jié)果進(jìn)行資源分配,不僅能提高資源利用率,節(jié)省服務(wù)的成本,也能縮短對(duì)用戶的響應(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ù)的不同而不同。接下來(lái),我們將進(jìn)一步搜集并采用公開(kāi)的數(shù)據(jù)集來(lái)檢驗(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ù)測(cè)及蟻群算法的云計(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ù)測(cè)模型研究[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í)問(wèn)序列預(yù)測(cè)的不足及改進(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ù)測(cè)模型[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ù)測(cè)[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ù)測(cè)[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ù)測(cè)與調(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.)