朱連章,李 博,張衛(wèi)山,劉 昕,譚守超,孫浩云
(中國(guó)石油大學(xué)(華東) 計(jì)算機(jī)與通信工程學(xué)院,山東 青島 266580)
普適云計(jì)算環(huán)境下,計(jì)算、服務(wù)和數(shù)據(jù)的調(diào)度與遷移是保證資源合理分配和服務(wù)性能的一個(gè)重要方式,是普適云計(jì)算可擴(kuò)展性、靈活性、普適性和良好性能的基礎(chǔ)和保障,是增強(qiáng)移動(dòng)設(shè)備和移動(dòng)系統(tǒng)能力的必然途徑[1]。在商業(yè)領(lǐng)域,各大云服務(wù)提供商都有相應(yīng)的解決方案,如國(guó)內(nèi)阿里云的伏羲等。在學(xué)術(shù)領(lǐng)域,服務(wù)與數(shù)據(jù)遷移也是普適云計(jì)算的研究熱點(diǎn),但現(xiàn)有相關(guān)研究多集中在遷移架構(gòu)與遷移決策方面。目前普適云架構(gòu)可按照節(jié)點(diǎn)組成及距離分為四類,CLONE CLOUD[1]與VIRTUALIZED SCREEN[2]中使用的遠(yuǎn)端固定云架構(gòu),以CLOUDLET[3]為代表的近端固定云架構(gòu),近端移動(dòng)云架構(gòu)以及SAMI[4]使用的組成結(jié)構(gòu)復(fù)雜的混合云架構(gòu)。在遷移決策方面,遺傳算法、馬爾科夫決策鏈、線性編程等方法被提出作為決策算法。
對(duì)于普適云遷移的研究現(xiàn)狀,文獻(xiàn)[5]對(duì)現(xiàn)有遷移架構(gòu)與遷移決策方面的相關(guān)工作進(jìn)行了分析討論,并重點(diǎn)關(guān)注了遷移決策的因素及流程。根據(jù)該綜述的研究探討,普適云遷移是一個(gè)包含了多方面內(nèi)容的工作,從遷移的基礎(chǔ)設(shè)施支持到遷移決策的制定,每一方面都是一個(gè)較復(fù)雜的問題。此外準(zhǔn)確高效的遷移決策離不開深入的普適云環(huán)境感知,且研究表明基于預(yù)測(cè)的決策能夠獲取更有前瞻性的決策方案。遷移執(zhí)行也需要適合的技術(shù)進(jìn)行支撐,盡可能透明化,減少對(duì)環(huán)境以及用戶體驗(yàn)的影響。在遷移相關(guān)的深入的上下文感知以及完整的遷移體系結(jié)構(gòu)方面,目前仍缺少探索性的工作,由此也不可避免地引起普適云遷移的大規(guī)模部署與測(cè)試以及標(biāo)準(zhǔn)化的遷移流程上的缺失。
文獻(xiàn)[6]提出了一個(gè)基于OSGi的彈性普適云基礎(chǔ)設(shè)施OSGi-PC[6].OSGi作為Java模塊化標(biāo)準(zhǔn),具有模塊化、動(dòng)態(tài)部署、分布式通信的特征,對(duì)于普適云環(huán)境下的遷移問題具有顯然的適應(yīng)性。因此OSGi-PC基于OSGi技術(shù)搭建普適云基礎(chǔ)設(shè)施,充分利用OSGi技術(shù)的模塊化以及動(dòng)態(tài)部署,結(jié)合D-OSGi與R-OSGi兩種分布式OSGi部署方案,實(shí)現(xiàn)移動(dòng)節(jié)點(diǎn)與云節(jié)點(diǎn)上的統(tǒng)一部署與兩者之間無縫的服務(wù)通信。實(shí)驗(yàn)分析充分驗(yàn)證了該基礎(chǔ)設(shè)施平臺(tái)在PC節(jié)點(diǎn)與移動(dòng)節(jié)點(diǎn)上部署的一致性,在不同節(jié)點(diǎn)之間執(zhí)行服務(wù)遷移的可行性,并且遷移實(shí)驗(yàn)的分析說明了該基礎(chǔ)設(shè)施在執(zhí)行服務(wù)遷移上能夠保持較低的性能消耗。
本文在OSGi-PC的基礎(chǔ)上繼續(xù)對(duì)普適云環(huán)境下服務(wù)遷移進(jìn)行研究,研究重點(diǎn)在于普適云環(huán)境的上下文感知以及云節(jié)點(diǎn)資源可用性的預(yù)測(cè),并提出基于歷史數(shù)據(jù)與資源預(yù)測(cè)的遷移決策算法,以此搭建完整的普適云服務(wù)遷移體系結(jié)構(gòu)。
上下文感知是對(duì)環(huán)境信息進(jìn)行獲取,并監(jiān)測(cè)其變化。隨著物聯(lián)網(wǎng)與計(jì)算模式的不斷發(fā)展,上下文感知已應(yīng)用在各個(gè)領(lǐng)域。對(duì)于普適云計(jì)算來說,上下文感知是實(shí)現(xiàn)計(jì)算環(huán)境與應(yīng)用的智能管理,保證系統(tǒng)的正常高效運(yùn)行,確保服務(wù)的質(zhì)量(QoS)的基礎(chǔ),是普適云環(huán)境進(jìn)行智能化配置,制定服務(wù)與應(yīng)用遷移決策的前提。但要更好地發(fā)揮上下文信息的價(jià)值,獲取更加有效的遷移決策,還需要對(duì)上下文信息進(jìn)行分析處理,以此預(yù)測(cè)出未來時(shí)刻的系統(tǒng)狀態(tài),從而進(jìn)行基于預(yù)測(cè)的決策,以獲取有前瞻性的遷移方案,帶來更好的系統(tǒng)性能[7]。
普適云計(jì)算涉及到多種資源類型,如內(nèi)存,CPU,網(wǎng)絡(luò)帶寬等常用的性能指標(biāo)。上下文感知獲取到的資源數(shù)據(jù)具有時(shí)間特性,一段時(shí)間內(nèi)周期性獲取到的資源數(shù)據(jù)會(huì)形成一個(gè)時(shí)間序列,數(shù)據(jù)呈現(xiàn)出一定規(guī)律的變化。目前已有移動(dòng)平均、回歸分析以及神經(jīng)網(wǎng)絡(luò)等方法可用于對(duì)資源情況進(jìn)行預(yù)測(cè)。
YOO W et al提出了一種單變量時(shí)間序列模型對(duì)高帶寬網(wǎng)絡(luò)的網(wǎng)絡(luò)帶寬使用量進(jìn)行預(yù)測(cè)[8]。單變量時(shí)間序列模型結(jié)合了時(shí)間序列的季節(jié)性分解方法(STL)與自回歸集成移動(dòng)平均方法(ARIMA).STL將數(shù)據(jù)轉(zhuǎn)換成季節(jié)性的、趨勢(shì)性的時(shí)間序列,而后使用ARIMA進(jìn)行數(shù)據(jù)的自回歸預(yù)測(cè)。
CHEN et al提出了一種向量自回歸模型來預(yù)測(cè)云環(huán)境下的虛擬機(jī)的資源使用情況[9]。該模型將數(shù)據(jù)樣本建模為如下的數(shù)組:x[j][i]={x1ij,x2ij,x3ij,x4ij},i=1…n,j=0…m.其中,i代表集群中被檢測(cè)的節(jié)點(diǎn),j代表時(shí)間序列,x1ij代表CPU使用率,x2ij代表內(nèi)存使用率,x3ij代表io使用率,x4ij代表帶寬使用率。然后根據(jù)各指標(biāo)之間的相關(guān)性,通過對(duì)樣本數(shù)據(jù)進(jìn)行向量化處理,并為其添加權(quán)重信息,將單一變量自回歸模型轉(zhuǎn)化為向量自回歸模型,從而對(duì)云環(huán)境的資源使用情況進(jìn)行短期或者長(zhǎng)期的預(yù)測(cè)。
MICHAEL BORKOWSKI et al使用機(jī)器學(xué)習(xí)模型對(duì)應(yīng)用任務(wù)的云資源的使用情況進(jìn)行了預(yù)測(cè)[10],其機(jī)器學(xué)習(xí)預(yù)測(cè)方法的系統(tǒng)模型如下:待預(yù)測(cè)的任務(wù)類型T;T任務(wù)的輸入數(shù)據(jù)向量〈a,b,c,…,z〉;一個(gè)待預(yù)測(cè)資源的列表R1,R2,…,Rn;代表著CPU事件/核數(shù)、運(yùn)行時(shí)間、內(nèi)存使用量、存儲(chǔ)空間、和其他任務(wù)T所需的資源。預(yù)測(cè)的結(jié)果是一個(gè)向量〈Rp1,Rp2,…,Rpn〉,其中Rpn代表著T任務(wù)對(duì)資源Rn的預(yù)測(cè)使用量。在眾多的機(jī)器學(xué)習(xí)算法中,選擇了最適應(yīng)需求的人工神經(jīng)網(wǎng)絡(luò)ANN模型,記錄實(shí)際的資源數(shù)據(jù)作為訓(xùn)練數(shù)據(jù)。隨著訓(xùn)練數(shù)據(jù)的增加,ANN模型的適應(yīng)性不斷提高,預(yù)測(cè)結(jié)果也越來越精確。
ZHANG et al的相關(guān)研究提出了使用深度置信網(wǎng)絡(luò)DBN對(duì)云計(jì)算中的資源需求進(jìn)行預(yù)測(cè)[11]。為了提高預(yù)測(cè)的準(zhǔn)確性,作者按照每分鐘的時(shí)間間隔提取資源請(qǐng)求數(shù)據(jù),然后通過微分變換來減少數(shù)據(jù)的線性相關(guān),從而使其適應(yīng)神經(jīng)網(wǎng)絡(luò)。此后通過實(shí)驗(yàn)選取合適的DBN參數(shù),在數(shù)據(jù)樣本的基礎(chǔ)上執(zhí)行操作,獲取資源請(qǐng)求數(shù)據(jù)的預(yù)測(cè)值,可進(jìn)行長(zhǎng)期預(yù)測(cè)與短期預(yù)測(cè)。
大部分預(yù)測(cè)方法的研究表明,基于神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)方法比基于回歸的預(yù)測(cè)方法更加優(yōu)越。首先人工神經(jīng)網(wǎng)絡(luò)的適應(yīng)性強(qiáng),基于回歸的預(yù)測(cè)方法需要以歷史數(shù)據(jù)中的變量關(guān)系正常為假設(shè)前提,但是這對(duì)于大部分收集到的數(shù)據(jù)來說是不現(xiàn)實(shí)的,而且回歸方法對(duì)于數(shù)據(jù)的缺失的處理也比較薄弱;而人工神經(jīng)網(wǎng)絡(luò)能夠較好地處理數(shù)據(jù)丟失的情況,同時(shí)能夠適應(yīng)任何關(guān)系的數(shù)據(jù)類型,也就是說不受數(shù)據(jù)類型的限制。其次,人工神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)結(jié)果更加精確,而且相對(duì)于回歸方法來說能夠更好地處理變化。但是相對(duì)回歸方法,基于人工神經(jīng)網(wǎng)絡(luò)的預(yù)測(cè)方法需要更多的數(shù)據(jù),結(jié)構(gòu)也更加復(fù)雜。
在神經(jīng)網(wǎng)絡(luò)用于時(shí)間序列預(yù)測(cè)方面,由于時(shí)間序列的數(shù)據(jù)具有相關(guān)性,并且預(yù)測(cè)需要對(duì)數(shù)據(jù)的長(zhǎng)期依賴進(jìn)行分析,所以遞歸神經(jīng)網(wǎng)絡(luò)LSTM對(duì)此具有結(jié)構(gòu)上的優(yōu)勢(shì)。目前已有相關(guān)研究使用LSTM對(duì)時(shí)間序列數(shù)據(jù)進(jìn)行預(yù)測(cè)。文獻(xiàn)[12]使用LSTM神經(jīng)網(wǎng)絡(luò)對(duì)美股股指的價(jià)格趨勢(shì)進(jìn)行了預(yù)測(cè),其研究指出了LSTM對(duì)RNN在神經(jīng)網(wǎng)絡(luò)反饋誤差上的改進(jìn),也指出了其可能出現(xiàn)局部最優(yōu)解的可能性。作者還提出了基于數(shù)學(xué)理論對(duì)LSTM學(xué)習(xí)速率進(jìn)行改進(jìn)的方法,以降低局部最優(yōu)的可能,提高模型的收斂準(zhǔn)確率。實(shí)現(xiàn)結(jié)果表明了LSTM對(duì)時(shí)間序列預(yù)測(cè)的可能性。SHI et al[13]將降水臨近預(yù)報(bào)問題定義為一個(gè)時(shí)空序列預(yù)報(bào)問題,提出了卷積LSTM(ConvLSTM)來構(gòu)建端到端的降水臨近預(yù)報(bào)訓(xùn)練模型,該模型對(duì)全連接LSTM(FC-LSTM)進(jìn)行擴(kuò)展,使其卷積輸入狀態(tài)與狀態(tài)轉(zhuǎn)換具有卷積結(jié)構(gòu)。其實(shí)驗(yàn)結(jié)果表明ConvLSTM能夠更好地捕捉到時(shí)空相關(guān)性與一致性,表現(xiàn)優(yōu)于FC-LSTM.FELIX et al對(duì)LSTM對(duì)持續(xù)輸入數(shù)據(jù)的處理進(jìn)行了研究[14],指出由于連續(xù)數(shù)據(jù)沒有明確標(biāo)記的序列結(jié)束點(diǎn),所以LSTM對(duì)于連續(xù)輸入數(shù)據(jù)無法進(jìn)行其內(nèi)部網(wǎng)絡(luò)結(jié)構(gòu)的狀態(tài)重置,因此狀態(tài)的持續(xù)增長(zhǎng)可能引起網(wǎng)絡(luò)崩潰。對(duì)此他們提出了一種新型自適應(yīng)的forget gate促使LSTM網(wǎng)絡(luò)單元能夠在合適的時(shí)間重置自己的狀態(tài),釋放內(nèi)部資源,以滿足對(duì)連續(xù)數(shù)據(jù)輸入處理的要求。
前期工作基于OSGi的彈性普適云基礎(chǔ)設(shè)施研究[7]已經(jīng)搭建起了OSGi普適云服務(wù)遷移方法的基本環(huán)境,結(jié)合使用D-OSGi與R-OSGi分布式通信技術(shù)實(shí)現(xiàn)了普適云環(huán)境的通信,并借助OSGi的動(dòng)態(tài)部署可進(jìn)行服務(wù)的動(dòng)態(tài)遷移。為了支持對(duì)遷移決策的研究,普適云服務(wù)遷移體系結(jié)構(gòu)在設(shè)計(jì)上需要滿足以下條件:一是適應(yīng)普時(shí)云環(huán)境結(jié)構(gòu)的異構(gòu)性,即能夠在云計(jì)算節(jié)點(diǎn)中運(yùn)行,也能夠運(yùn)行在資源受限的移動(dòng)節(jié)點(diǎn),并實(shí)現(xiàn)移動(dòng)節(jié)點(diǎn)與云節(jié)點(diǎn)之間服務(wù)的無縫通信與統(tǒng)一管理;二是要提供框架的自我感知能力,要求中心決策節(jié)點(diǎn)負(fù)責(zé)對(duì)每個(gè)框架的系統(tǒng)與服務(wù)資源信息進(jìn)行感知是不合理且難以實(shí)現(xiàn)的,所以O(shè)SGi框架應(yīng)該具有自我資源監(jiān)測(cè)的能力;三是普適云設(shè)施要具有動(dòng)態(tài)部署的能力,確保服務(wù)的動(dòng)態(tài)添加與刪除,以盡可能降低服務(wù)遷移對(duì)系統(tǒng)運(yùn)行的影響。由此更改OSGi-PC中deployer組件,為其添加組件動(dòng)態(tài)查找與遷移操作功能,并對(duì)OSGi-PC基礎(chǔ)設(shè)施中各計(jì)算節(jié)點(diǎn)添加資源監(jiān)控組件monitor.OSGi普適云服務(wù)遷移體系結(jié)構(gòu)需要對(duì)服務(wù)遷移進(jìn)行支持,所以為OSGi-PC搭建中心決策節(jié)點(diǎn),負(fù)責(zé)對(duì)普適云環(huán)境進(jìn)行全面感知,節(jié)點(diǎn)框架的資源信息進(jìn)行預(yù)測(cè),并基于監(jiān)測(cè)及預(yù)測(cè)信息進(jìn)行遷移決策?;谏疃葘W(xué)習(xí)的普適云遷移體系結(jié)構(gòu)如圖1所示。
完整的普適云服務(wù)遷移體系結(jié)構(gòu)中節(jié)點(diǎn)分為兩類,普通計(jì)算節(jié)點(diǎn)(OSGi-FW)與中心決策節(jié)點(diǎn)(OSGi-CD),如圖2所示。普通計(jì)算節(jié)點(diǎn)可以是PC節(jié)點(diǎn),也可能是移動(dòng)設(shè)備(包括安卓手機(jī),安卓平板等),有三個(gè)重要的功能性組件:framework,deployer,monitor.其中framework組件的作用是唯一標(biāo)識(shí)一個(gè)OSGi-FW框架,同時(shí)負(fù)責(zé)確保該框架中的deployer與monitor處于工作狀態(tài);deployer負(fù)責(zé)其OSGi-FW框架中服務(wù)的遷移與運(yùn)行狀態(tài)的控制,在中央遷移決策節(jié)點(diǎn)確定遷移方案后,相對(duì)應(yīng)的deployer進(jìn)行選定服務(wù)的停止遷出與遷入啟動(dòng);monitor組件負(fù)責(zé)對(duì)框架可用資源與服務(wù)的資源使用情況進(jìn)行監(jiān)測(cè),主要包含CPU與內(nèi)存參數(shù)。中心決策節(jié)點(diǎn)作為特殊框架節(jié)點(diǎn),在此基礎(chǔ)上還有上下文分析組件contextProfiler、預(yù)測(cè)組件resourcePredictor與決策節(jié)點(diǎn)decisionMaker,決策節(jié)點(diǎn)基于OSGi分布式通信技術(shù),通過contextProfiler組件定期發(fā)送監(jiān)測(cè)任務(wù)給各個(gè)計(jì)算節(jié)點(diǎn),獲取各個(gè)計(jì)算節(jié)點(diǎn)的資源信息,而后通過預(yù)測(cè)組件進(jìn)行節(jié)點(diǎn)可用資源的預(yù)測(cè),對(duì)監(jiān)測(cè)數(shù)據(jù)與預(yù)測(cè)結(jié)果進(jìn)行分析,采用一定的決策算法確定是否進(jìn)行服務(wù)的遷移,并獲取遷移方案。決策節(jié)點(diǎn)部署于PC節(jié)點(diǎn)上,掌控整個(gè)系統(tǒng)的運(yùn)行。
圖1 基于深度學(xué)習(xí)的普適云服務(wù)遷移系統(tǒng)體系結(jié)構(gòu)Fig.1 Overview of deep learning based pervasive cloud service migration architecture
圖2 基于OSGi的普適云遷移基礎(chǔ)設(shè)施Fig.2 OSGi based pervasive cloud migration infrastructure
OSGi普適云系統(tǒng)的感知包含三個(gè)層次的內(nèi)容。第一是系統(tǒng)層次的感知,主要是獲取系統(tǒng)中OSGi-FW框架的分布及運(yùn)行情況,包含系統(tǒng)中共運(yùn)行有多少個(gè)OSGi-FW框架,各個(gè)框架的功能組件的運(yùn)行情況。第二個(gè)層次是對(duì)每個(gè)框架中服務(wù)的狀況進(jìn)行感知,主要是每個(gè)框架中運(yùn)行了哪些服務(wù)。這兩個(gè)層次的信息通過D-OSGi與R-OSGi分布式通信技術(shù),借助framework與deployer組件即可獲取。第三個(gè)層次是資源層次的監(jiān)控,選取常用且性能相關(guān)的內(nèi)存與CPU指標(biāo),監(jiān)控參數(shù)包括節(jié)點(diǎn)框架的可用內(nèi)存量以及CPU的可用率,節(jié)點(diǎn)框架內(nèi)服務(wù)的內(nèi)存與CPU資源使用情況。
對(duì)于OSGi-FW的資源可用情況的監(jiān)控,由于OSGi組件服務(wù)運(yùn)行于JVM中,因此節(jié)點(diǎn)框架內(nèi)存可用量wmemory采用JVM可用內(nèi)存來衡量,框架的CPU可用率wcpu(1減去CPU占用率)由系統(tǒng)CPU可用率表示。OSGi環(huán)境下服務(wù)以bundle為單位,所以傳統(tǒng)的Java對(duì)象或者是線程層次的資源使用量監(jiān)控并不能直接適用于OSGi普適云環(huán)境。為了獲取bundle的CPU使用率dcpu,對(duì)開源項(xiàng)目jip-osgi進(jìn)行相應(yīng)改造,使其適應(yīng)OSGi普適云環(huán)境。需要注意的一點(diǎn)是由于Android虛擬機(jī)的異構(gòu)性,通過現(xiàn)有技術(shù)方法或工具對(duì)Android中的OSGi bundle的資源使用情況進(jìn)行監(jiān)控有很大的技術(shù)難度;此外考慮到整個(gè)OSGi普適云系統(tǒng)中服務(wù)的一致性,其他節(jié)點(diǎn)中的服務(wù)資源消耗情況相對(duì)地可基本衡量Android虛擬機(jī)中服務(wù)資源消耗的相對(duì)情況?;诖藘牲c(diǎn),在Android中運(yùn)行的OSGi-FW框架不執(zhí)行bundle相關(guān)的資源監(jiān)控操作。
在對(duì)OSGi-FW節(jié)點(diǎn)的資源數(shù)據(jù)的獲取方式上,采取了中心節(jié)點(diǎn)拉的方式,中心決策節(jié)點(diǎn)的contextProfiler組件周期性地向OSGi-FW框架中的監(jiān)控組件發(fā)送監(jiān)控通知,監(jiān)控組件執(zhí)行CPU、內(nèi)存等分析操作來獲取框架資源可用量與服務(wù)資源使用量并返回,中心決策節(jié)點(diǎn)將獲取到的資源信息進(jìn)行分析組織,并作為資源使用量歷史進(jìn)行保存。多次的資源數(shù)據(jù)構(gòu)成一個(gè)時(shí)間序列,以便后續(xù)的預(yù)測(cè)與決策。
在資源數(shù)據(jù)的表示上,采用如下的結(jié)構(gòu):
1) 普適云系統(tǒng)信息sysInfo={ipi∶fwInfoi}.其中i∈(1,n),n為系統(tǒng)中框架的數(shù)量,ipi用于標(biāo)識(shí)框架,fwInfoi表示框架的信息,如(2)所示。
2) 框架信息fwInfo={ip∶ipAddr,memory∶{ti∶mi},cpu∶{ti∶cI},bdsInfo∶{bdj∶bdInfoj}}.其中i表示時(shí)間序列索引,bdsInfo表示框架中的bundles信息,如(3)所示。
3) 框架中bundle的信息bdInfo={cpuInfo∶{ti∶ci},memoryInfo∶{ti∶mi}}cpuInfo與memoryInfo都為一個(gè)時(shí)間序列,表示了不同時(shí)間bundle的CPU與內(nèi)存消耗情況。
中心決策節(jié)點(diǎn)獲取的各框架的內(nèi)存與CPU資源可用情況如圖3所示。其中,圖3(a)表示了框架的可用內(nèi)存情況,圖3(b)表示了框架的CPU可用率。
圖3 OSGi計(jì)算節(jié)點(diǎn)框架的內(nèi)存和CPU可用情況Fig.3 Memory availability and CPU availability of OSGi computing frameworks
由圖可知,jvm虛擬機(jī)的可用內(nèi)存呈現(xiàn)一定范圍內(nèi)的鋸齒狀周期性變化,這是符合java內(nèi)存回收機(jī)制隱形所產(chǎn)生的效果的。圖3(a)中最下面的折線代表了Android4.4系統(tǒng)的移動(dòng)設(shè)備節(jié)點(diǎn)的內(nèi)存可用量情況,顯示效果波動(dòng)較??;這是由于Dalvik虛擬機(jī)本身可用內(nèi)存在一定量級(jí)上小于Ubuntu16.04節(jié)點(diǎn)上的JVM,所以統(tǒng)一圖形顯示效果受到影響。圖3(b)可發(fā)現(xiàn)一定狀況下CPU在某一范圍內(nèi)波動(dòng),且可用率持續(xù)保持較高水平;這是由于目前實(shí)驗(yàn)環(huán)境的CPU處理能力比較強(qiáng)大。所以這也是在后期決策過程中如果出現(xiàn)框架CPU與內(nèi)存資源都較為緊張的情況,以內(nèi)存為首要因素選取目標(biāo)節(jié)點(diǎn)的原因。
上述數(shù)據(jù)采集過程獲取到的各節(jié)點(diǎn)框架的資源可用量數(shù)據(jù)是有時(shí)間特性的,周期性獲取的數(shù)據(jù)形成了一個(gè)時(shí)間序列,且各節(jié)點(diǎn)框架的內(nèi)存與CPU可用量隨時(shí)間呈現(xiàn)一定規(guī)律性的變化。LSTM長(zhǎng)短期記憶模型在時(shí)間序列的預(yù)測(cè)處理上具有良好的可用性與適應(yīng)性,因此采用LSTM對(duì)節(jié)點(diǎn)框架的資源可用量進(jìn)行預(yù)測(cè)。在LSTM的具體實(shí)現(xiàn)上,使用純python編寫的深度學(xué)習(xí)框架keras,這是高度模塊化的神經(jīng)網(wǎng)絡(luò)框架,使用廣泛且較為便捷,并選擇了TensorFlow作為后端。
在模型的構(gòu)建上,根據(jù)LSTM網(wǎng)絡(luò)用語時(shí)間序列預(yù)測(cè)方面的相關(guān)研究經(jīng)驗(yàn),采用序貫?zāi)P?,?層網(wǎng)絡(luò)來搭建起LSTM資源預(yù)測(cè)網(wǎng)絡(luò)模型,包括兩層LSTM、兩層Dropout、一層全連接層,如圖4所示。
圖4 5層序貫LSTM預(yù)測(cè)網(wǎng)絡(luò)模型Fig.4 Sequential LSTM prediction network model with five layers
基于LSTM進(jìn)行資源預(yù)測(cè)的基本過程如下所述。首先使用測(cè)試數(shù)據(jù),選取不同的模型參數(shù)對(duì)其進(jìn)行訓(xùn)練。CPU資源與內(nèi)存資源可用量時(shí)間序列具有不同的特征,需要分別分析不同參數(shù)配置下模型的預(yù)測(cè)能力,因此對(duì)CPU預(yù)測(cè)與內(nèi)存預(yù)測(cè)模型分別訓(xùn)練。不同模型參數(shù)下的CPU預(yù)測(cè)模型與內(nèi)存預(yù)測(cè)模型的訓(xùn)練情況如表1與表2所示。
表1 不同參數(shù)下memory LSTM訓(xùn)練及驗(yàn)證誤差Table 1 Train and validation loss with different parameters of memory LSTM
表2 不同參數(shù)下CPU LSTM訓(xùn)練及驗(yàn)證誤差Table 2 Train and validation loss with different parameters of CPU LSTM
在表1與表2中,Sequence表示訓(xùn)練所使用的時(shí)間序列長(zhǎng)度;LSTM1與LSTM2與Dense Layer表示神經(jīng)網(wǎng)絡(luò)層的輸入數(shù)據(jù);Train Loss與Validation Loss表示模型的訓(xùn)練誤差與驗(yàn)證誤差。不難理解訓(xùn)練誤差與驗(yàn)證誤差越小,證明模型的預(yù)測(cè)能力越強(qiáng)。因此對(duì)于內(nèi)存與CPU可用量的預(yù)測(cè),選取第二行所示的模型參數(shù)進(jìn)行LSTM網(wǎng)絡(luò)模型配置。
好的模型在訓(xùn)練過程中訓(xùn)練誤差會(huì)逐漸減小,表示模型對(duì)數(shù)據(jù)具有收斂能力,驗(yàn)證誤差一定程度上衡量了模型的泛化能力,表示模型的預(yù)測(cè)結(jié)果與測(cè)試數(shù)據(jù)更加接近。以CPU預(yù)測(cè)的LSTM網(wǎng)絡(luò)的訓(xùn)練過程為例,分析訓(xùn)練過程中訓(xùn)練誤差的變化情況,如圖5所示。不難發(fā)現(xiàn)隨著訓(xùn)練的不斷進(jìn)行,訓(xùn)練誤差呈現(xiàn)明顯下降趨勢(shì)。
圖5 LSTM預(yù)測(cè)模型訓(xùn)練誤差的變化趨勢(shì)Fig.5 Variation trend of training error of LSTM prediction model
選定模型并使用訓(xùn)練數(shù)據(jù)對(duì)其進(jìn)行訓(xùn)練后,將該模型進(jìn)行保存,在決策過程中直接讀入訓(xùn)練后的LSTM神經(jīng)網(wǎng)絡(luò)模型,將監(jiān)測(cè)到的歷史數(shù)據(jù)進(jìn)行數(shù)據(jù)預(yù)處理,處理為預(yù)測(cè)可用的數(shù)據(jù)格式,將其輸入該模型,執(zhí)行模型的預(yù)測(cè)方法,獲取預(yù)測(cè)結(jié)果。
在上下文感知與資源數(shù)據(jù)預(yù)測(cè)的基礎(chǔ)上,以降低設(shè)備的資源壓力,平衡系統(tǒng)的資源負(fù)載為目標(biāo),設(shè)計(jì)算法獲取服務(wù)組件的遷移方案,并基于OSGi分布式通信與動(dòng)態(tài)部署特性來實(shí)現(xiàn)OSGi普適云服務(wù)的遷移部署。遷移決策與部署的流程如圖6所示。下面詳細(xì)介紹遷移決策算法,并說明決策方案的執(zhí)行與部署。
圖6 OSGi普適云服務(wù)遷移決策算法Fig.6 Service migration decision algorithm for OSGi-based pervasive cloud
遷移算法的過程如下:
(1)
其中,m表示內(nèi)存或者是CPU可用量的加權(quán)均值,s表示對(duì)應(yīng)的標(biāo)準(zhǔn)差。所以D值綜合衡量了框架的CPU或內(nèi)存資源在大小與穩(wěn)定性方面的情況。
對(duì)listat與listas分別進(jìn)行遍歷,計(jì)算其中各節(jié)點(diǎn)框架的D值,按照D值由大到小排序,得到考慮方差參數(shù)后的listbt與listbs,如圖7中的listb所示。
圖7 OSGi普適云資源排序服務(wù)隊(duì)列Fig.7 Resource sorted service list in OSGi based pervasive cloud
通過上述操作實(shí)現(xiàn)了將系統(tǒng)中的節(jié)點(diǎn)框架按照CPU與內(nèi)存的指標(biāo)進(jìn)行排序后的框架列表。查看內(nèi)存相關(guān)的listbt中D值最大的框架,若其的mcpu或mmemory超過設(shè)定的資源閾值cthreshold或mthreshold,則該框架作為待遷移框架wmigrated進(jìn)行遷移決策處理,否則系統(tǒng)不需要進(jìn)行遷移操作。
2) 第一步確定了是否進(jìn)行遷移決策以及哪個(gè)節(jié)點(diǎn)框架優(yōu)先進(jìn)行組件服務(wù)遷移。這一步將根據(jù)wmigrated的資源情況選擇合適的遷移目標(biāo)框架wtarget.具體分三種情況選擇遷移目標(biāo)框架wtarget:
① 若wmigrated屬于內(nèi)存資源緊張類型,則選取內(nèi)存空閑框架列表中l(wèi)istbts中D值最小(表示內(nèi)存資源最優(yōu))的框架作為遷移目標(biāo)框架wtarget.
② 若wmigrated屬于CPU資源緊張類型,則選取CPU空閑框架列表listbs中的最優(yōu)節(jié)點(diǎn)作為框架.
③ 若CPU與內(nèi)存資源都相對(duì)緊張,則由以上內(nèi)容分析可知,采用內(nèi)存優(yōu)先的原則,依序遍歷內(nèi)存空閑列表中的框架,若該框架也位于CPU空閑列表中,則選擇該框架作為wtarget.對(duì)于以上3種情況,若沒有找到可取的目標(biāo)框架,則無法立即執(zhí)行遷移,只能等待下次決策,遷移決策結(jié)束。
3) 若從第一步與第二步獲取到wmigrated與wtarget,則對(duì)wmigrated中的OSGi組件服務(wù)一段時(shí)間內(nèi)的CPU和內(nèi)存資源消耗情況進(jìn)行分析評(píng)估,類似分析不同節(jié)點(diǎn)框架資源消耗,獲取CPU資源與內(nèi)存資源消耗的加權(quán)均值,并按照CPU與內(nèi)存的加權(quán)均值分別對(duì)bundle進(jìn)行排序。若wmigrated當(dāng)前的狀態(tài)屬于CPU資源緊張類型,選取CPU均值最高的那個(gè)服務(wù)作為待遷移服務(wù)dmigrated;若wmigrated屬于內(nèi)存資源緊張型,同理選出內(nèi)存消耗最高的服務(wù)作為dmigrated;若wmigrated為CPU與內(nèi)存都緊張的情況,則重復(fù)如第二步中目標(biāo)框架選擇邏輯,遍歷內(nèi)存消耗列表中的bundle,若其的CPU消耗也較大,則將其作為dmigrated,若不存在內(nèi)存與CPU消耗都較大的bundle,由于內(nèi)存因素的偏重性,只能選擇內(nèi)存消耗最大的bundle作為dmigrated.
基于上述三步獲取到的遷移方案,在需要遷移的情況下通過服務(wù)遷移部署組件執(zhí)行服務(wù)遷移。遷移的過程為:獲取wmigrated中的部署組件deployermigrated,與其對(duì)應(yīng)的遷移目標(biāo)框架wtarget的deployertarget,通過deployermigrated遷出dmigrated到deployertarget,遷出操作對(duì)bundle執(zhí)行stop,uninstall操作,遷入操作執(zhí)行install,start操作。
實(shí)驗(yàn)所采用硬件實(shí)驗(yàn)平臺(tái)是ThinkPad E460,核心為4核Intel Core i7 6500U,該硬件平臺(tái)上搭建有4個(gè)ubuntu16.04虛擬機(jī),一個(gè)Android4.4虛擬機(jī),配置如表3所示。
表3 系統(tǒng)環(huán)境及配置參數(shù)Table 3 Deployment and configuration of OSGi-PC service migration system
采用的操作系統(tǒng)為Windows10 64位專業(yè)版,設(shè)計(jì)實(shí)現(xiàn)語言主要為java與python。下面對(duì)基于深度學(xué)習(xí)的普適云服務(wù)遷移體系結(jié)構(gòu)進(jìn)行分析評(píng)估,主要衡量LSTM資源預(yù)測(cè)的準(zhǔn)確性以及普適云遷移決策的有效性。
對(duì)框架節(jié)點(diǎn)的資源可用量的預(yù)測(cè),采用了具有記憶功能,能夠?qū)r(shí)間序列數(shù)據(jù)進(jìn)行長(zhǎng)期與短期預(yù)測(cè)的LSTM長(zhǎng)短期記憶模型。從2.3章節(jié)中模型的訓(xùn)練與測(cè)試情況可知所選擇的LSTM神經(jīng)網(wǎng)絡(luò)模型可以對(duì)節(jié)點(diǎn)框架的CPU與內(nèi)存可用量進(jìn)行預(yù)測(cè)。考察LSTM對(duì)節(jié)點(diǎn)框架資源可用量的預(yù)測(cè)能力,參考如圖8的實(shí)驗(yàn)結(jié)果截圖。
圖8 基于LSTM的節(jié)點(diǎn)框架資源預(yù)測(cè)情況Fig.8 Prediction of framework available resource with LSTM
圖8(a)為L(zhǎng)STM網(wǎng)絡(luò)對(duì)JVM虛擬機(jī)CPU可用率的預(yù)測(cè)結(jié)果圖,圖8(b)為L(zhǎng)STM內(nèi)存預(yù)測(cè)模型對(duì)JVM內(nèi)存可用率的預(yù)測(cè)結(jié)果圖。通過觀察分析,LSTM模型在短期內(nèi)(兩三個(gè)時(shí)間點(diǎn))的預(yù)測(cè)結(jié)果與實(shí)際數(shù)據(jù)較為吻合,但在較長(zhǎng)期的趨勢(shì)變化上并不太能夠準(zhǔn)確表達(dá)實(shí)際數(shù)據(jù)的變化趨勢(shì)。
對(duì)LSTM預(yù)測(cè)準(zhǔn)確性的衡量,采用均方差對(duì)所選模型進(jìn)行衡量,均方差計(jì)算公式如式(2)所示。
(2)
為了更好地說明LSTM網(wǎng)絡(luò)模型的預(yù)測(cè)能力,采用時(shí)間序列預(yù)測(cè)的經(jīng)典方法ARIMA自回歸移動(dòng)平均算法與其進(jìn)行對(duì)比。對(duì)比試驗(yàn)選取ubuntu節(jié)點(diǎn)(192.168.182.134)的CPU與內(nèi)存序列作為測(cè)試數(shù)據(jù),分別進(jìn)行5組不同的實(shí)驗(yàn),計(jì)算預(yù)測(cè)值與實(shí)際值的均方差,實(shí)驗(yàn)結(jié)果數(shù)據(jù)如圖9所示。
圖9 LSTM與ARIMA在CPU與內(nèi)存預(yù)測(cè)上的比較Fig.9 Compare the prediction of the LSTM based method with ARIMA
根據(jù)圖9,構(gòu)建的LSTM神經(jīng)網(wǎng)絡(luò)模型在CPU的預(yù)測(cè)上均方差值保持在10-4的數(shù)量級(jí)上,在內(nèi)存的預(yù)測(cè)上保持10-1數(shù)量級(jí),而且很明顯地低于ARIMA算法的預(yù)測(cè)均方差,所以可以說LSTM長(zhǎng)短期記憶模型對(duì)系統(tǒng)資源可用量的預(yù)測(cè)的準(zhǔn)確性上具有良好表現(xiàn)。
在遷移算法的有效性上,以表4所示的遷移實(shí)例來說明決策算法的有效性。表4(a)與4(b)分別為節(jié)點(diǎn)框架與其服務(wù)資源的使用情況,以此討論遷移算法是否選擇出設(shè)計(jì)期望獲取的方案。
表格4(a)中,192.168.182.133節(jié)點(diǎn)框架沒有
表4(a) 遷移實(shí)例中各框架的資源情況Table 4(a) Frameworks resource info under the migration example
表4(b) 遷移實(shí)例中各框架中服務(wù)的資源情況Table 4(b) Resource info of bundles in each framework under the migration example
CPU信息,因?yàn)槠錇锳ndroid節(jié)點(diǎn)。表4(b)中,-x與沒有數(shù)據(jù)的數(shù)據(jù)項(xiàng)表明bundle沒有在對(duì)應(yīng)節(jié)點(diǎn)框架中運(yùn)行,x服務(wù)的資源消耗情況不可獲得。不難發(fā)現(xiàn)com.tt.add.impl組件相對(duì)其他組件來說消耗的CPU時(shí)間較長(zhǎng)一些,應(yīng)該是一個(gè)計(jì)算類的服務(wù),而com.tt.cals.imp組件的內(nèi)存使用量明顯超出其他組件,因?yàn)樵摻M件中維持了一個(gè)不斷增大的對(duì)象列表。
通過分析各框架在一段時(shí)間內(nèi)的運(yùn)行狀態(tài),選取0.95與9.0作為遷移的內(nèi)存與CPU資源的閾值,對(duì)于移動(dòng)節(jié)點(diǎn)的內(nèi)存資源,設(shè)定的遷移閾值為0.10.上述遷移實(shí)例中,決策算法選擇出的遷移方案為:wmigrated為192.168.182.135的節(jié)點(diǎn)(可用內(nèi)存加權(quán)均值小于閾值),選出的dmigrated為com.tt.cals.impl,wtarget為192.168. 182.134的ubuntu節(jié)點(diǎn)框架,該遷移方案在閾值約束下,充分考慮當(dāng)前系統(tǒng)狀態(tài),將內(nèi)存資源緊張的框架中的內(nèi)存消耗較高的服務(wù)遷移到內(nèi)存資源較為豐富的ubuntu節(jié)點(diǎn)上,符合服務(wù)遷移的目標(biāo)。
普適云環(huán)境下的服務(wù)遷移是普適云計(jì)算模式發(fā)揮優(yōu)勢(shì)的有效方式。本文提出了基于深度學(xué)習(xí)的普適云服務(wù)遷移方法,在前期工作中添加深入的普適云上下文感知,基于深度學(xué)習(xí)網(wǎng)絡(luò)LSTM對(duì)普適云計(jì)算節(jié)點(diǎn)的CPU與內(nèi)存資源可用量進(jìn)行預(yù)測(cè),有效利用上下文信息及預(yù)測(cè)數(shù)據(jù),提出基于預(yù)測(cè)的普適云服務(wù)遷移決策算法,構(gòu)建了完整的普適云服務(wù)遷移體系結(jié)構(gòu)。實(shí)驗(yàn)分析驗(yàn)證了基于LSTM的資源預(yù)測(cè)的準(zhǔn)確性以及遷移算法的有效性。下一步將繼續(xù)探索LSTM網(wǎng)絡(luò)結(jié)構(gòu)與參數(shù)對(duì)預(yù)測(cè)準(zhǔn)確性的影響,并進(jìn)一步深入研究決策算法。