吳宇飛,焦 嘉
(湖南信息職業技術學院,湖南 長沙 410203)
服務器的能耗由固定能耗和非固定能耗組成。固定能耗是物理設備開機就會產生的,在此將固定能耗設定為一個固定值,即常量。非固定能耗與服務器的虛擬機使用各項資源的情況相聯系,數據中心某臺服務器未工作時耗能是其最大功率運轉時耗能的70%[1],所以本文中的能耗P(m)作為資源使用率的函數,如公式 1所示:
公式1中,m代表資源使用率,Pmax為功率常量,Pmax通過統計學相關公式計算,仿真實驗中使用的Pmax設定為220 W,Pg是服務器產生的固定能耗,Pf是服務器產生的非固定能耗。因為資源使用率是根據時間動態變化的,則設定服務器的總能耗E如公式 2所示:
本文在自適應三閾值遷移算法ATEA[2](Adaptive Three threshold Energy-aware Algorithm)的基礎上進行優化,提出一種ATEAI(ATEA Improvement)的優化算法,ATEAI會根據閾值算法KAME得出的Sl,Sm,和Sh(0≤Sl<Sm<Sh≤1)3個閾值將服務器分為四個負載區間,然后通過監控模塊獲取的各個資源利用情況算出服務器資源綜合利用率Sload,根據綜合利用率Sload服務器處于何種負載情況。三閾值分成的4個負載區間如圖1所示。
圖1 服務器分類
ATEAI算法把負載過輕區間中的所有VM遷移到負載較輕區間上的服務器中,然后將負載過輕區中的服務器處于休眠狀態,可以降低部分服務器能耗;負載較輕和負載正常區間中原本存在的VM不產生變動,VM的頻繁遷移可能會引起SLA違約率和服務器性能下降;ATEAI選擇負載較重區間內一些合適的VM遷移到負載較輕區間中的服務器內,從而降低負載較重區間內的服務器能耗。
為確定3個閾值,本文基于閾值算法KAM[3](Kmeans clustering algorithm-Average-Median Absolute Deviation),提出一種自適應閾值優化算法KAME(KAM Enhancement),有單變量數據集X1,X2,X3,…,Xp(Xi表示服務器在i時的資源綜合利用率,p為經驗值),KAME采取K-means聚類算法劃分數據集(X1,X2,X3,….,Xp)成q組(Y1,Y2,Y3,….,Yq)(q為經驗值),而Ys=(Xjs-1+1,Xjs-1+2,…..,Xjs),其中1≤s≤5,0=j0<j1<j2<j3<j4<j5=p。接著KAME獲得每一組的平均值,如公式3所示:
其中1≤s≤5。接著KAME得到Y(YA1,YA2,…,YA5)的MAD(Median Absolute Deviation)值。MAD如公式4所示:
公式(2-10)中,A1≤Ap≤A5,medianAq(YAq)是YAq中值。ATEAI中的3個自適應閾值(Sl,Sm,Sh)如公式5、公式6、公式7所示:
公式5、公式6、公式7中,參數r∈R+指的是KAME算法合并虛擬機的激烈程度。如果r值越大,合并帶來的能耗越高,SLA違約率越少。如果r值越小,合并帶來的能耗越低,SLA違約率越高,KAME算法的時間復雜度為O(q×p×t),q為組數,p為數據多少,t為循環次數。
參數Xi(i=1,2,3…,p)根據時間發生相應的改變,3個閾值Sl,Sm,Sh也隨之發生改變。所以,KAME是一種自適應的三閾值算法。通過仿真實驗結果表明,對于服務器的負載發生變動時,KAME算法設定的自適應三閾值Sl,Sm,Sh結合ATEAI三閾值遷移算法,可以較好地降低能耗,提高能效。
在CloudSim軟件中用戶自定義代碼模塊部分實現了本文優化的虛擬機遷移算法ATEAI、閾值算法KAME、和虛擬機選擇算法MCMN,并實現了KAM算法和兩種虛擬機選擇算法MINM、TLUC,運用已存在的負載數據進行仿真實驗得到運行結果對比。此外,通過r值(合并虛擬機的激烈程度)從0.5到3.0,每次增加0.5,得到不同r值下的能耗指標,由結果對比產生最佳的r值。
將KAME算法和優化前的KAM算法,虛擬機選擇算法進行組合對比,得出6種算法組合,在r值(合并虛擬機的激烈程度)從0.5到3.0,每次增加0.5值下的能耗(單位為KWh)如圖2所示。
圖2 6個組合在參數不同情況下產生的能耗
從圖2中不同r值下的能耗對比可知,KAMMCMN是產生能耗最少的算法組合,造成此結果的原因為KAM-MCMN算法組合是在固定三閾值的基礎上考慮CPU、內存和帶寬三種服務器資源因素,而KAMMINM,KAM-TLUC兩種算法組合在固定三閾值的基礎上只考慮一種資源,產生較多的能耗是因為CPU耗能高于內存。
對于3種優化之后的算法組合,KAME-MCMN算法在r從0.5增大到3時,KAME-MCMN是產生能耗最少的算法組合,造成此結果的原因為KAME-MCMN算法組合是在自適應三閾值的基礎上考慮CPU、內存和帶寬三種服務器資源因素,可以根據服務器負載做出相應變化,更好的降低遷移過程中產生的能耗。
本文針對數據中心的高能耗問題對已有的自適應三閾值遷移算法ATEA和三閾值算法KAM進行了優化,提出了優化算法ATEAI和KAME,通過仿真實驗證明降低了數據中心能耗,但還是存在一些不足的地方,比如虛擬機遷移算法還存在一定程度上的滯后性,可以考慮是否運用預測機制彌補。