蒲勇霖,于 炯,,王躍飛,魯 亮,廖 彬,侯冬雪
(1.新疆大學(xué) 軟件學(xué)院,烏魯木齊 830008; 2.新疆大學(xué) 信息科學(xué)與工程學(xué)院,烏魯木齊 830046; 3.新疆財經(jīng)大學(xué) 統(tǒng)計與信息學(xué)院,烏魯木齊 830012)
大數(shù)據(jù)流式計算環(huán)境下的閾值調(diào)控節(jié)能策略
蒲勇霖1,于 炯1,2*,王躍飛2,魯 亮2,廖 彬3,侯冬雪1
(1.新疆大學(xué) 軟件學(xué)院,烏魯木齊 830008; 2.新疆大學(xué) 信息科學(xué)與工程學(xué)院,烏魯木齊 830046; 3.新疆財經(jīng)大學(xué) 統(tǒng)計與信息學(xué)院,烏魯木齊 830012)
(*通信作者電子郵箱yujiong@xju.edu.cn)
在大數(shù)據(jù)實時分析計算領(lǐng)域,流式計算的重要性不斷提高,但是流式計算平臺處理數(shù)據(jù)的能耗不斷上升。針對這一問題,改變流式計算中節(jié)點對數(shù)據(jù)的處理方式,提出了一種閾值調(diào)控節(jié)能策略(ESTC)。首先,根據(jù)系統(tǒng)負(fù)載差異確定工作節(jié)點的閾值情況;其次,通過工作節(jié)點的閾值對系統(tǒng)數(shù)據(jù)流進(jìn)行隨機選擇,確定不同數(shù)據(jù)處理情況調(diào)節(jié)系統(tǒng)的物理電壓;最后,根據(jù)不同的物理電壓確定系統(tǒng)功率。實驗結(jié)果和理論分析表明,在20臺普通PC機構(gòu)成的流式計算集群中,實施ESTC的系統(tǒng)比原系統(tǒng)有效節(jié)能約35.2%;此外,ESTC下的性能與能耗的比值為0.080 3 tuple/(s·J),而原系統(tǒng)性能與能耗的比值為0.069 8 tuple/(s·J)。ESTC能夠在不影響系統(tǒng)性能的前提下,有效降低了能耗。
流式計算;閾值;負(fù)載差異;隨機選擇;系統(tǒng)性能
隨著物聯(lián)網(wǎng)、云計算、車聯(lián)網(wǎng)、深度學(xué)習(xí)、量子通信、大數(shù)據(jù)等新興技術(shù)的發(fā)展[1],且大規(guī)模的數(shù)據(jù)中心在全球范圍內(nèi)進(jìn)行部署,其高費用、高污染、高能耗等問題也日益突出[2]。因此,如何更綠色更節(jié)能地處理新興信息技術(shù)的能源問題,一直是世界廣大研究者共同探討的熱點。根據(jù)美國紐約時報報道,全球數(shù)據(jù)中心每年總用電量超過3 000億kW·h,相當(dāng)于30座核電廠的總產(chǎn)電量,而巨大的能耗卻只有6%~12%能耗被用于響應(yīng)用戶的請求[3]。特別是大數(shù)據(jù)時代的到來,更多的資源被用在海量數(shù)據(jù)的處理,給能耗高效益帶來了巨大的挑戰(zhàn)。因此,現(xiàn)階段的關(guān)鍵性問題還是能源的利用率太低(特別是對大數(shù)據(jù)的處理),如何提升能源的利用率是解決問題的關(guān)鍵。
現(xiàn)階段對數(shù)據(jù)的實時處理是大數(shù)據(jù)處理的一個重要方面,流式計算作為新的容錯、分布式的大數(shù)據(jù)實時計算系統(tǒng),存在著高能耗的問題,由于能夠廣泛部署在開源的系統(tǒng)平臺上,其節(jié)能的策略還有待提高。無論從降低能耗、保護環(huán)境方面,還是從降低大數(shù)據(jù)的運營成本方面,研究流式計算的節(jié)能策略都有著廣泛的應(yīng)用前景。
流式計算內(nèi)數(shù)據(jù)的處理,其本質(zhì)是數(shù)據(jù)以流的形式在內(nèi)存中運動,數(shù)據(jù)的處理方式為流式處理。流式處理的節(jié)能主要分為硬件節(jié)能[4]和軟件節(jié)能兩個方面,硬件方面的節(jié)能主要通過改變相應(yīng)的物理結(jié)構(gòu)單元,替換低能耗、高效率的物理元件。已有的軟件節(jié)能主要體現(xiàn)為對系統(tǒng)框架的優(yōu)化[5]與從虛擬化數(shù)據(jù)中心(Virtualized Networked Data Centers, VNetDCs)的角度出發(fā),其中對系統(tǒng)框架優(yōu)化研究的核心是提高資源利用率與減少數(shù)據(jù)處理的響應(yīng)時間。大數(shù)據(jù)的處理具有無序性與突發(fā)性,無法預(yù)測下一秒數(shù)據(jù)量與傳輸路線,但是對系統(tǒng)框架的優(yōu)化可以鞏固關(guān)鍵路徑上的節(jié)點,間接地預(yù)測數(shù)據(jù)處理的關(guān)鍵路徑,使數(shù)據(jù)的傳輸更穩(wěn)定,提高數(shù)據(jù)資源的利用率。但是,系統(tǒng)框架的優(yōu)化難度較大,并且存在優(yōu)化方案與系統(tǒng)不匹配的問題,容易造成不必要的資源浪費。針對虛擬化數(shù)據(jù)中心,文獻(xiàn)[6]提出了云計算軟件即服務(wù)(Software-as-a-Service, SaaS)計算模型下針對實時流式計算應(yīng)用的最小化能耗調(diào)度策略。該研究充分考慮到大數(shù)據(jù)處理傳輸速率的不穩(wěn)定、不可控,且大數(shù)據(jù)實時流數(shù)據(jù)量大等特性,在響應(yīng)時間約束的前提下,最小化計算和網(wǎng)絡(luò)傳輸總能耗。但是,該策略算法復(fù)雜度很高,導(dǎo)致執(zhí)行策略時系統(tǒng)存在較高的延遲,會對系統(tǒng)性能造成影響,且虛擬環(huán)境與真實環(huán)境存在偏差,會對真實環(huán)境下系統(tǒng)造成影響。針對上述問題,本文提出了大數(shù)據(jù)流式計算環(huán)境下的閾值調(diào)控節(jié)能策略(Energy-efficient Strategy for Threshold Control, ESTC),其中心思想是對數(shù)據(jù)處理的當(dāng)前節(jié)點設(shè)置閾值進(jìn)行調(diào)控,根據(jù)數(shù)據(jù)處理的不同情況通過隨機選擇對系統(tǒng)的電壓進(jìn)行控制,其閾值根據(jù)當(dāng)前節(jié)點處理的數(shù)據(jù)量與CPU使用率的負(fù)載情況確定。對比原系統(tǒng),實施閾值調(diào)控策略的系統(tǒng)能夠根據(jù)不同的數(shù)據(jù)處理情況進(jìn)行能耗控制,更有效地節(jié)約系統(tǒng)因為無用功帶來的能耗損失。此外,通過負(fù)載情況設(shè)計數(shù)據(jù)訪問的閾值,本文系統(tǒng)可以更好地對數(shù)據(jù)的伸縮性進(jìn)行控制,提高了系統(tǒng)的負(fù)載均衡能力。
在流式計算中,系統(tǒng)的構(gòu)架由多個子系統(tǒng)共同組成,其子系統(tǒng)的組合方式是流式計算的核心技術(shù)。對于流式計算的框架集群,可以處理那些無需先存儲、直接進(jìn)行計算的數(shù)據(jù)與實時性要求嚴(yán)格,數(shù)據(jù)準(zhǔn)確性要求略寬松的應(yīng)用場景。數(shù)據(jù)以流的形式在內(nèi)存中傳輸,硬盤不需為中間過程進(jìn)行存儲而僅在最后將數(shù)據(jù)備份,以Storm[7]為例,其整體結(jié)構(gòu)構(gòu)架如圖1所示。
流式計算系統(tǒng)的系統(tǒng)結(jié)構(gòu)框架[8]可分為有中心節(jié)點的主從式架構(gòu)(如Storm、TimeStream[9]等系統(tǒng))和無中心節(jié)點的對稱式系統(tǒng)架構(gòu)[10](如S4[11]、Puma[12]等系統(tǒng))。主從系統(tǒng)架構(gòu)的系統(tǒng)存在一個主節(jié)點和多個從節(jié)點,從節(jié)點的功能是負(fù)責(zé)接收來自主節(jié)點的任務(wù),并通過計算后返回主節(jié)點。主節(jié)點通過傳遞任務(wù)、管理系統(tǒng)資源與接收來自從節(jié)點反饋的計算結(jié)果用來處理負(fù)載均衡等工作。對稱式系統(tǒng)架構(gòu)的系統(tǒng)各節(jié)點功能都是相同的,具有良好的可擴展性,但是由于沒有中心節(jié)點,在系統(tǒng)容錯、資源調(diào)度等方面需要分布式協(xié)議來完成,如通過Zookeeper來實現(xiàn)負(fù)載均衡等功能的S4系統(tǒng)。此外,各從節(jié)點之間不存在相互聯(lián)系,整個系統(tǒng)完全依賴主節(jié)點的調(diào)控。
圖1 Storm系統(tǒng)構(gòu)架
流式計算平臺不同于Hadoop[13]等批處理平臺,Hadoop對于數(shù)據(jù)的處理通過MapReduce進(jìn)行映射并對任務(wù)進(jìn)行調(diào)度,且數(shù)據(jù)儲存在分布式文件系統(tǒng)(Hadoop Distributed File System, HDFS)的磁盤上。流式計算平臺數(shù)據(jù)的處理,通過對工作節(jié)點進(jìn)行任務(wù)的部署,并計算各節(jié)點之間的數(shù)據(jù)關(guān)系,全程通過內(nèi)存與CPU共同完成。流式計算平臺主要的數(shù)據(jù)處理傳輸方式為主動推送方式與被動拉取方式[14]。
在流式計算中,數(shù)據(jù)的計算處理方式用有向無環(huán)圖表示,流入內(nèi)存棧列區(qū)內(nèi)的數(shù)據(jù)流根據(jù)有向無環(huán)圖的拓?fù)浣Y(jié)構(gòu),經(jīng)工作節(jié)點的閾值進(jìn)行調(diào)控,根據(jù)隨機選擇控制系統(tǒng)的物理電壓。本章將從數(shù)據(jù)流計算時間的角度分析ESTC的能耗時間并建立數(shù)學(xué)模型。
2.1 流式計算的結(jié)構(gòu)
流式計算系統(tǒng)的閾值調(diào)控策略處理數(shù)據(jù)時通過工作節(jié)點閾值對數(shù)據(jù)流進(jìn)行隨機選擇,不僅減少了原系統(tǒng)在處理數(shù)據(jù)時因高電壓而產(chǎn)生的無用功,而且增加了流式計算平臺處理數(shù)據(jù)的延展性,提高了系統(tǒng)負(fù)載均衡的能力。由此,可建立有向無環(huán)圖模型表示數(shù)據(jù)的傳輸處理狀態(tài)。
定義1 有向無環(huán)圖模型。流式計算系統(tǒng)處理傳輸數(shù)據(jù)需要通過有向無環(huán)圖進(jìn)行,因此建立有向無環(huán)圖模型,以圖2為例,工作節(jié)點為a1、a2、a3,子節(jié)點為b1、b2、b3、b4,工作節(jié)點a1傳輸?shù)臄?shù)據(jù)量a11、a12,父節(jié)點a2處理的數(shù)據(jù)量a21、a22、a23,則子節(jié)點b1為a11+a21→b1,以此類推,完成整個拓?fù)溆嬎鉩1+c2→d,設(shè)在一段時間內(nèi)原數(shù)據(jù)文件Fn由數(shù)據(jù)流[A1,A2,…,An]組成,存在數(shù)據(jù)流Ai滿足Ai?Fn(i∈{1,2,…,n}),此外存在工作節(jié)點Ni滿足Ni?[N1,N2,…,Nn](i∈{1,2,…,n}),其中:N1為初始源節(jié)點,Nn為有向無環(huán)圖頂點。
有向無環(huán)圖用來表示數(shù)據(jù)流的處理,其中:圓形為數(shù)據(jù)的計算節(jié)點,箭頭為數(shù)據(jù)的流動方向。數(shù)據(jù)的計算路徑如圖2所示。
P=p(v,u)/p(v總,u總)
(1)
圖2 數(shù)據(jù)計算路徑
定理1 在大數(shù)據(jù)流式計算中,根據(jù)工作節(jié)點閾值模型可知存在四種隨機選擇方式,這四種選擇的相應(yīng)計算式為:
(2)
根據(jù)P=p(v閾,u閾)/p(v總,u總)可知:
(3)
根據(jù)定義1可知原數(shù)據(jù)文件Fn由數(shù)據(jù)流[A1,A2,…,An]組成,且存在數(shù)據(jù)流Ai滿足Ai?[A1,A2,…,An](i∈{1,2,…,n}),則:
P(vu)=[(v/v總)(u/u總)]n
證畢。
定義3 數(shù)據(jù)處理模型。在確保性能不變的前提下,用計算關(guān)鍵路徑來規(guī)定數(shù)據(jù)處理傳輸?shù)那闆r。根據(jù)定義1有向無環(huán)圖模型可知,數(shù)據(jù)流Ai最早傳出數(shù)據(jù)的時間為Ae(i);表示數(shù)據(jù)流Ai從源點N1到頂點Nn走過的最長路徑長度。數(shù)據(jù)流Ai最遲傳出數(shù)據(jù)的時間為Al(i);表示數(shù)據(jù)流Ai在保證匯點Nn-1在Ae(n-1)時刻完成(即不影響整個系統(tǒng)性能的前提下),數(shù)據(jù)流Ai允許的最遲傳出數(shù)據(jù)的時間。
設(shè)數(shù)據(jù)ak傳輸?shù)淖钤缈赡荛_始時間為ae(k),數(shù)據(jù)在節(jié)點上計算的時間為a(k),數(shù)據(jù)ak在弧〈N1,Nn〉上,則ae(k)+a(k)表示從N1源點到Nn頂點的最長路徑長度。即:
ae(k)+a(k)=Ae(i)
(4)
設(shè)數(shù)據(jù)ak傳輸?shù)淖钸t可能開始時間為al(k),數(shù)據(jù)在節(jié)點上的計算時間為a(k),在不會引起整個系統(tǒng)時間延誤的前提下,該數(shù)據(jù)ak傳輸允許的最遲開始時間。即:
al(k)=Al(i)-dr〈1,n〉-a(k)
(5)
其中,dr〈1,n〉是完成數(shù)據(jù)ak傳輸需要的時間,從Ae(i)=0開始,向前推進(jìn)。則:
Ae(i)=max{Ae(i)+a(k)+dr〈1,n〉}; 〈1,n〉∈S1,i=1,2,…,n-1
(6)
其中,S1是指向數(shù)據(jù)流Ai經(jīng)過的有向邊〈1,n〉的集合。
如果,從Al(n-1)=Ae(n-1)開始,反向推進(jìn)。則:
Al(i)=min{Al(i)-a(k)-dr〈1,n〉}; 〈1,n〉∈S2,i=n-2,n-3,…,0
(7)
其中,S2是源自數(shù)據(jù)流Ai經(jīng)過的有向邊〈1,n〉的集合。
可能存在機動時間T,因此Ae(i)與Al(i)不一定相等。
定義4 性耗比模型。流式計算系統(tǒng)首先應(yīng)該以不影響系統(tǒng)性能為前提,而流式計算的性能體現(xiàn)在數(shù)據(jù)的處理速率,即在不影響數(shù)據(jù)的處理速率的前提下進(jìn)行。
設(shè)數(shù)據(jù)處理的總時間為t,開始處理的時間為t0,根據(jù)定義2可知,數(shù)據(jù)量M為單位時間內(nèi)數(shù)據(jù)傳輸?shù)膖uple元組,其單位為tuple。數(shù)據(jù)處理的總能耗為E,則建立性耗比模型,單位時間內(nèi)數(shù)據(jù)的處理速率與系統(tǒng)總能耗的商是性耗比R,其單位為(tuple/(s·J)),計算式為:
R=M/(tE)
(8)
定理2 在大數(shù)據(jù)流式計算中,對于單位時間內(nèi)數(shù)據(jù)的處理速率與系統(tǒng)總能耗的性耗比R為:
(9)
證明 根據(jù)定義4可知單位時間內(nèi)數(shù)據(jù)傳輸速率與能耗的比值為R=M/(tE),則1/R=tE/M。如果將總時間劃分為[t0,t1,…,tn-1],則:
(10)
對式(10)進(jìn)行積分得:
1/R=E(tn-1-t0)/M
(11)
因此:
R=M/[(tn-1-t0)E]
(12)
根據(jù)定義3可知,在不考慮數(shù)據(jù)處理的機動時間時,數(shù)據(jù)處理的最遲開始時間等于最早開始時間,因此數(shù)據(jù)的處理時間ti=max{Ae(i)+a(k)+dr〈1,n〉},當(dāng)時間間隔被劃分為n等份[t0,t1,…,tn-1]時,?[ti](i∈{0,1,…,n-1}),則:
其中C是根據(jù)多次實驗并驗證到的性耗比誤差參數(shù),存在取值范圍。
證畢。
2.2 閾值調(diào)控策略
流式計算根據(jù)2.1節(jié)考慮到流式計算數(shù)據(jù)流的傳輸情況,提出了ESTC,其中F表示為構(gòu)造的數(shù)據(jù)文件流模型,定義的基本算法流程如下所示。
算法1 閾值判別算法。
輸入 用戶上傳m個數(shù)據(jù)文件{F1,F2,…,Fm}到系統(tǒng)。
輸出 系統(tǒng)的功率,根據(jù)工作節(jié)點的閾值判斷系統(tǒng)的功率。
1)
{F1,F2,…,Fm}←getUpDatafile();
/*獲得用戶上傳數(shù)據(jù)文件*/
2)
m←Datafiles.length();
/*數(shù)據(jù)文件的個數(shù)*/
3)
StackColumnfile←file[m];
/*數(shù)據(jù)文件存儲到內(nèi)存棧列區(qū)*/
4)
forj=0 tom-1 do
5)
DatafileInfo={F1,F2,…,Fm}.get(file[j]);
/*獲得數(shù)據(jù)文件的信息*/
6)
forj=0 ton-1 do
7)
DataTaskInfo←{A1,A2,…,An};
/*獲得數(shù)據(jù)流Ai的信息*/
8)
N1(v,u)←(M(v),CPU(u))i;
/*確定起始節(jié)點N1的閾值*/
9)
switchN1(v,u)←Ai
/*如果數(shù)據(jù)流Ai滿足工作節(jié)點N1的閾值*/
10)
case1:
11)
P1←MP(v,u);
/*系統(tǒng)功率為P1*/
12)
break;
13)
case2:
14)
/*系統(tǒng)功率為P2*/
15)
break;
16)
case3:
17)
/*系統(tǒng)功率為P3*/
18)
break;
19)
case4:
20)
/*系統(tǒng)功率為P4*/
21)
break;
22)
endswitch
23)
endfor
24)
endfor
根據(jù)定義2數(shù)據(jù)流處理是否滿足工作節(jié)點的閾值判斷系統(tǒng)的功率,其中:如果完全滿足工作節(jié)點的閾值,則系統(tǒng)功率為P1;不滿足數(shù)據(jù)傳輸量M的閾值、滿足CPU的閾值,則系統(tǒng)功率為P2;滿足數(shù)據(jù)傳輸量M的閾值、不滿足CPU的閾值,則系統(tǒng)功率為P3;不滿足數(shù)據(jù)傳輸量M的閾值且不滿足CPU的閾值,則系統(tǒng)功率為P4。判斷后的數(shù)據(jù)流通過有向無環(huán)圖處理數(shù)據(jù),其主要的主要算法如下所示。
算法2 數(shù)據(jù)處理算法。
輸入 數(shù)據(jù)流{A1,A2,…,An},表示判斷后的數(shù)據(jù)流經(jīng)過有向無環(huán)圖模型進(jìn)行處理;
輸出 全局變量區(qū),處理后的數(shù)據(jù)進(jìn)入內(nèi)存全局變量區(qū)。
1)
N1←{A1,A2,…,An};
/*經(jīng)工作節(jié)點N1判斷后獲取數(shù)據(jù)流Ai的信息*/
2)
Ae(i)←DataTaskInfo.getStreamFirTime();
/*獲得數(shù)據(jù)流Ai的最早開始時間*/
3)
Al(i)←DataTaskInfo.getStreamFinTime();
/*獲得數(shù)據(jù)流Ai的最遲開始時間*/
4)
fork=0 ton-1 do
5)
DataInfo←{a1,a2,…,an};
/*獲得數(shù)據(jù)ak的信息*/
6)
ae(k)←Ae(k)-a(k);
/*數(shù)據(jù)ak的最早開始時間*/
7)
al(k)←Al(i)-a(k)-dr〈1,n〉;
/*數(shù)據(jù)ak的最遲開始時間*/
8)
T←ae(k)-al(k);
/*數(shù)據(jù)ak的機動時間*/
9)
ifT=0;
/*數(shù)據(jù)ak的傳輸存在關(guān)鍵路徑*/
10)
thenE=P(max{Ae(i)+dr〈1,n〉+a(k)});
/*不存在關(guān)鍵路徑時系統(tǒng)總能耗*/
11)
else
12)
thenE=P(min{Al(i)-a(k)-dr〈1,n〉});
/*不存在關(guān)鍵路徑時系統(tǒng)總能耗*/
13)
end if
14)
(Fn)k←createMatrixF(ak);
/*構(gòu)造數(shù)據(jù)流模型*/
15)
streamk←getcreateMatrix(Fn)k;
/*獲得數(shù)據(jù)文件中的一條數(shù)據(jù)流*/
16)
GlobalVariableStream←StackColumnStream;
/*內(nèi)存棧列區(qū)推進(jìn)為內(nèi)存全局變量區(qū)*/
17)
end for
流式計算的ESTC通過對工作節(jié)點進(jìn)行閾值調(diào)控降低了不必要的功耗損失,此外工作節(jié)點可以通過數(shù)據(jù)流的處理情況對其路徑進(jìn)行預(yù)測與計算,提高系統(tǒng)的負(fù)載均衡能力,因此完全符合流式計算的思想。單位時間內(nèi)通過工作節(jié)點的數(shù)據(jù)量為M,其閾值為v,CPU使用率的閾值為u,定義在T1、T2時間段內(nèi)數(shù)據(jù)處理情況與時間的比值為負(fù)載均衡率L,則系統(tǒng)負(fù)載均衡率為:
L=(M(v),CPU(u))/(T2-T1)
(13)
其中:負(fù)載均衡率L表示當(dāng)前系統(tǒng)節(jié)點處理數(shù)據(jù)的相對負(fù)載狀況;V為負(fù)載容量,表示當(dāng)前系統(tǒng)節(jié)點數(shù)據(jù)處理可以容納多少負(fù)載量的一個量度,V越大數(shù)據(jù)處理的負(fù)載能力越強,表示當(dāng)前系統(tǒng)節(jié)點還可以處理更多的數(shù)據(jù)。定義在單位時間內(nèi)數(shù)據(jù)量M與負(fù)載均衡率L的乘積為數(shù)據(jù)處理負(fù)載容量V,其單位為tuple,計算式為:
V=M(M(v),CPU(u))/(T2-T1)
(14)
3.1 能耗模型
功耗和能耗都是對系統(tǒng)能量消耗的量度,但其意義不同。ESTC為單位時間內(nèi)計算系統(tǒng)的能耗,功率P是系統(tǒng)單位時間內(nèi)的功耗,其單位為W。功率P與系統(tǒng)運行時間內(nèi)的乘積是能耗E,其單位為J。能耗E[15]計算式如下:
(15)
由此可見,式(15)反映了一段時間內(nèi)系統(tǒng)總的能耗問題。由于系統(tǒng)能耗的降低可能會引起系統(tǒng)性能的下降,從而對整個系統(tǒng)造成影響,因此不能一味地降低系統(tǒng)的能耗。本節(jié)從能耗的角度考慮節(jié)能問題,并以節(jié)點作為主要的研究對象,是節(jié)點級的節(jié)能策略。系統(tǒng)工作節(jié)點主要存在內(nèi)存的棧列區(qū)內(nèi),內(nèi)存由金手指、內(nèi)存芯片、電路板等部分組成,其主要劃分為四個區(qū)域:I/O讀寫區(qū)、棧列區(qū)、全局變量區(qū)與代碼區(qū)。以Storm系統(tǒng)的動態(tài)隨機存取器(DynamicRandomAccessMemory,DRAM)為例,ESTC作用于內(nèi)存棧列區(qū),其主要工作流程如圖3所示。
圖3 ESTC工作流程
數(shù)據(jù)流通過I/O讀/寫入內(nèi)存的棧列區(qū),內(nèi)存能量狀態(tài)升高,內(nèi)存芯片的工作電壓最大,數(shù)據(jù)流在內(nèi)存中不斷運動,其通過節(jié)點的數(shù)據(jù)逐漸增減,由此可見,內(nèi)存棧列區(qū)的能耗最大。當(dāng)I/O讀/寫區(qū)不再作用這段位于內(nèi)存中的數(shù)據(jù)流,內(nèi)存能量減少,內(nèi)存芯片工作電壓下降,數(shù)據(jù)流動速度降低,此時存在這段數(shù)據(jù)流的內(nèi)存從棧列區(qū)推進(jìn)到全局變量區(qū)。 因此,原系統(tǒng)的內(nèi)存能耗EOce為:
EOec=ESC+EGV+ECS+ECPU+EIO
(16)
其中:ESC、ECS、EGV為內(nèi)存棧列區(qū)、代碼區(qū)與全局變量區(qū)的能耗;ECPU為數(shù)據(jù)流經(jīng)CPU計算后的能耗;EIO為數(shù)據(jù)讀/寫的能耗。
3.2ESTC
數(shù)據(jù)流通過I/O讀/寫入內(nèi)存棧列區(qū)后,根據(jù)內(nèi)存尋址將內(nèi)存中的數(shù)據(jù)提交到CPU內(nèi)的工作節(jié)點進(jìn)行閾值判斷,而后進(jìn)行處理計算,并經(jīng)過內(nèi)存實現(xiàn)數(shù)據(jù)的傳輸,此外,數(shù)據(jù)處理的閾值通過系統(tǒng)工作節(jié)點的負(fù)載情況確定。根據(jù)數(shù)據(jù)流處理傳輸?shù)碾S機選擇情況確定對系統(tǒng)物理電壓的調(diào)控,從而確定系統(tǒng)相對的功率,此過程在內(nèi)存堆棧區(qū)完成。經(jīng)計算后的數(shù)據(jù)通過CPU進(jìn)行內(nèi)存?zhèn)鬏?,把?shù)據(jù)傳輸?shù)絻?nèi)存全局變量區(qū),該過程會對數(shù)據(jù)進(jìn)行存取且會產(chǎn)生延遲時間。此時,系統(tǒng)的能耗EEc為:
EEc=(ESC+ECPU)change+EGV+ECS+EIO
(17)
(18)
將式(6)與(7)代入式(18),存在機動時間T,此時最早開始時間與最遲開始時間并不相等,由此可見,可分兩種情況計算系統(tǒng)節(jié)約的能耗,如(19)所示:
ESave=
(19)
其中:式(19)的參數(shù)與式(6)、(7)、(18)相同,式(19)為數(shù)據(jù)流經(jīng)內(nèi)存后得到的總的內(nèi)存能耗。
實驗以Storm系統(tǒng)為例進(jìn)行,且Storm框架支持多種語言窗口,內(nèi)存節(jié)能策略使用Java語言實現(xiàn)Storm的計算處理程序。
搭建的集群有1個主控節(jié)點Nimbus、4個工作節(jié)點Supervisor與1個協(xié)調(diào)節(jié)點Zookeeper,且整個集群在無其他任務(wù)運行的條件下進(jìn)行該實驗。
本文實驗主要目的是測試流式計算的能耗優(yōu)化與處理性能,主要的測試標(biāo)準(zhǔn)有數(shù)據(jù)的吞吐量、能耗情況、數(shù)據(jù)的處理響應(yīng)時間等。定義每秒傳輸10~50個tuple元組,實驗算法采用WordCount、RollingCount[18]與Sol進(jìn)行基準(zhǔn)用例測試,最后進(jìn)行實驗的結(jié)果分析。
4.1 實驗環(huán)境
為了驗證基于流式計算系統(tǒng)ESTC的有效性,實驗需要注意以下兩點:1)不同的數(shù)據(jù)變化會帶來不同的能耗;2)不同的數(shù)據(jù)訪問頻率下的節(jié)點級存儲計算結(jié)構(gòu)變化。該實驗的Storm環(huán)境是在普通的PC機下完成的,內(nèi)存為4GB。根據(jù)不同節(jié)點的運行情況,Storm集群節(jié)點及數(shù)據(jù)處理環(huán)境的配置參數(shù)如表1所示。
表1 Storm環(huán)境配置參數(shù)
其中,控制臺節(jié)點進(jìn)程UI、協(xié)調(diào)節(jié)點進(jìn)程Zookeeper與主控節(jié)點進(jìn)程Nimbus運行在同一臺物理機上,故其硬件配置相同。工作節(jié)點進(jìn)程Supervisor1、2、3、4分別部署在4臺不同的PC機上。除此之外,各節(jié)點其他參數(shù)配置相同,現(xiàn)每臺PC機內(nèi)傳輸1GB數(shù)據(jù)集群配置參數(shù)如表2所示。
表2 Storm集群配置參數(shù)
為全面測試ESTC的有效性,實驗選取3種不同基準(zhǔn)測試用例對該策略進(jìn)行測試,分別是CPU敏感型(CPU-Sensitive)的WordCount,Storm真實場景下的應(yīng)用RollingCount以及網(wǎng)絡(luò)帶寬敏感型(Network-Sensitive)的Sol,各基準(zhǔn)測試運行時工作進(jìn)程(worker)的數(shù)量與當(dāng)前所需的工作節(jié)點數(shù)量保持一致,其余參數(shù)保留其默認(rèn)配置。
此外,當(dāng)額定電壓為1.5V,且在5min內(nèi)不停傳輸數(shù)據(jù)時,不同內(nèi)存狀態(tài)下的能耗情況如表3所示。
表3 DDR3 1066內(nèi)存能耗的數(shù)據(jù)測量值
4.2ESTC的結(jié)果及分析
根據(jù)4.1節(jié)環(huán)境設(shè)置完成以下實驗:由于流式計算為節(jié)點級計算,因此在節(jié)能的同時需要保持較高的計算效率,不能影響系統(tǒng)的性能。為便于實驗觀測,根據(jù)三種基準(zhǔn)測試用例設(shè)置metrics.poll的值為60 000ms,metrics.time的值為300 000ms,即每組實驗每30s刷新一次數(shù)據(jù),共統(tǒng)計5min?,F(xiàn)有20臺PC根據(jù)表1~2中的環(huán)境組成集群進(jìn)行4組實驗,且每組實驗5臺PC,通過ESTC的不同閾值情況完成實驗,并通過對比進(jìn)行分析。該實驗利用計算數(shù)據(jù)產(chǎn)生的工作節(jié)點情況,根據(jù)數(shù)據(jù)單位時間處理量與CPU使用率的負(fù)載情況確定相對合適的閾值情況,實驗結(jié)果如圖4所示。
圖4 閾值調(diào)控策略的負(fù)載變化
從圖4可以看出,隨著節(jié)點閾值的不斷改變,數(shù)據(jù)負(fù)載均衡容量V也在不斷發(fā)生變化。圖4中:實驗組test0為原系統(tǒng)不改變節(jié)點閾值的負(fù)載均衡容量,數(shù)據(jù)處理從0s開始逐步穩(wěn)定在90s左右,系統(tǒng)負(fù)載容量V逐步穩(wěn)定在1 100tuple;實驗組test1表示系統(tǒng)閾值為CPU使用率65%,數(shù)據(jù)處理量為20tuple/s,數(shù)據(jù)穩(wěn)定時間基本相同但系統(tǒng)負(fù)載容量V逐步穩(wěn)定在1 300tuple;實驗組test2表示系統(tǒng)閾值為CPU使用率65%,數(shù)據(jù)處理量為30tuple/s,同理可知系統(tǒng)負(fù)載容量V逐步穩(wěn)定在1 600tuple;而實驗組test3表示系統(tǒng)閾值為CPU使用率70%,數(shù)據(jù)處理量為30tuple/s,同理可知系統(tǒng)負(fù)載容量V逐步穩(wěn)定在1 500tuple。從實驗組test0到test3的結(jié)果對比可以看出,根據(jù)不同的節(jié)點閾值情況,系統(tǒng)負(fù)載均衡容量V不同,且實施節(jié)能策略后獲得的系統(tǒng)負(fù)載容量比原系統(tǒng)顯著增加。根據(jù)上述測試,系統(tǒng)閾值為CPU使用率65%,數(shù)據(jù)處理量為30tuple/s的情況時節(jié)能效果最好,因此后面的實驗閾值以此為準(zhǔn)。
閾值調(diào)控策略通過不同閾值情況調(diào)節(jié)系統(tǒng)不同電壓,根據(jù)不同的基準(zhǔn)測試進(jìn)行判斷,以驗證實驗的真實性與應(yīng)用性。通過傳輸速率為10~50tuple/s的系統(tǒng)能耗,對系統(tǒng)進(jìn)行三種不同基準(zhǔn)測試用例,分別為CPU敏感型的WordCount,Storm真實場景下的應(yīng)用RollingCount以及網(wǎng)絡(luò)帶寬敏感型的Sol,其中基準(zhǔn)測試WordCount與Sol為理想狀態(tài)下系統(tǒng)的能耗情況,RollingCount為真實環(huán)境下系統(tǒng)的能耗情況。測試結(jié)果如圖5所示。
圖5 在10~50 tuple/s傳輸速率下系統(tǒng)不同測試的能耗情況
通過不同基準(zhǔn)測試可以看出,隨著時間的增加,系統(tǒng)的能耗不斷上升,且進(jìn)行閾值調(diào)控策略的系統(tǒng)能耗上升小于原系統(tǒng)。根據(jù)圖5分析得,真實環(huán)境下還存在著電壓不穩(wěn)等物理因素影響系統(tǒng)的能耗。根據(jù)不同的感知策略對系統(tǒng)的能耗進(jìn)行測試,其測量結(jié)果如圖6所示,0~60s為10tuple/s的傳輸速率,60~120s為20tuple/s的傳輸速率,120~180s為30tuple/s的傳輸速率,180~240s為40tuple/s的傳輸速率,240~300s為50tuple/s的傳輸速率;SR=1表示系統(tǒng)只存在內(nèi)存休眠狀態(tài),PRE=0表示系統(tǒng)不存在內(nèi)存空閑狀態(tài)。
從圖6可以看出,不同感知策略對于系統(tǒng)能耗的影響不同,實驗組test0表示原系統(tǒng)不進(jìn)行任何感知策略,實驗組test1為內(nèi)存休眠節(jié)能策略系統(tǒng)產(chǎn)生的能耗,實驗組test2為ESTC系統(tǒng)產(chǎn)生的能耗,實驗組test3為實行Re-Stream[5]調(diào)度策略系統(tǒng)產(chǎn)生的能耗。實驗組test0能耗基本不受系統(tǒng)數(shù)據(jù)處理帶來的影響。實驗組test1表示計算后數(shù)據(jù)進(jìn)行休眠策略后的能耗效果,在240s前實驗組test1節(jié)能效果要差于實驗組test2與test3兩種感知策略,在240s后逐漸與實驗組test3接近,且節(jié)能效果優(yōu)于實驗組test2。實驗組test2在30tuple/s前滿足閾值策略,其能耗與實驗組test3接近,數(shù)據(jù)傳輸速率超過30tuple/s,能耗增加明顯,在50tuple/s的傳輸速率時超過實驗組test1。實驗組test3為Re-Stream策略,改變系統(tǒng)的結(jié)構(gòu)框架,其節(jié)能效果最好,但是,Re-Stream策略存在框架改變復(fù)雜性與系統(tǒng)不匹配的問題。從實驗組test0與test2的對比可以看出,通過使用ESTC將原系統(tǒng)的能耗降低了35.2%,綜上所述,ESTC具有顯著的效果。
圖6 在10~50 tuple/s傳輸速率下系統(tǒng)不同策略的能耗情況
ESTC應(yīng)該以性能為出發(fā)點,策略對流式計算性能存在影響,則ESTC是失敗的,對于流式計算性能的判斷標(biāo)準(zhǔn)應(yīng)該從數(shù)據(jù)處理速率出發(fā),不影響單位時間內(nèi)數(shù)據(jù)處理速率的能耗策略才是成功的,用數(shù)據(jù)處理速率與能耗的比值關(guān)系性耗比來判斷ESTC是否有效,內(nèi)存節(jié)能策略的性耗比關(guān)系如圖7所示。
圖7 ESTC的性耗比
根據(jù)圖7的實驗結(jié)果可以看出,ESTC并不影響流式計算系統(tǒng)的性耗比,但是能耗與數(shù)據(jù)處理速率之間的比值存在誤差,每組實驗不同服務(wù)器之間的性耗比并不相同,經(jīng)實驗反復(fù)測得實驗存在誤差C的范圍為[0.7,1.3]。實驗組test1為原系統(tǒng)5臺PC的性耗比,其平均性耗比為0.069 8tuple/(s·J)。實驗組test0為系統(tǒng)進(jìn)行ESTC后5臺PC機的性耗比,其平均性耗比為0.080 3tuple/(s·J)。由此可見,ESTC的性能優(yōu)于原系統(tǒng),因此ESTC是完全可行的。
隨著數(shù)據(jù)的不斷增長,大數(shù)據(jù)技術(shù)不斷發(fā)展,各種流式計算系統(tǒng)和平臺不斷增加,流式計算系統(tǒng)節(jié)能已經(jīng)成為了一個不容忽視的問題。流式計算響應(yīng)了時代的需求,其處理數(shù)據(jù)的本質(zhì)為工作節(jié)點對數(shù)據(jù)流的處理。針對能耗問題,本文提出了大數(shù)據(jù)流式計算環(huán)境下的閾值調(diào)控節(jié)能策略(ESTC),即通過工作節(jié)點閾值對數(shù)據(jù)流進(jìn)行隨機選擇,從而物理調(diào)控系統(tǒng)電壓,減少了系統(tǒng)不必要的能耗損失,同時有效提高系統(tǒng)的負(fù)載均衡能力。經(jīng)實驗論證可知,ESTC不僅有效地提高了流式計算的能量利用率,并且提高了系統(tǒng)數(shù)據(jù)的延展性,為構(gòu)建低能耗IT環(huán)境提供了幫助。
下一步的研究工作內(nèi)容包括以下幾點:1)從流式計算的性能考慮,以不改變甚至提高系統(tǒng)性能為前提,實現(xiàn)流式計算的節(jié)能??赏ㄟ^提高系統(tǒng)的計算速率實現(xiàn)節(jié)能,如將部分CPU替換成圖形處理器(GraphicsProcessingUnit,GPU)進(jìn)行數(shù)據(jù)的處理計算。2)可以增大流式計算系統(tǒng)的網(wǎng)絡(luò)帶寬,帶寬越大,數(shù)據(jù)量傳輸速率越快,數(shù)據(jù)處理的時間變短,從而提高系統(tǒng)的節(jié)能效果。因此,可以考慮網(wǎng)絡(luò)帶寬的節(jié)能策略,以更好地解決流式計算的能耗問題。
)
[1]GAIKK,QIUMK,ZHAOH,etal.Dynamicenergy-awarecloudlet-basedmobilecloudcomputingmodelforgreencomputing[J].JournalofNetworkandComputerApplications, 2016, 59(C): 46-54.
[2] 鄧維,劉方明,金海,等.云計算數(shù)據(jù)中心的新能源應(yīng)用: 研究現(xiàn)狀與趨勢[J].計算機學(xué)報,2013,36(3):582-598.(DENGW,LIUFM,JINH,etal.Leveragingrenewableenergyincloudcomputingdatacenters:stateoftheartandfutureresearch[J].ChineseJournalofComputers, 2013, 36(3): 582-598.)
[3] 國冰磊,于炯,廖彬,等.結(jié)構(gòu)化查詢語言動態(tài)功耗解析及建模[J].計算機應(yīng)用,2015,35(12):3362-3367.(GUOBL,YUJ,LIAOB,etal.Dynamicpowerconsumptionprofilingandmodelingbystructuredquerylanguage[J].JournalofComputerApplications, 2015, 35(12): 3362-3367.)
[4] 于炯, 廖彬, 張?zhí)?,?云存儲系統(tǒng)節(jié)能研究綜述[J].計算機科學(xué)與探索,2014,8(9):1025-1040.(YUJ,LIAOB,ZHANGT,etal.Asurveyonenergy-efficientcloudstoragesystem[J].JournalofFrontiersofComputerScienceandTechnology, 2014, 8(9): 1025-1040.)
[5]SUNDW,ZHANGGY,YANGSL,etal.Re-Stream:real-timeandenergy-efficientresourceschedulinginbigdatastreamcomputingenvironments[J].InformationSciences, 2015, 319: 92-112.
[6]CORDESCHIN,SHOJAFARM,AMENDOLAD,etal.Energy-efficientadaptivenetworkeddatacentersfortheQoSsupportofreal-timeapplications[J].TheJournalofSupercomputing, 2015, 71(2): 448-478
[7]Apache.Storm[EB/OL]. [2016- 11- 13].http://storm-project.net.
[8]SCALOSUBG,MARBACHP,LIEBEHERRJ.Buffermanagementforaggregatedstreamingdatawithpacketdependencies[C]//INFOCOM’10:Proceedingsofthe29thConferenceonInformationCommunications.Piscataway,NJ:IEEE, 2010: 241-245.
[9] QIAN Z P, HE Y, SU C Z, et al. TimeStream: reliable stream computation in the cloud [C]// EuroSys’13: Proceedings of the 8th ACM European Conference on Computer Systems. New York: ACM, 2013: 1-14.
[10] 孫大為,張廣艷,鄭緯民.大數(shù)據(jù)流式計算:關(guān)鍵技術(shù)及系統(tǒng)實例[J].軟件學(xué)報,2014,25(4):839-862.(SUN D W, ZHANG G Y, ZHENG W M. Big data stream computing: technologies and instances [J]. Journal of Software, 2014, 25(4): 839-862.)
[11] SIMONCELLI D, DUSI M, GRINGOLI F, et al. Scaling out the performance of service monitoring applications with BlockMon [C]// Proceedings of the 2013 International Conference on Passive and Active Network Measurement. Berlin: Springer, 2013: 253-255.
[12] SEGULJA C, ABDELRAHMAN T S. Architectural support for synchronization-free deterministic parallel programming [C]// Proceedings of the 2012 IEEE 18th International Symposium on High-Performance Computer Architecture. Piscataway, NJ: IEEE, 2012: 1-12.
[13] WHITE T, CUTTING D. Hadoop: The Definitive Guide [M]. Sebastopol, CA: O’Reilly Media Inc, 2010: 1-4.
[14] LIM L, MISRA A, MO T. Adaptive data acquisition strategies for energy-efficient, smartphone-based, continuous processing of sensor streams [J]. Distributed and Parallel Databases, 2013, 31(2): 321-351.
[15] 林闖,田源,姚敏.綠色網(wǎng)絡(luò)和綠色評價:節(jié)能機制、模型和評價[J].計算機學(xué)報,2011,34(4):593-612.(LIN C, TIAN Y, YAO M. Green network and green evaluation: mechanism, modeling and evaluation [J]. Chinese Journal of Computers, 2011, 34(4): 593-612.)
This work is partially supported by the National Natural Science Foundation of China (61462079,61562086,61562078), the Research Innovation Project of Graduate Student in Autonomous Region (XJGRI2016028).
PU Yonglin, born in 1991, M. S. candidate. His research interests include green computing, distributed computing.
YU Jiong, born in 1964, Ph. D., professor. His research interests include grid computing, green computing, distributed computing.
WANG Yuefei, born in 1991, Ph. D. candidate. His research interests include distributed computing, grid computing.
LU Liang, born in 1990, Ph. D. candidate. His research interests include distributed computing, green computing, in-memory computing.
LIAO Bin, born in 1986, Ph. D., associate professor. His research interests include green computing, database technology.
HOU Dongxue, born in 1992, M. S. candidate. His research interests include recommended algorithm.
Energy-efficient strategy for threshold control in big data stream computing environment
PU Yonglin1, YU Jiong1,2*, WANG Yuefei2, LU Liang2, LIAO Bin3, HOU Dongxue1
(1.SchoolofSoftware,XinjiangUniversity,UrumqiXinjiang830008,China; 2.SchoolofInformationScienceandEngineering,XinjiangUniversity,UrumqiXinjiang830046,China; 3.SchoolofStatisticsandInformation,XinjiangUniversityofFinanceandEconomics,UrumqiXinjiang830012,China)
In the field of big data real-time analysis and computing, the importance of stream computing is constantly improved while the energy consumption of dealing with data on stream computing platform rises constantly. In order to solve the problems, an Energy-efficient Strategy for Threshold Control (ESTC) was proposed by changing the processing mode of node to data in stream computing. First of all, according to system load difference, the threshold of the work node was determined. Secondly, according to the threshold of the work node, the system data stream was randomly selected to determine the physical voltage of the adjustment system in different data processing situation. Finally, the system power was determined according to the different physical voltage. The experimental results and theoretical analysis show that in stream computing cluster consisting of 20 normal PCs, the system based on ESTC saves about 35.2% more energy than the original system. In addition, the ratio of performance and energy consumption under ESTC is 0.080 3 tuple/(s·J), while the original system is 0.069 8 tuple/(s·J). Therefore, the proposed ESTC can effectively reduce the energy consumption without affecting the system performance.
stream computing; threshold; load difference; random selection; system performance
2016- 11- 30;
2017- 01- 17。
國家自然科學(xué)基金資助項目(61462079,61562086,61562078);自治區(qū)研究生科研創(chuàng)新項目(XJGRI2016028)。
蒲勇霖(1991—),男,山東淄博人,碩士研究生,CCF會員,主要研究方向:綠色計算、分布式計算; 于炯(1964—),男,新疆烏魯木齊人,教授,博士,CCF會員,主要研究方向:網(wǎng)格計算,綠色計算、分布式計算; 王躍飛(1991—),男,新疆烏魯木齊人,博士研究生,主要研究方向:分布式計算、網(wǎng)格計算; 魯亮(1990—),男,新疆烏魯木齊人,博士研究生,CCF會員,主要研究方向:分布式計算、綠色計算、內(nèi)存計算;廖彬(1986—),男,新疆烏魯木齊人,CCF會員,副教授,博士,主要研究方向:綠色計算、數(shù)據(jù)庫技術(shù); 侯冬雪(1992—),女,新疆昌吉人,碩士研究生,主要研究方向:推薦算法。
1001- 9081(2017)06- 1580- 07
10.11772/j.issn.1001- 9081.2017.06.1580
TP311.1
A