薛佳楣,李美珊,劉 越
(佳木斯大學信息電子與技術學院,黑龍江 佳木斯154007)
降低服務器執行能耗對降低網絡可靠性感知資源任務調度能耗具有一定的參考意義。服務器執行任務的能量消耗是用戶指定任務在服務器上進行運轉時形成的能量消耗,并且能量消耗會隨服務器對指定任務工作而產生的功率以及執行指定任務時間的變化而變化,以對于服務器執行任務的能耗調度不僅要滿足用戶對服務質量與服務效率的要求,還要盡最大可能來降低服務器在執行任務時的能量消耗。
如何降低服務器執行任務的能量消耗、延長網絡的壽命等問題成為了研究網絡綠色環境的熱點,能耗優化是達成網絡綠色環境的關鍵前提條件。文獻[1]提出一種云工作流任務調度能效優化方法,將最初任務自底向上進行分級排序,然后得到所有任務的調度初始順序,再利用數據信息處理器合并,最后使各個任務選擇合適等級的服務器資源完成調度,該方法資源利用率較高,但是該方法執行任務時間過長,效率較低。文獻[2]提出基于繁忙時間的并行調度能耗優化方法。將所要執行的任務加入待執行任務列表中,根據網絡服務器可用節點將任務劃分為首要任務和非首要任務;再根據任務列表指示,使所有服務器節點完成任務的總服務時間局部最優,按準則分配服務器進行調度。完成所有作業請求后,將非作業窗口進行劃分,直至全部作業請求執行結束。該方法的弊端是服務器負載太重,縮短了網絡壽命。以上兩種調度方法不能將任務均衡分配,并且沒有考慮到服務器能量消耗會隨著任務的不同而變化,存在計算量大、服務器能耗高、網絡使用壽命短等問題。
為解決上述問題,本文提出一種新的網絡可靠性感知資源任務能耗調度方法。將多個目標任務進行單一優化再分配,達到能耗均衡。仿真證明,本文提出的網絡可靠性感知資源調度方法,在一定程度上降低服務器能耗,提高網絡壽命。
研究環境是以執行器(服務器)節點作為簇首的網絡結構,如圖1所示。當服務器接收到用戶發出的指定任務時,執行節點向服務器發送運行任務的屬性信息數據通知,并根據該屬性完成任務,或服務器自己執行或與其它服務器聯合執行完成指定任務目標[3]。為避免等待執行任務時間的增加會導致能量消耗增大的問題,達到實時處理與能量消耗均衡同時兼顧的要求,需連通相鄰服務器節點共同協作完成任務。

圖1 網絡結構圖
針對執行器節點能耗均衡協作中[4],將可靠性感知資源任務分為多個任務,執行單元量化為多目標模型[5]。并且運用理想點法將用戶發出的多個指定任務進行單個目標任務處理,借此獲取最優能量消耗的調度方法。根據上述網絡結構,進行用戶指定任務類型的設定及其任務實現所需時間的求解。
在執行用戶指定任務時,由執行器進行單個節點執行或者多個節點執行,這種執行任務的方法可解決在任務發生頻率較高時服務器壓力過大導致能耗消耗較多的問題,使得能量消耗均衡并且使用壽命延長[6],假如,各個服務器節點的條件一致,可得出以下設定:
假設1:完成一個指定任務的執行能耗與執行時間是可以預測的,將該操作作為一個執行單元,將其標記為t,一個可靠性感知資源任務為t=t1∪t2∪…∪tn,且滿足?ti,tj∈t,?ti∩tj。此時稱可靠性感知資源任務具有可分性。
假設2:若O={o1,o2,…,on}為任務t的n個任務單元執行序次,o1只有一個后任務單元,on只有一個前任務單元,則可稱執行過程具有工序限制。
考慮到n個有工序的可靠性感知資源任務在m個服務器節點上的工作過程[7],為在最短的時間內完成全部任務使得能量消耗最少,在指派可靠性感知資源任務的時要對能量消耗均衡函數f(E)加以考慮,在保證能耗均衡的前提下加快任務屬性數據資源的流轉延長執行器的使用壽命,進而縮短存儲時間降低存儲成本LT;且需要減少可靠性感知資源任務的完成時間Cmax,以達到實時調度的要求。
1)任務能量均衡函數f(E)
設P(t)為在單位時間內執行器節點完成用戶指定任務后所需要的能量消耗,γ是用戶指定任務所需的能量,則執行器節點k執行時的能量消耗是

