張?zhí)K豫,江凌云
(南京郵電大學(xué) 通信與信息工程學(xué)院,江蘇 南京 210003)
隨著移動(dòng)設(shè)備(MDs)和移動(dòng)通信技術(shù)的發(fā)展,出現(xiàn)了越來(lái)越多的計(jì)算密集和延遲敏感的應(yīng)用程序。如果MDs在本地執(zhí)行這些計(jì)算任務(wù),由于移動(dòng)設(shè)備有限的計(jì)算能力,將消耗大量的能量同時(shí)產(chǎn)生很大的延遲。為了解決這個(gè)問(wèn)題,移動(dòng)云計(jì)算(MCC)應(yīng)運(yùn)而生。它通過(guò)將計(jì)算任務(wù)轉(zhuǎn)移到云端,可以緩解移動(dòng)終端的能耗問(wèn)題。但由于用戶與云端之間的距離較遠(yuǎn),可能會(huì)引起網(wǎng)絡(luò)抖動(dòng)[1]和較長(zhǎng)的延遲,不能滿足延遲敏感的應(yīng)用程序的需求。因此,移動(dòng)邊緣計(jì)算(MEC)被提出,以解決MCC在計(jì)算卸載方面的不足。由于邊緣服務(wù)器被部署在無(wú)線網(wǎng)絡(luò)的邊緣,相對(duì)于云端距離用戶更近,因此數(shù)據(jù)傳輸延遲大大降低。近年來(lái),邊緣服務(wù)器的緩存能力也受到了學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注。由于邊緣服務(wù)器可以同時(shí)提供計(jì)算和存儲(chǔ)功能[2],一些研究考慮將緩存和計(jì)算卸載結(jié)合起來(lái)以進(jìn)一步提高系統(tǒng)性能。
最近的一些研究通過(guò)部署云端和邊緣服務(wù)器形成一個(gè)三層的邊緣計(jì)算架構(gòu)。每個(gè)任務(wù)都可以在邊緣服務(wù)器、云端或本地處理。將任務(wù)卸載到邊緣服務(wù)器或云端將不可避免地產(chǎn)生額外的通信延遲,而在本地執(zhí)行任務(wù)可能導(dǎo)致更大的計(jì)算延遲。所以,移動(dòng)用戶在三層計(jì)算架構(gòu)中針對(duì)不同的計(jì)算需求做出正確的卸載決策是至關(guān)重要的。以前的許多研究表明,來(lái)自鄰近社區(qū)的任務(wù)請(qǐng)求中有相當(dāng)一部分是相同的。如果所有重復(fù)的任務(wù)請(qǐng)求都被計(jì)算一次,將會(huì)導(dǎo)致計(jì)算資源和網(wǎng)絡(luò)資源的巨大浪費(fèi)和嚴(yán)重的網(wǎng)絡(luò)擁塞。為了避免這種情況,有必要找到一種有效的緩存算法來(lái)解決任務(wù)的重復(fù)請(qǐng)求問(wèn)題。在網(wǎng)絡(luò)邊緣(如網(wǎng)關(guān)、基站和終端用戶設(shè)備)緩存流行內(nèi)容可以避免重復(fù)計(jì)算,因此會(huì)大大減少延遲[3],從而提高用戶體驗(yàn)質(zhì)量。目前主流的緩存方案為內(nèi)容緩存和任務(wù)結(jié)果的主動(dòng)緩存。與內(nèi)容緩存不同,任務(wù)結(jié)果的主動(dòng)緩存是根據(jù)當(dāng)前用戶的計(jì)算請(qǐng)求進(jìn)行實(shí)時(shí)調(diào)整的,而不是預(yù)先放置在服務(wù)器中。因此,它可以大大提高緩存命中率,減輕計(jì)算負(fù)擔(dān)并提高卸載效率。
在移動(dòng)邊緣計(jì)算中,已經(jīng)提出了一些任務(wù)計(jì)算結(jié)果緩存策略。文獻(xiàn)[4]提出整數(shù)規(guī)劃,以確定將哪些計(jì)算任務(wù)集中緩存到MEC服務(wù)器,哪些不緩存到MEC服務(wù)器。文獻(xiàn)[5]采用智能優(yōu)化算法,設(shè)計(jì)了MEC服務(wù)器和云端聯(lián)合下的計(jì)算分流和數(shù)據(jù)緩存模型。將資源約束延遲最小化問(wèn)題轉(zhuǎn)化為優(yōu)化問(wèn)題,提出了一種基于遺傳算法和模擬退火算法的啟發(fā)式算法。文獻(xiàn)[6]提出了多用戶場(chǎng)景下移動(dòng)邊緣計(jì)算的緩存增強(qiáng)方案(OOCS)和最優(yōu)卸載,分別最小化整體執(zhí)行延遲。此外,還出現(xiàn)了許多策略和架構(gòu),如基于博弈論的文獻(xiàn)[7]和基于MVR的文獻(xiàn)[8,9],他們都以減少M(fèi)Ds的響應(yīng)延遲和能耗為目標(biāo)。在多用戶卸載場(chǎng)景中,緩存問(wèn)題、資源分配和云協(xié)作通常是相關(guān)的。文獻(xiàn)[10]聯(lián)合考慮了分流、內(nèi)容緩存和資源分配,以最大限度地提高整體網(wǎng)絡(luò)收益。文獻(xiàn)[11]研究了支持全雙工(FD)的小蜂窩網(wǎng)絡(luò)中的內(nèi)容緩存和計(jì)算卸載。文獻(xiàn)[12]通過(guò)結(jié)合計(jì)算分流和數(shù)據(jù)緩存來(lái)優(yōu)化調(diào)度計(jì)算請(qǐng)求,以最小化總延遲。文獻(xiàn)[13]考慮了異構(gòu)云場(chǎng)景中任務(wù)卸載的靈活調(diào)度策略,其中MEC服務(wù)器和云端可以協(xié)作處理具有不同延遲需求的應(yīng)用程序。
但是以上提出的緩存算法和計(jì)算卸載算法只適用于單一MEC服務(wù)器或單目標(biāo)函數(shù)場(chǎng)景,而且沒有考慮到任務(wù)流行度的動(dòng)態(tài)變化。因此本文首先提出多MEC服務(wù)器和云端聯(lián)合緩存算法,在此基礎(chǔ)上用線性回歸模型進(jìn)行任務(wù)預(yù)測(cè),找出最優(yōu)的云邊端協(xié)同卸載方案,最小化總時(shí)延。
本節(jié)首先給出了邊緣計(jì)算系統(tǒng)結(jié)構(gòu),然后提出了多MEC服務(wù)器與云端聯(lián)合的主動(dòng)緩存算法,在此基礎(chǔ)上介紹了用于任務(wù)預(yù)測(cè)的線性回歸模型,最后給出了基于上述主動(dòng)緩存算法的云邊端協(xié)同卸載策略。
圖1給出了邊緣計(jì)算系統(tǒng)結(jié)構(gòu),它由云端、MEC服務(wù)器和多個(gè)移動(dòng)設(shè)備組成。MEC服務(wù)器和云端通過(guò)有線回程鏈路連接,而MEC服務(wù)器和移動(dòng)設(shè)備通過(guò)無(wú)線鏈路連接。首先,將一個(gè)復(fù)雜的計(jì)算任務(wù)按優(yōu)先級(jí)或QoS級(jí)別進(jìn)行粒度劃分,劃分成多個(gè)子任務(wù),每個(gè)子任務(wù)可以被卸載到適當(dāng)?shù)墓?jié)點(diǎn)。移動(dòng)用戶可以選擇在本地計(jì)算任務(wù),也可以選擇從MEC服務(wù)器和云端直接獲取已經(jīng)緩存的任務(wù)結(jié)果,或者將任務(wù)轉(zhuǎn)移至MEC服務(wù)器和云端進(jìn)行計(jì)算。
圖1 系統(tǒng)結(jié)構(gòu)
本節(jié)提出的主動(dòng)緩存算法,是云邊端協(xié)同卸載策略(CEECO)的核心。由于MEC服務(wù)器的緩存能力有限,但傳輸延遲??;而云有足夠的緩存能力,但傳輸延遲大。所以我們利用云端和MEC服務(wù)器的聯(lián)合緩存來(lái)確定任務(wù)結(jié)果的最佳緩存狀態(tài)。我們假設(shè)在每個(gè)時(shí)隙中,所請(qǐng)求的計(jì)算任務(wù)服從Zipfs分布,我們定義第i個(gè)計(jì)算請(qǐng)求任務(wù)結(jié)果為Reqi,i∈N,該計(jì)算任務(wù)歷史總請(qǐng)求次數(shù)為nReqi,近一周內(nèi)的請(qǐng)求次數(shù)為nWeeki。每個(gè)MEC服務(wù)器都會(huì)通過(guò)一個(gè)計(jì)數(shù)器記錄所有計(jì)算任務(wù)的歷史總請(qǐng)求次數(shù)和近一周內(nèi)的請(qǐng)求次數(shù)。假設(shè)MEC服務(wù)器緩存的任務(wù)結(jié)果集合為Ωe,云緩存的任務(wù)結(jié)果集合為Ωc。一開始Ωe和Ωc都為Φ。提出的緩存算法分為3個(gè)階段。
第一階段:MEC服務(wù)器的存儲(chǔ)空間沒有被填滿。一些MDs將計(jì)算任務(wù)卸載到MEC服務(wù)器進(jìn)行計(jì)算,MEC服務(wù)器計(jì)算完成后將任務(wù)結(jié)果緩存下來(lái),同時(shí)記錄每個(gè)任務(wù)歷史總請(qǐng)求次數(shù)和近一周內(nèi)請(qǐng)求次數(shù),它們決定了該任務(wù)的流行度。隨著計(jì)算任務(wù)的逐漸增加,進(jìn)入下一階段。
第二階段:此時(shí)MEC服務(wù)器存儲(chǔ)空間已滿。如果新請(qǐng)求的任務(wù)具有更高優(yōu)先級(jí)排名,那么已經(jīng)緩存的任務(wù)結(jié)果將被新請(qǐng)求的任務(wù)結(jié)果替換掉。簡(jiǎn)單來(lái)說(shuō),流行度越高,任務(wù)結(jié)果占用存儲(chǔ)空間越小,則優(yōu)先級(jí)越高。比較后刪除優(yōu)先級(jí)最低的任務(wù)結(jié)果,并將該任務(wù)結(jié)果告知云端,然后進(jìn)入下一階段。
第三階段:云端處理被MEC服務(wù)器刪除的任務(wù)結(jié)果。如果云端緩存中沒有被MEC服務(wù)器刪除的任務(wù)結(jié)果,則將它緩存下來(lái),否則丟棄。該算法的具體流程如圖2所示。
圖2 主動(dòng)緩存算法流程
具體的算法如下所示:
算法1:主動(dòng)緩存算法
(1)Initialize Ωe= Φ,Ωc= Φ,
(2)for i = 1: |N| do
(3)MEC gets Reqiby Zipf popularity;
nReqi=nReqi+1;
(4) if there is Reqiin Ωethen
(5) delete Reqi;
(6) else
(7) if Ωeis not full,then
(8) Reqi→Ωe;
(9) else
(10)Rank nReqiand nWeekiin descending order respectively,
(11) TotalRank=Rank(nReqi)+Rank(nWeeki);
(12) if exists a task na∈Ωe, with lower TotalRank than Reqior with same TotalRank as Reqibut larger than nReqithen
(13) Reqi→ Ωe;
(14) if no nain Ωcthen
(15) na→Ωc;
else
(16) delete na;
(17) else
(18) if no Reqiin Ωcthen
(19) Reqi→Ωc;
(20) else
(21) delete Reqi;
(22)end for
(23)Output Ωe,Ωc
2.3.1 任務(wù)預(yù)測(cè)
我們準(zhǔn)備用訓(xùn)練好的線性回歸模型對(duì)任務(wù)計(jì)算時(shí)間進(jìn)行預(yù)測(cè)。線性回歸是一種對(duì)因變量y和自變量x之間的關(guān)系進(jìn)行建模的監(jiān)督學(xué)習(xí)方法,它利用線性預(yù)測(cè)函數(shù)建立線性回歸方程,是第一個(gè)被廣泛研究和應(yīng)用的回歸技術(shù)。當(dāng)自變量x1,x2,x3,x4的值與因變量y的值密切相關(guān)時(shí),可以用線性回歸模型具體地描述他們之間的關(guān)系。在我們的模型中,輸入為T_CPU,T_Mem,M_CPU,M_Mem,輸出為Time(s)。
T_CPU,T_Mem表示處理任務(wù)所需的CPU和內(nèi)存資源。M_CPU,M_Mem表示一個(gè)處理器(MEC,云或本地)當(dāng)前所擁有的CPU和內(nèi)存資源。Time(s)為任務(wù)計(jì)算時(shí)間。具體的模型建立過(guò)程見第三節(jié)。
2.3.2 卸載策略
基于以上提出的主動(dòng)緩存算法,我們得出了5種云邊端卸載執(zhí)行策略。每種策略的總延遲由計(jì)算延遲和傳輸延遲相加得到。其中計(jì)算延遲均由線性回歸預(yù)測(cè)模型預(yù)測(cè)得到。計(jì)算卸載參數(shù)見表1。
表1 計(jì)算卸載參數(shù)
(1)MEC緩存模型:我們將MEC服務(wù)器的緩存向量定義為Y={y1,>y2,>…,>yN},其中yi∈{0,1}。如果yi=1,則表示MEC服務(wù)器已經(jīng)緩存了第i個(gè)任務(wù)結(jié)果并直接傳輸給MD,否則yi=0。此外,由于MEC服務(wù)器的傳輸功率遠(yuǎn)大于MD,而任務(wù)結(jié)果大小遠(yuǎn)小于任務(wù)本身的大小,可以忽略無(wú)線下行鏈路上的傳輸延遲。因此,我們認(rèn)為MEC緩存模型的總延遲為0。
(2)云緩存模型:云緩存向量為X={x1,>x2,>…xN},其中xi∈{0,1}。xi=1表示云端已經(jīng)緩存了第i個(gè)任務(wù)結(jié)果并傳輸給MEC服務(wù)器,然后MEC服務(wù)器通過(guò)無(wú)線下行鏈路傳輸給MD;否則xi=0??紤]到云與基站之間的距離較長(zhǎng),回程延遲是不容忽視的。
云緩存模型總延遲由式(1)得到
(1)
(3)本地計(jì)算模型:本地計(jì)算向量定義為α={α1,α2,>…,>αN},αi∈{0,1}。如果αi=1,表示在本地執(zhí)行第i個(gè)計(jì)算任務(wù),否則αi=0。由于沒有傳輸延遲,本地計(jì)算模型總延遲TLocal直接由線性回歸模型預(yù)測(cè)得到。
(4)MEC計(jì)算模型:MEC計(jì)算向量定義為β={β1,β2,>…βN},βi∈{0,1}。如果βi=1,表示在MEC服務(wù)器計(jì)算第i個(gè)計(jì)算任務(wù),否則βi=0。MEC計(jì)算模型總延遲(Tc_MEC)由線性回歸模型預(yù)測(cè)得到。
MEC計(jì)算模型總延遲由式(2)得到
(2)
(5)云計(jì)算模型:云計(jì)算向量定義為θ={θ1,θ2,…,θN},θi∈{0,1}。如果θi=1,表示在云上計(jì)算第i個(gè)計(jì)算任務(wù),否則θi=0。云計(jì)算延遲(Tc_CLOUD)由線性回歸模型預(yù)測(cè)得到。
云計(jì)算模型總延遲由式(3)得到
(3)
第i個(gè)計(jì)算任務(wù)的執(zhí)行延遲可以簡(jiǎn)化為
綜上所述,卸載策略為:
(1)當(dāng)MEC服務(wù)器緩存了當(dāng)前任務(wù)的計(jì)算結(jié)果(yi=1),直接從MEC服務(wù)器獲取任務(wù)結(jié)果,此時(shí)時(shí)延近似為0,這是優(yōu)先級(jí)最高的方案。
(2)當(dāng)MEC服務(wù)器沒有緩存當(dāng)前任務(wù)的計(jì)算結(jié)果(yi=0),但是云端緩存了任務(wù)結(jié)果(xi=1),此時(shí)比較本地計(jì)算任務(wù)、將任務(wù)卸載到MEC服務(wù)器進(jìn)行計(jì)算、直接從云端緩存獲取任務(wù)結(jié)果的時(shí)延,取最小時(shí)延方案。其中本地計(jì)算和卸載到MEC服務(wù)器進(jìn)行計(jì)算的時(shí)延通過(guò)訓(xùn)練好的線性回歸模型預(yù)測(cè)得到。
(3)當(dāng)MEC服務(wù)器和云端都沒有緩存當(dāng)前任務(wù)的計(jì)算結(jié)果(yi=0,>xi=1),此時(shí)比較本地計(jì)算任務(wù)、將任務(wù)卸載到MEC服務(wù)器進(jìn)行計(jì)算、云端計(jì)算的時(shí)延,并取最小時(shí)延方案。三者的時(shí)延都可以通過(guò)訓(xùn)練好的線性回歸預(yù)測(cè)模型預(yù)測(cè)得到。
本節(jié)對(duì)提出的算法進(jìn)行了仿真。先利用數(shù)據(jù)集訓(xùn)練并驗(yàn)證了線性回歸預(yù)測(cè)模型的有效性,再將主動(dòng)緩存算法(ACA)與其它緩存算法進(jìn)行對(duì)比,結(jié)果顯示了ACA算法有著更小的任務(wù)響應(yīng)時(shí)延。最后,將提出的基于主動(dòng)緩存算法的云邊端協(xié)同卸載策略(CEECO)與其它相關(guān)卸載策略進(jìn)行對(duì)比,結(jié)果顯示CEECO有著更好的時(shí)延優(yōu)化。
3.1.1 訓(xùn)練數(shù)據(jù)收集
為了準(zhǔn)確預(yù)測(cè)每個(gè)子任務(wù)的處理時(shí)間,我們使用Google-cluster-2011-2數(shù)據(jù)集跟蹤訓(xùn)練我們的線性回歸模型,該數(shù)據(jù)集是在一個(gè)擁有大約12.5 k個(gè)云節(jié)點(diǎn)的集群上收集的,時(shí)間跨度為2011年5月以來(lái)的29天,是進(jìn)行任務(wù)調(diào)度研究常用的數(shù)據(jù)集。雖然是以前的數(shù)據(jù)集,服務(wù)器性能在不斷提高,但是只要衡量服務(wù)器性能的單位保持一致,就不影響訓(xùn)練模型的正確性。為了方便處理,首先我們對(duì)數(shù)據(jù)進(jìn)行歸一化。部分訓(xùn)練數(shù)據(jù)見表2。
表2 訓(xùn)練數(shù)據(jù)
T_CPU,T_Mem通過(guò)查閱數(shù)據(jù)集中《任務(wù)事件表》的“所需CPU核心資源”和“所需內(nèi)存資源”字段得到。他們都是通過(guò)程序分析得到。
M_CPU,M_Mem通過(guò)查閱數(shù)據(jù)集中《處理器事件表》的“資源:CPU”,“資源:內(nèi)存”字段和云端資源監(jiān)視器監(jiān)控的處理器當(dāng)前負(fù)載百分比聯(lián)合得到。最后,Time(s)是某節(jié)點(diǎn)當(dāng)前狀態(tài)下執(zhí)行某任務(wù)的時(shí)間,這個(gè)數(shù)據(jù)可以由《任務(wù)資源利用表》中“任務(wù)計(jì)算起始時(shí)間”和“任務(wù)計(jì)算終止時(shí)間”字段得到。利用這些數(shù)據(jù),我們訓(xùn)練了一個(gè)線性回歸模型。
3.1.2 模型訓(xùn)練
我們選取了2000組數(shù)據(jù)進(jìn)行訓(xùn)練,并隨機(jī)選出一個(gè)預(yù)測(cè)值與標(biāo)簽值進(jìn)行對(duì)比。訓(xùn)練環(huán)境為python 3.5 Tensorflow and Keras。模型訓(xùn)練參數(shù)見表3。
表3 模型訓(xùn)練參數(shù)
模型訓(xùn)練結(jié)果如圖3所示。
圖3 預(yù)測(cè)模型結(jié)果
MSE(均方損失)為0.0183,說(shuō)明擬合效果比較理想。圖中W為權(quán)重矩陣。可知執(zhí)行任務(wù)時(shí)延與T_CPU,T_Mem正相關(guān),與M_CPU,M_Mem負(fù)相關(guān),與實(shí)際情況相符合。
綜上所述,我們提出的線性回歸預(yù)測(cè)算法準(zhǔn)確率高,與實(shí)際執(zhí)行時(shí)延相差很小。
3.2.1 主動(dòng)緩存算法的有效性
在本節(jié)中,我們將通過(guò)實(shí)驗(yàn)仿真首先來(lái)驗(yàn)證所提主動(dòng)緩存算法的有效性。隨機(jī)生成20個(gè)MDs和5個(gè)MEC服務(wù)器,同時(shí)包含一個(gè)遠(yuǎn)程云服務(wù)器。每個(gè)MD請(qǐng)求的計(jì)算任務(wù)來(lái)自固定子任務(wù)集k。該任務(wù)集中子任務(wù)文件的大小服從高斯分布,(平均值,方差)為(10,2)MB。子任務(wù)文件的流行度符合Zipf分布[14]。每個(gè)MEC服務(wù)器都有100 MB緩存空間。為了進(jìn)行比較,我們引入了3個(gè)基準(zhǔn)緩存算法:任務(wù)流行緩存算法(TPC)、最優(yōu)任務(wù)緩存算法(OPTC)和遠(yuǎn)程云緩存算法(RCSR)。
最優(yōu)任務(wù)緩存算法(OPTC): MDs請(qǐng)求的所有子任務(wù)結(jié)果都緩存到其訪問(wèn)最頻繁的MEC服務(wù)器中,即MD可以直接從MEC服務(wù)器獲取相應(yīng)的子任務(wù)結(jié)果,即所有的子任務(wù)請(qǐng)求都可以獲得最低的延遲響應(yīng),這是一種理想狀態(tài)。
任務(wù)流行緩存算法(TPC):不考慮其它影響因素,所有的MEC服務(wù)器都緩存流行度最高的子任務(wù)結(jié)果。在這種情況下,任務(wù)流行度是唯一的影響條件,同時(shí)也忽略了流行度不高的子任務(wù)。
遠(yuǎn)程云緩存算法(RCSR):只有遠(yuǎn)程云緩存所有子任務(wù)結(jié)果,MEC服務(wù)器不緩存任何子任務(wù)結(jié)果。
圖4顯示了所利用的MEC服務(wù)器緩存空間與子任務(wù)平均響應(yīng)時(shí)間之間的關(guān)系??偟膩?lái)看,所利用的服務(wù)器緩存空間越大,子任務(wù)的響應(yīng)時(shí)間越短。因?yàn)殡S著緩存越來(lái)越滿,子任務(wù)請(qǐng)求就越容易命中。當(dāng)緩存空間固定時(shí),我們需要合理地將子任務(wù)結(jié)果部署到邊緣服務(wù)器和云端,以提高子任務(wù)的命中率,減少子任務(wù)的響應(yīng)時(shí)間。由于OPTC意味著所有子任務(wù)請(qǐng)求總是以最佳方式完成,所以性能也與MEC服務(wù)器的緩存空間無(wú)關(guān)。從圖4可知,在這種情況下,子任務(wù)響應(yīng)延遲始終保持在0.25 s以下。RCSR只在遠(yuǎn)程云中緩存最流行的子任務(wù)結(jié)果,傳輸延遲大,所以會(huì)造成最大的響應(yīng)延遲。TPC的響應(yīng)延遲約為1.5 s,提出的主動(dòng)緩存算法(ACA)的性能總是優(yōu)于TPC。而當(dāng)緩存空間足夠大時(shí),ACA算法性能幾乎和OPTC一樣。
圖4 子任務(wù)響應(yīng)時(shí)間隨緩存空間的變化
這是因?yàn)椋孩傥覀兲岢龅闹鲃?dòng)緩存算法屬于動(dòng)態(tài)緩存算法,將最流行的子任務(wù)結(jié)果優(yōu)先緩存到MEC服務(wù)器,傳輸延遲小。同時(shí)又考慮了子任務(wù)結(jié)果大小對(duì)緩存空間的影響。②由于MEC服務(wù)器的緩存空間有限,我們還結(jié)合了云端緩存,云端有充足的緩存空間,所以基本覆蓋最近流行的所有子任務(wù),特別是流行度不高但仍然有訪問(wèn)量的子任務(wù)。
3.2.2 云邊端協(xié)同卸載策略的性能評(píng)估
在本節(jié)中,我們將通過(guò)實(shí)驗(yàn)仿真來(lái)評(píng)估基于上述主動(dòng)緩存算法的云邊端協(xié)同卸載策略(CEECO)的性能。同樣隨機(jī)生成20個(gè)MDs和5個(gè)MEC服務(wù)器,同時(shí)包含一個(gè)遠(yuǎn)程云服務(wù)器。仿真時(shí)將CEECO與隨機(jī)卸載策略和本地計(jì)算做對(duì)比,對(duì)比結(jié)果如圖5所示??梢钥吹奖镜赜?jì)算的總延遲最大,總延遲隨著需要處理的子任務(wù)數(shù)量呈線性增長(zhǎng)。這是因?yàn)榭蛻舳嗽O(shè)備計(jì)算能力小,基本一直處于滿負(fù)載狀態(tài),所以只能一個(gè)一個(gè)串行完成。在子任務(wù)數(shù)量不多的情況下,隨機(jī)卸載策略的總延遲和CEECO相差不大,但是隨著等待處理的子任務(wù)數(shù)量增多,隨機(jī)卸載策略的總延遲增長(zhǎng)速度越快,這是因?yàn)殡S機(jī)卸載策略沒有考慮到設(shè)備的實(shí)時(shí)負(fù)載情況,將子任務(wù)卸載給滿負(fù)載狀態(tài)的設(shè)備會(huì)造成更多的等待時(shí)延。而由于CEECO實(shí)時(shí)監(jiān)測(cè)上下文信息(設(shè)備的負(fù)載狀態(tài)、信道條件),所以總能做出最優(yōu)的卸載選擇,表現(xiàn)是最好的。另外,由于一開始預(yù)測(cè)過(guò)程耗費(fèi)的時(shí)延不可忽視,以及緩存還沒滿未達(dá)到最佳緩存狀態(tài),所以與隨機(jī)卸載策略相比優(yōu)勢(shì)并不明顯。但是隨著子任務(wù)數(shù)量的增多,每個(gè)子任務(wù)的處理幾乎都能選擇時(shí)延最小的方案,總時(shí)延表現(xiàn)相對(duì)其它策略優(yōu)勢(shì)越來(lái)越大。
圖5 總延遲隨子任務(wù)數(shù)量的變化
隨著物聯(lián)網(wǎng)的飛速發(fā)展,新興的應(yīng)用比如AR、VR對(duì)時(shí)延要求很高,而且當(dāng)下很多任務(wù)卸載存在重復(fù)計(jì)算問(wèn)題。解決這些問(wèn)題,首先提出了一個(gè)云端和MEC服務(wù)器聯(lián)合的主動(dòng)緩存算法,以確定任務(wù)結(jié)果的最佳緩存狀態(tài)。該算法是考慮到任務(wù)流行度的動(dòng)態(tài)緩存算法。我們將該算法與現(xiàn)在流行的任務(wù)結(jié)果緩存算法作比較,結(jié)果表明我們提出的主動(dòng)緩存算法時(shí)延響應(yīng)更低。在此基礎(chǔ)上,我們訓(xùn)練了線性回歸模型進(jìn)行任務(wù)預(yù)測(cè),結(jié)果驗(yàn)證了該模型的有效性。最后,提出了基于上述主動(dòng)緩存算法的云邊端協(xié)同卸載策略(CEECO)來(lái)解決資源分配和任務(wù)執(zhí)行模式的選擇問(wèn)題。仿真驗(yàn)證了所提出策略的最優(yōu)性和有效性,與隨機(jī)卸載策略和本地計(jì)算相比時(shí)延收益最好。并且隨著執(zhí)行的子任務(wù)數(shù)量增多,累積的時(shí)延收益越來(lái)越大。
未來(lái),我們將繼續(xù)探索優(yōu)化任務(wù)緩存算法和卸載策略,比如通過(guò)增加訓(xùn)練數(shù)據(jù)樣本來(lái)繼續(xù)優(yōu)化預(yù)測(cè)模型,進(jìn)一步完善主動(dòng)緩存算法,以實(shí)現(xiàn)更小的應(yīng)用程序執(zhí)行時(shí)延。