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