(1)
在分配任務的同時也要考慮到執行器所剩能量的多少產生的局限性,各個執行器在完成任務后所剩下的能量是要保證完成再分配的任務單元,并且還需要將指定任務的執行數據信息傳到下一服務器節點[8]。r為服務器節點傳遞數據距離,l為幀長,則數據的傳輸和接收能耗表示為

(2)
其中,αr為在距離r傳輸的發射功率;β為發射數據電路的能量消耗系數,w為數據發射通道衰減的倍數。則一個服務器節點k執行所有任務所需要的總能量消耗為

(3)
為了對比能量消耗是否均衡的問題[9],本文調度方法建立的能量消耗均衡指標,設執行器節點k在運行某一任務單元ji時候的能量消耗Ek-all與剩余能量Ek-rest的比值E=Ek-all/Ek-rest,由此可推出云計算能量均衡的函數為

(4)
上式比值越小可以說明服務器剩余能量越多,可以執行的任務越多;反之服務器剩余能量越少,可以執行的任務越少。
2)執行器存儲成本函數LT
執行器的存儲成本是指在執行器運行用戶指定任務時,需要對用戶指定的任務進行自動存儲長度為L信息數據和任務開始等待時間到執行完成時間長度T的乘積[10]。
假設STji代表j的第i個任務單元的開始運行瞬間,令STj0=0,則其需要的等待時間

(5)
設Lji為在運行任務j的第i個任務單元的過程中對任務數據的存儲長度,由此可以推出執行器總存儲成本的目標函數如下所示

(6)
3)最大任務的完成時間Cmax
設pi,j是在非固定服務器節點上執行某個任務j第i個任務單元的執行時間,C(ji,k)是執行某個任務j的第i個任務單元在服務器某節點k的完成時間,π=(j1,j2,…,jn)是全部目標任務的順序。一般來說,目標網絡服務器中對某一指定任務的執行時間toper包括:用戶下達任務指令的時間tcomm,有效信息數據收集時間tcolle,任務信息數據處理時間tproc,即
pi,j=tcomm+tcolle+tproc
(7)
可靠性感知資源任務在服務器節點上執行的完成時間可通過以下描述
C(j1,k)=C(j1,k-1)+pj1,kxj1,k
(8)
其中:xji,k=1表示任務單元ji由服務器節點k執行,xji,k=0表示沒有被選中,由此可以推出
C(ji,k)=max{C(ji-1,k),C(ji,k-1)}+pji,kxji,k
(9)
由上式可知,服務器節點k在運行某一任務單元ji的時候,必須保證服務器節點k已經完成上一個任務單元ji-1,則完成任務最大時間為
Cmax(π)=C(ji,k)
(10)
綜合上述過程完成任務能量均衡函數、執行器存儲成本函數以及最大任務的完成時間的計算,為網絡可靠性感知資源任務能耗調度提供理論數據基礎。
考慮到實際應用中所要面對的公平問題和效率問題,對蟻群算法進行改進:首先要以執行指定任務的延長時間作為目標建立函數來解決執行用戶指定任務中存在的問題;然后為了解決對執行器任務分配均勻的公平性問題,利用改進的蟻群算法將用戶指定任務屬性數據作為公平因子進行計算。為了簡化計算,重新對可靠性感知資源調度等待序列Qk中的子任務進行標記Qk={q1,…,qm},將可靠性感知資源集合描述為A={a1,…,an},可靠性感知資源任務qi的準備處理時間和開始處理時間分別表示為Ti、Tj,st表示可靠性感知資源任務調度時間窗。
將服務器執行任務的時間和任務完成的時間作為2個啟發因子

