范寶芝 王開宇 白小軍 金順福
(燕山大學信息科學與工程學院 秦皇島066004)
隨著無線通訊技術(shù)的發(fā)展,網(wǎng)絡應用程序的使用越來越多。移動設備負載能力不足的問題日趨明顯,云計算為移動設備的任務卸載提供支持[1]。值得注意的是,不斷增長的云應用導致云數(shù)據(jù)中心消耗著巨大的能源,對環(huán)境也產(chǎn)生了惡劣的影響。研究發(fā)現(xiàn),按照每年40%~60%的增長率估算,到2030 年云數(shù)據(jù)中心的能源消耗將達到8000 TWh[2]。綠色云計算是社會進步的必然趨勢,也是實現(xiàn)可持續(xù)發(fā)展的前提。緩解云數(shù)據(jù)中心的高耗能問題是云計算研究的重點內(nèi)容之一。
文獻[3]提出了一種動態(tài)遷移虛擬機的調(diào)度方法,通過建立一個虛擬機放置/遷移的平臺,使用兩個調(diào)度程序分別調(diào)度預期的負載和未預期的負載,有效降低了云數(shù)據(jù)中心的功耗。文獻[4]提出了一種動態(tài)的空閑間隔預測方案,該方案可以估計未來中央處理器(central processing unit,CPU)空閑間隔長度,選擇考慮成本效益的休眠狀態(tài)以最小化運行功耗,并提高CPU 的利用率。以上文獻專注于降低云系統(tǒng)的能源消耗,卻忽略了云用戶對響應性能的需求。
考慮到云用戶對響應性能的需求,文獻[5]提出了一種基于(N,T) 休眠機制的云計算中心節(jié)能策略。結(jié)合喚醒閾值N及長度為T的休眠計時器,建立多重同步休假隨機模型。利用改進飛蛾撲火優(yōu)化算法,給出了節(jié)能策略的聯(lián)合優(yōu)化方案,實驗證實所提策略在保證用戶響應性能的基礎(chǔ)上,有效降低了系統(tǒng)能耗。文獻[6]提出了一種基于動態(tài)閾值的服務器喚醒策略。該策略綜合考慮用戶端的任務情況和服務器的能耗成本,動態(tài)調(diào)整任務請求數(shù)的閾值,并根據(jù)時間優(yōu)先級喚醒服務器。與靜態(tài)閾值的服務器喚醒策略相比,該策略有效降低了云計算系統(tǒng)的能耗開銷。以上研究專注于云系統(tǒng)本身,未考慮產(chǎn)生任務的移動設備及移動設備自身的處理能力。
本文綜合考慮云用戶響應性能及云系統(tǒng)的能源消耗,基于部分用戶任務在移動設備本地處理器執(zhí)行的實際情況,提出一種移動設備本地處理器持續(xù)工作和云端物理機內(nèi)虛擬機同步休眠的任務調(diào)度策略。針對云端異構(gòu)物理機的不同服務速率,在遠程云端建立多個帶有同步多重休假的M/M/ck排隊模型。利用擬生滅過程和矩陣幾何解給出系統(tǒng)模型的穩(wěn)態(tài)分布,通過系統(tǒng)實驗揭示任務平均響應時間與系統(tǒng)平均運行功率的變化趨勢。構(gòu)造系統(tǒng)成本函數(shù),引入Logistic 映射混沌機制改進傳統(tǒng)鯨魚優(yōu)化算法,給出最優(yōu)任務分配策略,實現(xiàn)系統(tǒng)成本的最小化。
針對移動設備存儲空間不足且處理能力有限等問題,借助于遠程云端的幫助,移動設備任務負載能夠有效地得到均衡。在任務調(diào)度器的協(xié)調(diào)下,將移動設備產(chǎn)生的任務分為兩部分,一部分任務分配到本地處理器接受服務,另一部分任務則卸載到遠程云端的虛擬機上接受服務。
遠程云端部署多個異構(gòu)物理機,物理機的集合表示為S={S1,S2,…,Sn},| S|=n。通過虛擬化技術(shù)在物理機Sk(k=1,2,…,n) 上部署ck(ck≥1)個云虛擬機。假設部署在同一臺物理機上的虛擬機同構(gòu),不同物理機上的虛擬機異構(gòu)[7]。給出由本地移動設備和遠程云端組成的體系結(jié)構(gòu),如圖1 所示。
圖1 移動設備與遠程云端構(gòu)成的體系結(jié)構(gòu)
傳統(tǒng)云服務中,云服務器一直處在活躍狀態(tài),增加了遠程云端的能源消耗。休眠機制是一種有效減少能源消耗的人為手段。借助于虛擬化技術(shù),在同一臺物理機上的虛擬機中引入周期性同步休眠機制,不同物理機上的虛擬機引入周期性異步休眠機制。在每個物理機上設置一個休眠定時器。當物理機上的全部任務結(jié)束服務時,該定時器觸發(fā),部署在該物理機上的全部虛擬機同時進入休眠狀態(tài)。不同物理機上的定時器的觸發(fā)相互獨立,也就是說,一個物理機上的虛擬機的休眠或喚醒,與另一個物理機上虛擬機無關(guān)。
基于所提出的體系結(jié)構(gòu),遠程云端上的虛擬機具有3 種狀態(tài):活躍狀態(tài)、空閑狀態(tài)和休眠狀態(tài)。虛擬機的狀態(tài)轉(zhuǎn)換過程如圖2 所示。
圖2 虛擬機的狀態(tài)轉(zhuǎn)移過程
(1) 活躍狀態(tài)。處于活躍狀態(tài)的虛擬機為某一個任務提供服務。虛擬機服務完成當前任務后,按先來先服務規(guī)則為緩存區(qū)中等待的任務提供服務。若緩存區(qū)空,但其他虛擬機未全部空閑,則該虛擬機由活躍狀態(tài)切換到空閑狀態(tài)。若緩存區(qū)空且所有虛擬機空閑,則該虛擬機與其他虛擬機同步切換到休眠狀態(tài)。
(2) 空閑狀態(tài)。處于空閑狀態(tài)的虛擬機,可以隨時為分配到的任務提供服務,也可以與其他虛擬機同步進入休眠狀態(tài)。若分配到任務,空閑虛擬機可以立即切換到活躍狀態(tài)。若所有虛擬機全部執(zhí)行完成所分配的任務且緩存區(qū)空,該虛擬機與其他虛擬機同步切換到休眠狀態(tài)。
(3) 休眠狀態(tài)。處于休眠狀態(tài)的虛擬機暫時不再為任務提供服務。當虛擬機處于休眠狀態(tài)時,新到達任務在系統(tǒng)緩存區(qū)中排隊等待。當一個物理機的休眠定時器到期時,若系統(tǒng)緩存區(qū)空,重新啟動休眠定時器,其上的虛擬機同時開始下一個休眠間隔,多個休眠間隔構(gòu)成一個休眠期;若系統(tǒng)緩存區(qū)不空,全部虛擬機則同時結(jié)束休眠,依次處理系統(tǒng)緩存區(qū)滯留的任務。分配到任務的虛擬機由休眠狀態(tài)切換到活躍狀態(tài),未被分配到任務的虛擬機由休眠狀態(tài)切換到空閑狀態(tài)。
將移動設備視為連續(xù)工作的M/M/1 排隊,遠程云端的每一個物理機視為虛擬機同步多重休假的M/M/ck排隊,建立系統(tǒng)模型。
令任務的產(chǎn)生服從參數(shù)為λ(0<λ <+∞) 的指數(shù)分布。假設一個物理機上的虛擬機服務能力相同,令物理機Sk(k=1,2,…,n) 上的虛擬機服務一個任務的時間服從參數(shù)為μk(0<μk <+∞) 的指數(shù)分布,令物理機休眠定時器長度服從參數(shù)為θk(0<θk <+∞) 的指數(shù)分布。
假設任務在本地執(zhí)行的概率為q(0 ≤q≤1),任務卸載到遠程云端的概率為1-q。卸載到遠程云端的任務將分配到某一個物理機上。假設某個任務分配到物理機Sk的概率為ξk,則ξ1+ξ2+…+ξn=1?;谝陨霞僭O,本地任務的到達服從參數(shù)為λ0=λq的指數(shù)分布,物理機Sk上的任務到達服從參數(shù)λk=λ(1-q)ξk的指數(shù)分布。假設物理機具有無限容量的緩存。
本地移動設備的系統(tǒng)服務強度ρ0定義為一個本地任務的服務時間內(nèi)分配到本地移動設備的平均任務數(shù)。ρ0表示為
其中,μ0為本地移動設備的服務率。
云端物理機Sk的系統(tǒng)服務強度ρk定義為一個云端任務的服務時間內(nèi)卸載到云端的平均任務數(shù)。ρk表示為
為了使系統(tǒng)穩(wěn)定,令本地移動設備的系統(tǒng)服務強度ρ0和云端物理機Sk的系統(tǒng)服務強度ρk均小于1。
令隨機變量Xk(t)=i(i=0,1,…) 表示時刻t物理機Sk內(nèi)的任務數(shù)。令隨機變量Yk(t)=j(j=0,1) 表示時刻t物理機Sk上虛擬機所處的狀態(tài)。當j=0 時,表示虛擬機處在休眠狀態(tài);當j=1 時,表示虛擬機處在活躍狀態(tài)。{(Xk(t),Yk(t)),t≥0} 構(gòu)成一個二維時間連續(xù)馬爾科夫鏈,其狀態(tài)空間表示為
令πk(i,j) 表示穩(wěn)態(tài)下物理機Sk的系統(tǒng)水平為i、系統(tǒng)階段為j的概率分布。πk(i,j) 表示為
令πk(0)=πk(0,0) 表示為穩(wěn)態(tài)下系統(tǒng)水平為0 的概率向量,令πk(i)=(πk(i,0),πk(i,1))表示為穩(wěn)態(tài)下系統(tǒng)水平為i的概率向量。二維連續(xù)時間馬爾可夫鏈{(Xk(t),Yk(t)),t≥0} 的穩(wěn)態(tài)概率分布Πk表示為
假設遠程云端部署了n個異構(gòu)物理機,物理機Sk上部署了ck個虛擬機。物理機Sk可看作一個獨立的同步多重休假M/M/ck排隊[8]。物理機Sk上虛擬機的狀態(tài)轉(zhuǎn)移機制如圖3 所示。
圖3 物理機Sk 上虛擬機的狀態(tài)轉(zhuǎn)移
由圖3 可以分析出一個物理機中多個虛擬機的狀態(tài)轉(zhuǎn)移過程。當j=0 時,物理機Sk上ck個虛擬機全部處于休眠狀態(tài)。當j=1 時,若系統(tǒng)內(nèi)有i 令Qk表示二維連續(xù)時間馬爾可夫鏈{(Xk(t),Yk(t)),t≥0} 的一步轉(zhuǎn)移率矩陣,Qk(x,y) 表示經(jīng)過一步轉(zhuǎn)移后,系統(tǒng)水平從x(x=0,1,…) 到y(tǒng)(y=0,1,…) 的轉(zhuǎn)移率子陣。為了表述方便,將Qk(x,x -1)、Qk(x,x) 與Qk(x,x +1) 分別記為Bk(x)、Ak(x) 與Ck(x)。 (1) 當x=0 時,虛擬機一定處于休眠狀態(tài),且緩存區(qū)為空。當無任務到達時,系統(tǒng)水平和系統(tǒng)階段均保持不變,Ak(0) 退化為一個數(shù)值,Ak(0)=-λk。若有一個任務到達,系統(tǒng)水平由x=0 變?yōu)閤=1,系統(tǒng)階段不變,轉(zhuǎn)移率為λk,Ck(0) 為1 ×2 維矩陣,表示為 (2) 當x=1 時,虛擬機既可能處于休眠狀態(tài),也可能處于活躍狀態(tài)。 首先,討論系統(tǒng)水平下降的情形。當虛擬機處于休眠狀態(tài)時,任務不可能產(chǎn)生離去。當虛擬機處于活躍狀態(tài)時,若處理完成一個任務,系統(tǒng)水平由x=1 變?yōu)閤=0,虛擬機由活躍狀態(tài)切換到休眠狀態(tài),系統(tǒng)階段由j=1 變?yōu)閖=0,轉(zhuǎn)移率為μk。Bk(1) 為2 ×1 維矩陣,表示為 其次,討論系統(tǒng)水平不變的情形。當虛擬機處于休眠狀態(tài)時,若無任務到達且休眠定時器未到期,轉(zhuǎn)移率為-(λk+θk);若休眠定時器到期,虛擬機由休眠狀態(tài)切換到活躍狀態(tài),系統(tǒng)階段由j=0 變?yōu)閖=1,轉(zhuǎn)移率為θk。當虛擬機處于活躍狀態(tài)時,若無任務到達且虛擬機未處理完成當前任務,轉(zhuǎn)移率為-(λk+μk),此時,虛擬機無法進入休眠狀態(tài)。Ak(1) 為2 ×2 維矩陣,表示為 最后,討論系統(tǒng)水平增加的情形。無論虛擬機處于休眠狀態(tài)還是活躍狀態(tài),若有一個任務到達,系統(tǒng)水平由x=1 變?yōu)閤=2,系統(tǒng)階段不變,轉(zhuǎn)移率為λk。Ck(1) 為2 ×2 維矩陣,表示為 (3) 當1 首先,討論系統(tǒng)水平下降的情形。當虛擬機處于休眠狀態(tài)時,任務不可能產(chǎn)生離去。當虛擬機處于活躍狀態(tài)時,若處理完成一個任務,系統(tǒng)水平由x變?yōu)閤 -1,轉(zhuǎn)移率為xμk,此時,物理機Sk還存在未處理完成的任務,虛擬機無法進入休眠狀態(tài)。Bk(x)為2 ×2 維矩陣,表示為 其次,討論系統(tǒng)水平不變的情形。當虛擬機處于休眠狀態(tài)時,若無任務到達且休眠定時器未到期,轉(zhuǎn)移率為-(λk+θk);若休眠定時器到期,虛擬機由休眠狀態(tài)切換到活躍狀態(tài),系統(tǒng)階段由j=0 變?yōu)閖=1,轉(zhuǎn)移率為θk。當虛擬機處于活躍狀態(tài)時,若無任務到達且虛擬機未處理完成當前任務,轉(zhuǎn)移率為-(λk+xμk),此時,虛擬機無法進入休眠狀態(tài)。Ak(x) 為2 ×2 維矩陣,表示為 最后,討論系統(tǒng)水平增加的情形。無論虛擬機處于休眠狀態(tài)還是活躍狀態(tài),若有一個任務到達,系統(tǒng)水平由x變?yōu)閤 +1,系統(tǒng)階段不變,轉(zhuǎn)移率為λk。Ck(x) 為2 ×2 維矩陣,表示為 (4) 當x >ck時,虛擬機仍然可能處于休眠狀態(tài)或者活躍狀態(tài)。 首先,討論系統(tǒng)水平下降的情形。當虛擬機處于休眠狀態(tài)時,任務不可能產(chǎn)生離去。當虛擬機處于活躍狀態(tài)時,有ck個任務同時接受服務,若處理完成一個任務,系統(tǒng)水平由x變?yōu)閤 -1,轉(zhuǎn)移率為ckμk,此時,虛擬機同樣無法進入休眠狀態(tài)。Bk(x)為2 ×2 維矩陣,表示為 其次,討論系統(tǒng)水平不變的情形。當虛擬機處于休眠狀態(tài)時,若無任務到達且休眠定時器未到期,轉(zhuǎn)移率為-(λk+θk);若休眠定時器到期,虛擬機由休眠狀態(tài)切換到活躍狀態(tài),系統(tǒng)階段由j=0 變?yōu)閖=1,轉(zhuǎn)移率為θk。當虛擬機處于活躍狀態(tài)時,若無任務到達且虛擬機未處理完成當前任務,轉(zhuǎn)移率為-(λk+ckμk),此時,虛擬機無法進入休眠狀態(tài)。Ak(x) 為2 ×2 維矩陣,表示為 最后,討論系統(tǒng)水平增加的情形。無論虛擬機處于休眠狀態(tài)還是活躍狀態(tài),若有一個任務到達,系統(tǒng)水平由x變?yōu)閤 +1,系統(tǒng)階段不變,轉(zhuǎn)移率為λk。Ck(x) 為2 ×2 維矩陣,表示為 由上述分析可得,轉(zhuǎn)移率子陣Ak(x) 與Bk(x)均從系統(tǒng)水平ck開始重復,Ck(x) 從1 開始重復。將重復的Ak(x) 與Bk(x) 分別用Ak與Bk來表示,將重復的Ck(x) 用Ck來表示,則馬爾可夫鏈{(Xk(t),Yk(t)),t≥0} 的一步轉(zhuǎn)移率矩陣Qk可以表示為如下分塊形式。 從一步轉(zhuǎn)移率矩陣Qk的結(jié)構(gòu)可知,狀態(tài)的轉(zhuǎn)移只發(fā)生在相鄰的系統(tǒng)水平之間。因此,二維連續(xù)時間馬爾可夫鏈{(Xk(t),Yk(t)),t≥0} 可以看成一種擬生滅過程。該過程正常返的充分必要條件是矩陣方程 的最小非負解Rk(也稱為率陣)的譜半徑Sp(Rk)<1。 由Qk子陣結(jié)構(gòu),可設率陣,將Ak、Bk、Ck與Rk代入式(17),可得率陣Rk如下。 根據(jù)率陣Rk的解析結(jié)果,可以看出率陣Rk的譜半徑,所以二維馬爾可夫鏈{(Xk(t),Yk(t)),t≥0} 正常返。利用所求得的率陣Rk,構(gòu)造方陣B[Rk]如下。 由平衡方程及歸一化條件可得如下方程組: 其中,Ι為單位矩陣,e為全1 列向量。 系統(tǒng)的穩(wěn)態(tài)分布表示為 其中,πk(0,0) 由歸一化條件給出如下。 任務響應時間定義為從任務的產(chǎn)生時刻開始,到任務結(jié)束服務離開系統(tǒng)為止所經(jīng)歷的時間段。 分配到本地執(zhí)行的任務平均響應時間W0包括任務在本地緩存區(qū)的平均等待時間與在本地處理器的平均服務時間。根據(jù)排隊模型M/M/1 的解析結(jié)果,給出本地任務平均響應時間W0的表達式為 卸載到遠程云端的任務平均響應時間包括任務在緩存區(qū)的平均等待時間與在虛擬機上的平均服務時間。由第2 節(jié)給出的系統(tǒng)模型的穩(wěn)態(tài)分析結(jié)果計算出平均等待隊長的表達式,進一步利用Little 公式[9]得出物理機Sk上任務平均響應時間Wk的表達式為 任務在本地執(zhí)行的概率為q(0 ≤q≤1),卸載到遠程云端的概率為1-q,卸載到遠程云端的任務分配給物理機Sk的概率為ξk。綜合式(24)給出的本地任務平均響應時間W0和式(25)給出的物理機Sk任務平均響應時間Wk,得出任務平均響應時間W為 移動設備處于活躍狀態(tài)時,其處理器高速運轉(zhuǎn),令其運行功率表示為。移動設備處于空閑狀態(tài)時,其處理器低速運轉(zhuǎn),令其運行功率表示為。顯然,。移動設備平均運行功率P0為 其中,ρ0表示為移動設備處于活躍狀態(tài)的概率。 綜合式(27)給出的移動設備平均運行功率P0和式(28)給出的物理機Sk平均運行功率Pk,得出系統(tǒng)平均運行功率P的表達式為 為量化任務到達率λ、休眠參數(shù)θk、任務分配到移動設備本地的概率q及任務卸載到遠程云端物理機Sk上的概率ξk對云系統(tǒng)任務調(diào)度策略的影響,進行系統(tǒng)實驗,刻畫以分鐘(min)為單位的任務平均響應時間與以毫瓦(mW)為單位的系統(tǒng)平均運行功率的變化趨勢。系統(tǒng)實驗所用計算機的處理器為Intel(R) Core(TM) i7-4790,運行頻率為3.60 GHz,內(nèi)存為8 GB。系統(tǒng)實驗與系統(tǒng)優(yōu)化在Matlab R2016a的環(huán)境下實現(xiàn)。 在保證系統(tǒng)穩(wěn)定,即本地服務強度ρ0<1 與遠程云端物理機的服務強度Max(ρ1,ρ2,…,ρn)<1的約束下,設置如表1 所示的系統(tǒng)實驗參數(shù)。 表1 系統(tǒng)實驗參數(shù)設置 使用表1 設定的參數(shù),固定卸載到遠程云端物理機S1、S2、S3的概率(ξ1=0.2225、ξ2=0.3432、ξ3=0.4343),考慮不同的休眠參數(shù)θk(k=1,2,3)進行系統(tǒng)實驗,圖4 刻畫了任務到達率λ與任務分配到移動設備本地的概率q對任務平均響應時間W的影響。 橫向觀察圖4,隨著任務分配到移動設備本地的概率q的增大,任務平均響應時間W先呈現(xiàn)下降趨勢,在到達最低點之后開始上升。當任務分配到移動設備本地的概率較小時,任務在遠程云端物理機的響應時間占平均響應時間的主導地位。隨著任務分配到移動設備本地的概率的增大,任務在遠程云端物理機緩存區(qū)的平均等待時間隨之減少,任務平均響應時間降低。當任務分配到移動設備本地的概率較大時,任務在移動設備的響應時間占平均響應時間的主導地位。隨著任務分配到移動設備本地的概率的增大,任務在移動設備本地的平均等待時間隨之增大,任務平均響應時間上升。 圖4 任務平均響應時間的變化趨勢 縱向觀察圖4,隨著任務到達率λ的增大,任務平均響應時間W的變化趨勢與任務分配到移動設備本地的概率q有關(guān)。當任務分配到移動設備本地的概率較小時,更多的任務卸載到遠程云端物理機接受服務。任務到達率越大,虛擬機進入休眠狀態(tài)的概率越小,任務平均響應時間隨之減少。當任務分配到移動設備本地的概率較大時,分配到移動設備本地的任務越多,任務在移動設備本地的等待時間變長,任務平均響應時間隨之增大。 對比觀察圖4(a)和圖4(b),隨著休眠參數(shù)θk(k=1,2,3) 的增大,任務平均響應時間W呈現(xiàn)下降趨勢。任務分配到本地設備的概率較小時,更多的任務卸載到遠程云端物理機。當休眠參數(shù)較小時,任務在緩存區(qū)中等待虛擬機結(jié)束休眠的時間較長,導致任務平均響應時間加大。這種情況下,本文所提策略中的休眠機制對任務平均響應時間的影響較大。而當休眠參數(shù)較大時,任務在緩存區(qū)中等待虛擬機結(jié)束休眠的時間相對縮短,任務平均響應時間隨之減少。這種情況下,本文所提策略中的休眠機制對任務平均響應時間的影響較小。 圖5 刻畫了任務到達率λ與任務分配到移動設備本地的概率q對系統(tǒng)平均運行功率P的影響。 橫向觀察圖5,隨著任務分配到移動設備本地的概率q的增大,系統(tǒng)平均運行功率P先呈現(xiàn)下降趨勢,在到達最低點之后開始逐漸上升。當任務分配到移動設備本地的概率較小時,更多的任務卸載到遠程云端物理機接受服務,遠程云端物理機的運行功率占系統(tǒng)平均運行功率P的主導地位。隨著任務分配到移動設備本地的概率增大,卸載到遠程云端物理機的任務量減少,物理機上的虛擬機處于活躍狀態(tài)的可能性減小,物理機的運行功率下降,系統(tǒng)平均運行功率下降。當任務分配到移動設備本地的概率較大時,更多的任務分配到移動設備本地接受服務,移動設備本地的運行功率占系統(tǒng)平均運行功率P的主導地位。隨著任務分配到移動設備本地的概率增大,分配到移動設備本地的任務增多,移動設備功耗增大,系統(tǒng)平均運行功率上升。 縱向觀察圖5,隨著任務到達率λ的增大,系統(tǒng)平均運行功率P隨之增大。任務到達率越大,意味著任務量越多,移動設備與物理機的功耗增大,系統(tǒng)平均運行功率上升。 對比觀察圖5(a)和圖5(b),隨著休眠參數(shù)θk(k=1,2,3) 的增大,系統(tǒng)平均運行功率P呈現(xiàn)上升趨勢。隨著休眠參數(shù)的增大,虛擬機進入休眠狀態(tài)的可能性降低,而虛擬機處于活躍狀態(tài)或空閑狀態(tài)的可能性增大,系統(tǒng)平均運行功率上升。 圖5 系統(tǒng)平均運行功率的變化趨勢 比較圖4 與圖5 可以看出,最低的平均響應時間所對應的任務分配到移動設備本地的概率無法實現(xiàn)最低的能耗水平。實際應用中,需根據(jù)實際應用的業(yè)務特點設置任務分配到移動設備本地的概率。 系統(tǒng)實驗所揭示的任務平均響應時間和系統(tǒng)平均運行功率的變化規(guī)律表明,任務到達率、休眠參數(shù)與任務分配到移動設備本地的概率是影響系統(tǒng)性能的重要因素。在不同的任務到達率下,合理設置任務分配到移動設備本地的概率能夠?qū)崿F(xiàn)響應性能與能耗水平的合理均衡。 對任務平均響應時間W與系統(tǒng)平均運行功率P進行歸一化處理,構(gòu)造無量綱系統(tǒng)成本函數(shù)如下。 其中,f1表示任務平均響應時間對系統(tǒng)成本函數(shù)的影響因子,f2表示系統(tǒng)平均功率對系統(tǒng)成本函數(shù)的影響因子[10]。當任務分配到移動設備本地的概率q的取值在[0,0.9]時,任務平均響應時間W的最大值和最小值表示為Wmax和Wmin,系統(tǒng)平均運行功率P的最大值和最小值表示為Pmax和Pmin。 為了實現(xiàn)系統(tǒng)成本函數(shù)的最小化,利用智能尋優(yōu)算法找出最優(yōu)任務分配到移動設備本地的概率。相比于一般的優(yōu)化算法,鯨魚優(yōu)化算法的收斂速度較快,能夠在較短的時間內(nèi)尋找到目標函數(shù)的最優(yōu)解。算法中的每一頭鯨魚所處的位置代表目標函數(shù)的一個可行解,采用隨機和最佳搜索代理模擬鯨魚的捕獵行為,并使用螺旋模型模擬座頭鯨的汽泡網(wǎng)攻擊機制[11]。本文中,增加了混沌初始化用來提高鯨魚優(yōu)化算法的全局搜索能力。算法的主要步驟如下所示。 步驟1初始化算法執(zhí)行的最大迭代次數(shù)Maxiter=10 000,鯨魚種群規(guī)模N=1000;設置任務分配到移動設備本地的概率q的上限qup=1 及下限qlow=0,當前迭代次數(shù)iter=1。 步驟2利用混沌方程初始化鯨魚種群的位置。 步驟3設第1 條鯨魚位置為當前最優(yōu)位置q*,利用式(30)計算系統(tǒng)成本函數(shù)F(q*)。 步驟4利用式(30)計算全部鯨魚所對應的系統(tǒng)成本函數(shù)F(qi(iter)),i=1,2,…,N,找出當前最優(yōu)鯨魚位置q*。 步驟5根據(jù)鯨魚捕食行為更新鯨魚位置。 步驟6判斷迭代過程是否完成。 步驟7輸出最優(yōu)鯨魚位置為最優(yōu)分配到移動設備本地的概率q*,給出最小系統(tǒng)成本函F(q*)。 設置系統(tǒng)成本函數(shù)的影響因子f1=2.0、f2=1.6,利用改進的鯨魚優(yōu)化算法給出不同任務到達率下任務分配到移動設備本地的最優(yōu)概率,優(yōu)化結(jié)果如表2 所示。 表2 任務分配到移動設備本地的概率的優(yōu)化結(jié)果 從表2 的數(shù)值結(jié)果可以看出,任務分配到移動設備本地的最優(yōu)概率隨著任務到達率的增大逐漸減小。移動設備的本地處理能力有限,隨著任務到達率的增大,移動設備本地的任務量負載加重,因此,任務分配到本地執(zhí)行的最優(yōu)概率呈下降趨勢。 綜合考慮云用戶的響應性能與云系統(tǒng)的能耗水平,在遠程云端引入周期性休眠機制,提出了一種云計算任務調(diào)度策略?;谶h程云端,考慮異構(gòu)物理機,建立同步多重休假M/M/ck排隊模型,給出了系統(tǒng)模型的穩(wěn)態(tài)分布?;贛atlab 進行了系統(tǒng)實驗,實驗結(jié)果表明,任務平均響應時間與系統(tǒng)平均運行功率之間存在折衷關(guān)系。設定任務平均響應時間和系統(tǒng)平均運行功率的影響因子,構(gòu)建了系統(tǒng)成本函數(shù)。利用混沌方程初始化種群位置,改進鯨魚優(yōu)化算法,給出了任務分配到移動設備本地的概率的優(yōu)化結(jié)果,實現(xiàn)了系統(tǒng)成本函數(shù)的最小化。3 系統(tǒng)性能指標
4 系統(tǒng)實驗
5 系統(tǒng)優(yōu)化
6 結(jié)論