李小平 周志星 陳 龍 朱 潔
1 (東南大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)院 南京 211189)
2 (東南大學(xué)網(wǎng)絡(luò)空間安全學(xué)院 南京 211189)
3 (南京郵電大學(xué)計(jì)算機(jī)學(xué)院 南京 210036)
移動(dòng)邊緣計(jì)算廣泛應(yīng)用于物聯(lián)網(wǎng)、車聯(lián)網(wǎng)和在線游戲等領(lǐng)域,通過獲取分布在網(wǎng)絡(luò)邊緣的計(jì)算能力和存儲(chǔ)空間,可執(zhí)行終端設(shè)備產(chǎn)生具有不同資源需求和延遲敏感的任務(wù)[1].如何減少延遲、提高用戶體驗(yàn)是移動(dòng)邊緣計(jì)算關(guān)注的主要目標(biāo).任務(wù)通過鄰近接入點(diǎn)(access point, AP)傳輸至邊緣服務(wù)器執(zhí)行,以緩解終端設(shè)備有限的計(jì)算能力與高資源和高延遲敏感需求間的矛盾[2];但單個(gè)邊緣計(jì)算資源能力有限[3-4],難以同時(shí)滿足多個(gè)用戶提交的任務(wù),邊緣服務(wù)器任務(wù)量過多容易陷入過載狀態(tài),導(dǎo)致待處理任務(wù)長時(shí)間等待.通過多邊緣協(xié)同調(diào)度[5]將過載邊緣服務(wù)器上的任務(wù)轉(zhuǎn)移至較為空閑的服務(wù)器上執(zhí)行可減少任務(wù)的完成時(shí)間,但會(huì)產(chǎn)生傳輸代價(jià),根據(jù)服務(wù)器狀態(tài)如何卸載任務(wù)以權(quán)衡任務(wù)執(zhí)行時(shí)間和傳輸時(shí)間難以決策;不同任務(wù)具有不同計(jì)算量和截止期,如何合理調(diào)度卸載分配到服務(wù)器資源上的任務(wù)以盡量滿足截止期約束也是關(guān)鍵問題.因此,任務(wù)卸載和調(diào)度是移動(dòng)邊緣計(jì)算的2 個(gè)關(guān)鍵問題.
本文考慮異構(gòu)邊緣環(huán)境下帶截止期約束任務(wù)卸載和協(xié)同調(diào)度問題,二者緊密關(guān)聯(lián).終端設(shè)備通過鄰近AP 節(jié)點(diǎn)轉(zhuǎn)發(fā)任務(wù)請求[6],通過卸載決策將任務(wù)指派到具體邊緣服務(wù)器上執(zhí)行,但每個(gè)邊緣節(jié)點(diǎn)計(jì)算資源有限,且邊緣節(jié)點(diǎn)的計(jì)算能力和傳輸能力等具有差異性;各任務(wù)有不同的計(jì)算量、數(shù)據(jù)量和截止期需求;有限資源的約束導(dǎo)致卸載和調(diào)度通常不能完全滿足截止期約束,即部分任務(wù)延遲,如何最小化總延遲時(shí)間是用戶關(guān)注的優(yōu)化目標(biāo).這些問題是典型的NP-hard 問題,其主要挑戰(zhàn)為:1)異構(gòu)邊緣環(huán)境下各邊緣節(jié)點(diǎn)的計(jì)算能力和傳輸能力不同,導(dǎo)致相同任務(wù)在不同邊緣節(jié)點(diǎn)上執(zhí)行時(shí)間和傳輸時(shí)間不同,如何進(jìn)行任務(wù)卸載以實(shí)現(xiàn)任務(wù)執(zhí)行時(shí)間與傳輸時(shí)間的權(quán)衡是一個(gè)難題;2)相同邊緣節(jié)點(diǎn)的能力有限,如何調(diào)度多個(gè)不同截止期任務(wù)以最小化總延遲時(shí)間是一個(gè)挑戰(zhàn)性問題.
考慮到這些問題的特點(diǎn),本文首先基于現(xiàn)有邊緣計(jì)算中通用架構(gòu),設(shè)計(jì)異構(gòu)邊緣協(xié)同的任務(wù)卸載和調(diào)度框架;分析所考慮問題的特征,建立相應(yīng)的數(shù)學(xué)模型;提出一個(gè)異構(gòu)邊緣環(huán)境下帶截止期的約束任務(wù)卸載和調(diào)度算法,包括邊緣網(wǎng)絡(luò)拓?fù)涔?jié)點(diǎn)排序、邊緣節(jié)點(diǎn)內(nèi)任務(wù)排序、任務(wù)卸載決策、任務(wù)調(diào)度和結(jié)果調(diào)優(yōu)5 個(gè)部分;設(shè)計(jì)多種任務(wù)卸載策略和任務(wù)調(diào)度策略.
不同邊緣計(jì)算架構(gòu)[7]下的任務(wù)卸載有較多研究,本文所考慮的問題涉及多服務(wù)器邊緣計(jì)算、任務(wù)卸載、截止期約束調(diào)度等方面.
1)多服務(wù)器邊緣計(jì)算方面.文獻(xiàn)[8]研究應(yīng)用程序在本地執(zhí)行或傳輸?shù)竭吘壏?wù)器以最小化移動(dòng)設(shè)備能耗.文獻(xiàn)[9]研究單服務(wù)器邊緣系統(tǒng)中的計(jì)算任務(wù)調(diào)度,設(shè)計(jì)雙時(shí)間尺度隨機(jī)優(yōu)化調(diào)度策略,大時(shí)間尺度決定任務(wù)卸載,小時(shí)間尺度考慮具體任務(wù)傳輸過程,采用馬爾可夫決策以優(yōu)化延遲.文獻(xiàn)[10]提出將用戶連接至最近邊緣服務(wù)器,以提供最快的響應(yīng)時(shí)間和最佳通信條件.這些工作都集中于單服務(wù)器邊緣場景,忽略邊緣服務(wù)器在處理多任務(wù)時(shí)造成的擁塞,易于陷入過載狀態(tài).文獻(xiàn)[11]考慮多邊緣計(jì)算系統(tǒng),當(dāng)單個(gè)服務(wù)器陷入過載狀態(tài)時(shí)將計(jì)算負(fù)載轉(zhuǎn)移到鄰近空閑服務(wù)器,以最小化任務(wù)執(zhí)行延遲和用戶能耗.文獻(xiàn)[12]考慮用戶通過異構(gòu)網(wǎng)絡(luò)將任務(wù)卸載至任意邊緣服務(wù)器,綜合考慮用戶卸載決策、用戶傳輸功率及服務(wù)器計(jì)算能力等.文獻(xiàn)[13]考慮邊緣服務(wù)器的有限計(jì)算資源,提出分層邊緣計(jì)算調(diào)度架構(gòu),利用鄰近邊緣節(jié)點(diǎn)空閑的計(jì)算能力,在鄰近區(qū)域引入備份服務(wù)器解決邊緣服務(wù)器的計(jì)算瓶頸問題,采用Stackelberg 博弈論方法設(shè)計(jì)多層級(jí)卸載方案.文獻(xiàn)[14]研究終端設(shè)備可通過無線局域網(wǎng)獲得多個(gè)邊緣服務(wù)器的服務(wù),用戶可直接將所需卸載任務(wù)傳輸至云服務(wù)器,提出一種基于本地/卸載執(zhí)行代價(jià)最小化的魯棒計(jì)算卸載選擇策略.
2)任務(wù)卸載方面.文獻(xiàn)[15]考慮在終端設(shè)備附近范圍內(nèi)有多個(gè)可用邊緣服務(wù)器場景,提出一種通過代理服務(wù)器進(jìn)行能耗和延遲感知的邊緣服務(wù)器選擇策略.文獻(xiàn)[16]考慮將過載服務(wù)器任務(wù)遷移到空閑服務(wù)器,以平衡多服務(wù)器負(fù)載,設(shè)計(jì)一種調(diào)度算法為超過負(fù)載閾值服務(wù)器選擇可遷移的候選虛擬機(jī),提出根據(jù)遷移效率選擇最合適服務(wù)器的策略;這些研究只考慮任務(wù)卸載,而不考慮任務(wù)調(diào)度.文獻(xiàn)[17]考慮共享信道和有限計(jì)算資源,構(gòu)建混合整數(shù)線性優(yōu)化模型,提出基于擁塞感知的動(dòng)態(tài)啟發(fā)式算法,包括生成初始卸載決策、任務(wù)分配、沖突時(shí)的重調(diào)度策略.文獻(xiàn)[18]考慮多用戶通過共享信道與邊緣服務(wù)器連接時(shí)的帶寬分配影響,提出一種高效卸載決策算法以最小化平均響應(yīng)時(shí)間.文獻(xiàn)[19]考慮大量用戶對云計(jì)算資源的競爭,提出一種離線啟發(fā)式算法以最小化用戶平均完成時(shí)間.文獻(xiàn)[20]進(jìn)一步研究移動(dòng)邊緣云中延遲敏感應(yīng)用的計(jì)算卸載和資源分配,考慮計(jì)算資源和網(wǎng)絡(luò)帶寬二維資源分配,提出一種高效啟發(fā)式算法.文獻(xiàn)[8-20]考慮不同場景下任務(wù)卸載和資源分配,當(dāng)任務(wù)增加截止期等約束時(shí),這些算法不再適用.文獻(xiàn)[21]考慮了任務(wù)遷移引起的大量數(shù)據(jù)傳輸問題,提出了基于延時(shí)傳輸機(jī)制的多目標(biāo)工作流調(diào)度遺傳算法,能夠有效地優(yōu)化移動(dòng)設(shè)備的能耗和工作流的完工時(shí)間.文獻(xiàn)[22]考慮數(shù)據(jù)流調(diào)度優(yōu)化問題,將該問題轉(zhuǎn)換成為一個(gè)新的連續(xù)合作博弈,設(shè)計(jì)出快速收斂的基于博弈論的調(diào)度算法,保證資源效率和公平度.
3)截止期約束調(diào)度方面.文獻(xiàn)[23]同時(shí)考慮通信資源分配和作業(yè)到服務(wù)器的映射,提出基于合作博弈的調(diào)度方法,在截止期約束下最大化任務(wù)成功執(zhí)行數(shù)量.文獻(xiàn)[24]以最小化總延遲時(shí)間為目標(biāo),采用匹配理論求解任務(wù)卸載,提出啟發(fā)式算法.文獻(xiàn)[25]研究邊緣計(jì)算中在線延遲感知任務(wù)分派和調(diào)度,最大化滿足截止期約束的任務(wù)數(shù)量,提出貪心算法,將新到任務(wù)插入到當(dāng)前隊(duì)列以滿足任務(wù)截止期.文獻(xiàn)[26]基于最高殘留密度優(yōu)先規(guī)則,提出云邊環(huán)境下在線任務(wù)分派和調(diào)度算法,最小化加權(quán)響應(yīng)時(shí)間.文獻(xiàn)[27]考慮任務(wù)的硬截止期約束,設(shè)計(jì)最小化總代價(jià)的啟發(fā)式算法.文獻(xiàn)[28]考慮邊緣計(jì)算場景中用戶各自的截止期約束,采用博弈論方式分別優(yōu)化,達(dá)到最終的納什平衡.文獻(xiàn)[29]將并行數(shù)據(jù)處理應(yīng)用上的請求封裝成任務(wù)包,提出一個(gè)調(diào)度策略組AutoBoT,包括實(shí)時(shí)決策定價(jià)、虛擬機(jī)獲取和釋放、任務(wù)放置、檢查點(diǎn)設(shè)置和遷移,以保證在硬截止日期約束下任務(wù)的按期完成.文獻(xiàn)[30]將任務(wù)包應(yīng)用在混合云下的異構(gòu)資源分配問題模型化成二元線性規(guī)劃問題,具有截止日期和資源約束,以所有任務(wù)包應(yīng)用總代價(jià)為優(yōu)化目標(biāo),利用CPLEX(IBM 的建模優(yōu)化引擎)計(jì)算解決方案.文獻(xiàn)[31]研究具有截止日期約束的云工作流調(diào)度問題,提出了一種新的自適應(yīng)慣性權(quán)重計(jì)算方法更加精確地描述粒子狀態(tài),提高權(quán)重的自適應(yīng)性,在此基礎(chǔ)上提出了改進(jìn)粒子群算法,該算法可以更好地平衡粒子全局與局部搜索,避免陷入局部最優(yōu).文獻(xiàn)[32]提出具有機(jī)器啟動(dòng)時(shí)間感知的虛擬機(jī)擴(kuò)展策略,以緩解機(jī)器啟動(dòng)時(shí)間造成的實(shí)時(shí)任務(wù)延誤問題,設(shè)計(jì)具有啟動(dòng)時(shí)間感知能力的調(diào)度算法來調(diào)度實(shí)時(shí)任務(wù)和資源.
綜上所述,異構(gòu)邊緣計(jì)算環(huán)境下綜合考慮任務(wù)截止期約束的多邊緣協(xié)同的任務(wù)卸載和調(diào)度問題尚未有相關(guān)的研究.
針對本文考慮問題,基于現(xiàn)有邊緣計(jì)算調(diào)度框架,提出如圖1 所示的改進(jìn)調(diào)度框架,主要包含用戶層、邊緣層和云數(shù)據(jù)中心層.用戶層的終端設(shè)備產(chǎn)生資源需求高且延遲敏感任務(wù),終端設(shè)備計(jì)算能力有限且電池壽命并不足以支持此類任務(wù)執(zhí)行,通過鄰近AP 節(jié)點(diǎn)將任務(wù)傳輸至邊緣層或云數(shù)據(jù)中心;邊緣層包含部署在網(wǎng)絡(luò)邊緣的AP 節(jié)點(diǎn)及位于AP 節(jié)點(diǎn)上的邊緣服務(wù)器,邊緣服務(wù)器所部署的位置及所能處理的任務(wù)數(shù)量不同,當(dāng)1 個(gè)邊緣節(jié)點(diǎn)任務(wù)數(shù)量過多導(dǎo)致長時(shí)間等待時(shí),可將部分待處理任務(wù)傳輸至其他邊緣節(jié)點(diǎn)執(zhí)行;云數(shù)據(jù)中心層為邊緣節(jié)點(diǎn)提供計(jì)算支持與各AP 節(jié)點(diǎn)通過網(wǎng)絡(luò)鏈路直接相連,擁有充足的計(jì)算資源,當(dāng)邊緣層中負(fù)載過大時(shí)將任務(wù)傳輸至云中執(zhí)行以緩解負(fù)載壓力,但由于云服務(wù)器距離邊緣層較遠(yuǎn)需付出較高的傳輸代價(jià).
Fig.1 Multi-edge cooperative scheduling framework圖1 多邊緣協(xié)同調(diào)度框架
為方便起見,做4 點(diǎn)假設(shè):1)終端設(shè)備僅通過最近AP 將任務(wù)上傳邊緣系統(tǒng),邊緣系統(tǒng)可獲得所有任務(wù)計(jì)算量、數(shù)據(jù)量和截止期約束等信息;2)任務(wù)具有軟截止期約束,即允許任務(wù)超過截止期執(zhí)行;3)邊緣系統(tǒng)中不同邊緣節(jié)點(diǎn)間的網(wǎng)絡(luò)帶寬和延遲事先給定,且調(diào)度時(shí)不發(fā)生變化;4)邊緣服務(wù)器的異構(gòu)性體現(xiàn)為計(jì)算能力、服務(wù)器中虛擬機(jī)個(gè)數(shù)等不同;5)任務(wù)執(zhí)行不可中斷,且不考慮終端設(shè)備的移動(dòng)性.
邊緣環(huán)境的網(wǎng)絡(luò)拓?fù)淇梢暈橐粋€(gè)無向圖G=(V,E),其中V={V1,V2,…,VM}表示邊緣環(huán)境下AP 節(jié)點(diǎn)集合,表示AP 節(jié)點(diǎn)間的網(wǎng)絡(luò)鏈路,邊ej,k連通代表Vj,Vk間可互相傳輸數(shù)據(jù),設(shè)Bj,k為鏈的帶寬,Lj,k為ej,k傳播延遲,Pj,k為Vj,Vk間的最短路徑(當(dāng)需要從節(jié)點(diǎn)Vj傳輸任務(wù)到Vk時(shí)多條可達(dá)路徑中的最短路徑).設(shè)每個(gè)AP 節(jié)點(diǎn)有且僅有1 臺(tái)服務(wù)器,即共有M臺(tái)異構(gòu)邊緣服務(wù)器S=表示服務(wù)器S j的虛擬機(jī),為服務(wù)器S j上第l個(gè)虛擬機(jī)的處理速度.終端設(shè)備產(chǎn)生的獨(dú)立任務(wù)需傳輸至服務(wù)器執(zhí)行,設(shè)當(dāng)前有N個(gè)分布在不同AP 節(jié)點(diǎn)覆蓋范圍內(nèi)的任務(wù)T={T1,T2,…,TN}需執(zhí)行,每個(gè)任務(wù)Ti先通過鄰近的AP 節(jié)點(diǎn) θi(集合V中的1 個(gè)元素)上傳至邊緣系統(tǒng),Ti可表示為四元組(θi,γi,ci,di),其中 γi為數(shù)據(jù)量大小、di為截止期、ci為 計(jì)算量大小.任務(wù)提交后,通過最短路徑將該任務(wù)傳輸至目的邊緣服務(wù)器上執(zhí)行.云數(shù)據(jù)中心S0通過網(wǎng)絡(luò)鏈路與每個(gè)AP 節(jié)點(diǎn)相連,計(jì)算資源充足,f0為S0虛擬機(jī)的計(jì)算速度,B0和 L0分別為AP 節(jié)點(diǎn)到S0的網(wǎng)絡(luò)帶寬和延遲.邊緣系統(tǒng)通過卸載決策決定任務(wù)分配到哪臺(tái)服務(wù)器上,決策變量xi∈{0,1}(i=1,2,…,N),xi=0表示任務(wù)Ti在云服務(wù)器執(zhí)行,xi=1表示在邊緣服務(wù)器執(zhí)行;決策變量yi,j∈{0,1}(j=1,2,…,M),yi,j=1表示任務(wù)Ti指派到邊緣服務(wù)器S j上執(zhí)行;決策變量zi,j,l=1,表示Ti匹配至邊緣服務(wù)器S j的虛擬機(jī).本文考慮最小化邊緣系統(tǒng)總延遲時(shí)間δ,即minδ=的完成時(shí)間,其中S Ti=max{TTi,ES Ti}為Ti的開始時(shí)間,PTi和DTi為Ti的執(zhí)行時(shí)間和執(zhí)行結(jié)果回傳時(shí)間,TTi,ES Ti為Ti的傳輸時(shí)間與最早可執(zhí)行時(shí)間;執(zhí)行時(shí)間和執(zhí)行結(jié)果回傳時(shí)間分別由計(jì)算;決策變量滿足
針對所考慮問題,提出異構(gòu)邊緣環(huán)境下帶截止期約束任務(wù)卸載和調(diào)度 (task offloading and scheduling with deadline, TOSD)算法,主要包括邊緣網(wǎng)絡(luò)拓?fù)涔?jié)點(diǎn)排序、被卸載任務(wù)排序、卸載目的選擇策略、任務(wù)調(diào)度、結(jié)果調(diào)優(yōu)等組件.首先要確定哪些邊緣網(wǎng)絡(luò)節(jié)點(diǎn)的任務(wù)太多,需要卸載,即對邊緣網(wǎng)絡(luò)拓?fù)涔?jié)點(diǎn)排序;其次確定各節(jié)點(diǎn)上需卸載哪些任務(wù),即對卸載任務(wù)排序;再次,確定任務(wù)卸載到哪些服務(wù)器,即卸載目的選擇策略;隨后依據(jù)卸載至相同服務(wù)器的任務(wù)優(yōu)先級(jí)規(guī)則和任務(wù)的可選資源,產(chǎn)生任務(wù)調(diào)度序列;最后選用調(diào)整方法改進(jìn)調(diào)度結(jié)果.TOSD 算法框架如算法1 所示:
邊緣節(jié)點(diǎn)承接任務(wù)過多時(shí)會(huì)陷入過載,需將過載節(jié)點(diǎn)任務(wù)卸載到其他節(jié)點(diǎn),以減少任務(wù)的等待時(shí)間.首先對邊緣網(wǎng)絡(luò)拓?fù)涔?jié)點(diǎn)賦予不同優(yōu)先級(jí),優(yōu)先級(jí)高的節(jié)點(diǎn)先任務(wù)卸載.設(shè)計(jì)優(yōu)先級(jí)規(guī)則時(shí)需考慮3點(diǎn)因素:1)節(jié)點(diǎn)計(jì)算量.設(shè) Φj為邊緣節(jié)點(diǎn)Sj(j=1,2,…,M)的任務(wù)集合,nj=為其任務(wù)數(shù),即Φj={Tr|為Sj的計(jì)算負(fù)載.若CLj>CLj′,則節(jié)點(diǎn) Sj的計(jì)算負(fù)載壓力越大,陷入過載的可能性越大,優(yōu)先級(jí)應(yīng)更高.2)節(jié)點(diǎn)度數(shù).與邊緣節(jié)點(diǎn)直接相連的鄰近節(jié)點(diǎn)數(shù)量考慮最小化任務(wù)卸載成本,度數(shù)越大其鄰近節(jié)點(diǎn)數(shù)量越多,可有更多選擇將任務(wù)卸載至鄰近邊緣節(jié)點(diǎn);相反,度數(shù)越小其可選擇余地越少.因此節(jié)點(diǎn)度數(shù)越小優(yōu)先級(jí)越高.3)節(jié)點(diǎn)空閑程度.異構(gòu)邊緣協(xié)同計(jì)算場景下的多個(gè)邊緣服務(wù)器的負(fù)載動(dòng)態(tài)變化,設(shè)節(jié)點(diǎn) Sj上任務(wù) Tr的預(yù)估完成時(shí)間為,定義所有節(jié)點(diǎn)最晚完成時(shí)間FTmax=節(jié)點(diǎn) Sj的空閑程度[0,1],Δj值越大表明該節(jié)點(diǎn) Sj空閑程度越高,特別是Δj=1表明節(jié)點(diǎn)處于完全空閑.
基于這3 點(diǎn)因素,提出3 種邊緣節(jié)點(diǎn)排序方法:
①節(jié)點(diǎn)計(jì)算負(fù)載排序法(computationloadbased sequencing,CLBS).按照計(jì)算量降序排列邊緣節(jié)點(diǎn).
②節(jié)點(diǎn)度數(shù)排序法(nodedegreebasedsequencing,NDBS).按照度數(shù)升序排列邊緣節(jié)點(diǎn).
③節(jié)點(diǎn)空閑程度排序法(idledegreebasedsequencing,IDBS).按照空閑程度升序排列邊緣節(jié)點(diǎn).
這3種方法采用簡單規(guī)則對邊緣網(wǎng)絡(luò)邊緣節(jié)點(diǎn)排序,平均時(shí)間復(fù)雜度為(其中 M為邊緣網(wǎng)絡(luò)的節(jié)點(diǎn)數(shù)量).
因待卸載任務(wù)可能較多,如何選擇被卸載任務(wù)將對目標(biāo)函數(shù)產(chǎn)生重要影響,選擇策略受截止期、計(jì)算量和數(shù)據(jù)量等因素的影響.盡早卸載截止期臨近的任務(wù),計(jì)算密集型任務(wù)(計(jì)算量大、數(shù)據(jù)量相對較小)需卸載至性能更好、等待時(shí)間更短的節(jié)點(diǎn);數(shù)據(jù)密集型任務(wù)(計(jì)算量小而數(shù)據(jù)量大)更適合本地邊緣節(jié)點(diǎn).由此,構(gòu)造2 種被卸載任務(wù)排序法:
在確定哪些任務(wù)需要卸載后,選擇卸載目的服務(wù)器.本地節(jié)點(diǎn)服務(wù)器任務(wù)可傳輸至其他節(jié)點(diǎn)或云數(shù)據(jù)中心.選擇策略主要考慮處理時(shí)間和傳輸時(shí)間等因素.異構(gòu)性主要表現(xiàn)為邊緣服務(wù)器虛擬機(jī)處理速度的差異,即同一任務(wù)在不同虛擬機(jī)上執(zhí)行的時(shí)間不同.任務(wù)傳輸?shù)骄W(wǎng)絡(luò)拓?fù)洳煌恢眠吘壒?jié)點(diǎn),傳輸代價(jià)也不同.任務(wù)卸載決策(task offloading decision,TOD)算法基本框架如算法2 所示:
設(shè)邊緣節(jié)點(diǎn)S j(j=1,2,…,M)上待卸載任務(wù)集合為的初始位置為 θi(初始化為用戶提交任務(wù)時(shí)的最鄰近邊緣節(jié)點(diǎn)),服務(wù)器選擇策略從j(j≠θi)中選擇最適合Ti卸載的邊緣服務(wù)器Starget.根據(jù)不同選擇準(zhǔn)則提出不同服務(wù)器選擇:
1)貪心選擇法 (greedy selection rule, GSR).貪心選擇Ti預(yù)估完成時(shí)間最早的服務(wù)器,先計(jì)算Ti在初始邊緣節(jié)點(diǎn)服務(wù)器上執(zhí)行的最早完成時(shí)間=(此時(shí)傳輸代價(jià)為0);依次估計(jì)Ti卸載至服務(wù)器S j的最早完成時(shí)間其中TTi,j(i≠j)為傳輸時(shí)間,采用處理速度最快虛擬機(jī)預(yù)估任務(wù)執(zhí)行時(shí)間,平均等待時(shí)間為在節(jié)點(diǎn)S j上嘗試執(zhí)行所有待卸載任務(wù)的平均等待時(shí)間
2)最大收益選擇法 (maximum benefit selection,MBR).任務(wù)Ti的初始預(yù)估執(zhí)行時(shí)間為,將其傳輸至其他邊緣節(jié)點(diǎn)時(shí),執(zhí)行時(shí)間減少量與傳輸時(shí)間增加量的差值定義為卸載收益當(dāng)BTi,j>0時(shí),表明卸載到節(jié)點(diǎn)S j能縮短任務(wù)完成時(shí)間,選擇其中收益最大的邊緣服務(wù)器作為該任務(wù)的目的服務(wù)器.
3)最近最小負(fù)載法 (minimum nearest and load rule,MNR).定義度量不同邊緣節(jié)點(diǎn)服務(wù)器的負(fù)載狀態(tài)和距離當(dāng)前任務(wù)所在節(jié)點(diǎn)的距離遠(yuǎn)近程度,選擇S R最小邊緣節(jié)點(diǎn).
卸載目的服務(wù)器的選擇需遍歷所有邊緣節(jié)點(diǎn),這3 個(gè)準(zhǔn)則的時(shí)間復(fù)雜度均為O(M).
通常服務(wù)器有多個(gè)虛擬機(jī),接收到多個(gè)任務(wù),任務(wù)都有截止期約束,如何合理調(diào)度多個(gè)任務(wù)到多個(gè)虛擬機(jī)是最小化總延遲時(shí)間、盡可能減少任務(wù)超期時(shí)間的關(guān)鍵.涉及2 個(gè)基本問題:任務(wù)按照什么順序調(diào)度、每個(gè)任務(wù)安排到哪臺(tái)虛擬機(jī)上執(zhí)行,即任務(wù)排序和資源分配.任務(wù)調(diào)度 (task scheduling, TS)過程如算法3 所示:
3.4.1 任務(wù)排序
考慮任務(wù)截止期約束和屬性設(shè)計(jì)不同的任務(wù)排序規(guī)則:
1)先來先服務(wù) (first come first service, FCFS).根據(jù)任務(wù)到達(dá)目的服務(wù)器的先后順序排序.
2)截止期最逼近優(yōu)先 (nearest deadline first, NDF).按照接近截止期程度由緊到松對任務(wù)排序.
3)最小松弛時(shí)間優(yōu)先 (minimum slack time first,MSTF).按照任務(wù)松弛時(shí)間S Ti=di--AS Ti由小到大的順序排序,為任務(wù)在此邊緣服務(wù)器上的預(yù)估執(zhí)行時(shí)間,AS Ti表示任務(wù)到達(dá)該邊緣節(jié)點(diǎn)的時(shí)間.
3.4.2 資源分配
任務(wù)具有不同計(jì)算負(fù)載、不同截止期、不同截止期逼近程度.不同邊緣節(jié)點(diǎn)的計(jì)算能力不同、同一邊緣服務(wù)器上多種虛擬機(jī)計(jì)算能力不同導(dǎo)致同一任務(wù)在不同節(jié)點(diǎn)或不同虛擬機(jī)的處理時(shí)間也不同,某時(shí)刻不同虛擬機(jī)的可用時(shí)間不同,綜合考慮這些因素設(shè)計(jì)資源分配規(guī)則:
1)最早完成時(shí)間優(yōu)先 (earliest finish time first,EFTF).嘗試將任務(wù)Ti’(i’∈{1,2,…,nj})放到當(dāng)前邊緣服務(wù)器中所有虛擬機(jī)上執(zhí)行,計(jì)算其完成時(shí)間,選擇具有最早完成時(shí)間的虛擬機(jī),即
2)最早開始時(shí)間優(yōu)先 (earliest start time first,ESTF).選擇具有最早空閑時(shí)間的虛擬機(jī)=執(zhí)行任務(wù)
3)負(fù)載均衡優(yōu)先 (load balance first, LBF).選擇當(dāng)前虛擬機(jī)列表中負(fù)載均衡度最小的虛擬機(jī)執(zhí)行任務(wù),負(fù)載均衡程度其中為服務(wù)器第個(gè)虛擬機(jī)的實(shí)際運(yùn)行時(shí)間.圖2 所示某節(jié)點(diǎn)有VM1,VM2,VM3這3種不同處理速度的虛擬機(jī),初始LBR值為0.060.任務(wù)調(diào)度到VM1的執(zhí)行時(shí)間為0.75,LBR值為0.039(情況1);調(diào)度到VM2的執(zhí)行時(shí)間為0.5,LBR值為0.110(情況2);調(diào)度到VM3的執(zhí)行時(shí)間為0.25,LBR值為0.125(情況3).情況1 使得負(fù)載均衡度最小,故選擇虛擬機(jī)VM1執(zhí)行任務(wù).
Fig.2 Illustration of resource allocation圖2 資源分配示意圖
不同任務(wù)卸載和調(diào)度策略直接影響最終調(diào)度結(jié)果,為此提出調(diào)度結(jié)果調(diào)優(yōu)算法以期提高解的質(zhì)量.迭代過程τmax次:
1)除已經(jīng)產(chǎn)生的初始解X(0)外,隨機(jī)產(chǎn)生K-1個(gè)解;
2)以概率pm∈(0,1)隨機(jī)選擇2 個(gè)解K1,K2進(jìn)行合成操作,即隨機(jī)挑選一個(gè)位置作為合成點(diǎn),將 K1的前半段和 K2后半段合成為一個(gè)新解,同理剩余部分組成另外一個(gè)新解;
3)以概率pd∈(0,1)隨機(jī)選擇一個(gè)解 K 進(jìn)行分解操作,即隨機(jī)選擇一個(gè)位置作為分解點(diǎn),分解為新解K1,K2,其中 K1繼承其前半段,K2繼承其后半段,K1,K2的其他位置隨機(jī)產(chǎn)生;
4)從所有解中選擇最好解作為下次迭代的初始解X(0).
為評(píng)價(jià)和分析所提出算法的性能,采取相對百分比偏差 (relative percentage deviation, RPD )作為評(píng)估標(biāo)準(zhǔn),借助多因素方差分析 (analysis of variance,ANOVA)方法分析算法參數(shù)和算子校正結(jié)果、比較算法.對獨(dú)立任務(wù)集合T,設(shè)當(dāng)前算法獲得解 πω的總延遲時(shí)間為,所有算法運(yùn)行最優(yōu)解的總延遲時(shí)間為,定義
采用EdgeCloudSim[33]實(shí)驗(yàn)平臺(tái)作為邊緣計(jì)算仿真工具,模擬邊緣環(huán)境,所有算法均采用Java 編寫,在同一配置(Intel?Core(TM)i5-8265CPU @1.60 GHz,內(nèi)存8 GB,Window10 操作系統(tǒng))的機(jī)器上運(yùn)行.所有實(shí)驗(yàn)參數(shù)設(shè)置借鑒文獻(xiàn)[23],采用BRITE[34]拓?fù)渖善魃筛鬟吘壍奈恢梅植?,各邊緣?jié)點(diǎn)任務(wù)服從分布,任務(wù)的數(shù)量規(guī)模從1 000 到2 000 每次增長200,任務(wù)數(shù)據(jù)量大小服從均勻分布U~(1 000,2 000)(單位為KB),任務(wù)計(jì)算量大小服從均勻分布U~(0.4,2.4)(×109CPU周期數(shù));邊緣服務(wù)器上虛擬機(jī)的處理速度從{0.5,0.6,…,1.0}(單位為GHz)中取值,各邊緣AP 節(jié)點(diǎn)間的網(wǎng)絡(luò)帶寬服從U~(30,50)(單位為Mbps),鏈路間延遲Lj,k(j,k∈{1,2,…,M})服從均勻分布U~(0.01,0.05)(單位為s),云數(shù)據(jù)中心與邊緣AP 節(jié)點(diǎn)間的帶寬為100 Mbps,鏈路網(wǎng)絡(luò)延遲為0.5 s.
為得到統(tǒng)計(jì)意義上的校正結(jié)果,每個(gè)任務(wù)數(shù)隨機(jī)生成10 組實(shí)例;任務(wù)Zipf 分布不均勻程度因子λ ∈{0,0.1,0.2,0.3,0.4};邊緣節(jié)點(diǎn)數(shù)M隨機(jī)從{15,20,30,40}中取值,分別為M1,M2,M3,M4;任務(wù)截止期D從[0.5, 2],[0.5, 3],[0.5, 4],[0.5, 5]中取值,分別稱為D1,D2,D3,D4;故共有10×4×5×4×10=8000組隨機(jī)實(shí)例.另外,考慮3 種邊緣節(jié)點(diǎn)排序方法(CLBS, NDBS,IDBS)、2 種被卸載任務(wù)排序法(DCIS, RSDS)、3 種卸載目的選擇策略(GSR, MBR, MNR)、3 種任務(wù)排序方法(FCFS, NDF, MSTF)和3 種資源分配規(guī)則(EFTF,ESTF, LBF),τmax=μ×N,K=ν×N,其中μ ∈{0.1,0.2,0.3,0.4,0.5},ν ∈{0.05,0.1,0.15,0.2,0.25}.共3×2×3×3×3×5×5=4050種組合;總共進(jìn)行8000×4050=32400000次實(shí)驗(yàn).經(jīng)多次實(shí)驗(yàn)發(fā)現(xiàn)pm=0.4,pd=0.6效果最好.
采用ANOVA 分析實(shí)驗(yàn)結(jié)果,3 個(gè)主要假設(shè)(正態(tài)性、齊次性、殘差獨(dú)立性)都做了驗(yàn)證,實(shí)驗(yàn)結(jié)果表明3 個(gè)假設(shè)都可接受,p值都小于0.05,表明所有因素在95%置信水平上都有顯著性差別.相應(yīng)結(jié)果如圖3~5 所示:
Fig.3 Comparison results of edge network node sequencing rules and offloaded task sequencing rules with 95% Tukey HSD confidence intervals圖3 95% Tukey HSD 置信區(qū)間下邊緣網(wǎng)絡(luò)節(jié)點(diǎn)排序規(guī)則和卸載任務(wù)排序規(guī)則對比結(jié)果
由圖3(a)可以看出,CLBS 和IDBS 的RPD值小于NDBS 的RPD值.CLBS 優(yōu)先處理負(fù)載壓力大的節(jié)點(diǎn)任務(wù)以緩解過載壓力;NDBS 考慮邊緣網(wǎng)絡(luò)結(jié)構(gòu),度數(shù)小的節(jié)點(diǎn)傳輸任務(wù)至其他節(jié)點(diǎn)上需付出更大傳輸代價(jià),但未考慮邊緣系統(tǒng)中不同節(jié)點(diǎn)的任務(wù)分布;IDBS 考慮節(jié)點(diǎn)的任務(wù)負(fù)載和其計(jì)算能力,更適合于減少總的任務(wù)延遲.本文選擇IDBS 排序邊緣網(wǎng)絡(luò)拓?fù)涔?jié)點(diǎn).
由圖3(b)可以看出,DCIS 和RSDS 間RPD值的差距較小,但RSDS 顯著優(yōu)于DCIS.本文將選擇RSDS.
由圖4(a)可以看出,選擇策略GSR 和MNR 的RPD值遠(yuǎn)小于MBR 的.GSR 考慮多任務(wù)間的競爭及節(jié)點(diǎn)中負(fù)載的動(dòng)態(tài)變化;MBR 卸載任務(wù)至收益最高的節(jié)點(diǎn),但會(huì)導(dǎo)致多個(gè)任務(wù)卸載至高收益的節(jié)點(diǎn)上致其陷入過載狀態(tài);MNR 將任務(wù)優(yōu)先卸載至最近最小負(fù)載的節(jié)點(diǎn)上,綜合考慮節(jié)點(diǎn)負(fù)載和多任務(wù)間的競爭.GSR 和MNR 更加適合于減少總的任務(wù)延遲時(shí)間.MNR 將用于選擇卸載目的服務(wù)器.
Fig.4 Comparison results of offloading destination selecting rules, task sequencing strategies rules and resource allocation rules with 95%Tukey HSD confidence intervals圖4 95% Tukey HSD 置信區(qū)間下卸載目的選擇規(guī)則、任務(wù)排序規(guī)則和資源分配規(guī)則對比結(jié)果
由圖4(b)可以看出,ND F 顯著優(yōu)于FCFS 和MSTF,其RPD值遠(yuǎn)小于FCFS 和MSTF 的;FCFS的RPD值小于MSTF 的,表明MSTF 效果最差.FCFS 優(yōu)先處理先到來任務(wù),使計(jì)算資源可能空閑,但未考慮任務(wù)自身屬性,尤其是其截止期約束,影響總延遲時(shí)間;NDF 基于截止期逼近程度進(jìn)行任務(wù)排序,充分考慮任務(wù)達(dá)到邊緣節(jié)點(diǎn)時(shí)間和截止期約束,可盡量減小總延遲時(shí)間;MSTF 將松弛時(shí)間大的任務(wù)推遲執(zhí)行,在一定程度上減少任務(wù)延遲時(shí)間,但當(dāng)任務(wù)數(shù)多時(shí)將造成多個(gè)任務(wù)都超期完成,使總延遲時(shí)間更大.因此,選擇NDF 進(jìn)行任務(wù)排序較好.
由圖4(c)可以看出,EFTF 相比ESTF 和LBF 其RPD值更小.EFTF 為任務(wù)分配具有最早完成時(shí)間的虛擬機(jī),使任務(wù)具有最短執(zhí)行時(shí)間;ESTF 規(guī)則選擇最早可用的虛擬機(jī),盡早地開始執(zhí)行任務(wù),避免任務(wù)長時(shí)間等待,造成任務(wù)超期完成;LBF 均衡節(jié)點(diǎn)中各虛擬機(jī)負(fù)載,避免高性能虛擬機(jī)過度占用,導(dǎo)致后續(xù)截止期逼近程度大的任務(wù)無法獲取高性能計(jì)算資源而超出截止期.本文選擇EFTF 規(guī)則進(jìn)行資源分配.
由圖5 可以看出,隨著μ,ν取值的增加,RPD值呈下降趨勢,但在統(tǒng)計(jì)意義上RPD沒有顯著性差別,因此本文 μ = 0.3,ν = 0.15.
Fig.5 Mean plots of RPD with difference μ,ν under 95% Tukey HSD confidence intervals圖5 95%Tukey HSD 置信區(qū)間下不同μ,ν的RPD 均值圖
由于所考慮的問題是新問題,尚未有現(xiàn)成的方法可以參考,因此我們將3 個(gè)同類相關(guān)問題的常見策略與所提出的TOSD 算法進(jìn)行比較:
1)單邊緣本地獨(dú)立卸載法LOCAL.每個(gè)邊緣節(jié)點(diǎn)覆蓋范圍內(nèi)的任務(wù)只能傳輸至當(dāng)前邊緣節(jié)點(diǎn)或云數(shù)據(jù)中心執(zhí)行,不能卸載至其他邊緣節(jié)點(diǎn)上執(zhí)行,這種策略屬于邊緣.
2)最早完成時(shí)間優(yōu)先的多邊緣協(xié)同卸載方法TOMES.每個(gè)邊緣節(jié)點(diǎn)都可以接收其他邊緣節(jié)點(diǎn)附近的任務(wù),按照最早完成時(shí)間優(yōu)先規(guī)則進(jìn)行任務(wù)指派.
3)最早開始時(shí)間優(yōu)先的多邊緣協(xié)同卸載方法NOPSO.每個(gè)邊緣節(jié)點(diǎn)都可以接收其他邊緣節(jié)點(diǎn)附近的任務(wù),按照最早開始時(shí)間優(yōu)先規(guī)則進(jìn)行任務(wù)指派,NOPSO 與TOSD 類似,但無結(jié)果調(diào)優(yōu)步驟,仍然采用該方法產(chǎn)生隨機(jī)實(shí)例,比較這4 個(gè)算法與任務(wù)數(shù)、邊緣節(jié)點(diǎn)數(shù)、任務(wù)分布和截止期等關(guān)鍵參數(shù)在95%Tukey HSD 置信區(qū)間統(tǒng)計(jì)意義下的相互作用,RPD結(jié)果如圖6~7 所示.
圖6(a)表明隨著任務(wù)數(shù)量的增加,各算法的RPD值下降.任意任務(wù)數(shù)量規(guī)模下,TOSD 的性能都最佳;LOCAL 性能最差,其主要原因在于LOCAL 未進(jìn)行多邊緣協(xié)同調(diào)度,沒有充分利用異構(gòu)邊緣系統(tǒng)中其他空閑邊緣節(jié)點(diǎn)的計(jì)算能力;TOMES 的RPD均值相較TOSD 的有一定差距,其原因在于TOMES 僅考慮任務(wù)卸載,權(quán)衡任務(wù)傳輸時(shí)間和執(zhí)行時(shí)間,但未考慮多用戶間對資源的競爭;NOPSO 相較于TOSD的RPD均值較高,表明進(jìn)行調(diào)度結(jié)果調(diào)優(yōu)減少任務(wù)超出截止期的比例.隨任務(wù)數(shù)的增大,RPD均值間的差距越來越小,其原因在于任務(wù)數(shù)量增多時(shí),每個(gè)節(jié)點(diǎn)上的負(fù)載增加,計(jì)算資源逐漸到達(dá)瓶頸,每個(gè)任務(wù)在執(zhí)行過程中超出截止期的可能性增大,導(dǎo)致總延遲時(shí)間差值變小.
由圖6(b)可以看出,在所有邊緣節(jié)點(diǎn)數(shù),TOSD的性能都最佳.隨著邊緣節(jié)點(diǎn)數(shù)增加,TOSD 的RPD均值呈下降趨勢、NOPSO 的RPD均值先降后升、LOCAL 和TOMES的RPD均值增加;其他3 種算法與TOSD 算法的RPD均值差距變大,其原因在于當(dāng)邊緣節(jié)點(diǎn)數(shù)增加時(shí),計(jì)算資源更加豐富,任務(wù)卸載和任務(wù)調(diào)度對結(jié)果影響更大.
圖7(a)表明,隨著參數(shù) λ的變化,TOSD 算法性能最穩(wěn)定;NOPSO 和LOCAL 的RPD均值隨 λ值增加而增加;盡管TOMES 的RPD均值隨 λ值增加而減少,但其初始值遠(yuǎn)大于TOSD 的初始值.采取ZipF 分布模擬邊緣系統(tǒng)中任務(wù)分布,λ值越大表明任務(wù)分布越不均勻,λ=0表示任務(wù)均勻分布在邊緣系統(tǒng)中各節(jié)點(diǎn)覆蓋范圍內(nèi).隨參數(shù) λ值的增大,任務(wù)分布不均勻程度變大,LOCAL 算法RPD均值逐漸增大的原因在于部分邊緣節(jié)點(diǎn)過載,導(dǎo)致在其上執(zhí)行的任務(wù)延遲時(shí)間較長,未采用卸載策略充分利用其他較為空閑的邊緣節(jié)點(diǎn).TOSD 比NOPSO 算法的RPD均值小,其原因在于其采取調(diào)度結(jié)果調(diào)優(yōu),性能得以提升.
由圖7(b)可以看出,TOSD 算法對任務(wù)截止期區(qū)間不敏感且任何情形平均RPD值都最小;其他3 個(gè)算法隨著截止期區(qū)間的增加RPD值也增加(性能下降),其原因在于隨著任務(wù)延遲敏感程度的降低,任務(wù)傳輸至其他邊緣節(jié)點(diǎn)上執(zhí)行所需付出的代價(jià)較大,造成任務(wù)延遲時(shí)間增長.當(dāng)任務(wù)截止期在[0.5, 2]中取值時(shí),4 種算法的RPD均值基本差不多.
經(jīng)過實(shí)驗(yàn)比較可以看出,單邊緣本地獨(dú)立卸載法LOCAL 在所有測試實(shí)例參數(shù)變化下表現(xiàn)最差,其主要原因是邊緣節(jié)點(diǎn)只能處理其附近產(chǎn)生的任務(wù),雖然就近策略可以產(chǎn)生較少的通信延遲時(shí)間,但是如果邊緣節(jié)點(diǎn)附近產(chǎn)生任務(wù)過多,容易產(chǎn)生任務(wù)積壓,從而造成總延遲時(shí)間變長.TOMES 和NOPSO 能夠很好地在空閑邊緣節(jié)點(diǎn)與繁忙邊緣節(jié)點(diǎn)之間進(jìn)行協(xié)同任務(wù)調(diào)度,因此性能較LOCAL 更好.但是TOMES 和NOPSO 均未像TOSD那樣考慮多用戶間對資源的競爭,因此性能也有所降低.TOSD 的優(yōu)勢主要在于:1)度量了邊緣節(jié)點(diǎn)的空閑程度,保證了負(fù)載均衡;2)優(yōu)先卸載松弛度低的任務(wù),降低了任務(wù)超期執(zhí)行的概率;3)在為任務(wù)決定指派節(jié)點(diǎn)時(shí),綜合考慮了節(jié)點(diǎn)距離和負(fù)載情況,以盡量降低通信延遲和等待時(shí)間;4)引入了具有一定隨機(jī)性的調(diào)優(yōu)策略,避免上述貪婪選擇陷入局部最優(yōu),有一定概率跳出局部最優(yōu),逼近全局最優(yōu).
本文考慮異構(gòu)邊緣環(huán)境下帶截止期約束的任務(wù)卸載和調(diào)度問題,提出異構(gòu)邊緣協(xié)同的任務(wù)卸載和調(diào)度算法框架TOSD,解決確定哪些邊緣網(wǎng)絡(luò)節(jié)點(diǎn)的任務(wù)太多需要卸載、確定各節(jié)點(diǎn)上需卸載哪些任務(wù)、確定任務(wù)卸載到哪些服務(wù)器、任務(wù)按照什么順序調(diào)度、如何為每個(gè)任務(wù)分配資源等核心問題.采用多因素方差分析技術(shù)ANOVA 對算法算子和參數(shù)進(jìn)行校正,選取最佳的算子和參數(shù)組合作為解決所考慮問題的算法.將TOSD 算法與其變種算法對比,通過實(shí)驗(yàn)結(jié)果可以看出,所提出算法在不同參數(shù)設(shè)置下都明顯優(yōu)于其他對比算法,驗(yàn)證了所提出算法算子對所考慮問題都有效.
本文從異構(gòu)邊緣環(huán)境資源層面考慮邊緣服務(wù)器和云數(shù)據(jù)中心服務(wù)器,還有很多值得研究的問題,如:1)終端設(shè)備往往擁有一定的計(jì)算能力,可執(zhí)行一定數(shù)量的任務(wù),如何進(jìn)行任務(wù)調(diào)度值得研究;2)終端設(shè)備具有移動(dòng)性,任務(wù)提交位置與結(jié)果返回位置可能不同,如何考慮終端設(shè)備移動(dòng)的任務(wù)調(diào)度值得研究.
作者貢獻(xiàn)聲明:李小平負(fù)責(zé)算法設(shè)計(jì)、論文觀點(diǎn)的提煉和論文撰寫工作;周志星負(fù)責(zé)算法開發(fā)與實(shí)驗(yàn)環(huán)境搭建;陳龍負(fù)責(zé)實(shí)驗(yàn)設(shè)計(jì)與實(shí)驗(yàn)數(shù)據(jù)分析;朱潔負(fù)責(zé)研究實(shí)驗(yàn)調(diào)研、論文修改.