(11)
η2(qi)=st-ATi
(12)
將服務器任務頻率數據作為參數引入到蟻群算法中,設N(c)是用戶ci的待執行任務的數量;η3(qi)是用戶指定任務qi的公平因子;F(ci)是用戶指定任務qi屬性數據的公平因子ci,則得到任務調度模型為

(13)
綜上所述,實現了網絡可靠性感知資源任務能耗調度方法,為檢驗本文方法的有效性及可行性,需進行仿真。
將所提出的網絡可靠性感知資源任務能耗的調度方法與文獻[1]提出的云工作流任務調度能效優化算法和文獻[2]提出的基于繁忙時間的并行調度能耗算法,在CloudSim下進行仿真對比。CloudSim是模擬包SimJava開發的數據信息包,CloudSim繼承了GridSim的程序模式,并且具有以下特征:
1)CloudSim可以支持大規模的數據計算,并且可對基礎設施建模和仿真;
2)CloudSim具有自給自足的信息數據平臺、服務代理用戶、任務能耗調度和平均分配的程序。
CloudSim的Cloud Information Service(CIS)與Data CenterBroker(DCB)可實現用戶資源發現以及信息交互,這是模擬能耗調度的關鍵核心,本文提出的能耗調度方法主要在DCB中實現,在相同的實驗環境條件下。在此基礎上進行本文方法的性能檢測。
少量任務仿真,將指定任務分配到5個服務器節點,從20到100逐漸改變任務的個數,記錄全部任務的完成時間(ms)如表1。

表1 任務完成時間
將指定任務分配到20個執行服務器節點上,從1000到4000逐漸改變任務的個數,記錄全部任務的完成時間(ms),結果如圖2所示。

圖2 不同方法全部任務調度完成時間
任務個數固定為4000,從10到40逐漸改變服務器節點的個數,記錄全部任務的完成時間,如圖3所示。

圖3 變化節點數時不同方法完成任務時間
從圖3可看出,在任務數量固定、服務器節點數較少的情況下,其它調度方法完成任務的時間與本文方法完成任務調度的時間存在明顯差距。綜合考慮圖2、圖3給出的實驗結果可知,在任務數量較多的情況下,本文調度方法完成任務用時最短,優勢比較突出。
任務集固定為4000時,將任務分配到5個資源節點(R1,R2,R3,R4,R5)上處理,記錄5個服務器上的資源負載情況。如圖4所示。

圖4 大量任務下不同方法處理任務的負載狀態
從圖4可看出,在指定任務數量多、服務器節點運算的能力存在較大差異的情況下,本文方法的任務負載均衡程度較好,而其它調度方法在執行任務中,出現給執行任務能力高的服務器分布的任務數量較少,而給執行任務能力較低的服務器分布的任務數量較多的情況。
為了驗證3種調度方法在執行任務時的能量消耗大小,模擬目標網絡1min內隨機加入不同數量的可靠性感知資源任務群,圖5與圖6描述了在任務不斷增加時網絡系統的總耗能和壽命。

圖5 任務負載變化時的總能耗

圖6 任務負載變化時網絡系統壽命
從圖5、圖6中可以看出,當服務器的工作負載不斷增加時,目標網絡系統的能量消耗不斷增加,但是網絡系統的使用壽命不斷減少,同時可以看出本文方法執行任務時能量消耗均比其它2種調度方法少。分析具體過程可知,文獻[1]方法將最初任務自底向上進行分級排序,為各個任務選擇合適等級的服務器資源完成調度,在執行任務中出現給執行任務能力高的服務器分布的任務數量較少,而給執行任務能力較低的服務器分布的任務數量較多的情況,導致任務調度過程時間過長,加大了服務器負載,導致網絡系統的壽命縮短。相比之下,本文方法進行網絡可靠性感知資源任務能耗調度優勢更加明顯。
針對傳統能耗調度方法中存在完成任務時間長、網絡的壽命短、能耗不均衡等缺點,提出一種新的網絡可靠性感知資源任務能耗調度方法。仿真證明,本文提出的新的網絡可靠性感知資源任務能耗調度方法能夠在保障網絡環境的可靠性的前提下,降低服務器能量消耗,并且有較好的任務規模擴展性,可實現能量消耗的均衡,進而延長網絡系統的使用壽命。