任桂山 劉夢澤 陳學梅 李紅艷 徐朝農
1(中國石油大港油田公司采油工藝研究院 天津 300280) 2(中國石油大學地球物理與信息工程學院 北京 102249)
現(xiàn)今,很多服務性公司都有龐大的客戶群以及客戶在使用過程中產生的數(shù)據(jù)資料信息。隨著我們對這些海量數(shù)據(jù)進行計算、分析的需求的提升,各種各樣的計算挑戰(zhàn)也隨之而來。其中最主要的挑戰(zhàn)就是降低處理這些數(shù)據(jù)過程中產生的計算能耗。2010年全球數(shù)據(jù)中心耗電量達到全球總耗電量的1%~1.5%,到2012年全球數(shù)據(jù)中心耗電量為占全球總用電量的2%[1],而2016達到了3%,并且隨著數(shù)據(jù)中心數(shù)量和規(guī)模的擴張電量消耗仍在以每年15%的速率不斷增長[2]。2016年全球數(shù)據(jù)中心電量消耗已經達到1 520億千瓦時,且仍以每五年翻一倍的速度快速增長,電費成為數(shù)據(jù)中心建造的需首要考慮的問題之一[3]。2011年IT領域電量消耗導致的二氧化碳排放量占全球總排放量的2%,按照現(xiàn)有的增速計算,到2020年,排放量將是現(xiàn)有排量的兩倍。我國的數(shù)據(jù)中心也存在相同的情況而且計算電量使用的效率和國際平均水平有一定的差距,截至2015年數(shù)據(jù)中心總量已經超過40萬,年用電量超過社會用電量的1.5%,平均電能使用效率(PUE)普遍大于2.2[4]。因此無論是從降低數(shù)據(jù)中心成本還是從環(huán)境保護的層面出發(fā),研究海量數(shù)據(jù)處理任務的節(jié)能調度技術都是勢在必行的。
一般數(shù)據(jù)中心使用少則數(shù)十個,多則成百上千個節(jié)點處理數(shù)據(jù),其中絕大多數(shù)采用MapReduce作為數(shù)據(jù)處理思想。MapReduce是谷歌提出的一種關于超大量數(shù)據(jù)并行計算的編程模型[5]。MapReduce將任務處理劃分為Map和Reduce兩個階段,分別對數(shù)據(jù)進行映射和歸約。Hadoop是現(xiàn)今實現(xiàn)MapReduce思想的主流并行計算框架,它默認提供FIFO、容量以及公平調度方式。這些調度方式著重考慮負載平衡和執(zhí)行效率,忽略了處理能耗的問題。
現(xiàn)有對MapReduce集群中任務調度的研究側重對任務執(zhí)行時長和負載均衡的優(yōu)化。絕大部分基于MapReduce的應用對執(zhí)行時長沒有較高的需求,而在異構集群中負載均衡不可避免地帶來能量利用率低的問題。因此,近年來,MapReduce的性能優(yōu)化問題得到了廣泛的研究,關注點主要集中在執(zhí)行時間、任務負載以及功耗優(yōu)化上。
Yao等[7]研究了任務之間具有依賴性的前提下,執(zhí)行時間最優(yōu)化的問題。Ibrahim等[8]根據(jù)MapReduce中數(shù)據(jù)的本地性,將任務和其數(shù)據(jù)分到同一節(jié)點從而優(yōu)化總任務執(zhí)行時間。針對大型電商網(wǎng)站任務規(guī)模小,數(shù)量大的特點,Ren等[9]提出了最優(yōu)化執(zhí)行時間調度算法Fair4S。另外,Pastorelli等[10]考慮在任務切片大小不同且已預估出每個任務大小的情況。Wolf等[11]為公平調度器增加了彈性的特點,從而保證響應時間最短。Verma提出了一個叫ARIA(資源自動分析分配)的框架,通過分配Map slot和Reduce slot的數(shù)量使得MapReduce執(zhí)行性能得到優(yōu)化。
在負載均衡的優(yōu)化上,Polo等[12]通過定時獲取數(shù)據(jù)的處理情況,動態(tài)調整資源分布,Nanduri等[13]的啟發(fā)式策略避免將當前任務分配到過載的機器上。另外,Sandholm等[14]提出了一個有動態(tài)的優(yōu)先級的Hadoop并行調度器,并且給出一個可以由用戶自己定制任務分配方式以及執(zhí)行先后順序,從而達到按規(guī)定的時間以及用戶想要的方式執(zhí)行[14]。
Kurazumi等提出了一個動態(tài)的slot調度技術針對IO密集型任務進行調度,從而在IO等待的時間高效利用處理器資源的目的。Tian等[16]針對MapReduce Job強周期性的特點,在節(jié)點空閑的時間關閉節(jié)點從而降低整體能耗。Narayanan[17]根據(jù)數(shù)據(jù)訪問頻率將數(shù)據(jù)分到不同的磁盤上并對訪問頻率低的磁盤進行節(jié)能處理,達到在存儲上節(jié)能的目的。Salehi等[18]根據(jù)任務優(yōu)先級、密集程度、剩余執(zhí)行時長等,使用DVFS(動態(tài)電壓頻率調節(jié))和DPM(動態(tài)電源管理)技術來優(yōu)化功耗。Mashayekhy等[20]預測了每個任務的執(zhí)行功耗和執(zhí)行時間,建立功耗模型,并使用貪心策略對問題求解,然而他以slot為研究對象而不是與實際更契合的節(jié)點。
針對基于MapReduce的應用對低能耗的迫切需求,本文建立了以低能耗為目標的任務調度模型,分析了執(zhí)行能耗過高的因素。另外,和其他降低能耗的工作不同的是,本文在MapReduce的節(jié)能方面做了如下工作:使用了更切合實際的能耗模型,對基于任務分配的功耗最優(yōu)化問題進行建模;通過優(yōu)化工具對問題進行求解,并在GridSim模擬的分布式環(huán)境中對任務的執(zhí)行功耗進行評估和分析,揭示了調度策略時限和能耗的關系。
如圖1所示,一個MapReduce集群通常將不同執(zhí)行能力的節(jié)點整合起來,而每個節(jié)點根據(jù)自己的執(zhí)行資源(處理器核心數(shù)、磁盤大小、內存大小等)被等分成一定數(shù)量的slot。這些slot是虛擬執(zhí)行概念并非實體的物理結構,Map-Reduce任務便在這些slot中執(zhí)行。執(zhí)行一個MapReduce Job需要將以Key-Value形式存儲的數(shù)據(jù)讀取出來,這些數(shù)據(jù)默認以每塊64 MB存儲在分布式存儲中,假設一共需要處理BM塊。而后在執(zhí)行 Map階段時,JobTracker將這些數(shù)據(jù)塊作為任務塊分配到集群的各個處理節(jié)點的Map slot中處理。Map階段執(zhí)行完畢,經過聚合以及洗牌之后共有BR個任務塊,將這BR個任務塊再分配到各個節(jié)點中的Reduce slot中執(zhí)行Reduce階段,最后將結果寫回分布式存儲中。我們使用(BM,BR)表示一個MapReduce Job。
圖1 MapReduce執(zhí)行流程示意圖
(1)
(2)
式中:Ci是和節(jié)點相關的常數(shù),f是處理器頻率(固定值),根據(jù)頻率上限最低的節(jié)點得出,vi表示該頻率下該處理器電壓。
(3)
(4)
圖2描述了一個含有Si={S1,S2,S3}三個執(zhí)行節(jié)點的集群中Map階段調度策略的執(zhí)行過程。其中S1、S2和S3各有4個、6個和5個Map slot。
圖2 Map階段調度策略
由此可知,Mi={4,6,5},需要處理BM=37個Map任務,各個節(jié)點Si在Map階段執(zhí)行任務的時間是TM={T1,T2,T3}。使得Map階段執(zhí)行功耗最小:
s.t.
由于該問題是典型的組合優(yōu)化問題,因此很難快速求解。本文采用成熟的優(yōu)化工具CPLEX進行求解。
本節(jié)采用GridSim工具進行實驗。Gridsim是一個對大型分布式系統(tǒng)進行資源和應用調度的網(wǎng)格模擬工具,使用它可以對大型的異構分布式系統(tǒng)進行大量資源、海量數(shù)據(jù)調度和大量用戶的場景進行仿真。本次實驗使用的是GridSim 5.2 beta版本。按照表1以及其后描述的實驗規(guī)則分別在15個節(jié)點和25個節(jié)點的集群中進行實驗,且每個節(jié)點中的slot的數(shù)量服從均勻分布Ai~U(8,30),Map slot的數(shù)量服從離散均勻分布Mi~U(1,Ai)。同理可得Reduce slot的數(shù)量分布。使用TeraSort和K-means的執(zhí)行效果作為評價標準。將本文模型與默認調度器以及ARIA中的SLO調度器的能耗效果進行對比分析。實驗設置如表1所示。
實驗過程中將執(zhí)行TeraSort過程在實驗1到實驗4的時間限制分別設置為180、280、200和300 s;執(zhí)行K-means聚類過程的時間限制分別設置為200、300、220和320 s。
實驗1以180 s作為時間限制執(zhí)行TeraSort。本文調度模型和ARIA框架的SLO調度器分別在175 s和170 s執(zhí)行完畢。由圖3可知,本文調度模型和ARIA框架隨著時間限制的增長,功耗在不斷降低,說明時間限制是影響最終執(zhí)行功耗的一個重要因素。但在實際生產的處理過程中,時間限制不能無限制的增加,管理員仍然需要一個合適的時間約束來使得結果有一定的實時性。而在時間限制達到260 s以后,執(zhí)行功耗下降趨平,說明此時集群接近兩者執(zhí)行功耗降低的極限。
圖3 實驗1執(zhí)行TeraSort功耗與時間限制關系圖
由圖4和圖5可以看到執(zhí)行TeraSort和K-means聚類兩個比較標準,本文模型相比默認調度策略和ARIA框架的SLO調度器執(zhí)行功耗都有明顯下降。相對于默認調度策略平均下降了29.7%,相對SLO調度器平均下降19%。在執(zhí)行K-means的實驗4中,本文模型相比默認策略降低了34%,即295 106 J,執(zhí)行實驗1的TeraSort過程中也有26%的下降。執(zhí)行K-means的實驗1中,相比SLO調度器有21%的下降,即108 012 J。不論是執(zhí)行TeraSort還是K-means,本文模型相比默認策略的節(jié)能比率大致上隨任務的增多而增大。
圖4 TeraSort各實驗功耗對比圖
圖5 K-means各實驗功耗對比圖
針對當今數(shù)據(jù)中心能耗巨大的問題,原來提出的DVFS、參數(shù)優(yōu)化和虛擬機配置都起到了提高能源利用率、降低能耗的作用。而本文通過建立能耗調度模型,優(yōu)化不同執(zhí)行能力節(jié)點上的任務分配數(shù)量從而達到降低能耗的目的。通過實驗結果可以看到,該方法比默認和ARIA有更好的節(jié)能效果。