左琳立,郭 華,夏士超,方 飛
(1.重慶電子工程職業(yè)學(xué)院 通信工程學(xué)院, 重慶 401331;2.重慶郵電大學(xué) 移動通信技術(shù)重慶市重點實驗室, 重慶 400065;3.內(nèi)江師范學(xué)院 物理與電子信息工程學(xué)院,四川 內(nèi)江 641100)
移動終端設(shè)備將計算任務(wù)卸載到移動邊緣計算(mobile edge computing,MEC)的服務(wù)器上可以降低任務(wù)處理的時延、降低移動終端設(shè)備的計算量、避免網(wǎng)絡(luò)擁塞以及提升移動終端設(shè)備電池的使用壽命等,為了更好地處理這些卸載到MEC服務(wù)器上的計算任務(wù),異構(gòu)移動邊緣計算(heterogeneous mobile edge computing,H-MEC)系統(tǒng)中部署了大量的各種類型的MEC服務(wù)器(后續(xù)服務(wù)器均指MEC服務(wù)器)。服務(wù)器處于工作狀態(tài)的時間僅占10%~30%,而空閑時,服務(wù)器的待機(jī)功率最高可占到其峰值功率的70%[1],大量服務(wù)器部署為用戶帶來便利的同時也帶來了大量的能量消耗。因此,對異構(gòu)網(wǎng)絡(luò)下的移動邊緣計算進(jìn)行計算資源的分配、服務(wù)器負(fù)載均衡和服務(wù)器節(jié)能已經(jīng)成為了當(dāng)前研究的熱點問題。
針對MEC在任務(wù)卸載、服務(wù)器協(xié)作計算、遠(yuǎn)程云協(xié)作以及服務(wù)器休眠等有相關(guān)研究。對于單服務(wù)器計算能力不足的問題,文獻(xiàn)[2]提出了一種MEC節(jié)點之間和遠(yuǎn)程云服務(wù)器共同協(xié)作的三層協(xié)作計算網(wǎng)絡(luò),共同優(yōu)化卸載決策和計算資源的分配,降低了任務(wù)的處理時延和能耗。文獻(xiàn)[3]針對任務(wù)到達(dá)量的不同,構(gòu)建了任務(wù)隊列模型,使用李雅普諾夫和搜索樹的方法得到了異構(gòu)網(wǎng)絡(luò)場景下邊緣計算的任務(wù)卸載和資源分配優(yōu)化策略,降低了系統(tǒng)的時延和能耗。文獻(xiàn)[4]為了最小化移動邊緣中使用計算資源的總成本,將問題建模為整數(shù)規(guī)劃問題,以計算效率和性能最優(yōu)作為優(yōu)化目標(biāo),提出了兩階段優(yōu)化算法和迭代改進(jìn)算法。
異構(gòu)網(wǎng)絡(luò)中邊緣服務(wù)器的接入增加了系統(tǒng)的能耗,為了進(jìn)一步降低MEC系統(tǒng)的能耗,近年來有學(xué)者針對基站和服務(wù)器休眠做了研究。文獻(xiàn)[5]聯(lián)合蜂窩網(wǎng)絡(luò)的無線電資源分配和邊緣計算卸載決策,提出了最小化系統(tǒng)總能耗的優(yōu)化決策算法。文獻(xiàn)[6]考慮在異構(gòu)邊緣計算網(wǎng)絡(luò)中,聯(lián)合考慮基站與移動設(shè)備的能耗,在保證用戶體驗質(zhì)量(quality of service, QoS)的同時實現(xiàn)能耗最小化。文獻(xiàn)[7]提出了一種云計算中心多睡眠模式下的服務(wù)器任務(wù)調(diào)度問題,在滿足QoS的條件下聯(lián)合動態(tài)電壓管理)將需要的最小活躍服務(wù)器數(shù)建模成整數(shù)線性規(guī)劃問題,得到了最小化云計算中心能耗的優(yōu)化算法。由于業(yè)務(wù)在空間上的非均勻分布,造成了MEC服務(wù)器負(fù)載不均衡和服務(wù)器能耗過高,為了解決該問題,文獻(xiàn)[8]給出了移動邊緣網(wǎng)絡(luò)分層計算模型,通過服務(wù)器休眠構(gòu)建出了長期能耗最小化問題,并使用李雅普諾夫方法求解出任務(wù)遷移決策。文獻(xiàn)[9]根據(jù)微基站(small base station,SBS)睡眠定義可用SBS集合,根據(jù)不同的任務(wù)負(fù)載提出了一種混合整數(shù)二次規(guī)劃聯(lián)合調(diào)度策略,降低了系統(tǒng)的整體能耗。
上述文獻(xiàn)對于傳統(tǒng)的邊緣計算環(huán)境中的任務(wù)卸載策略、服務(wù)器休眠等有相關(guān)研究,但針對服務(wù)器之間的任務(wù)均衡和高能耗問題仍有欠缺。本文針對非均勻到達(dá)的任務(wù)量進(jìn)行了遷移,同時使用了多種睡眠模式來降低系統(tǒng)的整體能耗,主要貢獻(xiàn)如下。
1)考慮異構(gòu)網(wǎng)絡(luò)環(huán)境中非均勻到達(dá)的任務(wù)量,設(shè)計了一種聯(lián)合宏基站和微基站服務(wù)器的計算任務(wù)協(xié)作機(jī)制,以均衡服務(wù)器之間的計算任務(wù)量。
2) 針對服務(wù)器的空閑時間過長的問題,設(shè)計了一種服務(wù)器多睡眠狀態(tài)的休眠機(jī)制,在保證計算任務(wù)能夠正確執(zhí)行的前提下讓服務(wù)器進(jìn)入不同的睡眠狀態(tài)。將該問題建模成混合整數(shù)非線性規(guī)劃(mixed integer nonlinear programming, MINLP)問題,并按時隙劃分對子問題使用序列二次規(guī)劃算法進(jìn)行求解,然后對求解結(jié)果使用遷移更新算法糾錯。仿真表明所提算法可以顯著降低系統(tǒng)的能耗。
H-MEC場景由一個宏基站(macro base station,MBS)和n個SBS組成,MBS和每個SBS都部署了具有一定計算資源的MEC服務(wù)器。MEC服務(wù)器集合由N={0,1,2,…,N}表示,其中,i=0(i∈N)表示MBS服務(wù)器,i≠0表示第i個SBS服務(wù)器,系統(tǒng)模型如圖1。MEC服務(wù)器之間可以通過協(xié)作來平衡每個MEC服務(wù)器的計算工作量。每個服務(wù)器覆蓋的用戶設(shè)備(user equipment,UE)數(shù)量、種類以及計算任務(wù)的類型不同,即本文考慮異構(gòu)的H-MEC服務(wù)器場景。同時,為了進(jìn)一步降低系統(tǒng)能耗,本文根據(jù)高級配置和電源接口(advanced configuration and power interface,ACPI)標(biāo)準(zhǔn)考慮MEC服務(wù)器可以進(jìn)入K種不同能耗水平的睡眠狀態(tài)UE可以將其計算任務(wù)部分或全部卸載到與之關(guān)聯(lián)的MEC服務(wù)器。
圖1 系統(tǒng)模型圖Fig.1 System model diagram
H-MEC系統(tǒng)在時域中劃分為多個時隙t∈T={1,2,…,T},且每個時隙持續(xù)的時間為τ。假設(shè)在時隙τ內(nèi)服務(wù)器i所到達(dá)的計算任務(wù)量為bi(t),bi(t)是服從均值為λi(t)的泊松分布且bi(t)獨立同分布,則時隙t內(nèi)任務(wù)到達(dá)量可以表示為{bi(t)}={λ0(t),λ1(t),…,λN(t)},?t∈T,i∈N。每個時隙的任務(wù)到達(dá)量都會變化,為了簡化運算,假設(shè)每個計算任務(wù)的平均大小為1 Mbit[10]。
根據(jù)ACPI標(biāo)準(zhǔn)[11],假設(shè)服務(wù)器有K種睡眠模式,每一種睡眠模式的功率可以表示為PSk, ?k∈{1,2,…,K},每種睡眠模式功耗關(guān)系為Pmax>Pidle>PS0>…>PSk,其中,Pmax表示MEC服務(wù)器的峰值功率,Pidle表示空閑功率。
根據(jù)ACPI標(biāo)準(zhǔn)可知,不同睡眠模式的切換也會影響異構(gòu)邊緣網(wǎng)絡(luò)服務(wù)器的總功耗。服務(wù)器的狀態(tài)切換只在睡眠狀態(tài)和活動狀態(tài)S0之間,即活躍狀態(tài)的服務(wù)器可以進(jìn)入到任何一種睡眠狀態(tài),但某個睡眠狀態(tài)不能切換到另一個睡眠狀態(tài),睡眠狀態(tài)可以切換到活躍狀態(tài),同時,不同睡眠模式的過渡延遲和能耗是不同的。令PS0→Sk表示從活躍狀態(tài)S0到睡眠狀態(tài)Sk的狀態(tài)切換功率,PSk→S0表示從Sk到S0的切換功率。服務(wù)器不同睡眠狀態(tài)的能耗不同,不同狀態(tài)的切換能耗也不同,處于越深睡眠狀態(tài)的服務(wù)器其能耗越低,且睡眠和喚醒狀態(tài)的切換能耗也越低。因此對于不同狀態(tài)的睡眠模式,其狀態(tài)切換功率具有如(1)式的關(guān)系。
(1)
同理,越淺的睡眠模式可以更快地喚醒,而深度睡眠模式需要更長的時間才能轉(zhuǎn)換到活躍狀態(tài)。令TS0→Sk表示從S0到Sk的切換時延,TSk→S0表示Sk到S0的切換時延,可以得到
(2)
(3)
在時隙t時,令所有MEC服務(wù)器的睡眠狀態(tài)集合為S(t)。
為了應(yīng)對H-MEC中服務(wù)器任務(wù)到達(dá)量在空間上的非均勻分布,本文提出了MEC服務(wù)器之間的任務(wù)協(xié)同計算策略,包括3種方式:① 計算任務(wù)較多的服務(wù)器可將任務(wù)遷移到任務(wù)較少的服務(wù)器;②SBS服務(wù)器的任務(wù)負(fù)載超過了其最大處理速率時可以將其遷移到MBS服務(wù)器上;③讓服務(wù)器計算任務(wù)量盡可能地達(dá)到服務(wù)器的計算能力飽和狀態(tài),而沒有計算任務(wù)的服務(wù)器可以進(jìn)入睡眠模式。該策略可以在均衡H-MEC系統(tǒng)中服務(wù)器任務(wù)負(fù)載的同時,部分服務(wù)器進(jìn)入睡眠狀態(tài)以節(jié)約系統(tǒng)能耗。
在時隙t時,服務(wù)器i的任務(wù)遷移策略可表示為πi(t)={πi0(t),πi1(t)…,πiN(t)},?t∈T,i∈N。其中,πij(t)表示在時隙t時從服務(wù)器i遷移到服務(wù)器j的任務(wù),πii(t)表示進(jìn)行任務(wù)遷移后服務(wù)器i剩余的任務(wù)。為了避免計算任務(wù)在服務(wù)器上循環(huán)進(jìn)行遷移,假設(shè)服務(wù)器所到達(dá)的任務(wù)量只能遷移一次到其他服務(wù)器。且當(dāng)πij(t)>0時,表示服務(wù)器i將自身計算任務(wù)遷移到服務(wù)器j,服務(wù)器i將不能計算其他服務(wù)器遷移的任務(wù)。如果MEC服務(wù)器處于睡眠狀態(tài)且不決定將其喚醒,則無法將任務(wù)遷移給它,但它自身到達(dá)的任務(wù)仍可以通過基站將其傳輸給其他服務(wù)器,以保證任務(wù)不會丟失。
在時隙t,令所有MEC服務(wù)器的遷移策略的集合表示為X(t)。
本文主要研究基于服務(wù)器多休眠狀態(tài)的協(xié)作計算策略。在時隙t時,服務(wù)器的時延模型可以分為5個部分:①UE卸載時延;②服務(wù)器計算時延;③任務(wù)遷移排隊時延;④服務(wù)器狀態(tài)切換時延;⑤服務(wù)器計算結(jié)果返回時延。
H-MEC系統(tǒng)的主要能耗包括:①UE的計算能耗;②遷移任務(wù)時傳輸?shù)哪芎?;③服?wù)器的計算能耗;④服務(wù)器的狀態(tài)切換能耗;⑤服務(wù)器計算結(jié)果返回能耗。
由于本文重點針對MEC服務(wù)器整體成本進(jìn)行研究,因此不考慮UE的卸載時延和UE的計算能耗。同時因計算結(jié)果往往很小,故不考慮計算結(jié)果的返還時延[12]和計算結(jié)果的返還能耗。
1) 任務(wù)遷移排隊時延。
(4)
(4)式中,ε表示在任務(wù)遷移網(wǎng)絡(luò)不擁塞的情況下發(fā)送和接收單位工作負(fù)載的平均傳輸時間。
2)服務(wù)器計算時延。
(5)
3) 服務(wù)器喚醒時延。
(6)
4)服務(wù)器能耗模型
由文獻(xiàn)[14]可知,MEC服務(wù)器的能耗與任務(wù)負(fù)載對應(yīng)動態(tài)能耗和空閑能耗相關(guān),其空閑能耗一直存在,動態(tài)能耗跟任務(wù)量的大小相關(guān)。則在時隙t內(nèi),活躍狀態(tài)MBS服務(wù)器的能耗模型可以表示為
(7)
(8)
在時隙t處在睡眠狀態(tài)的服務(wù)器總能耗Esleep(t)可以表示為
(9)
在時隙t服務(wù)器不同狀態(tài)之間的切換能耗Echange(t)可以表示為
(10)
假設(shè)在H-MEC中的單位任務(wù)傳輸能耗為Ptrans,則在時隙t時MEC服務(wù)器遷移任務(wù)的總傳輸能耗Etrans(t)可以表示為,
(11)
因此,在時隙t內(nèi),H-MEC系統(tǒng)的總能耗可以表示為
(12)
本文通過均衡H-MEC系統(tǒng)中非均勻到達(dá)的任務(wù)量的方式使資源得到充分地利用,再通過服務(wù)器休眠的方式節(jié)約能耗。通過對任務(wù)遷移決策X,服務(wù)器多睡眠狀態(tài)決策S進(jìn)行聯(lián)合優(yōu)化,使系統(tǒng)的能耗E最小化,其優(yōu)化問題可以表示為
(13)
(14)
(15)
(16)
(17)
πi(t)∈X(t),?t∈T,i∈N
(18)
M(t)=Mtotal,?t∈T
(19)
其中,約束(14)表示每個時隙中服務(wù)器i的總延遲要小于其能容忍的最大延遲,即時間片長度τ,以保證所有用戶的體驗質(zhì)量;約束(15)表示在時隙t的總能耗不應(yīng)超過所有服務(wù)器的能耗之和;約束(16)表示所有服務(wù)器到達(dá)的任務(wù)量之和應(yīng)等于所有服務(wù)器遷移任務(wù)量與未遷移的任務(wù)之和;約束(17)表示每個MEC服務(wù)器到達(dá)的任務(wù)量和其他服務(wù)器遷移的任務(wù)量之和不能超過服務(wù)器的最大處理速率;約束(18)表示遷移策略的可行性;約束(19)表示系統(tǒng)所有狀態(tài)的服務(wù)器之和等于服務(wù)器的總數(shù)Mtotal。
上述問題的決策變量包括整型和連續(xù)變量,目標(biāo)函數(shù)和約束條件包含非線性函數(shù),因此可以構(gòu)建成一個大規(guī)模的MINLP問題。但是在整個系統(tǒng)中時隙過多,直接進(jìn)行求解比較困難,本文按照每個時隙進(jìn)行切分,問題轉(zhuǎn)化成小規(guī)模的MINLP問題,然后使用Optimization Toolbox里的序列二次規(guī)劃(sequential quadratic programming, SQP)算法進(jìn)行求解。SQP算法可以將復(fù)雜的非線性約束最優(yōu)化問題使用拉格朗日函數(shù)的二次近似轉(zhuǎn)化為比較簡單的二次規(guī)劃問題,然后對目標(biāo)函數(shù)使用一維搜索方法對每個子問題進(jìn)行求解,通過迭代求解得到最優(yōu)解。使用SQP算法得到在每個時隙子問題的遷移決策,但可能下一個時隙的任務(wù)量到達(dá)過多,當(dāng)前在活躍狀態(tài)的服務(wù)器數(shù)量不滿足下一時隙的計算任務(wù)量要求。因此,在每個決策做完之后會根據(jù)多個時隙任務(wù)量大小使用遷移更新算法更新遷移決策,確保在下一個時隙的服務(wù)器數(shù)量滿足計算任務(wù)的要求。
根據(jù) (13) 式及其約束條件,本文所提問題是一個大規(guī)模的MINLP問題,首先需要將大規(guī)模問題按照時隙進(jìn)行劃分將其轉(zhuǎn)化成小型的MINLP問題,以便于求解。算法1給出了系統(tǒng)整體的多睡眠模式最小能耗任務(wù)調(diào)度算法(multi sleep mode task scheduling algorithm,MSTS)。其中,每個時隙更新前的遷移決策使用x(t)表示,更新后的遷移決策使用X(t)表示。
算法1 多睡眠模式最小能耗任務(wù)調(diào)度算法
輸出:X,S,P
1:初始化:遷移決策X=?,睡眠狀態(tài)S=?,總能耗P=0
2: fort=1,2,…,Tdo
3: 構(gòu)建系數(shù)矩陣,使用SQP算法
4: 得到時隙t更新前的遷移決策x(t)
5: 使用遷移更新算法更新時隙t的最優(yōu)遷移決策X(t)
6: 使用睡眠決策算法更新睡眠決策S(t)
7: 獲取時隙t的遷移能耗P(t)
8: 更新遷移決策X,睡眠決策S,遷移能耗P
9: end for
10: returnX,S,P
其算法主要思想是根據(jù)SQP算法的參數(shù)要求構(gòu)造當(dāng)前時隙子問題的系數(shù)矩陣(算法1第3行),然后根據(jù)輸入?yún)?shù)使用SQP算法求解該時隙的決策集合。但因為任務(wù)到達(dá)具有隨機(jī)性,本文使用遷移更新算法來調(diào)整求解得到的決策變量,以確保下一個時隙計算的可行性。最后,將每個時隙的結(jié)果進(jìn)行合并更新,返回遷移結(jié)果。
根據(jù)算法1所述的算法框架可知,在每個時隙當(dāng)中都需要重新構(gòu)造系數(shù)矩陣。系數(shù)矩陣的參數(shù)包括SQP算法中的等式約束中的系數(shù)、不等式約束中的系數(shù)、任務(wù)到達(dá)量以及所有服務(wù)器狀態(tài)等。矩陣構(gòu)建完畢之后就可以使用SQP算法計算出當(dāng)前時隙的遷移決策集合,得到的遷移決策集合需要根據(jù)多時隙的任務(wù)到達(dá)量來預(yù)測更新,提高算法的魯棒性和系統(tǒng)的穩(wěn)定性。最后根據(jù)服務(wù)器的任務(wù)量輸入睡眠決策算法來確定每個服務(wù)器的狀態(tài),得到所有服務(wù)器的睡眠狀態(tài)集合。
算法2 遷移更新算法
輸入:時隙t中SQP算法輸出的遷移決策x(t)
服務(wù)器睡眠決策S(t-1)
任務(wù)到達(dá)隊列b(t)
輸出:更新后的遷移決策X(t)
時隙t的睡眠決策S(t)
時隙t的能耗P(t)
2:獲取MBS服務(wù)器計算任務(wù)量υ0(t)
3:獲取SBS總?cè)蝿?wù)量υi(t)
5:調(diào)整MBS服務(wù)器比例δ的值
6:x(t)→X(t),睡眠算法更新睡眠決策S(t),計算能耗P(t)
7: else:
8:根據(jù)任務(wù)到達(dá)率bi(t)、服務(wù)器i的狀態(tài)以及遷移決策xi(t)計算遷移成本Ci(t)
9: fori=0 toNdo:
11:更新服務(wù)器i的遷移決策Xi(t),睡眠決策Si(t),遷移能耗Pi(t)
12: else:
13: 睡眠算法更新睡眠決策Si(t)
14: end if
16: end for
17: end if
18: returnX(t),S(t),P(t)
算法3 睡眠決策算法
輸入:遷移決策X(t)
服務(wù)器睡眠決策S(t-1)
服務(wù)器多時隙到達(dá)任務(wù)隊列bi(t-1)和bi(t)
MBS基站最大任務(wù)量比例系數(shù)δ
輸出:時隙t的睡眠決策S(t)
時隙t的能耗P(t)
1: 獲取遷移任務(wù)量Xi(t)=0的服務(wù)器
2: fori=0 toNdo:
3: ifXi(t)=0 then:
4: if (bi(t-1)+bi(t))/2<(b(t-1)+b(t))/2·iand
Si(t-1) not in {Sk} then:
6: 更新睡眠模式Si(t),計算能耗Pi(t)
7: end if
8: else:
9: ifSi(t-1) in {Sk} then:
10: 喚醒服務(wù)器,更新睡眠模式Si(t),計算能耗Pi(t)
11: end if
12: end if
14: returnS(t),P(t)
為了檢驗本文所提算法的有效性,本文設(shè)置如圖1的異構(gòu)MEC場景,該場景中有MBS基站一個,SBS基站15個,每個基站旁邊都配備了相應(yīng)的服務(wù)器。
仿真時隙數(shù)T=1 000,每個時隙長度τ=1 s。每個服務(wù)器的任務(wù)到達(dá)率bi為0—30 Mbit/s,任務(wù)遷移時平均單位任務(wù)傳輸時間為0.002 s[10]。SBS側(cè)服務(wù)器最大處理速率為30 Mbit/s,最大功耗Pmax為243 W。MBS側(cè)服務(wù)器最大處理速率為100 Mbit/s,最大功耗Pmax為500 W,空閑功耗為350 W。文獻(xiàn)[14-15]給出了服務(wù)器在不同狀態(tài)下的能耗和時延情況,結(jié)合ACPI規(guī)范[11],每個狀態(tài)的能耗和狀態(tài)切換的功耗與時延如表1。
表1 服務(wù)器能耗與時延對照表Tab.1 Server energy consumption and delay comparison table
根據(jù)ACPI規(guī)范,服務(wù)器的S-States是讓服務(wù)器進(jìn)入不同的睡眠模式來降低能耗。服務(wù)器的睡眠模式總共有5種,分別是S1(除CPU關(guān)閉外其他設(shè)備全部處于工作狀態(tài)),S2(總線時鐘關(guān)閉,和S1狀態(tài)相差很小),S3(掛起到內(nèi)存,會丟失緩存),S4(掛起到硬盤,可以被喚醒)和S5(關(guān)機(jī)狀態(tài)),S0則代表處于活躍狀態(tài)。
在移動邊緣計算當(dāng)中,時時刻刻都有終端設(shè)備將其任務(wù)卸載上來,但由于各個時刻對應(yīng)的任務(wù)量都各不相同(如白天和夜晚對應(yīng)任務(wù)量差異大),為了驗證本文算法具有良好的魯棒性,本文生成了幾種不同任務(wù)量的數(shù)據(jù)集,如圖2。包括平穩(wěn)變化(圖2a和圖2b)和劇烈變化(圖2c和圖2d)的任務(wù)到達(dá)量,其中陰影部分表示所有服務(wù)器任務(wù)到達(dá)的總量,每個數(shù)據(jù)集的任務(wù)隊列都滿足單個服務(wù)器的任務(wù)到達(dá)率bi,其值為0~30 Mbit/s,總數(shù)據(jù)量也滿足仿真要求。
圖2 不同任務(wù)量數(shù)據(jù)集對比圖Fig.2 Comparison chart of different task volume data sets
在傳統(tǒng)云計算數(shù)據(jù)中心,針對服務(wù)器休眠有大量的研究,服務(wù)器休眠的策略也可以應(yīng)用于MEC系統(tǒng)。根據(jù)文獻(xiàn)[1],有3種基本休眠方式,分別是AlwaysOn, Reactive, SoftReactive。其中,AlwaysOn算法策略為數(shù)據(jù)中心的所有節(jié)點都不進(jìn)行休眠,始終保持活躍狀態(tài);Reactive算法將根據(jù)服務(wù)中心的負(fù)載多少,動態(tài)地調(diào)整其睡眠或者進(jìn)入活躍狀態(tài),其思想是只要服務(wù)器沒有計算任務(wù)則立即進(jìn)入休眠狀態(tài),當(dāng)有任務(wù)時則立刻喚醒。本文中,因為考慮了多個睡眠狀態(tài),為了滿足這種策略,將睡眠模式都統(tǒng)一調(diào)整為S1狀態(tài),且當(dāng)計算時間和睡眠切換時間之和超過時隙長度時不進(jìn)入休眠狀態(tài);SoftReactive算法則是為了避免出現(xiàn)Reactive模式的頻繁開關(guān)機(jī)狀態(tài)切換而提出的改進(jìn)方法,該方法在服務(wù)器沒有任務(wù)時并不是馬上進(jìn)入休眠狀態(tài),而是等待一段時間,等待時間一般為TsetupPmax/Pidle,Tsetup表示喚醒時間。但本文通過時隙規(guī)劃,該時間不滿足時隙長度。為了進(jìn)行對比,本文將等待時間修改為當(dāng)任務(wù)計算之后剩余時間占時隙長度的比值,當(dāng)這個比值大于Tshutdown時則進(jìn)入S1狀態(tài),Tshutdown表示進(jìn)入睡眠模式的切換時延。其喚醒方法與Reactive一樣。
文獻(xiàn)[1]中的3種基礎(chǔ)算法,AlwaysOn表示服務(wù)器始終處于開啟狀態(tài),其功率變化很小,處于空閑狀態(tài)時其能耗水平約為工作狀態(tài)的70%以上,整體上其變化趨勢很小。針對Reactive和SoftReactive 2種方法,由于SoftReactive方法會在沒有計算任務(wù)時等待一段時間,但由于本文所設(shè)系統(tǒng)的每個仿真時隙長度較短,因此,進(jìn)入睡眠狀態(tài)的服務(wù)器數(shù)量極少,仿真結(jié)果和AlwaysOn算法中的功耗基本一致,故在仿真結(jié)果中只展示AlwaysOn和Reactive 2種對比算法。本文算法設(shè)置MBS服務(wù)器的δ=0.5,服務(wù)器睡眠模式為混合睡眠模式時的仿真結(jié)果和其他幾種算法的仿真結(jié)果比較如圖3。
由圖3可以看出,本文所提算法在不同數(shù)據(jù)集中都有較好的表現(xiàn),與其他幾種算法相比都可以顯著地降低系統(tǒng)能耗。圖3a和圖3b是任務(wù)到達(dá)隊列比較穩(wěn)定的數(shù)據(jù)集使用幾種算法后系統(tǒng)的總能耗對比圖,可以看出在低任務(wù)量和高任務(wù)量中,本文所提算法MSTS都有良好的表現(xiàn),表明所提算法具有良好的魯棒性和有效性。
圖3c可以看出,當(dāng)任務(wù)到達(dá)量驟降時,AlwaysOn算法的能耗還是基本保持不變,因為空閑能耗與峰值能耗之間差值太小,降低能耗非常有限。而在Reactive算法中因其可以讓服務(wù)器進(jìn)入休眠狀態(tài),因此可以比較明顯的降低系統(tǒng)能耗,但由于其會在沒有計算任務(wù)時立刻進(jìn)入休眠狀態(tài),會存在大量的狀態(tài)切換能耗,故其能耗控制也比較有限。本文所提算法MSTS可以穩(wěn)定的降低系統(tǒng)能耗,在任務(wù)量降低時也可以及時的反應(yīng),同時為了避免瞬間休眠大量服務(wù)器造成計算資源不足,MSTS算法會在任務(wù)量驟降時緩慢休眠服務(wù)器來保證任務(wù)能夠正確執(zhí)行。
圖3d中可以看出,當(dāng)計算任務(wù)量較大時,Reactive算法的表現(xiàn)會很差,因為除了進(jìn)行任務(wù)計算還需要反復(fù)的休眠和喚醒服務(wù)器,產(chǎn)生大量的狀態(tài)切換能耗,在任務(wù)量激增時還會出現(xiàn)能耗高過AlwaysOn算法的情況。在本文所提算法MSTS中,任務(wù)激增時系統(tǒng)會喚醒擁有足夠資源量的服務(wù)器數(shù),保證任務(wù)的正確執(zhí)行,同時,也不會出現(xiàn)盲目喚醒過多服務(wù)器的情況,保證了系統(tǒng)的穩(wěn)定性。
圖3 不同算法能耗對比圖Fig.3 Comparison of energy consumption of different algorithms
圖4給出了本文所提算法MSTS在不同數(shù)據(jù)集上累計降低的總能耗對比圖??梢钥闯?,在任務(wù)到達(dá)量比較穩(wěn)定的數(shù)據(jù)集1和數(shù)據(jù)集2中,其累計降低能耗與仿真時間呈正相關(guān),其斜率也基本保持不變。任務(wù)到達(dá)量大的數(shù)據(jù)集2比任務(wù)到達(dá)量小的數(shù)據(jù)集1累計降低的能耗低。而在數(shù)據(jù)集3和數(shù)據(jù)集4中,降低的總能耗會因為任務(wù)到達(dá)量的激增或驟降出現(xiàn)較小的波動,但是從整個仿真過程來看,該算法也能在快速調(diào)整后使降低能耗趨于穩(wěn)定狀態(tài)。
圖4 MSTS算法不同數(shù)據(jù)集節(jié)省功耗Fig.4 MSTS algorithm different data sets to save power consumption
圖5給出了不同數(shù)據(jù)集中不同算法的長期平均能耗對比圖,其中本文所提算法MSTS比其他2種算法都明顯地降低了能耗,且在不同類型的數(shù)據(jù)集中都有不錯的表現(xiàn)。盡管數(shù)據(jù)集中任務(wù)到達(dá)出現(xiàn)了缺失和激增的情況,所提算法也可以很好地降低系統(tǒng)的整體能耗。
圖5 系統(tǒng)平均能耗對比圖Fig.5 System average energy consumption comparison
圖6給出了MBS服務(wù)器在不同δ取值的情況下,所提算法在幾種數(shù)據(jù)集中的長期平均能耗對比圖,為了保證任務(wù)的正確遷移,δ的最大取值限制在2/3,避免突增任務(wù)造成系統(tǒng)不能正確執(zhí)行任務(wù)。仿真結(jié)果表明,在保證用戶體驗質(zhì)量的前提下,δ取值越大,節(jié)約的能耗越多,雖然在短時間內(nèi)節(jié)省能耗值較小,但當(dāng)系統(tǒng)的時隙整體長度越長時,節(jié)省的能耗也比較可觀。因此,在系統(tǒng)任務(wù)到達(dá)隊列較穩(wěn)定時,保持一個較大的δ值可以節(jié)省更多的能耗,在任務(wù)到達(dá)隊列變化較大時取較小的δ值可以保證任務(wù)的正確執(zhí)行。雖然在單個MBS服務(wù)器的H-MEC系統(tǒng)中降低的能耗很有限,但當(dāng)應(yīng)用到存在大量的MBS服務(wù)器的實際環(huán)境中時,節(jié)省的總能耗就會比較可觀。因此,在MBS服務(wù)器上設(shè)置一個閾值既可以保證突發(fā)任務(wù)能夠被正確執(zhí)行,又可以降低系統(tǒng)的整體能耗。
圖6 MBS服務(wù)器不同閾值能耗對比圖Fig.6 Comparison of energy consumption of MBS server with different thresholds
為了評估不同睡眠模式中系統(tǒng)的整體能耗,確定出最合適的睡眠策略,圖7給出了本文所提算法使用不同睡眠模式的仿真測試結(jié)果。結(jié)果表明,在單S1模式和單S3模式中,都能夠有效地降低系統(tǒng)的能耗。但在單S4模式中,因狀態(tài)切換時間超過了時隙長度,需要跟多個時隙的任務(wù)量進(jìn)行對比,才能保證用戶任務(wù)能夠正常執(zhí)行。同時為了保證任務(wù)不丟失,本文算法中對單時隙任務(wù)到達(dá)量超過最大服務(wù)量0.4倍時就不進(jìn)行任何操作,故其對于能耗的控制并沒有前面2種模式好。在混合睡眠模式(S1+S3+S4)中,MSTS可以在多時隙任務(wù)到達(dá)量小于設(shè)定值時讓其進(jìn)入深度睡眠模式,在任務(wù)量較大時進(jìn)入較淺的睡眠模式,因此,其能耗控制優(yōu)于前面幾種單睡眠模式。
圖7 不同睡眠模式能耗對比圖Fig.7 Comparison of energy consumption in different sleep modes
本文主要對H-MEC網(wǎng)絡(luò)中的協(xié)同計算和服務(wù)器休眠問題進(jìn)行了研究。首先根據(jù)H-MEC網(wǎng)絡(luò)環(huán)境中非均勻到達(dá)的任務(wù)量進(jìn)行建模,構(gòu)建出任務(wù)遷移策略模型。然后針對服務(wù)器設(shè)計多種睡眠策略,并對其時延和能耗進(jìn)行了詳細(xì)建模,構(gòu)建出長期平均最小化能耗問題。將問題轉(zhuǎn)化成大規(guī)模MINLP問題,然后按時隙劃分為小型MINLP子問題進(jìn)行求解,對協(xié)同計算的任務(wù)量進(jìn)行整體調(diào)度,得到協(xié)同計算策略后進(jìn)行服務(wù)器休眠的設(shè)計,使其進(jìn)入合適的睡眠狀態(tài)來節(jié)省系統(tǒng)能耗。最后通過MATLAB仿真軟件對本文所提算法進(jìn)行了仿真,并與多種傳統(tǒng)算法進(jìn)行對比,結(jié)果顯示,本文所提算法具有良好的效果,可以保證計算任務(wù)的正確執(zhí)行。并可以在任務(wù)到達(dá)量激烈變化時動態(tài)地調(diào)整,具有較強(qiáng)的魯棒性和有效性。