章宦成,王海江
(1.浙江科技學院機械與能源工程學院;2.浙江科技學院信息與電子工程學院,浙江杭州 310023)
隨著互聯(lián)網(wǎng)技術(shù)及人工智能技術(shù)的不斷發(fā)展,許多汽車應用如路線規(guī)劃、自動駕駛和AR 導航等得到快速發(fā)展。然而單個車輛只具備有限的計算資源和存儲功能,無法在嚴格的延遲約束下處理應用程序[1]。車載終端的計算任務涉及用戶人身安全,對時延有著非常嚴格的要求,其計算任務與傳統(tǒng)計算任務相比不僅處理的優(yōu)先級高且任務的并發(fā)數(shù)量密度也遠遠高于傳統(tǒng)計算任務。
車聯(lián)網(wǎng)實現(xiàn)了車對車(Vehicle-to-Vehicle,V2V)、車對基 礎(chǔ) 設(shè) 施(Vehicle-to-Infrastructure,V2I)以 及 車 對 網(wǎng) 絡(luò)(Vehicle-to-Network,V2N)的通信[2]。而在傳統(tǒng)云車系統(tǒng)中,移動云雖然提高了資源利用率和計算性能,然而當車輛將計算任務卸載至較遠端的云服務器中時可能會因為骨干網(wǎng)絡(luò)上的傳輸容量限制及延遲波動而導致卸載效率嚴重降低,甚至導致任務卸載失敗。針對上述傳統(tǒng)云車系統(tǒng)所存在的問題,提出將移動邊緣計算(Mobile Edge Com?pute,MEC)集成至車聯(lián)網(wǎng)架構(gòu)中。MEC 作為5G 核心技術(shù)之一最初由歐洲電信標準協(xié)會ETSI 提出[3],在車聯(lián)網(wǎng)中使用MEC 技術(shù)被認為是一種有效降低V2I、V2N 的應用時延方案[4-5]。根據(jù)文獻[6]可知,若任務卸載至MEC 服務器中進行卸載,則可以減少大約88%的時延消耗。在該架構(gòu)中,由于MEC 服務器部署在路邊單元(Road Side Units,RSU)中,使得數(shù)據(jù)和應用能夠靠近車輛一側(cè),降低計算任務的傳輸時延,同時也可以在一定程度上緩解云計算中心及核心網(wǎng)絡(luò)的計算壓力[7]。由于云服務器端擁有比MEC服務器更強大的計算能力及儲存能力,故云服務器可以用于處理不易在MEC 服務器端處理的計算密集型應用程序[8],因此當車輛終端的計算量超過MEC 服務器的計算能力時,可以將任務卸載至云服務器端進行處理。軟件定義網(wǎng)絡(luò)(Soft Defined Network,SDN)技術(shù)具有集成不同訪問技術(shù)的潛力[9],可以用于實現(xiàn)對邊緣端網(wǎng)絡(luò)資源的調(diào)控及對卸載流量的調(diào)度,這對提高車聯(lián)網(wǎng)的性能和靈活性具有重要意義。
由于在車聯(lián)網(wǎng)場景中各種計算密集型和延遲敏感的應用程序爭奪有限的資源和能量,學術(shù)界提出了許多優(yōu)化解決方案用于提高網(wǎng)絡(luò)性能,改善用戶體驗。文獻[10]將用戶移動性與服務器位置集成在一起,以指定對延遲敏感的計算任務的卸載決策;文獻[11]考慮車輛應用程序的時延要求,提出一個多時間尺度的框架,在車聯(lián)網(wǎng)中共同分配緩存和計算資源,以最小化能源消耗;文獻[12]從計算任務和通信方面對計算卸載的能量消耗進行建模,并利用人工魚群算法解決計算卸載能量消耗最小化問題;文獻[13]提出云服務器層、MEC 服務器層和移動用戶層三層架構(gòu),將應用程序服務緩存至相應的邊緣服務器中,從而達到減少計算任務執(zhí)行的目的;文獻[14]提出一個云服務器和幾個邊緣服務器協(xié)作,以執(zhí)行計算密集型任務;文獻[15]引入車輛邊緣多接入網(wǎng),將資源豐富的車輛與云服務器相結(jié)合,構(gòu)建協(xié)同計算架構(gòu);文獻[16]提出使用貪心策略的啟發(fā)式算法將任務協(xié)作遷移進行決策;文獻[17]提出車聯(lián)網(wǎng)中基于軟件定義網(wǎng)絡(luò)與移動邊緣計算的卸載方案,在該方案中定義了任務的重要度,設(shè)計優(yōu)先級算法,并通過乘子法對非凸優(yōu)化模型進行求解。上述解決方案均能在一定程度上提高車載終端任務卸載的卸載效率或降低能源消耗,但其主要關(guān)注點在于用戶到服務器或用戶到用戶的卸載架構(gòu),但是卻缺乏對任務成功率及高優(yōu)先級任務成功率的關(guān)注。
針對以上問題,在車聯(lián)網(wǎng)應用場景下,本文構(gòu)建了一個基于SDN 的移動邊緣網(wǎng)絡(luò)框架,該框架利用SDN 控制器獲取全網(wǎng)資源視圖,并利用K 均值聚類算法及任務計算特征與MEC 服務器的剩余資源進行卸載決策,從而篩選出卸載任務的最優(yōu)卸載位置。
系統(tǒng)模型如圖1 所示。該系統(tǒng)模型由車輛端、邊緣端及云端組成,其中車輛端生成任務并將其發(fā)送至邊緣端,再由邊緣端控制計算任務的具體卸載位置。假定在該系統(tǒng)的車輛端共計擁有M輛車,每輛車均具備生成計算任務Q的能力且M輛車總共能產(chǎn)生A 個任務,記任務Q={w,s,tmax,pri},其中w代表完成任務Q所需要的資源數(shù),s代表任務Q的大小,tmax代表任務所能接受的最大時延,pri代表任務Q的優(yōu)先級。邊緣端主要負責處理對時延要求高且需要資源數(shù)較小的計算任務,設(shè)邊緣端由N個MEC 服務器及一個SDN 控制器節(jié)點構(gòu)成,記MEC 服務器資源集合為其中wm代表MEC 服務器中的計算資源總數(shù),fm代表MEC服務器的計算能力,jm代表MEC 服務器CPU 每運轉(zhuǎn)一周所消耗的能量。云端主要負責處理對時延要求低或者需要資源數(shù)大的任務,可以將云服務器端的資源集合記為,其中wc代表MEC 服務器中的計算資源總數(shù),fc代表云服務器的計算能力,jc代表云服務器CPU 每運轉(zhuǎn)一周所消耗的能量。假定在系統(tǒng)中,來自車載終端的卸載任務僅會被卸載至云服務器端或MEC 服務器端,則可設(shè)卸載決策集合X={X1,X2,…,XA},有Xi∈{0,1}。當Xi=0,表示任務Qi將會被卸載至指定MEC 服務器中進行計算;當Xi=1,表示任務Qi將會被卸載至云服務器端進行計算。
Fig.1 Internet of vehicles architecture based on MEC圖1 基于MEC 的車聯(lián)網(wǎng)架構(gòu)
在車聯(lián)網(wǎng)場景中,車輛的位置會隨著時間的變化而變化,而MEC 服務器位置固定在路側(cè)單元中,假設(shè)車輛i與MEC 服務器j之間的上傳速度為Rv,則Rv可以表示為:輸功率,σ2代表噪聲功率,h2代表車輛與服務器之間的信道
其中,B為服務器與車輛之間的帶寬,pv代表車輛的傳增益。任務Qi到服務器j之間所消耗的上傳時延為Tv,則可以表示為:
由式(2)可以看出,上傳任務Qi至服務器的時間與任務本身大小有關(guān)。根據(jù)文獻[18]可知,當計算任務在服務器中完成后,其計算結(jié)果大小遠遠小于任務大小,因此可以忽略返回任務結(jié)果所需時間及對應能量消耗。
當Xi=0,任務Qi將會被發(fā)送至MEC 服務器j中進行計算,完成任務所需時間與任務所需計算量及服務器計算能力有關(guān),其計算時間可以表示為:
因此,當任務卸載至MEC 服務器端進行處理時,所需總時間為:
當Xi=1 時,任務Qi將會被發(fā)送至云服務器端進行處理,其計算時間可以表示為:
因此,當任務Qi被發(fā)送至云務器進行處理時,其所需總時間為:
最終任務時延消耗模型可以表示為:
約束條件C1 表示任務Qi所需資源必須小于云服務器所能提供的最大資源數(shù)wc,約束條件C2 表示卸載決策Xi只能被卸載云服務器端或者MEC 服務器端,約束條件C3 表示完成任務所需時間不能超過任務的最大可容忍時間。
K 均值聚類算 法(K-means Clustering Algorithm,Kmeans)是依賴歐氏距離的方法[19]。該算法通過預先選取k個初始對象并形成k個簇,并將數(shù)據(jù)集中的對象分配至距離它最近的簇中,而每分配一個對象,將會重新計算其質(zhì)心。該過程會不斷進行,直到每個簇的質(zhì)心不再改變。
主成成分分析(Principal Components Analysis,PCA)是在保證數(shù)據(jù)信息損失最小情況下,對多元數(shù)據(jù)進行降維處理的多元分析方法[20]。在BSES 策略中,每個任務Qi由wi、si、tmax、pri等4 項特征值組成,而為了減少任務模型的維度,利用PCA 使得任務模型從四維降至三維。同時,將降維后的數(shù)據(jù)集作為新的訓練集,通過K-means 算法計算出云端簇及邊緣簇等兩個簇。其實現(xiàn)算法如下:
假設(shè)在初始時刻,車輛端產(chǎn)生了A個任務,每個任務對應的卸載決策集合X={Xi|i=1,2,…,A}。在進行任務卸載前,將進行以下初始化:對于每個MEC服務器均有wm=對于每個任務的時延都有Di=(D1,D2,…,DA)=0。
(1)當任務開始卸載至服務器端時,根據(jù)PCA 技術(shù)對待處理的任務Qi進行降維,計算該任務到云端簇的距離dc與到邊緣簇的距離dm。若dm≤dc,則說明該任務更適合卸載至MEC 服務器端進行運算,否則該任務更適合卸載至云服務器端進行計算。其實現(xiàn)算法如下:
(2)當任務被卸載至MEC 服務器端進行計算時,引入時間閾值tshold。當任務最大可容忍時延tmax>tshold時說明該任務對時延不敏感,為節(jié)省服務器資源,可以將該任務卸載至云端服務器進行計算。否則說明該任務對時延敏感,由于SDN 控制器擁有全局網(wǎng)絡(luò)資源視圖,若存在MEC 服務器j,有,則該任務可以被發(fā)送至邊緣服務器中進行計算,否則該任務將會被發(fā)送至云端進行計算。其算法實現(xiàn)如下:
(3)當任務發(fā)送至服務器端時,將會被添加至優(yōu)先級隊列中。在服務器處理時,將會在優(yōu)先級隊列中取出任務進行處理。為了避免有任務出現(xiàn)“餓死”現(xiàn)象,可以設(shè)定時間tstarve,即每過tstarves,任務優(yōu)先級將會得到提升。
假設(shè)在本文提出的場景中擁有1 臺云服務器,10 個邊緣MEC 服務器,車輛數(shù)量共計100 輛,且每輛車在單位時間內(nèi)共產(chǎn)生2 個任務。服務器模型參數(shù)、任務模型參數(shù)及通信模型參數(shù)如表1 所示。
Table 1 Parameters表1 參數(shù)
在該部分將選擇隨機卸載策略(Random Offloading Strategy,Random)、MEC 卸載策略(All MEC Offloading Strat?egy,AllMEC)與本文提出的BSES 策略進行對比。Random策略指將任務隨機分配到云服務器或者MEC 服務器中,AllMEC 策略指將所有任務卸載至MEC 服務器中進行計算。為避免偶然性,將通過產(chǎn)生多輪隨機數(shù)據(jù)及多組實驗完成實驗模擬。
圖2、圖3 分別展示了BSES 策略、Random 策略以及All?MEC 策略將任務卸載至MEC 服務器上進行處理時在任務成功率及高優(yōu)先級任務成功率上的比較??梢钥闯?,BSES策略在任務成功率方面優(yōu)于Random 策略,大幅度優(yōu)于All?MEC 策略。這是因為BSES 策略可以先根據(jù)該任務質(zhì)心位置決定將該任務卸載至云端或卸載至邊緣端進行處理,若卸載至邊緣端,則通過SDN 控制器將任務卸載至計算資源更豐富的MEC 服務器中,從而可以減少任務被處理前的等待時間,此外在BSES 策略中利用優(yōu)先級隊列,使得高優(yōu)先級的任務可以被更早地處理。Random 策略是通過隨機選擇的方式將任務卸載至云服務器或者卸載至MEC 服務器中,具備一定隨機性,因此當任務數(shù)量增加時,該策略無法將任務調(diào)度至其他服務器中進行處理。而AllMEC 策略將所有任務均卸載至本地,隨著任務增加,MEC 服務器的計算資源將會越來越少,最后導致任務計算失敗。
Fig.2 Task unloading success rate of different strategies圖2 不同策略的任務卸載成功率
Fig.3 Success rate of high-priority tasks with different strategies圖3 不同策略的高優(yōu)先級任務成功率
圖4 展示了當任務被卸載至MEC 服務器時,根據(jù)策略不同,每個任務所需要的平均時延。可以看出,BSES 所需要的平均時延低于Random 策略和AllMEC 策略。在BSES策略中,每個任務被卸載至MEC 服務器時,會加入MEC 服務器維護的優(yōu)先級隊列中,每當CPU 執(zhí)行完一個任務,將會挑選出一個優(yōu)先級高的任務進行處理。此外,BSES 策略通過SDN 控制器可以將任務卸載至計算資源多的服務器中,與Random 及AllMEC 策略相比,通過BSES 策略卸載的任務需要更少的等待處理時間,因此其總時延消耗要低于其他兩個策略。
Fig.4 Average delay consumed by each strategy圖4 各策略所消耗平均時延
圖5 為BSES 策略、Random 策略以及AllMEC 策略之間的MEC 服務器能源消耗對比。可以看出,3 個策略的能源消耗隨著數(shù)量的增加而增加,而BSES 策略所消耗的能源少于其他策略所消耗的能源。在BSES 策略中為了減輕MEC負擔將會選擇將一部分最大可容忍時間較長的任務發(fā)送至云端進行處理,從而達到減少邊緣服務器能源消耗的目的。
Fig.5 Energy consumption required by each strategy圖5 各策略所需能源消耗
本文構(gòu)建了車聯(lián)網(wǎng)中基于SDN 的移動邊緣計算卸載策略,該策略先將待卸載任務進行優(yōu)先級劃分及最大時延設(shè)定,再通過引入SDN 控制器,獲取到整個網(wǎng)絡(luò)的資源視圖,同時根據(jù)卸載任務特征匹配合適的服務器。該架構(gòu)可以有效地滿足新興應用對低時延、高復雜和高可靠性的要求。實驗結(jié)果表明,該策略在提高任務卸載成功率的同時,也減少了時延消耗與能源消耗。由于本文僅考慮邊緣服務器的資源消耗以及車輛在MEC 服務器連接范圍內(nèi)的情況,未來將結(jié)合車輛移動性及邊緣緩存等方面,對如何減少任務能源消耗作進一步研究,并探索緩存算法對于減少資源消耗的影響。