許曄炫,潘景山,王繼彬
(1.山東建筑大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院;2.國家超級(jí)計(jì)算機(jī)濟(jì)南中心,山東濟(jì)南 250101)
云計(jì)算可以按需提供可擴(kuò)展和可靠的計(jì)算服務(wù),如基礎(chǔ)設(shè)施、平臺(tái)和軟件服務(wù),改變了信息和通信技術(shù)行業(yè),成為一種新興的計(jì)算范式[1]。云計(jì)算主要是一種結(jié)合虛擬化、服務(wù)管理自動(dòng)化和標(biāo)準(zhǔn)化的技術(shù),它可以提供靈活的計(jì)算能力和高性能的數(shù)據(jù)分析方法[2-3]。企業(yè)可以在云平臺(tái)上運(yùn)行多種服務(wù),無需構(gòu)建數(shù)據(jù)中心。云計(jì)算的廣泛應(yīng)用構(gòu)建了大量的數(shù)據(jù)中心,這些數(shù)據(jù)中心消耗了大量的電能,產(chǎn)生了大量的熱量。云計(jì)算數(shù)據(jù)中心的機(jī)架式服務(wù)器每臺(tái)消耗可高達(dá)1 000W,最高溫度可達(dá)100℃[4]。服務(wù)器溫度升高不僅導(dǎo)致冷卻成本增加,還會(huì)產(chǎn)生嚴(yán)重影響系統(tǒng)可靠性的熱點(diǎn)。在使用云服務(wù)的過程中,由于每臺(tái)服務(wù)器中的任務(wù)不同,耗能不同,會(huì)出現(xiàn)某一臺(tái)服務(wù)器處于高能耗狀態(tài),使得服務(wù)器溫度上升,從而形成熱點(diǎn)。熱點(diǎn)的出現(xiàn)會(huì)增加服務(wù)器故障率,損害服務(wù)器使用壽命。研究表明[5],當(dāng)服務(wù)器溫度高于21℃時(shí),服務(wù)器溫度每增加10℃,故障率翻倍。因此,避免服務(wù)器出現(xiàn)熱點(diǎn)現(xiàn)象具有重要研究意義。
目前,國內(nèi)外對(duì)如何避免服務(wù)器熱點(diǎn)現(xiàn)象的研究較少。預(yù)測服務(wù)器能耗能夠幫助服務(wù)器提前感知下一時(shí)刻的狀態(tài),從而作出相應(yīng)調(diào)整,避免出現(xiàn)熱點(diǎn)現(xiàn)象。隨機(jī)森林由于其運(yùn)算速度快、預(yù)測精準(zhǔn)度高且應(yīng)用范圍廣等優(yōu)點(diǎn),已廣泛應(yīng)用于各種算法和計(jì)算機(jī)等交叉學(xué)科。鑒于此,本文使用隨機(jī)森林預(yù)測服務(wù)器未來能耗。OpenStack作為開源云平臺(tái)的行業(yè)標(biāo)準(zhǔn)[6],能夠提供可靠的云部署方案,目前國內(nèi)外許多云計(jì)算企業(yè)都以O(shè)penStack 作為云計(jì)算架構(gòu)的基石。因此,本文使用OpenStack 作為云計(jì)算管理平臺(tái),管理云計(jì)算各種物理資源。
本文工作主要如下:①基于OpenStack 調(diào)度策略,通過使用隨機(jī)森林獲取預(yù)測服務(wù)器能耗參數(shù),為虛擬機(jī)創(chuàng)建、遷移提供數(shù)據(jù)支撐,進(jìn)而降低能耗,避免服務(wù)器出現(xiàn)熱點(diǎn)現(xiàn)象;②針對(duì)預(yù)測不可避免地出現(xiàn)誤差問題,本文設(shè)計(jì)了一種預(yù)測容錯(cuò)機(jī)制,避免由于預(yù)測誤差過大而出現(xiàn)虛擬機(jī)不遷移/不必要遷移問題;③通過在服務(wù)器上進(jìn)行負(fù)載實(shí)驗(yàn),確定最優(yōu)連續(xù)預(yù)測次數(shù)。同時(shí),將能耗結(jié)果進(jìn)行比較,實(shí)驗(yàn)結(jié)果表明,ECPRF 算法能將能耗控制在閾值以下,避免服務(wù)器熱點(diǎn)現(xiàn)象出現(xiàn)。
在預(yù)測方面,楊鵬史等[7]結(jié)合公交車實(shí)測GPS 數(shù)據(jù),利用線性回歸預(yù)測了公交的平均運(yùn)行速度和運(yùn)行模式分布,更適合面向大型公交車系統(tǒng)進(jìn)行實(shí)時(shí)動(dòng)態(tài)的排放能耗預(yù)測。郭樹昌等[8]使用全球預(yù)報(bào)系統(tǒng)分析場數(shù)據(jù),利用嶺回歸處理共線性數(shù)據(jù),得到閃電潛勢預(yù)報(bào)模型,預(yù)報(bào)命中率達(dá)0.75。顧艷文等[9]使用Lasso 回歸方法對(duì)變量進(jìn)行篩選,建立SVR 模型預(yù)測消費(fèi)者信心指數(shù),預(yù)測效果較好。
隨機(jī)森林使用Bagging 的方法是將多個(gè)決策樹組合在一起,以投票機(jī)制進(jìn)行分類的有監(jiān)督學(xué)習(xí)算法,它具有計(jì)算速度快、泛化能力強(qiáng)、分類性能好的優(yōu)點(diǎn)[10]。
隨機(jī)森林在預(yù)測方面應(yīng)用較為成熟,劉興等[11]對(duì)風(fēng)力數(shù)據(jù)使用聚類分析,使用核主成分分析法處理特征數(shù)據(jù),采用隨機(jī)森林方法進(jìn)行預(yù)測,降低了預(yù)測誤差。閆政旭等[12]提出一種基于Pearson 系數(shù)的隨機(jī)森林組合模型算法,該算法利用Pearson 系數(shù)刪除無關(guān)特性,通過改進(jìn)網(wǎng)格搜索法對(duì)決策樹進(jìn)行調(diào)優(yōu),最后通過隨機(jī)森林進(jìn)行回歸預(yù)測,實(shí)現(xiàn)了對(duì)股票價(jià)格的短期回歸。因此,本文使用隨機(jī)森林方法對(duì)服務(wù)器未來能耗進(jìn)行預(yù)測。
在云計(jì)算調(diào)度策略方面,鄧志龍等[13]研究了在Open-Stack 中資源負(fù)載動(dòng)態(tài)變化情況下的虛擬機(jī)遷移問題,通過衡量虛擬機(jī)與計(jì)算節(jié)點(diǎn)的匹配度選取節(jié)點(diǎn),減少了遷移成本,降低了數(shù)據(jù)中心的能耗。羅平等[14]考慮到數(shù)據(jù)中心在部署大規(guī)模虛擬機(jī)時(shí)并未將全局能耗、服務(wù)器性能作為參考因素,于是設(shè)計(jì)一種基于動(dòng)態(tài)平衡的雙策略差分進(jìn)化算法的虛擬機(jī)放置策略,在大規(guī)模創(chuàng)建虛擬機(jī)時(shí),使數(shù)據(jù)中心總功率增加到最小,從而達(dá)到減少數(shù)據(jù)中心能耗的問題。PIAO 等[15]、Kantarci 等[16]將CPU、內(nèi)存和帶寬作為評(píng)估參數(shù),提出混合整數(shù)線性規(guī)劃(MILP)使功耗最小化,從而實(shí)現(xiàn)云數(shù)據(jù)中心資源的公平利用和能耗優(yōu)化。Corradi等[17]提出一種動(dòng)態(tài)遷移方法來平衡服務(wù)器資源,它僅使用CPU 利用率作為主機(jī)過載檢測參數(shù),不考慮虛擬機(jī)遷移后目標(biāo)主機(jī)的未來狀態(tài)。Yang 等[18]實(shí)現(xiàn)一個(gè)可以監(jiān)控OpenStack 和OpenStack 上虛擬機(jī)實(shí)時(shí)狀態(tài)的云基礎(chǔ)設(shè)施,監(jiān)控項(xiàng)目包括CPU 利用率、內(nèi)存負(fù)載和功耗。此外,通過實(shí)時(shí)遷移實(shí)現(xiàn)節(jié)能。Pyati 等[19]提出一種在OpenStack 云中動(dòng)態(tài)整合虛擬機(jī)的新方法,監(jiān)控每個(gè)主機(jī)的CPU 利用率、RAM 利用率和實(shí)例數(shù),使用SVM 分類模型執(zhí)行主機(jī)過載檢測并根據(jù)分類結(jié)果進(jìn)行負(fù)載均衡整合。Khan 等[20]提出一種通過整合虛擬機(jī)、容器和容器化應(yīng)用程序之前的有效遷移以降低數(shù)據(jù)中心能耗。
本文所提出的基于隨機(jī)森林的能耗預(yù)測調(diào)度算法(ECPRF)結(jié)構(gòu)如圖1 所示,主要分為3 部分:能耗采集、能耗預(yù)測、OpenStack 調(diào)度策略。其中,OpenStack 調(diào)度策略分為具有容錯(cuò)機(jī)制的虛擬機(jī)創(chuàng)建、虛擬機(jī)遷移兩部分。
Fig.1 Flow of ECPRF algorithm圖1 ECPRF算法流程
IPMI(Intelligent Platform Management Interface)是智能平臺(tái)管理接口的縮寫,用于帶外管理計(jì)算機(jī),使用IPMI 可以獲取服務(wù)器當(dāng)前能耗,如圖2所示。ECPRF 算法使用IPMITOOL 中ipmitool sdr list 命令周期向服務(wù)器發(fā)送,并將服務(wù)器返回的能耗數(shù)據(jù)寫入MySQL 數(shù)據(jù)庫,并標(biāo)注采集時(shí)間,構(gòu)成服務(wù)器能耗數(shù)據(jù)集。
隨機(jī)森林采用BootStrap 方法對(duì)含有M 個(gè)樣本的數(shù)據(jù)集有放回地隨機(jī)抽取N(N≤M)個(gè)樣本組成新樣本,每一次的樣本不完全相同,根據(jù)這些樣本構(gòu)建決策樹,并在Bagging 的基礎(chǔ)上對(duì)每棵決策樹進(jìn)行隨機(jī)特征的選擇,然后對(duì)測試集進(jìn)行回歸預(yù)測,對(duì)預(yù)測結(jié)果進(jìn)行整合,投票得出最終結(jié)果。如圖3 所示,在使用隨機(jī)森林模型預(yù)測能耗變化的過程中,由于能耗為單變量數(shù)據(jù),能耗值與時(shí)間相對(duì)應(yīng),特征數(shù)較少,體現(xiàn)不出特征的隨機(jī)性,因此將能耗數(shù)據(jù)特征分為平滑特征和時(shí)間特征兩大部分。其中,平滑特征是指將數(shù)據(jù)向前平移得到的特征,時(shí)間特征是根據(jù)日期等時(shí)間特性得到的特征。根據(jù)這些特征建立決策樹進(jìn)行回歸預(yù)測,最后將得到的所有回歸結(jié)果進(jìn)行投票選擇,投票最高的結(jié)果為最終模型輸出。
Fig.2 Energy consumption acquisition process圖2 能耗采集過程
Fig.3 Random forest prediction model圖3 隨機(jī)森林預(yù)測模型
本文使用OpenStack 作為云計(jì)算管理平臺(tái)。OpenStack是一個(gè)免費(fèi)的開源云計(jì)算平臺(tái),是Rackspace 和美國國家航空局(NASA)于2010 年合作開發(fā)。OpenStack 主要使用池化虛擬資源構(gòu)建和管理私有云及公共云,用戶通過Web界面、命令行工具或RESTful API 進(jìn)行管理。OpenStack 中有關(guān)虛擬機(jī)創(chuàng)建及管理主要通過Nova 項(xiàng)目完成,在Nova中,各組件通過RPC 進(jìn)行通信。Nova 主要是由API、Compute、Conductor、Scheduler 4 個(gè)核心組件構(gòu)成,其中Nova-Scheduler 負(fù)責(zé)虛擬機(jī)調(diào)度相關(guān)策略。目前,Nova 實(shí)現(xiàn)了隨機(jī)選擇的ChanceScheduler 調(diào)度策略、過濾選擇的Filter-Scheduler 調(diào)度策略、將主機(jī)資源信息緩存在本地內(nèi)存的CachingScheduler 調(diào)度策略。Nova 支持自定義調(diào)度器,F(xiàn)ilterScheduler 調(diào)度策略是通過服務(wù)器的硬件條件過濾篩選出符合條件的服務(wù)器隊(duì)列,為了篩選物理資源符合虛擬機(jī)運(yùn)行的服務(wù)器,本文使用基于FilterScheduler 的調(diào)度策略篩選硬件條件符合創(chuàng)建條件的服務(wù)器。通過外鍵將服務(wù)器基礎(chǔ)數(shù)據(jù)與服務(wù)器能耗關(guān)聯(lián),使用Nova 中的BaseHost-Filter 類構(gòu)建基于隨機(jī)森林預(yù)測的調(diào)度算法。在硬件條件符合創(chuàng)建條件的服務(wù)器基礎(chǔ)上篩選出未來能耗較低的服務(wù)器隊(duì)列。
2.3.1 容錯(cuò)機(jī)制
盡管使用隨機(jī)森林算法可提升預(yù)測精確度,但預(yù)測結(jié)果與真實(shí)值之間難免存在誤差??紤]到預(yù)測結(jié)果存在誤差,為防止出現(xiàn)誤差過大而引起虛擬機(jī)遷移/不遷移情況,本文采取了連續(xù)預(yù)測的容錯(cuò)機(jī)制,即將預(yù)測時(shí)間分為連續(xù)的時(shí)間間隔,將最后一次時(shí)間間隔預(yù)測的能耗值作為服務(wù)器未來能耗值,若之前的時(shí)間間隔預(yù)測能耗值與服務(wù)器真實(shí)值相差無幾,則認(rèn)為最后一次時(shí)間間隔預(yù)測值是準(zhǔn)確的。使用該容錯(cuò)機(jī)制可以有效避免由于預(yù)測值與實(shí)際值差距過大而引起的虛擬機(jī)錯(cuò)誤遷移。
2.3.2 調(diào)度策略
服務(wù)器能耗越高,則服務(wù)器溫度越高,進(jìn)而造成了熱點(diǎn)現(xiàn)象。通過設(shè)置能耗閾值,將能耗閾值作為服務(wù)器運(yùn)行時(shí)的最高能耗,服務(wù)器能耗若超過能耗閾值則認(rèn)為該服務(wù)器出現(xiàn)熱點(diǎn)現(xiàn)象。將服務(wù)器能耗長期控制在能耗閾值之下,可以避免服務(wù)器熱點(diǎn)現(xiàn)象出現(xiàn)。
ECPRF 算法的調(diào)度策略分為虛擬機(jī)創(chuàng)建和虛擬機(jī)遷移兩部分。如圖4 所示,在虛擬機(jī)創(chuàng)建時(shí),首先獲取每臺(tái)服務(wù)器上的預(yù)測能耗值,篩選出低于能耗閾值的服務(wù)器隊(duì)列,在此隊(duì)列基礎(chǔ)上選擇符合創(chuàng)建所需資源且能耗最低的服務(wù)器,避免將虛擬機(jī)創(chuàng)建在高能耗服務(wù)器上。如圖5 所示,ECPRF 算法周期性獲取每臺(tái)服務(wù)器預(yù)測能耗值,遍歷服務(wù)器隊(duì)列,將高于能耗閾值服務(wù)器中的虛擬機(jī)遷移至符合該虛擬機(jī)運(yùn)行所需物理資源且預(yù)測能耗最低的服務(wù)器中。通過遷移虛擬機(jī)使服務(wù)器能耗長期處于能耗閾值以下,從而避免熱點(diǎn)現(xiàn)象出現(xiàn)。
在虛擬機(jī)遷移過程中,ECPRF 算法使用OpenStack Live Migration(熱遷移)方法,即虛擬機(jī)在運(yùn)行狀態(tài)下進(jìn)行遷移,保證虛擬機(jī)中的任務(wù)不會(huì)因?yàn)樘摂M機(jī)遷移而中斷。遷移虛擬機(jī)個(gè)數(shù)由遷移后能耗下降范圍決定。能耗下降計(jì)算可由式(1)表示:
其中,ΔV表示能耗下降的最小范圍,Vpredict表示預(yù)測能耗值,Vactual表示實(shí)際能耗。若遷移后能耗差值大于V,則停止遷移虛擬機(jī)。
Fig.4 Virtual machine construction圖4 虛擬機(jī)創(chuàng)建
Fig.5 Virtual machine migration圖5 虛擬機(jī)遷移
3.1.1 實(shí)驗(yàn)環(huán)境
本次實(shí)驗(yàn)在國家超級(jí)計(jì)算濟(jì)南中心研發(fā)云平臺(tái)進(jìn)行,實(shí)驗(yàn)選取4 臺(tái)曙光A620-G30 服務(wù)器作為計(jì)算節(jié)點(diǎn)。采用對(duì)照實(shí)驗(yàn)的方式,將服務(wù)器分為兩組,每組兩臺(tái)服務(wù)器。一組使用ECPRF 算法,節(jié)點(diǎn)名稱為node1、node2。一組使用OpenStack 基礎(chǔ)調(diào)度策略,節(jié)點(diǎn)名稱為node3、node4。計(jì)算節(jié)點(diǎn)配置詳細(xì)參數(shù)和節(jié)點(diǎn)拓?fù)鋱D如表1、圖6所示。
Table 1 Server configuration表1 服務(wù)器配置
Fig.6 Testbed topology architecture圖6 測試環(huán)境拓?fù)浼軜?gòu)
3.1.2 實(shí)驗(yàn)數(shù)據(jù)
本文對(duì)不同負(fù)載下的服務(wù)器進(jìn)行監(jiān)控,每5 分鐘收集一次服務(wù)器能耗數(shù)據(jù),如表2所示。
3.1.3 實(shí)驗(yàn)數(shù)據(jù)處理
(1)數(shù)據(jù)清理。node 屬性對(duì)預(yù)測結(jié)果無影響,在建模時(shí)刪除node 屬性,使能耗數(shù)據(jù)變?yōu)闀r(shí)間—能耗的單變量數(shù)據(jù)。通過pandas 庫中的to_datetime()函數(shù)將時(shí)間參數(shù)轉(zhuǎn)換為時(shí)間格式。
(2)數(shù)據(jù)集劃分。由于數(shù)據(jù)集為時(shí)間序列型,為了防止破壞時(shí)間順序,將數(shù)據(jù)集按照時(shí)間順序以7∶3 的比例將其劃分為訓(xùn)練集和測試集。
(3)特征建立。處理后的能耗數(shù)據(jù)為單變量數(shù)據(jù),將特征分為平滑特征與時(shí)間特征,平滑特征是指將能耗值向前做平滑,時(shí)間特征為每分鐘均值、每小時(shí)均值、工作日均值和周末均值。具體名稱和含義如表3所示。
3.1.4 評(píng)估函數(shù)
為了評(píng)價(jià)模型精準(zhǔn)度,本文使用平均絕對(duì)誤差(MAE)和R 平方得分(R2_score)對(duì)預(yù)測結(jié)果進(jìn)行分析。評(píng)價(jià)指標(biāo)計(jì)算如下:
Table 2 Energy consumption data set sample表2 能耗數(shù)據(jù)集樣例
Table 3 Data set characteristics表3 數(shù)據(jù)集特征
對(duì)數(shù)據(jù)集分別使用隨機(jī)森林、線性回歸、嶺回歸、LASSO 回歸模型進(jìn)行預(yù)測,并對(duì)預(yù)測結(jié)果進(jìn)行驗(yàn)證評(píng)估,證明使用隨機(jī)森林進(jìn)行預(yù)測的準(zhǔn)確性。同時(shí)設(shè)置對(duì)照組,通過兩組的服務(wù)器能耗變化,證明ECPRF 算法避免服務(wù)器出現(xiàn)熱點(diǎn)現(xiàn)象的有效性。具體實(shí)現(xiàn)方法如下:①對(duì)能耗數(shù)據(jù)進(jìn)行處理,構(gòu)建符合要求的數(shù)據(jù)集;②通過調(diào)用訓(xùn)練集完成對(duì)隨機(jī)森林模型的訓(xùn)練,并對(duì)預(yù)測效果進(jìn)行分析,判斷預(yù)測的精準(zhǔn)度并與同等條件下使用線性回歸、嶺回歸、LASSO 回歸模型進(jìn)行比較;③根據(jù)預(yù)測結(jié)果對(duì)超過能耗閾值的物理機(jī)執(zhí)行虛擬機(jī)遷移處理;為了確定最優(yōu)的連續(xù)預(yù)測次數(shù),將預(yù)測次數(shù)分為3 次、4 次、5 次,每次時(shí)間間隔為5分鐘,則預(yù)測10 分鐘、15 分鐘、20 分鐘后的能耗變化,同時(shí)設(shè)置可接受預(yù)測能耗誤差范圍為20,尋找最優(yōu)預(yù)測次數(shù)。若之前預(yù)測結(jié)果正確,采用最后一次預(yù)測能耗作為該服務(wù)器未來能耗。若出現(xiàn)預(yù)測錯(cuò)誤,則將出現(xiàn)錯(cuò)誤時(shí)間下服務(wù)器的實(shí)際能耗值與能耗閾值進(jìn)行比較,如果超出閾值上限,則進(jìn)行虛擬機(jī)遷移操作;④設(shè)置對(duì)照組,在node1 與node3 上創(chuàng)建14 臺(tái)相同的虛擬機(jī),每臺(tái)虛擬機(jī)都是有8 核CPU、16GB 內(nèi)存、40GB 磁盤組成,操作系統(tǒng)為Ubuntu 18.04.5。在node1與node3運(yùn)行相同程序以產(chǎn)生相同能耗,node2 與node4 不創(chuàng)建虛擬機(jī)。設(shè)置能耗閾值上限為800。運(yùn)行一段時(shí)間后,對(duì)比兩組節(jié)點(diǎn)能耗變化情況。
3.3.1 各模型誤差比較結(jié)果
各模型在該數(shù)據(jù)集上的平均絕對(duì)誤差和R 平方得分結(jié)果如圖7-圖8 所示。可以得出,在MAE 中,從測試集的預(yù)測結(jié)果來看隨機(jī)森林模型的預(yù)測精度最高,MAE 僅為9.94,而線性回歸、嶺回歸、LASSO 回歸分別為69.61、43.22、54.86;在R2_score 中隨機(jī)森林依舊得分最高,預(yù)測精度達(dá)0.99,最差是線性回歸,得分僅為0.71。結(jié)果表明,隨機(jī)森林預(yù)測精準(zhǔn)度最高,因此使用隨機(jī)森林模型進(jìn)行預(yù)測。
Fig.7 Comparison of MAE圖7 平均誤差結(jié)果比較
Fig.8 Comparison of R2圖8 R2結(jié)果比較
3.3.2 預(yù)測結(jié)果比較
使用隨機(jī)森林模型對(duì)經(jīng)過預(yù)處理和轉(zhuǎn)換后的測試集數(shù)據(jù)進(jìn)行預(yù)測,預(yù)測結(jié)果和實(shí)際結(jié)果如圖9 所示。可以得出,在小幅度震蕩時(shí)會(huì)影響預(yù)測精準(zhǔn)度,但是在整體上隨機(jī)森林模型可以很好地預(yù)測數(shù)據(jù),預(yù)測的服務(wù)器能耗和實(shí)際服務(wù)器能耗曲線趨勢相吻合。因此,隨機(jī)森林預(yù)測模型在預(yù)測服務(wù)器能耗上是可行的。
Fig.9 Comparison between predicted with the actual results圖9 預(yù)測結(jié)果與真實(shí)結(jié)果比較
3.3.3 容錯(cuò)機(jī)制預(yù)測次數(shù)分析
設(shè)定能耗誤差范圍為20W,對(duì)于連續(xù)次數(shù)預(yù)測利用網(wǎng)格搜索法在[3,4,5]范圍內(nèi)進(jìn)行實(shí)驗(yàn)分析。如表4 所示,當(dāng)預(yù)測連續(xù)次數(shù)為3 次時(shí),預(yù)測100 次和1 000 次的正確率均為100%,而預(yù)測連續(xù)次數(shù)為4 次、5 次,預(yù)測正確率逐步降低。因?yàn)殡S著預(yù)測時(shí)刻和當(dāng)前時(shí)刻距離的增大,當(dāng)前時(shí)刻數(shù)據(jù)對(duì)預(yù)測結(jié)果的影響越來越小,導(dǎo)致誤差越來越大。當(dāng)誤差超過預(yù)設(shè)范圍時(shí),即認(rèn)定模型預(yù)測失敗。因此,本文設(shè)定連續(xù)預(yù)測次數(shù)為3。
Table 4 Prediction accuracy under different times of prediction表4 不同預(yù)測次數(shù)下的預(yù)測正確率
3.3.4 ECPRF算法有效性分析
圖10 為各節(jié)點(diǎn)能耗值。node1 能耗為683,node3 能耗為875。node2 能耗為432,node4 能耗為234。由于能耗值超過設(shè)定閾值上限,node1 使用隨機(jī)森林預(yù)測將虛擬機(jī)提前遷移至node2,導(dǎo)致node2 能耗上升,node1 能耗保持在閾值以下,而node3 高于閾值,出現(xiàn)熱點(diǎn)現(xiàn)象。圖11 為node1 與node3 在一天內(nèi)的最高能耗變化情況,node1 能耗維持在能耗閾值以下,而node3 能耗超出能耗閾值,node3出現(xiàn)熱點(diǎn)現(xiàn)象。綜上所述,ECPRF 算法能有效避免服務(wù)器出現(xiàn)熱點(diǎn)現(xiàn)象。
Fig.10 Node energy consumption圖10 節(jié)點(diǎn)能耗值
Fig.11 Node energy consumption change圖11 節(jié)點(diǎn)能耗變化
本文針對(duì)服務(wù)器出現(xiàn)的熱點(diǎn)現(xiàn)象,提出了一種基于隨機(jī)森林的能耗調(diào)度算法(ECPRF)。ECPRF 算法首先根據(jù)一段時(shí)間內(nèi)的能耗構(gòu)建時(shí)間序列向量,然后以時(shí)間—能耗序列作為輸入,使用隨機(jī)森林模型預(yù)測未來服務(wù)器能耗變化,最后根據(jù)未來服務(wù)器能耗進(jìn)行虛擬機(jī)遷移,避免出現(xiàn)熱點(diǎn)現(xiàn)象。本文分別使用線性回歸、嶺回歸、LASSO 回歸進(jìn)行預(yù)測對(duì)比,證明了使用隨機(jī)森林模型預(yù)測的準(zhǔn)確性。同時(shí),將ECPRF 算法與OpenStack 提供的算法進(jìn)行對(duì)比,證明ECPRF 算法在保持服務(wù)器能耗穩(wěn)定、避免出現(xiàn)熱點(diǎn)上具有較好有效性。