毛媛媛,石恩雅,蔣從鋒,仇燁亮,賈剛勇,萬 健,閆龍川
(1.杭州電子科技大學(xué)計算機學(xué)院,浙江 杭州 310018;2.阿里云計算有限公司,浙江 杭州 311121; 3.浙江科技學(xué)院信息與電子工程學(xué)院,浙江 杭州 310023;4.國家電網(wǎng)有限公司信息通信分公司,北京 100053)
近年來互聯(lián)網(wǎng)的發(fā)展對云計算的需求不斷增加,這使得數(shù)據(jù)中心的規(guī)模不斷擴大。據(jù)數(shù)據(jù)顯示,2019年第4季度,超大型運營商的資本支出遠遠超過320億美元,創(chuàng)下季度支出的新紀錄。大量的高規(guī)模資本支出用于建設(shè)、擴展和裝備大型數(shù)據(jù)中心,到第4季度末,數(shù)據(jù)中心的數(shù)量增長到512個[1]。根據(jù)美國勞倫斯伯克利國家實驗室的能源報告,美國數(shù)據(jù)中心在2014年耗電量已經(jīng)達到了700億千瓦時,占美國總電量的1.8%[2]。在2014年,全球數(shù)據(jù)中心的能源使用量占當(dāng)年全球能源使用量的1.62%。2017年這一數(shù)字已增加到全球能源的3%以上,根據(jù)Andrae的報告,到2025年,數(shù)據(jù)中心有望在全球范圍內(nèi)以4.5%的比例成為全球最大的能源用戶[3]。截至2017年底,我國各類在用數(shù)據(jù)中心總量已經(jīng)達到28.5萬個,全年耗電量超過1 200億千瓦時,約占我國全社會用電量2%[4]。隨著5G時代的來臨,建立高能效的數(shù)據(jù)中心的需求越來越迫切。
對于建立高能效數(shù)據(jù)中心,首先需要對數(shù)據(jù)中心以往的數(shù)據(jù)進行研究分析,了解數(shù)據(jù)中心服務(wù)器各項指標(biāo)的特點,以及這些指標(biāo)對服務(wù)器能效產(chǎn)生的影響。根據(jù)分析得到的結(jié)果,企業(yè)和研究人員才能夠有針對性地解決數(shù)據(jù)中心的能耗問題,優(yōu)化服務(wù)器,從而減輕數(shù)據(jù)中心由能耗問題導(dǎo)致的對環(huán)境的危害等不利影響。
SPEC(Standard Performance Evalution Corporation)官方提供了大量可用于分析往年服務(wù)器效果的數(shù)據(jù),SPECpower_ssj2008是工業(yè)標(biāo)準組織開發(fā)的用于評估服務(wù)器能效性的基準測試工具。本文著重針對SPECpower結(jié)果中的部分指標(biāo)進行分析。服務(wù)器性能主要評價指標(biāo)如下所示:
(1) 服務(wù)器整體性能(Score)表示服務(wù)器在0%~100%每個利用率節(jié)點下服務(wù)器工作的任務(wù)總量與消耗總電量的比值。
(2) 能效性EE(Energy Efficiency)表示服務(wù)器的性能與功率的比值,能效性越高,即單位瓦特電量能完成的任務(wù)更多。
(3) 能量等比性EP(Energy Proportionality)[5 - 8]表示服務(wù)器功耗隨利用率的變化情況。
(4) 峰值能效性(PeakEE)表示在10%~100%的10個利用率下對應(yīng)服務(wù)器能效性的最大值,該峰值能效性對應(yīng)的利用率為峰值利用率。
我們以這些結(jié)果評價指標(biāo)為參考,可以進一步探究服務(wù)器硬件指標(biāo)對服務(wù)器性能的影響。大型數(shù)據(jù)中心中運行了大量的服務(wù)和應(yīng)用,在生產(chǎn)系統(tǒng)中進行能效優(yōu)化調(diào)整具有較大風(fēng)險,對數(shù)據(jù)中心能效進行模擬仿真可以了解數(shù)據(jù)中心能效隨負載的變化情況。因此,針對數(shù)據(jù)中心低能耗問題,本文提出了基于遺傳算法的優(yōu)化方式,并基于該算法對數(shù)據(jù)中心進行能效仿真。
本文首先對SPEC官方公布的截至2019年第4季度的共658條有效記錄[9]進行匯總,制作了杏仁圖、鉛筆頭圖等多種能反映服務(wù)器情況的圖像,可視化服務(wù)器發(fā)展趨勢。分別從CPU架構(gòu)和年份2個方面分析服務(wù)器近十幾年的性能發(fā)展趨勢,并對未來發(fā)展趨勢做出了簡單預(yù)測。本文不僅分析了SPEC的SPECpower測試結(jié)果數(shù)據(jù),還對服務(wù)器的單位核內(nèi)存(Memory per Core)、內(nèi)存速度(Memory Speed)、Cache容量(Cache Size)等多種硬件參數(shù)進行了分析;通過Matlab擬合實驗[10],分析了影響服務(wù)器能效的因素。在實驗過程中,進行了大量擬合以及誤差結(jié)果對比,最終得到了對服務(wù)器性能影響較大的3個硬件因素。
目前,分布式并行計算系統(tǒng)的能耗優(yōu)化管理技術(shù)包括3類:關(guān)閉/休眠技術(shù)、動態(tài)電壓調(diào)節(jié)技術(shù)和虛擬化技術(shù)[11]。
動態(tài)電壓調(diào)節(jié)技術(shù)主要是在任務(wù)運行過程中,調(diào)整其運行的電壓和頻率,延長任務(wù)執(zhí)行時間來降低執(zhí)行能耗;而動態(tài)電源管理技術(shù)主要是通過在足夠長的空閑時間內(nèi)休眠不用的器件來減少能量消耗[12]。
虛擬化遷移技術(shù)通過將軟件應(yīng)用與底層硬件相隔離,可以將若干低負載的服務(wù)器遷移、整合到較少的服務(wù)器上,有效降低服務(wù)器能耗,但這種方法將會涉及到底層硬件。
關(guān)閉/休眠技術(shù)是通過關(guān)閉空閑計算機節(jié)點來降低能源消耗從而實現(xiàn)數(shù)據(jù)中心的節(jié)能,但由于計算機從關(guān)閉到啟動時需要較長時間,若不能精準預(yù)測負載,則會導(dǎo)致頻繁開關(guān)機。此外,如何根據(jù)單位時間到達的任務(wù)量決定需要關(guān)閉的計算機數(shù)量以及關(guān)閉哪些計算機,給關(guān)閉/休眠技術(shù)帶來了新的研究難題[11,13]。
實際上,服務(wù)器在運行狀態(tài)下會產(chǎn)生較大的能耗,但大多數(shù)服務(wù)器平均利用率只有大約10%~50%。服務(wù)器在休眠狀態(tài)時[14],一般僅消耗5 W[11]的能耗。因此,本文利用虛擬遷移技術(shù)將服務(wù)器的任務(wù)集中遷移到部分服務(wù)器上,并將未運行的服務(wù)器設(shè)置為休眠狀態(tài),以達到減少功耗的目標(biāo)。負載過大時,可以將休眠的服務(wù)器喚醒。此前已經(jīng)有不少關(guān)于數(shù)據(jù)中心能耗優(yōu)化的成果。阮順領(lǐng)等[15]研究了面向數(shù)據(jù)中心能效優(yōu)化的虛擬機遷移調(diào)度方法,這種方法可以對服務(wù)器進行動態(tài)遷移和整合,從而減少服務(wù)器的運行數(shù)量,以此來降低能耗。劉斌等[16]提出了一種基于在線預(yù)測服務(wù)器規(guī)模調(diào)節(jié)策略,利用LMS(Least Mean Square)算法預(yù)測未來的負載請求,動態(tài)調(diào)整集群規(guī)模,他們提出的快速調(diào)整算法使同構(gòu)服務(wù)器系統(tǒng)的能耗維持在較低水平。王肇國等[17]提出的基于機器學(xué)習(xí)特性的數(shù)據(jù)中心能耗優(yōu)化方法,針對同構(gòu)數(shù)據(jù)中心進行數(shù)據(jù)中心能耗優(yōu)化。多數(shù)研究中未考慮到數(shù)據(jù)中心大多都是異構(gòu)這一問題,并且對于單個服務(wù)器忽視了其能量等比性的特點。
本文基于遺傳算法設(shè)計了數(shù)據(jù)中心能效仿真器,求出數(shù)據(jù)中心在不同負載下開啟服務(wù)器的合理方案,在保證數(shù)據(jù)中心能夠提供用戶請求服務(wù)器的情況下,盡量減少數(shù)據(jù)中心的功耗。遺傳算法在解決組合優(yōu)化問題時,能達到較好的效果,并能夠加快計算速度。在合理的誤差下,遺傳算法比一般的優(yōu)化算法,如背包算法、貪心算法等,可以更高效地得到最優(yōu)解,尤其是在解決較大規(guī)模問題時[18]。本文對求解數(shù)據(jù)中心能效優(yōu)化問題的具體過程進行了詳細的說明,希望能為解決該類問題提供少許經(jīng)驗。本文設(shè)置背包算法作為對比算法,實驗表明,遺傳算法在解決該類問題時可以得到更好的結(jié)果。
此外,考慮到服務(wù)器的能耗包括運行能耗和切換能耗[11],對服務(wù)器進行開啟或者關(guān)閉操作時,需要將其任務(wù)進行遷移、整合,這需要一定的計算時間,并且也會產(chǎn)生一定的功耗浪費。本文對遺傳算法中的適應(yīng)度函數(shù)進行改進,在數(shù)據(jù)中心運行時,若負載發(fā)生變化,仿真器將會給出切換服務(wù)器數(shù)量較少的合理方案,改進后,數(shù)據(jù)中心需要切換的服務(wù)器數(shù)量減少,并且在一定誤差內(nèi),仍然能達到最小功耗的目標(biāo)。最后,利用SPEC中的部分數(shù)據(jù),模擬了不同規(guī)模和不同服務(wù)器類型的數(shù)據(jù)中心能效隨負載的變化。
本文對截至2019年SPECpower的有效數(shù)據(jù)進行統(tǒng)計和分析,分別從服務(wù)器CPU架構(gòu)角度和年份變化角度分析服務(wù)器性能的發(fā)展趨勢。
3.1.1 服務(wù)器在CPU架構(gòu)視角下的發(fā)展趨勢
根據(jù)CPU架構(gòu)對統(tǒng)計結(jié)果進行分類的情況如圖 1所示。
Figure 1 CPU architecture classification for Intel CPU圖1 Intel CPU架構(gòu)分類
根據(jù)不同CPU類型分別統(tǒng)計它們的EP、Score的平均值和中位值,如圖 2和圖 3所示。Skylake和Cascade Lake是近年來Intel最新的2種CPU架構(gòu),這2類服務(wù)器在圖2和圖3的EP值和Score值中都占據(jù)很高的位置,EP值達到0.90以上,Score值達到11 000以上。以上分析可以說明服務(wù)器性能的提升。在2019年發(fā)布的結(jié)果中,AMD類型的Zen2系列服務(wù)器平均可以達到約2萬左右的Score值,但其EP值不高。由于該型號服務(wù)器的CPU一般會配置較大的Cache和較多節(jié)點,所以得到了較高的Score分數(shù),但Zen2系列服務(wù)器的功耗也更大,其能效并不高。
Figure 2 Average EP and median EP of each CPU architecture圖2 各類CPU構(gòu)架的EP平均值和EP中位數(shù)
Figure 3 Average score and median score of each CPU architecture圖3 各個CPU構(gòu)架的Score平均值和Score中位值
3.1.2 服務(wù)器隨年份變化的發(fā)展趨勢
(1)能量等比性和服務(wù)器總體能效性變化趨勢。
圖 4為2007年~2019年所有服務(wù)器EP值和Score值的統(tǒng)計曲線。在2007年~2019年時間段中,EP值總體呈上升趨勢,2019年服務(wù)器EP值基本可以達到1,EP值有顯著的提升。Score值在2007年~2018年間也呈上升趨勢。2019年初的季度中Score值上升最高至2萬多,在之后的季度中Score值又有所跌落,但仍處于較高區(qū)域,體現(xiàn)了服務(wù)器能效的提高。
Figure 4 Data trends of server Score and EP values from 2007 to 2019圖4 2007年~2019年服務(wù)器 Score和EP值變化趨勢圖
(2)峰值能效性的利用率變化趨勢。
圖5所示為峰值能效性出現(xiàn)時的利用率隨年份的變化。2010年之前,服務(wù)器在利用率為100%時才達到峰值能效性。2010年峰值能效的利用率開始發(fā)生變化,峰值能效性出現(xiàn)時的利用率逐漸向低值移動。2010年~2019年,在利用率為100%達到峰值能效性的服務(wù)器占比呈下降趨勢,2015年占比最小,其比值不到10%。同時,雖然在2014年~2016年利用率在70%,80%達到峰值利用率的服務(wù)器占比有劇烈波動,但截至2019年,該占比總體呈上升趨勢。經(jīng)過以上分析可以推測,峰值能效性的利用率可能會繼續(xù)降低,我們可以將特定服務(wù)器運行在其峰值能效性的利用率下,以獲得合理的工作負載布局和高效的能源利用率。
Figure 5 Server utilization spot of peak energy efficiency in each year圖5 各年份峰值能效性的利用率
3.1.3 能量等比性和能效性變化
圖6和圖7所示為2007年~2019年所有服務(wù)器在不同利用率下的能量等比性和能效性統(tǒng)計曲線。本文用虛曲線表示2007年~2015年的數(shù)值情況,用實曲線表示2016年~2019年的數(shù)值情況。EP曲線反映了服務(wù)器的功耗特性。理想的EP曲線為斜率為1的曲線,表示在某一利用率下,服務(wù)器的能量等比性也為該利用率所對應(yīng)的值,EP隨利用率同等程度變化。服務(wù)器EP值[6]越高,會越早與理想EP曲線相交。圖6中實曲線與理想EP曲線相交時的利用率大多小于虛曲線與理想EP曲線相交時的利用率。并且隨著年份的增加,實曲線與理想EP曲線交匯速度呈加快趨勢。鉛筆頭圖的上包絡(luò)線表示EP值最低的服務(wù)器,該服務(wù)器EP值為0.18,出現(xiàn)于2008年;鉛筆頭圖的下包絡(luò)線表示EP值最高的服務(wù)器,該服務(wù)器EP值為1.09,出現(xiàn)于2019年。以上分析均可以反映能量等比性的提高。
Figure 6 Pencilhead chart of server energy proportionality evolution圖6 服務(wù)器能量等比性演化鉛筆頭圖
高能效性區(qū)域是服務(wù)器能夠持續(xù)工作的更好區(qū)域,EP值越高的服務(wù)器,高能效性區(qū)域越寬。對于EP值接近于1.0或大于1.0的服務(wù)器,EP值越高,峰值能效性距離理想能效性曲線越遠。如圖 7所示,隨著年份的增加,服務(wù)器高能效性區(qū)域?qū)挾纫约胺逯的苄耘c理想能效性曲線的距離呈增大趨勢。杏仁圖的上包絡(luò)線是所有服務(wù)器中最高EP值的曲線,在利用率30%~100%區(qū)間均獲得高能效性,該服務(wù)器出現(xiàn)于2019年。以上分析說明服務(wù)器能效性有所提高。服務(wù)器能量等比性和能效性的提高都反映了服務(wù)器性能的發(fā)展與進步。
Figure 7 Almond chart of server energy-efficiency evolution圖7 服務(wù)器能效性演化杏仁圖
3.2.1 分析方法
本文分析影響服務(wù)器性能的因素,是通過利用Matlab的擬合工具stepwise和regress[10]對SPECpower的某些參數(shù)進行擬合實現(xiàn)的。由于服務(wù)器性能受服務(wù)器硬件影響,因此對SPECpower中統(tǒng)計的硬件參數(shù)進行擬合。在擬合中,將Score和PeakEE作為被擬合指標(biāo)。本文對全部數(shù)據(jù)集的多種子集進行實驗,以此控制某些變量,其中包括對年份、CPU代號、峰值所在利用率等數(shù)據(jù)量較大的數(shù)據(jù)集進行不同方面的分析。以R-square、均方根誤差RMSE、相對RMSE和平均相對誤差等值對擬合結(jié)果進行評價。最終得到較好擬合結(jié)果的參數(shù)可視為影響服務(wù)器性能的重要因素。
3.2.2 擬合參數(shù)選擇
本文對服務(wù)器幾個主要參數(shù)進行擬合(各項參數(shù)的含義如表 1所示),利用評價指標(biāo)RMSE和R-square進行分析。RMSE為均方根誤差,用來衡量觀測值同真值之間的偏差;R-square為確定系數(shù),該系數(shù)通過數(shù)據(jù)的變化來表征一個擬合的好壞,其正常取值為0~1,越接近1,表明數(shù)據(jù)擬合程度越好。
Table 1 Hardware parameters表1 硬件參數(shù)表
由于CPU性能會隨年份增加而提升,本文除了對所有數(shù)據(jù)進行擬合外,還對年份跨度稍微小一些的2016年~2019年的數(shù)據(jù)、不同峰值點位置的數(shù)據(jù)、不同CPU代號的數(shù)據(jù)分別進行擬合。同類服務(wù)器的數(shù)據(jù)集在某些方面具有相似性,可以提高擬合的結(jié)果,如具有相同CPU代號的服務(wù)器的Score可能具有類似的函數(shù)關(guān)系。SPECpower 數(shù)據(jù)集信息如表 2所示。
Table 2 SPECpower data sets information表2 SPECpower 數(shù)據(jù)集信息
首先,本文對表1中涉及的相關(guān)參數(shù)進行擬合實驗,分析了不同參數(shù)的擬合結(jié)果和擬合函數(shù)中各個參數(shù)的權(quán)值,最終選出了CPU_speed、Total_cores、Cache_size、Mem_per_core、JVM_initial_heap和Mem_speed 6個參數(shù)作為影響Score和PeakEE值的主要參數(shù)。由于論文篇幅限制,本文僅列出這6個參數(shù)在不同數(shù)據(jù)集上的擬合結(jié)果,如表3~表 5所示。擬合結(jié)果中原本將RMSE值作為擬合準確度的一個判斷標(biāo)準,但由于該值是一個絕對值,不同數(shù)據(jù)集上的擬合結(jié)果無法比較,所以,本文將RMSE值除以被擬合值的平均值作為判斷的標(biāo)準,將絕對RMSE值統(tǒng)一成相對RMSE(RMSE/Average)。
Table 3 Fitting results on data sets classified by year表3 按年份分類的數(shù)據(jù)集擬合結(jié)果
Table 4 Fitting results on data sets classified by different architectures表4 按不同架構(gòu)分類數(shù)據(jù)集擬合結(jié)果
Table 5 Fitting results on data sets classified by utilization rate of peak EE表5 按Peak EE所在利用率分類數(shù)據(jù)集擬合結(jié)果
3.2.3 重要參數(shù)擬合提取
雖然以上實驗得到了較好的擬合結(jié)果,但實驗時觀察到,不同參數(shù)對整個擬合結(jié)果的影響是不同的,而且擬合中涉及到的變量過多,因此猜測在主要的參數(shù)中存在某些參數(shù)對擬合結(jié)果會產(chǎn)生更大的影響。本文希望能從此前得到的6個主要參數(shù)中提取出重要的參數(shù)進行擬合實驗,以此來減少擬合過程中涉及到的變量,同時也希望這些重要參數(shù)對Score和PeakEE的擬合仍然能達到較高的準確度。因此,本次實驗提取3個主要參數(shù)為目標(biāo),使用這3個主要參數(shù)對數(shù)據(jù)進行擬合,得到較好的擬合結(jié)果。
本文的主要實驗思想為,對于某個參數(shù),在6個參數(shù)擬合的基礎(chǔ)上,刪除該參數(shù),將其余5個參數(shù)擬合的結(jié)果與6個參數(shù)擬合結(jié)果相對比,若兩者結(jié)果相差較大,則說明該變量對數(shù)據(jù)的影響大,反之,可以考慮將其剔除。
首先,在實驗中發(fā)現(xiàn),CPU_speed和Total_cores這2個參數(shù)對擬合結(jié)果的影響不大。因此,先將這2個參數(shù)從6個參數(shù)中剔除。在未來的數(shù)據(jù)擬合中剔除這2個參數(shù)。
在剔除CPU_speed和Total_cores后,保留了Cache_size、Mem_per_core、JVM和Mem_speed 4個參數(shù)單獨進行研究,將這4個參數(shù)的擬合結(jié)果和去除某個參數(shù)的結(jié)果進行對比,可以得出某一參數(shù)對擬合結(jié)果的影響。實驗結(jié)果如下所示:
(1)總體來看,Cache_size參數(shù)對擬合結(jié)果的影響較大。如圖 8所示,該參數(shù)對年份跨度較大的數(shù)據(jù)集的擬合結(jié)果影響較小,但該參數(shù)對于年份較新的數(shù)據(jù)集的擬合結(jié)果影響很大,PeakEE的R-square在2016年~2019年數(shù)據(jù)集上的結(jié)果提高了40%。
Figure 8 Comparison between the fitting results w/wo Cache_size圖8 未加入Cache_size參數(shù)與加入后擬合結(jié)果對比
(2)圖9列出了未加入Mem_speed參數(shù)與加入后擬合結(jié)果對比。在對數(shù)據(jù)集年份跨度大的擬合結(jié)果中,該參數(shù)對擬合結(jié)果影響大,但是在年份較新的數(shù)據(jù)集上,該參數(shù)對擬合結(jié)果的影響逐漸減小。
Figure 9 Comparison between the fitting results w/wo Mem_speed圖9 未加入Mem_speed參數(shù)與加入后擬合結(jié)果對比
(3)Mem_per_core參數(shù)對擬合結(jié)果的影響不大。如圖 10所示,對圖例中的數(shù)據(jù)集進行擬合,加入Mem_per_core參數(shù)后的結(jié)果提升基本在3%以內(nèi)。
Figure 10 Comparison between the fitting results w/wo Mem_per_core圖10 未加入Mem_per_core參數(shù)與加入后擬合結(jié)果對比
(4)JVM_initial_heap參數(shù)總體上對擬合結(jié)果的影響不大。如表6所示,該參數(shù)對擬合結(jié)果的提升在5%以內(nèi)。
Table 6 Comparison between the fitting results w/wo JVM_initial_heap 表6 未加入JVM_initial_heap參數(shù)與加入后擬合結(jié)果對比
經(jīng)過對以上6個參數(shù)的分析,我們可以得出初步結(jié)果,在擬合參數(shù)中剔除CPU_speed和Total_speed參數(shù),保留Cache_size和Mem_speed參數(shù)。
對于Mem_per_core和JVM_initial_heap,本文發(fā)現(xiàn)這2個變量對實驗結(jié)果的影響相差不大,因此將進一步進行實驗。通過前面的實驗已經(jīng)確定保留Cache_size和Mem_speed,在此基礎(chǔ)上再分別添加Mem_per_core和JVM_initial_heap,將2次擬合結(jié)果進行對比,以考察這2個參數(shù)對擬合結(jié)果的重要性。綜合來看,加入Mem_per_core的擬合結(jié)果較好。
3.2.4 結(jié)果分析
如表7所示,將Cache_size、Mem_per_core和Mem_speed 3個參數(shù)進行擬合,準確度較高。只有2012年~2019年數(shù)據(jù)集上的擬合結(jié)果稍差,其他數(shù)據(jù)集的擬合結(jié)果與源數(shù)據(jù)平均相對誤差以及相對RMSE的誤差都能在10%以內(nèi)。
至此,找出了服務(wù)器硬件數(shù)據(jù)與服務(wù)器性能的關(guān)系,并且使用服務(wù)器中的Cache_size、Mem_per_core和Mem_speed 3個參數(shù)對服務(wù)器的Score和PeakEE值進行線性擬合,達到了較好的效果。
以上的擬合實驗說明,Cache_size、Mem_per_core和Mem_speed 3個參數(shù)是影響服務(wù)器性能的重要因素,利用這3個參數(shù)可以較好地擬合Score和PeakEE。
本文利用遺傳算法研究數(shù)據(jù)中心在提供一定負載保證服務(wù)質(zhì)量前提下,調(diào)整數(shù)據(jù)中心服務(wù)器開啟的合理方案,使數(shù)據(jù)中心的能耗最小化。由于數(shù)據(jù)中心在不斷擴大規(guī)模的過程中,新增的服務(wù)器的硬件生產(chǎn)年份不同,或者會由不同廠商提供,因此數(shù)據(jù)中心的服務(wù)器可能具有不同的硬件配置,不同的硬件配置可能導(dǎo)致數(shù)據(jù)中心節(jié)點在性能和耗電功率等方面不同。因此,在數(shù)據(jù)中心能耗優(yōu)化相關(guān)研究中,若僅考慮同構(gòu)服務(wù)器的數(shù)據(jù)中心是不夠的[13]。本文在利用SPEC平臺上服務(wù)器運行時的真實數(shù)據(jù)進行數(shù)據(jù)中心能效仿真時,設(shè)計了不同規(guī)模和不同類型的異構(gòu)數(shù)據(jù)中心。對于未工作的服務(wù)器,其運營商可以將其設(shè)置為休眠狀態(tài)或者關(guān)閉狀態(tài)。一般來說,服務(wù)器開啟與關(guān)閉時會產(chǎn)生較大的能耗,并且開啟時還會消耗一定的時間。在休眠狀態(tài)的服務(wù)器能及時開啟且能耗較小,本文在能效計算時,假定服務(wù)器未開啟時時,自動進入休眠狀態(tài),并忽略其在休眠狀態(tài)下的能耗。此外,由于SPEC為本文提供的服務(wù)器運行數(shù)據(jù)中,將服務(wù)器利用率設(shè)置在10%~100%的10個檔位,因此本文實驗中假設(shè),服務(wù)器開啟時,其利用率有10%~100%共10個擋位。因此,數(shù)據(jù)中心能效優(yōu)化問題可以描述為:
Table 7 Fitting results for score and Peak EE with Cache_size,Mem_per_core,and Mem_speed 表7 Cache_size,Mem_per_core,Mem_speed對Score、Peak EE進行線性擬合的結(jié)果
假設(shè)某異構(gòu)數(shù)據(jù)中心一共有N臺服務(wù)器,將數(shù)據(jù)中心工作節(jié)點的利用率平均劃分為10%~100%共10個擋位,sjj_op是在SPEC官方測試平臺上,對每臺服務(wù)器進行能效測試的標(biāo)準測試任務(wù),ssj_opij表示第i臺服務(wù)器運行在利用率為j*10%時的負載任務(wù)數(shù)量,pij表示第i臺服務(wù)器在利用率j*10%下的功耗。數(shù)據(jù)中心若有J個請求的負載,需要調(diào)整數(shù)據(jù)中心每臺服務(wù)器的運行狀態(tài),使其能滿足負載請求并使整個數(shù)據(jù)中心能耗降到最小。該問題求解可以表示如式(1)所示:
ni=0或ni=1,j=1,2,…,10,
(1)
其中ni表示該服務(wù)器是否開啟。
該問題實際上是一個組合優(yōu)化問題,可以使用背包算法進行求解。雖然背包算法能夠得到較高的準確率,但計算時間過長,若給出的服務(wù)器調(diào)整方案時間過長,將影響服務(wù)器調(diào)整運行的響應(yīng)時間,降低數(shù)據(jù)中心的服務(wù)質(zhì)量。因此,本文選擇遺傳算法對問題進行求解,并對2個算法進行了比較。本文將背包算法和遺傳算法在同樣負載下求出的最小功耗的誤差作為遺傳算法的評價標(biāo)準。
遺傳算法是由美國的Holland教授[20]于1975年提出的,是一種基于自然選擇原理和自然遺傳機制的搜索算法,模擬自然界中的生命進化機制,在人工系統(tǒng)中實現(xiàn)特定目標(biāo)的優(yōu)化[21]。
按照遺傳算法的步驟,下面給出本文問題求解的具體過程:
(1)染色體編碼。對于本文的問題,最終輸出的是服務(wù)器開啟方案。對于每臺服務(wù)器,其狀態(tài)有關(guān)閉或者是以不同利用率運行。因此,本文對服務(wù)器運行的10個不同利用率和未運行共11種狀態(tài)進行編碼,該11種狀態(tài)作為染色體的基因特征,一條染色體就是一種服務(wù)器開啟方案,染色體中的長度即為數(shù)據(jù)中心服務(wù)器的數(shù)量。
(2)確定初始種群。在所有服務(wù)器中,隨機選擇若干臺服務(wù)器,并將其運行到峰值能效的利用率下,使所有開啟服務(wù)器運行負載達到請求負載,其余服務(wù)器為關(guān)閉狀態(tài),則該組服務(wù)器的狀態(tài)編碼為一個可行性解,初始時選擇若干組這樣的可行性解作為初始種群。
(3)確定適應(yīng)度函數(shù)。適應(yīng)度函數(shù)是評價個體性能的主要指標(biāo)。顯然,對于每個個體,其適應(yīng)度應(yīng)該遵循功耗越小適應(yīng)度越大。那么,如果在進化中產(chǎn)生了負載不能達到任務(wù)請求的解,在自然選擇時,應(yīng)該被淘汰,所以,可以將這樣的解的適應(yīng)度設(shè)置為最小。假設(shè)數(shù)據(jù)中心有n臺服務(wù)器開啟,其最小負載為totalJobs。在該解下,第i臺服務(wù)器運行的負載為jobi,功耗為pi,可以確定適應(yīng)度函數(shù)如式(2)所示:
(2)
(4)確定選擇算子。在每一次迭代時,使用較好的選擇算子能保留適應(yīng)度較好的個體,淘汰適應(yīng)度不佳個體,本文采用精英策略選擇法與錦標(biāo)賽選擇法相結(jié)合的方法。新的種群中,有一部分是由適應(yīng)度較好的父代直接復(fù)制而來的,其他是由父代交叉得到的,父代選擇的方法使用錦標(biāo)賽選擇法。參數(shù)pr(Crossover Probability)為交叉概率,表示在新種群中,有pr比例的子代是由父代交叉得到的,其他(1-pr)的子代是由父代直接復(fù)制得來的,并且該部分子代不會進行變異。
(5)確定交叉算子與變異算子。交叉算子選用順序交叉法。順序交叉法中,父代染色體的相對訪問順序不會改變,本文選用了2點交叉的方式。變異就是以很小的變異概率pm(Mutation Probabi- lity)隨機地改變種群中個體的某些基因值,它能夠保持群體的多樣性,以防出現(xiàn)早熟收斂。
實驗利用阿里數(shù)據(jù)中心的真實負載,按數(shù)據(jù)中心的規(guī)模對其真實負載進行等比例調(diào)整,模擬了數(shù)據(jù)中心在一定負載下的最小能耗問題。本文選擇了SPECpower數(shù)據(jù)集中硬件生產(chǎn)年份為2018年的52類服務(wù)器,每類服務(wù)器10臺,共520臺,在26組不同負載下求解最小能耗問題,并將遺傳算法求解結(jié)果與背包算法求解結(jié)果進行對比。
首先,對交叉概率和變異概率進行調(diào)參,得到的結(jié)果如圖11所示,可以明顯發(fā)現(xiàn),當(dāng)pm設(shè)置為0.01,pr設(shè)置為0.98時,實驗得到的誤差最小。
Figure 11 Error of power with different pm and pr圖11 不同交叉概率pm、變異概率pr下的實驗誤差
對于種群規(guī)模pop_size與迭代次數(shù)Generations,通過增大這2個參數(shù),可以提高遺傳算法求解的準確度。從圖12可以觀察到,在迭代次數(shù)和種群規(guī)模不斷擴大時準確度不斷提高,但同時也會增加計算時間。
Figure 12 Error of power and average time with different pos_size and Generations圖12 不同種群規(guī)模、迭代次數(shù)下實驗誤差及計算時間開銷
所以,如何設(shè)置迭代次數(shù)和種群規(guī)模,需要根據(jù)實際情況來確定,若負載對時間敏感度較高,則可以將種群規(guī)模、迭代次數(shù)設(shè)置得較小,以一定誤差為代價,更快得到結(jié)果;若負載對時間不敏感,則可以增加迭代次數(shù),以得到較小誤差的結(jié)果。
此外,由表8可知,表8中No. 2比No. 1增加了迭代次數(shù),No. 3比No. 1擴大了種群規(guī)模,通過結(jié)果發(fā)現(xiàn)迭代次數(shù)和種群規(guī)模的設(shè)置對實驗結(jié)果有不同程度的影響。實驗結(jié)果對比可知,No. 2與No. 3的誤差都在2.1%左右,但No. 3需要更長的計算時間,由此可以得知,在設(shè)置參數(shù)時,可以通過增加迭代次數(shù)來提高算法的準確度。但若一昧地擴大種群規(guī)模,計算結(jié)果的準確度提高得不明顯,并且會耗費更長的計算時間。
Table 8 Partial results of simulation表8 部分實驗結(jié)果
此外,考慮服務(wù)器切換時需要消耗的功耗。假設(shè)有數(shù)據(jù)中心需要從方案1切換到方案2,其中服務(wù)器進行狀態(tài)調(diào)整的數(shù)量為r臺,本文未考慮調(diào)整利用率時需要的其他功耗,則需要切換的數(shù)量r越少,調(diào)整時所需要耗費的能量越小,因此可以將適應(yīng)度函數(shù)更改為式(3)所示:
f(x1,x2,…,xn)=
(3)
其中,由于r值的相對大小與數(shù)據(jù)中心的總服務(wù)器數(shù)量N有關(guān),因此本文將總服務(wù)器數(shù)量也引入適應(yīng)度函數(shù)中。
對改進后的算法重新進行實驗,得到的實驗結(jié)果圖 13所示。從圖13可以發(fā)現(xiàn),在相同負載下,改進后的適應(yīng)度函數(shù)的結(jié)果中,能耗相差不大,但改進后的適應(yīng)度函數(shù)使服務(wù)器切換的數(shù)量大大減小。
Figure 13 Improvements comparison of genetic algorithms圖13 遺傳算法改進結(jié)果對比
本文利用SPEC平臺上的數(shù)據(jù),設(shè)計了2個規(guī)模較小的數(shù)據(jù)中心。數(shù)據(jù)中心DC#1、DC#2是分別由硬件生產(chǎn)年份為2018年的服務(wù)器、硬件生產(chǎn)年份為2019的服務(wù)器構(gòu)成的。此外,選用了2008年~2019年SPEC平臺上分布的所有有效服務(wù)器共521類,設(shè)置共3 315臺服務(wù)器的較大規(guī)模數(shù)據(jù)中心進行仿真。數(shù)據(jù)中心基本信息與仿真參數(shù)如表9所示。
Table 9 Basic configuration of three data centers 表9 數(shù)據(jù)中心基本信息
圖14為數(shù)據(jù)中心的能效仿真圖,圖中的負載曲線描繪了在各個時刻負載的動態(tài)變化,圖中的能耗曲線描繪了數(shù)據(jù)中心在滿足各個時刻的負載時產(chǎn)生的能源消耗變化。由圖14可以觀察到,DC#1與DC#2在同樣的負載下,DC#2使用的功耗明顯小于DC#1的。從2個年份的數(shù)據(jù)中心的能效仿真結(jié)果來看,近年來,服務(wù)器的能效有了較大的提高。
Figure 14 Simulation results of DC#1 and DC#2圖14 DC#1與DC#2仿真結(jié)果
對于較大規(guī)模的數(shù)據(jù)中心的仿真結(jié)果如圖 15所示。根據(jù)圖 14和圖 15的負載動態(tài)變化和數(shù)據(jù)中心的能耗使用情況,本文繪制了3個數(shù)據(jù)中心的EE對比圖,如圖 16所示。由3個數(shù)據(jù)中心的能效仿真可知,DC#3的仿真結(jié)果不如DC#1和DC#2的,說明本文使用的仿真方法更加適合規(guī)模較小的數(shù)據(jù)中心,并且由表 10可知,在DC#3的仿真中,運行時間相較于另外2個數(shù)據(jù)中心明顯更長。由于較大規(guī)模的數(shù)據(jù)中心需要設(shè)置更大的種群規(guī)模和更多的迭代次數(shù),這使遺傳算法的收斂時間大大增加。本文中,DC#3的仿真結(jié)果比其他2個數(shù)據(jù)中心的仿真結(jié)果稍差,可能是由于種群規(guī)模和迭代次數(shù)仍然不夠,也可能是因為實驗中相關(guān)參數(shù)并不適合規(guī)模較大的數(shù)據(jù)中心仿真。
Figure 15 Simulation result of DC#3圖15 DC#3仿真結(jié)果
Figure 16 Energy efficiency simulation comparison of three data centers圖16 數(shù)據(jù)中心能效仿真對比圖
Table 10 Simulation results of three data centers
在本文的仿真實驗中,對數(shù)據(jù)中心能效仿真使用的負載變化幅度較小,能夠模擬數(shù)據(jù)中心日常工作的負載變化。若用戶需求在短時間內(nèi)急劇波動,該仿真器的效果可能會受到影響,以致于增加數(shù)據(jù)中心的響應(yīng)時間。而且在實際運用中,仿真器會受到時間限制,往往需要在一定時間內(nèi)給出最優(yōu)的服務(wù)器開啟/關(guān)閉調(diào)整方案,如果時間限制比較嚴格,仿真可能達不到最優(yōu)的方案。此外,經(jīng)過對不同規(guī)模的數(shù)據(jù)中心仿真結(jié)果分析可知,遺傳算法在解決不同規(guī)模的問題時,會有不同的最佳參數(shù)組合。因此,仿真精度會受到數(shù)據(jù)中心規(guī)模的影響,對于不同規(guī)模的數(shù)據(jù)中心,遺傳算法的相關(guān)參數(shù)還要進一步調(diào)整。
本文對SPEC官網(wǎng)的服務(wù)器數(shù)據(jù)進行了分析,分別從CPU架構(gòu)、能效性和能量等比性隨時間變化角度分析,通過制作多種能夠反映服務(wù)器性能圖像,可視化服務(wù)器發(fā)展趨勢,最終得到總體上服務(wù)器性能呈提高的結(jié)論。SPEC官網(wǎng)公布了服務(wù)器的多項硬件參數(shù),本文借助Matlab對這些參數(shù)有選擇性地進行擬合實驗,分析影響服務(wù)器性能的因素。在實驗過程中進行了大量擬合以及誤差結(jié)果對比,最終得到對服務(wù)器性能影響較大的3個硬件因素。
在分析了影響服務(wù)器性能因素后,本文利用遺傳算法對數(shù)據(jù)中心在動態(tài)負載下最小能耗問題進行了求解,相對于背包算法誤差在2%左右,且考慮了數(shù)據(jù)中心在調(diào)整時切換服務(wù)器時功耗浪費的問題。但是,沒有對服務(wù)器切換時的能耗進行分析。此外,利用真實的負載數(shù)據(jù)模擬了不同規(guī)模以及不同年份服務(wù)器構(gòu)建的數(shù)據(jù)中心能效,并對其進行了分析,從模擬結(jié)果可以明顯觀察到,硬件生產(chǎn)年份從2018年到2019年,數(shù)據(jù)中心能耗有了較大的減少,說明近年來隨著服務(wù)器硬件性能的提高,能效也有所提升。此外,利用仿真器對規(guī)模較大的數(shù)據(jù)中心進行能耗仿真時,其能效未能達到預(yù)期,這與數(shù)據(jù)中心的服務(wù)器性能有關(guān),部分原因也可能是因為仿真器在一定計算時間內(nèi),對規(guī)模較大的問題還未能達到收斂,還需要進一步優(yōu)化。