蒲勇霖,于炯,,魯亮,卞琛,廖彬,李梓楊,4
?
storm平臺下工作節(jié)點的內(nèi)存電壓調(diào)控節(jié)能策略
蒲勇霖1,于炯1,2,魯亮2,卞琛2,廖彬3,李梓楊1,4
(1. 新疆大學軟件學院,新疆 烏魯木齊 830008;2. 新疆大學信息科學與工程學院,新疆 烏魯木齊 830046;3. 新疆財經(jīng)大學統(tǒng)計與信息學院,新疆 烏魯木齊 830012;4. 新疆潤物網(wǎng)絡(luò)有限公司,新疆 烏魯木齊 830002)
針對傳統(tǒng)大數(shù)據(jù)流式計算平臺節(jié)能策略并未考慮數(shù)據(jù)處理及傳輸?shù)膶崟r性問題,首先根據(jù)數(shù)據(jù)流處理的特點與storm集群的結(jié)構(gòu),建立有向無環(huán)圖、實例并行度、任務(wù)資源分配與關(guān)鍵路徑模型。其次結(jié)合拓撲執(zhí)行關(guān)鍵路徑與系統(tǒng)性能的分析,提出一種storm平臺下工作節(jié)點的內(nèi)存電壓調(diào)控節(jié)能策略(WNDVR-storm, energy-efficient strategy for work node by dram voltage regulation in storm),該策略針對是否有工作節(jié)點位于拓撲執(zhí)行的非關(guān)鍵路徑上設(shè)計了2種節(jié)能算法。最后根據(jù)系統(tǒng)數(shù)據(jù)處理及傳輸?shù)闹萍s條件確定工作節(jié)點CPU使用率與數(shù)據(jù)傳輸量的閾值,并對選定的工作節(jié)點內(nèi)存電壓做出動態(tài)調(diào)整。實驗結(jié)果表明,該策略能有效降低能耗,且制約條件越小節(jié)能效率越高。
大數(shù)據(jù);流式計算;storm;關(guān)鍵路徑;內(nèi)存電壓;能耗
近年來,大數(shù)據(jù)相關(guān)研究及應(yīng)用已成為學術(shù)界和企業(yè)界關(guān)注的熱點,其計算模式主要包括流式計算、批量計算、圖計算與交互計算等[1-5],且在全球范圍內(nèi)部署了許多大規(guī)模的數(shù)據(jù)中心,其高能耗、高污染與高費用等問題也在日益突出[6]。因此,如何有效地解決新興信息技術(shù)帶來的高能耗問題,一直是廣大學者共同探討的焦點。據(jù)統(tǒng)計,目前IT領(lǐng)域二氧化碳的排放量占全球比例的2%,預(yù)計到2020年這一比例將翻倍[7]。根據(jù)美國《紐約時報》報道:全球數(shù)據(jù)中心每年總用電量超過3 000億kW·h,相當于30座核電廠的總發(fā)電量,而巨大的能量卻僅有6%~12%的能源被用于響應(yīng)用戶的請求[8]。特別是隨著大數(shù)據(jù)時代的到來,更多的能源被用于海量數(shù)據(jù)的處理,但其能效不斷降低。因此提高大數(shù)據(jù)計算過程中的能效,是減少大數(shù)據(jù)處理能耗成本的有效途徑。
目前,數(shù)據(jù)處理的實時性是衡量大數(shù)據(jù)應(yīng)用性能的一個重要指標,流式計算作為新的高性能、可容錯的分布式計算平臺,存在著能耗過高的問題[9],已經(jīng)給產(chǎn)業(yè)界帶來了巨大的開銷,因此對流式計算平臺的節(jié)能優(yōu)化是一個亟待解決的問題。無論是出于降低能耗保護環(huán)境,還是降低大數(shù)據(jù)運營成本的目的,研究流式計算的節(jié)能策略都有著廣闊的應(yīng)用前景。
流式計算平臺利用內(nèi)存讀寫延遲極低的特性,有效地提高了數(shù)據(jù)的處理效率,但同時伴隨著較高的能耗?,F(xiàn)有的流式大數(shù)據(jù)處理框架以twitter的storm[10]平臺為代表。storm是一個開源主從式架構(gòu)的分布式實時計算平臺,其編程模型簡單,數(shù)據(jù)處理高效,支持多種編譯語言,且支持拓撲級容錯機制,相比于不開源的Puma[11]與社區(qū)冷淡的S4[12],storm的應(yīng)用場景更為廣泛;相比于目前流行框架spark streaming[13],storm在數(shù)據(jù)處理實時性方面效果更佳。此外由于新版本特性的加入、與其他開源項目的無縫融合以及更多庫的支持,storm逐步成為學術(shù)界和產(chǎn)業(yè)界新的研究熱點,被稱為“實時處理領(lǐng)域的hadoop”[14]。
一個流式計算拓撲及其所包含的一系列任務(wù)可通過有向無環(huán)圖(DAG, directed acyclic graph)表示,有向無環(huán)圖中的一個頂點代表系統(tǒng)某一個特定任務(wù),一條邊表示任務(wù)之間存在的依賴關(guān)系。當數(shù)據(jù)流到來后,任務(wù)直接在其被調(diào)度到的工作節(jié)點內(nèi)存中完成,僅極少部分數(shù)據(jù)被保存至硬盤。storm平臺在進行數(shù)據(jù)處理及傳輸時,將有向無環(huán)圖中的每一個特定任務(wù)均勻地分配到每一個工作節(jié)點的工作進程中,然而storm平臺并未考慮不同工作節(jié)點的性能和能耗差異及其帶來的工作節(jié)點之間的網(wǎng)絡(luò)傳輸開銷和節(jié)點內(nèi)部進程與線程間的通信開銷,忽略了能耗效率問題,導致能效低下。針對storm平臺存在的能效過低的問題,本文主要貢獻如下。
1) 通過分析storm集群拓撲及節(jié)點結(jié)構(gòu),提出有向無環(huán)圖、實例并行度、任務(wù)資源分配及拓撲關(guān)鍵路徑的定義,用于表示數(shù)據(jù)流在系統(tǒng)內(nèi)部的工作狀態(tài)確定集群系統(tǒng)的拓撲情況,為節(jié)能算法研究提供理論基礎(chǔ)。
2) 通過對拓撲關(guān)鍵路徑進行分析,確定是否存在拓撲非關(guān)鍵路徑工作節(jié)點,從而提出關(guān)鍵路徑節(jié)能算法(DVRCP, DRAM voltage regulation on critical path)與非關(guān)鍵路徑節(jié)能算法(DVRNP, DRAM voltage regulation on non-critical path),并證明2種算法內(nèi)存電壓的調(diào)控范圍。此外根據(jù)數(shù)據(jù)處理限制條件對系統(tǒng)工作節(jié)點CPU使用率與數(shù)據(jù)傳輸量的閾值進行判別,并通過數(shù)據(jù)流的處理及傳輸確定閾值的4種情況,使得系統(tǒng)在滿足網(wǎng)絡(luò)帶寬、內(nèi)存和CPU約束的前提下得到系統(tǒng)能耗最低值,并為工作節(jié)點的內(nèi)存電壓調(diào)控節(jié)能策略的設(shè)計提供算法支撐;
3) 通過對系統(tǒng)性能進行評估,確定算法的可行性,提出storm平臺下工作節(jié)點的內(nèi)存電壓調(diào)控節(jié)能策略(WNDVR-storm, energy-efficient strategy for work node by DRAM voltage regulation in storm),使系統(tǒng)在拓撲執(zhí)行過程中根據(jù)工作節(jié)點真實情況確定系統(tǒng)工作節(jié)點數(shù)據(jù)處理閾值,動態(tài)調(diào)節(jié)內(nèi)存電壓以減少系統(tǒng)中的能耗損失。實驗通過4個基準測試從不同的角度證明了算法有效性。
現(xiàn)有針對大規(guī)模的數(shù)據(jù)處理可歸為3類:流式數(shù)據(jù)處理模式、高性能批量數(shù)據(jù)處理模式以及二者混合的處理模式。其中,高性能批量數(shù)據(jù)處理模式主要以hadoop為核心進行算法的改進,通常主要對框架內(nèi)在區(qū)域進行切割劃分,以休眠部分磁盤區(qū)域或通過動態(tài)組件失活(dynamic component deactivation)在一段時間內(nèi)關(guān)閉硬件的部分組件達到節(jié)能的目的[15~17]?;旌咸幚砟J街饕訫apReduce為核心進行算法的改進,主要以任務(wù)完成后關(guān)閉相關(guān)節(jié)點[18]、作業(yè)調(diào)度[19]以及配置參數(shù)優(yōu)化[20]等提高能源利用率來達到節(jié)能的效果[21~24]。這2種方案在一定程度上解決了大數(shù)據(jù)處理的能耗問題,但無法直接作用于現(xiàn)有流式計算平臺。針對這一問題現(xiàn)有國內(nèi)外專家學者提出了針對流式計算性能優(yōu)化與能耗節(jié)約方面的策略。文獻[25]與文獻[26]總結(jié)了在大數(shù)據(jù)流式計算平臺中針對大數(shù)據(jù)呈現(xiàn)出的實時性、突發(fā)性、易失性、無限性、無序性等特征,給出理想的大數(shù)據(jù)流式計算平臺在數(shù)據(jù)傳輸、系統(tǒng)框架優(yōu)化以及應(yīng)用接口等方面的關(guān)鍵核心技術(shù)。此外,類比現(xiàn)有流式計算框架性能與能耗的優(yōu)缺點,從系統(tǒng)容錯、能耗與性能等方面闡明了已有算法面臨的挑戰(zhàn)。為更好地解決系統(tǒng)能耗與性能的問題,現(xiàn)有學者提出了基于硬件[27]與軟件[28]兩方面的節(jié)能策略并進行研究。
硬件節(jié)能策略主要對系統(tǒng)動態(tài)電壓和電源進行縮放管理,替換高能耗的電子元件,以達到節(jié)能的目的。其方法操作簡單、效果明顯,但在大規(guī)模的集群部署中存在成本過高的問題。軟件節(jié)能策略是現(xiàn)在研究的熱點,現(xiàn)階段軟件節(jié)能策略主要從與虛擬機結(jié)合的角度出發(fā),通過對虛擬機進行部署調(diào)整[29-30]考慮數(shù)據(jù)不可控性以及減少網(wǎng)絡(luò)數(shù)據(jù)傳輸開銷來達到節(jié)能的目的。文獻[31]針對虛擬化數(shù)據(jù)中心(VNetDC, virtualized networked data center),提出了云計算SaaS計算模型下針對實時流式應(yīng)用的最小化能耗調(diào)度策略。該研究充分考慮到大數(shù)據(jù)傳輸不穩(wěn)定、不可控以及實時流數(shù)據(jù)量大等特性,在響應(yīng)時間約束條件不變的前提下,最小化計算與網(wǎng)絡(luò)傳輸?shù)目偰芎摹N墨I[9]提出大數(shù)據(jù)流式計算環(huán)境下的實時節(jié)能資源調(diào)度模型(re-stream),通過建立系統(tǒng)CPU利用率、能耗以及響應(yīng)時間之間的數(shù)學關(guān)系,并運用分布式流式數(shù)據(jù)計算理論,定義了整個拓撲執(zhí)行的關(guān)鍵路徑,綜合運用拓撲非關(guān)鍵路徑上能耗感知的任務(wù)整合策略和拓撲關(guān)鍵路徑上性能感知的任務(wù)調(diào)度策略,使響應(yīng)時間和能耗均達到最低值。文獻[32]從有向無環(huán)圖優(yōu)化的角度出發(fā),提出彈性自適應(yīng)性數(shù)據(jù)流圖模型,并使用該策略進行合理的資源分配,以尋求最小化響應(yīng)時間和最大化吞吐量,從側(cè)面降低了系統(tǒng)能耗。綜上所述,以上研究都是從滿足流式計算的特性出發(fā)提出合理的流式計算節(jié)能模型。但針對storm平臺框架的節(jié)能優(yōu)化,在減少通信開銷和降低能耗等方面仍存在很高的探索價值。
針對流式計算框架的節(jié)能優(yōu)化策略,已有部分學者進行了相應(yīng)的研究。文獻[33]提出一種帶有能耗感知的任務(wù)整合(ETC, optimizing energy consumption with task consolidation in cloud)技術(shù),該技術(shù)的實行通過限制流式計算系統(tǒng)中CPU的使用率,使其低于額定閾值,整合與鞏固了虛擬集群間的任務(wù),從而實現(xiàn)了能源方面的任務(wù)整合,降低了系統(tǒng)能耗。然而,任務(wù)在集群間處理及傳輸時具有較高的網(wǎng)絡(luò)延遲,且網(wǎng)絡(luò)傳輸?shù)拈_銷較大。文獻[34]提出一種虛擬機調(diào)度的算法,建立每個虛擬機的能耗評估模型,該策略根據(jù)流式計算系統(tǒng)提供的不同數(shù)據(jù)計算資源,評估不同虛擬機間的能耗,且該實驗方案通過xen虛擬化系統(tǒng)實現(xiàn)。但該策略在理想狀態(tài)下完成,缺乏實際應(yīng)用場景的實驗基礎(chǔ)。
文獻[35]提出基于流式計算的2種副本調(diào)度節(jié)能算法——性能與能量均衡副本(PEBD, performance-energy balanced duplication)算法和能量感知副本(EAD, energy-aware duplication)算法,其節(jié)能策略的核心思想是當系統(tǒng)內(nèi)部不執(zhí)行相應(yīng)的數(shù)據(jù)調(diào)度時,立刻降低系統(tǒng)的電壓。該策略既保證了系統(tǒng)內(nèi)任務(wù)快速執(zhí)行,同時滿足處理相同拓撲關(guān)鍵路徑的任務(wù),系統(tǒng)內(nèi)部能耗不會有顯著提高。其中副本可以避免因延遲而帶來的系統(tǒng)性能的降低。該策略有2個明顯的優(yōu)點:1)能耗所帶來的任務(wù)副本可以減少能源的互聯(lián),縮短了任務(wù)處理的周期;2)提高了整個系統(tǒng)的性能。然而該策略存在部署難度較高、適用平臺相對單一的問題。
文獻[36]提出了面向storm平臺的實時數(shù)據(jù)節(jié)能策略(re-storm),該策略建立CPU占用率、系統(tǒng)響應(yīng)時間模型與能耗之間的數(shù)學模型,并根據(jù)storm平臺實時性的特點定義整個拓撲的關(guān)鍵路徑。通過運用拓撲非關(guān)鍵路徑上的能耗感知任務(wù)整合策略,使得部分位于拓撲非關(guān)鍵路徑上的任務(wù)分配到拓撲關(guān)鍵路徑上,從而降低了系統(tǒng)整體能耗。該策略很好地解決storm平臺中的拓撲非關(guān)鍵路徑上任務(wù)處理能耗問題,但仍有以下幾點有待優(yōu)化:1)算法有效降低系統(tǒng)整體的能耗,但是算法的時間復雜度顯著上升,對系統(tǒng)性能造成一定的影響;2)該策略僅考慮CPU能耗情況,但對別的集群部件能耗情況并未提及;3)該策略使用的為自己定義的拓撲訓練集,并非公認已有的拓撲,因此缺乏一定的通用性。
本文與上述研究的不同之處在于以下3點。
1) 文獻[32-35]均是通過對系統(tǒng)拓撲進行分析,但并未對如CPU使用率、數(shù)據(jù)的傳輸量等已有變量進行能耗建模的研究。本文從CPU使用率、數(shù)據(jù)的傳輸量與內(nèi)存電壓3個方面考慮系統(tǒng)的真實情況并建立了相關(guān)模型,從而確定工作節(jié)點在不同狀態(tài)下合適的閾值選擇,確保系統(tǒng)在不同外在因素下都可以滿足節(jié)能策略的執(zhí)行要求。
2) 文獻[36]雖然提及了計算拓撲成本的要求,但并未對計算拓撲成本進行進一步的分析建模,本文通過對計算成本進行定義,驗證storm集群對數(shù)據(jù)進行處理及傳輸產(chǎn)生的必要開銷,降低已有算法忽略的部分時間開銷。
3) 實驗基于Intel公司發(fā)布在GitHub上的storm-benchmark-master基準測試[37],而非作者自己定義的拓撲,因此更具有代表性,此外,與CPU的動態(tài)電壓調(diào)控節(jié)能策略(DVFS, dynamic voltage frequency scaling)[38]進行對比,驗證算法的可行性。
本節(jié)首先對storm集群的拓撲結(jié)構(gòu)和任務(wù)并行度進行定義,并在此基礎(chǔ)上對拓撲時間計算成本、拓撲關(guān)鍵路徑工作節(jié)點的選擇判斷、工作節(jié)點內(nèi)存電壓取值范圍與節(jié)點工作狀況4個方面進行了定義,根據(jù)以上分析確定工作節(jié)點內(nèi)存帶來的能耗問題。
WNDVR-storm在處理數(shù)據(jù)的過程中,根據(jù)單位時間內(nèi)數(shù)據(jù)處理及傳輸?shù)脑M數(shù)量確定系統(tǒng)工作節(jié)點是否位于拓撲執(zhí)行的關(guān)鍵路徑上,由系統(tǒng)的資源占用情況確定工作節(jié)點內(nèi)存電壓的取值范圍。在滿足系統(tǒng)數(shù)據(jù)處理及傳輸?shù)募s束條件下,通過系統(tǒng)工作節(jié)點數(shù)據(jù)傳輸量與CPU使用率確定其工作節(jié)點閾值,動態(tài)調(diào)節(jié)系統(tǒng)工作節(jié)點的內(nèi)存電壓[39-40],減少原系統(tǒng)在處理數(shù)據(jù)時因高電壓而產(chǎn)生的無用功耗,進而降低系統(tǒng)能耗。由此,可建立有向無環(huán)圖模型表示storm集群數(shù)據(jù)處理與工作節(jié)點的關(guān)系。
圖1 數(shù)據(jù)處理有向無環(huán)圖
圖2 實例并行度模型
圖3 任務(wù)資源分配模型
本節(jié)主要在研究storm平臺的基礎(chǔ)上,根據(jù)定義2對拓撲關(guān)鍵路徑總成本進行分析,通過研究發(fā)現(xiàn)storm集群處理數(shù)據(jù)對拓撲計算成本帶來較大的影響。
將式(1)代入式(2)可得:
設(shè)元組a傳輸?shù)淖钸t開始時間為(),元組在拓撲上最遲完成時間為(),最遲開始時間()可以通過遍歷有向無環(huán)圖計算但方向相反,且存在最早開始時間等于最遲開始時間,為
在不引起拓撲關(guān)鍵路徑時間延誤的前提下,元組a傳輸?shù)淖钸t開始時間,為
其中,1為源自數(shù)據(jù)流A經(jīng)過的有向邊1的集合。
其中,2為指向數(shù)據(jù)流A經(jīng)過的有向邊1的集合。
圖4 拓撲執(zhí)行關(guān)鍵路徑的數(shù)據(jù)傳輸及處理情況
由線程計算成本與線程間通信成本可知,拓撲總的成本為拓撲關(guān)鍵路徑總成本W。令拓撲關(guān)鍵路徑上所有線程的集合為E={e1,e2,…,e},e∈E,線程之間總通信成本為B={b1,c2,b2,c3,…,b(p?1),cp},b,cj∈B,則拓撲關(guān)鍵路徑總成本W為
將所有線程計算成本與線程間通信成本代入式(13),得到拓撲關(guān)鍵路徑總成本W為
對于單個元組,將式(9)與(11)代入式(13),拓撲關(guān)鍵路徑總成本W為
根據(jù)3.2節(jié)提出的拓撲非關(guān)鍵路徑節(jié)能算法,3.3節(jié)通過建立拓撲非關(guān)鍵路徑工作節(jié)點內(nèi)存電壓調(diào)控模型,確定了拓撲執(zhí)行非關(guān)鍵路徑工作節(jié)點內(nèi)存電壓的取值范圍。此外,通過定義數(shù)據(jù)處理及傳輸約束條件確定了工作節(jié)點CPU使用率與數(shù)據(jù)傳輸量的閾值,動態(tài)調(diào)控系統(tǒng)內(nèi)存電壓。
storm平臺能耗主要體現(xiàn)在CPU使用率、網(wǎng)絡(luò)帶寬與內(nèi)存3個方面,其中CPU使用率的能耗最高,內(nèi)存其次而網(wǎng)絡(luò)帶寬的能耗最低。但是動態(tài)調(diào)節(jié)CPU電壓降低能耗的策略[41]已經(jīng)實現(xiàn),如通過動態(tài)調(diào)節(jié)CPU頻率高低來達到節(jié)能的效果[42]等,已廣泛應(yīng)用到IT行業(yè)的不同領(lǐng)域中。然而通過調(diào)節(jié)內(nèi)存電壓來達到節(jié)能效果的策略還不成熟,系統(tǒng)內(nèi)存常電壓存在額定值。
此外,針對工作節(jié)點是否存在拓撲執(zhí)行的非關(guān)鍵路徑上設(shè)計了2種節(jié)能算法,當工作節(jié)點存在拓撲執(zhí)行的非關(guān)鍵路徑上時,系統(tǒng)實施拓撲非關(guān)鍵路徑節(jié)能算法,且拓撲執(zhí)行的非關(guān)鍵路徑節(jié)能算法不改變系統(tǒng)性能;當工作節(jié)點不存在拓撲執(zhí)行的非關(guān)鍵路徑上時,系統(tǒng)實施關(guān)鍵路徑節(jié)能算法,且關(guān)鍵路徑節(jié)能算法對系統(tǒng)性能造成一定的影響需要進行相應(yīng)的評估。
此外,通過DVRNP算法,根據(jù)5 min內(nèi)系統(tǒng)處理及傳輸數(shù)據(jù)的采樣結(jié)果,確定工作節(jié)點是否在拓撲執(zhí)行的非關(guān)鍵路徑工作節(jié)點,并計算所有拓撲執(zhí)行的非關(guān)鍵路徑工作節(jié)點內(nèi)存電壓的取值范圍。
根據(jù)3.2節(jié)提出的關(guān)鍵路徑節(jié)能算法,3.4節(jié)通過定義性耗比確定了系統(tǒng)性能與能耗之間的關(guān)系。此外,根據(jù)性耗比建立了拓撲關(guān)鍵路徑工作節(jié)點內(nèi)存電壓調(diào)控模型,確定了系統(tǒng)電壓最低值。
節(jié)能算法以不改變storm集群性能為前提,而storm集群的性能主要體現(xiàn)在元組在拓撲執(zhí)行關(guān)鍵路徑上的處理及傳輸時間,因此在storm集群下執(zhí)行節(jié)能算法需要以不影響元組在拓撲執(zhí)行關(guān)鍵路徑上的處理及傳輸時間為前提。
定理1 在storm集群中,元組在拓撲執(zhí)行關(guān)鍵路徑上的處理及傳輸時間與系統(tǒng)總能耗的性耗比為
其中,C是由多次實驗并驗證得到的性耗比誤差參數(shù),存在取值范圍。
因此,有
此外,通過DVRCP算法,根據(jù)5 min內(nèi)系統(tǒng)處理及傳輸數(shù)據(jù)的采樣結(jié)果,確定工作節(jié)點是否在拓撲執(zhí)行的關(guān)鍵路徑上,并計算所有拓撲執(zhí)行的關(guān)鍵路徑工作節(jié)點內(nèi)存電壓的取值范圍。
本章主要介紹storm平臺下工作節(jié)點的內(nèi)存電壓調(diào)控節(jié)能策略,該策略在不影響系統(tǒng)性能的前提下,根據(jù)系統(tǒng)工作節(jié)點數(shù)據(jù)流的處理及傳輸情況對系統(tǒng)工作節(jié)點內(nèi)存電壓進行調(diào)控以達到節(jié)能的目的。節(jié)能算法流程如圖5所示。算法主要分為以下幾個步驟。
步驟1 通過采樣計算原系統(tǒng)線程與信道的時間成本。
步驟2 計算拓撲執(zhí)行的關(guān)鍵路徑。
步驟3 確定拓撲關(guān)鍵路徑工作節(jié)點與拓撲非關(guān)鍵路徑工作節(jié)點。
步驟4 確定工作節(jié)點N的閾值。
步驟5 根據(jù)不同的節(jié)能算法計算系統(tǒng)總能耗。
圖5 節(jié)能算法流程
根據(jù)第3節(jié)確定storm集群基本的數(shù)據(jù)傳輸及處理情況,由于storm平臺下工作節(jié)點的內(nèi)存電壓調(diào)控節(jié)能策略針對是否有工作節(jié)點位于拓撲執(zhí)行的非關(guān)鍵路徑上設(shè)計了2種節(jié)能算法,并根據(jù)不同的節(jié)能算法計算工作節(jié)點內(nèi)存電壓的取值范圍。此外,由storm集群數(shù)據(jù)處理及傳輸情況確定工作節(jié)點CPU使用率與數(shù)據(jù)傳輸量的閾值,動態(tài)調(diào)節(jié)內(nèi)存電壓來達到節(jié)能的目的。該算法只需根據(jù)3.3節(jié)與3.4節(jié)確定工作節(jié)點內(nèi)存電壓的取值范圍,并由定義5對工作節(jié)點CPU使用率與數(shù)據(jù)傳輸量的閾值進行選擇,動態(tài)調(diào)控系統(tǒng)內(nèi)存電壓,其過程不會對storm集群的實時性造成較大的影響,算法的基本流程如下所示。
算法1對拓撲執(zhí)行非關(guān)鍵路徑上工作節(jié)點的內(nèi)存電壓的界限進行定義,并根據(jù)工作節(jié)點的CPU使用率與數(shù)據(jù)傳輸量定義相應(yīng)的閾值,以對工作節(jié)點內(nèi)存電壓進行動態(tài)調(diào)控,確定storm集群不同狀態(tài)下的功率值。
算法1 非關(guān)鍵路徑節(jié)能算法
輸入
/*拓撲執(zhí)行關(guān)鍵路徑上的工作節(jié)點*/
輸出
系統(tǒng)的功率,根據(jù)工作節(jié)點CPU使用率與數(shù)據(jù)傳輸量的閾值判斷系統(tǒng)的功率。
3) end while
/*拓撲非關(guān)鍵路徑上工作節(jié)點的內(nèi)存電壓上升*/
6) end if
20) end switch
根據(jù)3.3節(jié)確定拓撲執(zhí)行非關(guān)鍵路徑上工作節(jié)點的內(nèi)存電壓的最小值,而內(nèi)存常電壓額定值為最大值,算法的1)~6)行根據(jù)元組在拓撲執(zhí)行關(guān)鍵路徑上的處理及傳輸時間不變的前提下,計算拓撲執(zhí)行非關(guān)鍵路徑上工作節(jié)點的內(nèi)存電壓的最小值;由定義5判斷相關(guān)參數(shù)是否滿足設(shè)定的閾值,動態(tài)調(diào)節(jié)拓撲非關(guān)鍵路徑上工作節(jié)點內(nèi)存電壓,確定此時系統(tǒng)的功率。7)~20)行通過系統(tǒng)數(shù)據(jù)處理及傳輸?shù)募s束條件確定合適的閾值:當滿足1時,拓撲非關(guān)鍵路徑上工作節(jié)點內(nèi)存電壓為最低值,系統(tǒng)功率為1;當滿足2時,動態(tài)調(diào)控拓撲非關(guān)鍵路徑上工作節(jié)點內(nèi)存電壓,系統(tǒng)功率為2;當滿足3時,動態(tài)調(diào)控拓撲非關(guān)鍵路徑上工作節(jié)點內(nèi)存電壓,系統(tǒng)功率為3;當滿足4時,拓撲非關(guān)鍵路徑上工作節(jié)點內(nèi)存常電壓為額定值,系統(tǒng)功率為4。
算法2對拓撲執(zhí)行關(guān)鍵路徑上工作節(jié)點的內(nèi)存電壓的界限進行定義,并根據(jù)工作節(jié)點的CPU使用率與數(shù)據(jù)傳輸量定義相應(yīng)的閾值,以對工作節(jié)點內(nèi)存電壓進行動態(tài)的調(diào)控,確定storm集群不同狀態(tài)下的功率值。
算法2 關(guān)鍵路徑節(jié)能算法
輸入
輸出
系統(tǒng)的功率,根據(jù)工作節(jié)點CPU使用率與數(shù)據(jù)傳輸量的閾值判斷系統(tǒng)的功率。
3) end while
6) end if
20) end switch
能耗和功耗都是系統(tǒng)能量消耗的量度,但其意義不同。工作節(jié)點內(nèi)存電壓調(diào)控節(jié)能策略是為了降低單位時間內(nèi)系統(tǒng)處理及傳輸數(shù)據(jù)的能耗。能耗是系統(tǒng)功率與運行時間的乘積(單位為J)。計算式為[43]
由此可見,能耗反映的是一段時間內(nèi)系統(tǒng)能量消耗的總和。已知原系統(tǒng)能耗包括內(nèi)存能耗、CPU能耗、網(wǎng)絡(luò)帶寬能耗與磁盤能耗等,因此,原系統(tǒng)的能耗oec為
其中,E為系統(tǒng)內(nèi)存的能耗,CPU為系統(tǒng)CPU進行數(shù)據(jù)處理的能耗,NET為數(shù)據(jù)傳輸網(wǎng)絡(luò)帶寬的能耗,HDD為系統(tǒng)磁盤的能耗,other為其他外在因素帶來的能耗。
數(shù)據(jù)流通過I/O讀/寫入內(nèi)存堆棧區(qū)后,通過內(nèi)存尋址將內(nèi)存中的數(shù)據(jù)提交到主控節(jié)點nimbus,根據(jù)主控節(jié)點的分配任務(wù)策略,在系統(tǒng)數(shù)據(jù)處理及傳輸?shù)募s束條件下進行閾值判斷,而后通過工作節(jié)點對數(shù)據(jù)進行處理計算,并經(jīng)過內(nèi)存中spout/Bolt實現(xiàn)數(shù)據(jù)的處理及傳輸,此外,數(shù)據(jù)處理及傳輸?shù)拈撝涤上到y(tǒng)性能與能耗共同決定。根據(jù)數(shù)據(jù)流的處理及傳輸情況對系統(tǒng)工作節(jié)點內(nèi)存電壓進行動態(tài)調(diào)控,高于工作節(jié)點CPU使用率與數(shù)據(jù)傳輸量的閾值內(nèi)存電壓上升,低于工作節(jié)點CPU使用率與數(shù)據(jù)傳輸量的閾值內(nèi)存電壓下降,從而確定系統(tǒng)的功率,此過程在內(nèi)存堆棧區(qū)完成。此外,系統(tǒng)工作節(jié)點內(nèi)存電壓最低值由3.3節(jié)與3.4節(jié)決定,系統(tǒng)工作節(jié)點內(nèi)存常電壓最高值為額定值,經(jīng)計算后的數(shù)據(jù)通過bolt在內(nèi)存中進行傳輸直到將數(shù)據(jù)推進內(nèi)存全局變量區(qū),該過程會對數(shù)據(jù)進行存取且會產(chǎn)生時延。此時系統(tǒng)的能耗Ec為
其中,W為storm集群進行數(shù)據(jù)處理及傳輸時間的必要成本,將式(15)代入式(28),根據(jù)不同的節(jié)能算法可分兩種情況計算系統(tǒng)節(jié)約的能耗,如式(29)所示。
其中,式(29)的參數(shù)與式(15)、式(28)相同,式(29)為數(shù)據(jù)流經(jīng)內(nèi)存后系統(tǒng)節(jié)約的總能耗。經(jīng)過閾值判別后的數(shù)據(jù)流通過系統(tǒng)工作節(jié)點進行處理,數(shù)據(jù)處理的相關(guān)算法如下所示。
算法3 數(shù)據(jù)的傳輸及處理算法
輸入
輸出
全局變量區(qū),處理后的數(shù)據(jù)進入內(nèi)存全局變量區(qū)。
/*如果系統(tǒng)實施非關(guān)鍵路徑節(jié)能算法*/
/*此時能耗為1*/
7) else
/*此時能耗為2*/
9) end if
/*構(gòu)造數(shù)據(jù)流模型*/
/*獲得數(shù)據(jù)文件中的一條數(shù)據(jù)流*/
/*內(nèi)存堆棧區(qū)推進為內(nèi)存全局變量區(qū)*/
13) end for
算法3為系統(tǒng)進行工作節(jié)點內(nèi)存電壓調(diào)控節(jié)能策略的真實情況,1)~4)行為數(shù)據(jù)信息選擇獲取及處理數(shù)據(jù)的總時間,5)~9)行為判斷不同節(jié)能算法產(chǎn)生的能耗,10)~13)行為對系統(tǒng)數(shù)據(jù)流模型的構(gòu)建及數(shù)據(jù)處理環(huán)境的改變。
算法3主要表示系統(tǒng)內(nèi)數(shù)據(jù)的傳輸及處理產(chǎn)生的能耗,根據(jù)工作節(jié)點CPU使用率與數(shù)據(jù)傳輸量的閾值確定數(shù)據(jù)的傳輸路徑,與原系統(tǒng)時間復雜度相同,為
工作節(jié)點內(nèi)存電壓調(diào)控節(jié)能策略的時間開銷主要取決于算法1和算法2的時間復雜度,這兩個算法不應(yīng)過于復雜而影響整個系統(tǒng)的性能,因此下文將分析算法1和算法2的執(zhí)行開銷。
設(shè)執(zhí)行工作節(jié)點內(nèi)存電壓調(diào)控節(jié)能策略的時間復雜度為
其中,()為系統(tǒng)執(zhí)行算法1或算法2的時間復雜度,()為系統(tǒng)執(zhí)行算法3的時間復雜度。算法1主要對拓撲非關(guān)鍵路徑工作節(jié)點內(nèi)存電壓取值范圍進行選擇判別,系統(tǒng)性能并未發(fā)生改變,其中DVRNP算法在拓撲關(guān)鍵路徑上執(zhí)行的時間復雜度與原系統(tǒng)相同為(),在拓撲非關(guān)鍵路徑上執(zhí)行的時間復雜度為
其中,為根據(jù)系統(tǒng)數(shù)據(jù)處理總時間內(nèi)存電壓改變的次數(shù),內(nèi)存額定常電壓為1.5 V,則內(nèi)存電壓改變的次數(shù)不超過150次,對系統(tǒng)性能影響很小。
算法2主要計算拓撲關(guān)鍵路徑工作節(jié)點內(nèi)存電壓取值范圍,系統(tǒng)性能會發(fā)生改變。則拓撲執(zhí)行關(guān)鍵路徑工作節(jié)點電壓調(diào)控的時間復雜度為
其中,為根據(jù)系統(tǒng)性耗比電壓改變的次數(shù),為根據(jù)系統(tǒng)能耗電壓改變的次數(shù),則內(nèi)存電壓改變次數(shù)不超過22 500次,這對系統(tǒng)性能造成一定的影響。
此時,系統(tǒng)實施DVRNP算法的時間復雜度為
系統(tǒng)實施DVRCP算法的時間復雜度為
工作節(jié)點內(nèi)存電壓調(diào)控節(jié)能策略分為DVRNP算法與DVRCP算法,其中實施DVRNP算法系統(tǒng)性能不存在影響,在這里不做考慮。系統(tǒng)實施DVRCP算法能耗與性能之間存在一定的關(guān)系,即性耗比。假設(shè)系統(tǒng)中運行50 000元組的數(shù)據(jù),原系統(tǒng)基準測試完全處理50 000 元組數(shù)據(jù)用時1 s,能耗為6.32 kJ,常數(shù)C為0.9;工作節(jié)點內(nèi)存電壓調(diào)控節(jié)能策略后系統(tǒng)運行基準測試完全處理50 000 元組數(shù)據(jù)用時1.05 s,能耗為4.37 kJ,常數(shù)C為0.7。原系統(tǒng)性耗比為0.007 12,實施策略后系統(tǒng)性耗比為0.00 826,由此可見,實施DVRCP算法后的整體性能優(yōu)于原系統(tǒng),因此工作節(jié)點內(nèi)存電壓調(diào)控策略在時間復雜度上是完全可行的。
要在storm集群中部署工作節(jié)點內(nèi)存電壓調(diào)控節(jié)能策略,需要在storm集群中獲取storm UI REST API相關(guān)信息,其中可通過/api/v1/topology獲得拓撲的所有信息,包括線程到工作節(jié)點的映射關(guān)系及各類參數(shù)的配置信息。此外,可通過/api/v1/cluster獲得當前系統(tǒng)的各類狀態(tài)信息,包括線程、進程與節(jié)點間的所有通信開銷及映射關(guān)系。對于拓撲中各線程的CPU資源使用信息,可通過Java API函數(shù)中ThreadMXBean類的getThreadCpuTime(long id)方法獲得,其中系統(tǒng)ID為線程的ID;對于實驗中數(shù)據(jù)傳輸頻率及所傳數(shù)據(jù)元組的多少則通過./ storm UI > /dev/null 2>&1 &命令檢測,其中顯示core表示該命令執(zhí)行成功,傳輸結(jié)果通過累加獲取,整個過程在/bin目錄下完成。此外,CPU使用率與數(shù)據(jù)傳輸頻率的數(shù)據(jù)通過nmon[44]軟件獲取,且操作系統(tǒng)中數(shù)據(jù)處理信息與硬件相關(guān)參數(shù)可通過/proc目錄下相關(guān)文件獲取。代碼編譯完成后,通過打jar分組至主控節(jié)點nimbus的storm_HOME/lib目錄下,并在/conf/storm.yaml中配置好相關(guān)參數(shù)后運行。改進后的storm架構(gòu)如圖6所示。
對圖6改進后的storm架構(gòu)中的相關(guān)名詞進行解釋。
1) 監(jiān)控器(control monitor):在一段時間內(nèi),收集各線程占用的內(nèi)存,網(wǎng)絡(luò)帶寬和CPU數(shù)據(jù)處理、傳輸時間及各線程之間的數(shù)據(jù)流大小。
2) 數(shù)據(jù)庫(database):存儲任務(wù)分配信息和監(jiān)控器傳來的數(shù)據(jù)處理及傳輸時間信息,并實時更新。
3) 自定義調(diào)節(jié)器(custom regulator):在自定義調(diào)節(jié)器中確定系統(tǒng)工作節(jié)點內(nèi)存電壓的調(diào)控范圍,并根據(jù)系統(tǒng)數(shù)據(jù)處理及傳輸約束條件對工作節(jié)點CPU使用率與數(shù)據(jù)傳輸量的閾值進行判別,以調(diào)節(jié)合適的內(nèi)存電壓。
圖6 改進后的storm架構(gòu)
搭建的storm集群有一個主控節(jié)點nimbus、16個工作節(jié)點supervisor與3個關(guān)聯(lián)節(jié)點zookeeper,且整個集群在無其他任務(wù)運行的條件下進行實驗。
本文實驗?zāi)康臑轵炞C工作節(jié)點內(nèi)存電壓調(diào)控節(jié)能策略的有效性,其主要的測試標準有集群的吞吐量、能耗、數(shù)據(jù)的處理響應(yīng)時間等。實驗算法采用WordCount、Sol、RollingSort與RollingCount[37]作為基準測試用例,最后對實驗結(jié)果進行分析。
為證明WNDVR-storm的有效性,實驗需要的storm集群部署在19臺普通PC機上,且每臺PC機的內(nèi)存統(tǒng)一為4 GB。根據(jù)不同節(jié)點的運行情況,storm集群節(jié)點及數(shù)據(jù)處理環(huán)境的配置參數(shù)如表1所示。
表1 storm環(huán)境配置參數(shù)
其中,控制臺節(jié)點進程UI、主控節(jié)點進程nimbus、關(guān)聯(lián)節(jié)點進程zookeeper1(leader)運行在同一臺PC機上,工作節(jié)點進程supervisor 1~16與關(guān)聯(lián)節(jié)點進程zookeeper2、3(follower)分別部署在18臺不同PC機上,此外,根據(jù)不同的節(jié)點類型選定3臺PC機進行nmon測試監(jiān)控,記錄CPU使用率、數(shù)據(jù)傳輸頻率及內(nèi)存占用率等。整個storm集群內(nèi)各節(jié)點硬件參數(shù)配置相同,現(xiàn)記錄storm集群內(nèi)處理1 GB數(shù)據(jù),PC機配置參數(shù)如表2所示。
表2 storm集群內(nèi)PC機配置參數(shù)
為全面測試工作節(jié)點內(nèi)存電壓調(diào)控節(jié)能策略的有效性,實驗選取4組不同基準測試用例對該策略進行測試,分別是網(wǎng)絡(luò)帶寬敏感型(network- sensitive)的Sol、CPU敏感型(CPU-sensitive)的WordCount、內(nèi)存敏感型(memory-sensitive)的RollingSort以及storm真實場景下的應(yīng)用RollingCount,各基準測試運行時工作進程(worker)的數(shù)量與當前所需的工作節(jié)點一一對應(yīng),其余參數(shù)保留其默認配置,具體基準測試參數(shù)配置如表3所示。
其中,設(shè)置topology.workers為16,表示各基準測試運行時僅在一個工作節(jié)點內(nèi)分配一個工作進程;設(shè)置topology.acker.executors為16,表示保證數(shù)據(jù)流的可靠傳輸,各工作進程除了運行分配給它的線程之外,還額外運行一個Acker Bolt實例;此外,設(shè)置的每個message.size等于一個元組的大小。
此外,內(nèi)存電壓取值范圍根據(jù)3.3節(jié)與3.4節(jié)不同工作節(jié)點內(nèi)存電壓調(diào)控模型確定,實驗通過二分法測得位于拓撲執(zhí)行關(guān)鍵路徑上的工作節(jié)點的內(nèi)存電壓調(diào)控選擇在1.20~1.50 V不斷改變,位于拓撲執(zhí)行非關(guān)鍵路徑上的工作節(jié)點的內(nèi)存電壓調(diào)控選擇在1.32~1.50 V不斷改變。在2 min內(nèi)不停地傳輸元組,記錄單機內(nèi)存不同狀態(tài)的能耗如表4所示。
表3 基準測試參數(shù)配置
表4 DDR3 1066內(nèi)存能耗的數(shù)據(jù)測量值
根據(jù)4.1節(jié)實驗環(huán)境參數(shù)設(shè)置完成以下實驗,由于工作節(jié)點內(nèi)存電壓調(diào)控節(jié)能策略使用storm平臺,因此在節(jié)能的同時需要保持計算的效率,即不能影響系統(tǒng)的性能。為便于實驗檢測,根據(jù)4種基準測試用例設(shè)置metrics.poll的值為5 000 ms,metrics.time的值為300 000 ms,即每組實驗每5 s刷新一次數(shù)據(jù),共統(tǒng)計5 min。
根據(jù)上述條件,現(xiàn)有storm集群存在19臺普通PC機,通過nmon軟件檢測5 min內(nèi)storm集群處理一份數(shù)據(jù)文件,統(tǒng)計系統(tǒng)CPU使用率與數(shù)據(jù)傳輸量的變化,為后續(xù)實驗奠定基礎(chǔ)。
圖7 原系統(tǒng)執(zhí)行RollingCount后,數(shù)據(jù)處理及傳輸約束條件
通過storm UI可以檢測出整個storm集群存在2個拓撲執(zhí)行非關(guān)鍵路徑的工作節(jié)點與14個拓撲執(zhí)行關(guān)鍵路徑的工作節(jié)點,后續(xù)的實驗以此為前提,圖7系統(tǒng)執(zhí)行RollingCount后數(shù)據(jù)處理及傳輸約束條件。由圖7可以看出,計算后CPU使用率的平均值約為62.8%,數(shù)據(jù)傳輸量的平均值約為49 632 tuple/s。同理可得,系統(tǒng)執(zhí)行RollingSort后,CPU使用率的平均值約為59.6%,數(shù)據(jù)傳輸量的平均值約為46 528 tuple/s;系統(tǒng)執(zhí)行WordCount后,CPU的使用率的平均值約為86.4%,數(shù)據(jù)傳輸量的平均值約為97 329 tuple/s,系統(tǒng)執(zhí)行Sol后,CPU的使用率的平均值約為23.2%,數(shù)據(jù)傳輸量的平均值約為98 361 tuple/s?,F(xiàn)通過表1~表3中的環(huán)境配置相關(guān)參數(shù)進行24次實驗。根據(jù)圖7系統(tǒng)數(shù)據(jù)處理及傳輸約束條件,分別對CPU敏感型的WordCount、網(wǎng)絡(luò)帶寬敏感型的Sol與內(nèi)存敏感型的RollingSort進行測試,且每個基準測試進行4次實驗。根據(jù)系統(tǒng)數(shù)據(jù)處理及傳輸約束條件平均值,由不同工作節(jié)點內(nèi)存電壓調(diào)控節(jié)能算法確定工作節(jié)點的不同閾值,并對實驗結(jié)果進行對比分析。該實驗通過storm UI觀測工作節(jié)點數(shù)據(jù)處理情況,根據(jù)數(shù)據(jù)傳輸量、CPU使用率與內(nèi)存功率來確定合適工作節(jié)點CPU使用率與數(shù)據(jù)傳輸量的閾值,實驗結(jié)果如圖8所示。
從實驗結(jié)果中可以看出,storm集群的功率隨工作節(jié)點CPU使用率與數(shù)據(jù)傳輸量選定閾值的不同而改變。由圖8的6組實驗測試可知,實驗組test11、test21、test31、test41、test51與test61為原系統(tǒng)不進行節(jié)能算法且不改變工作節(jié)點CPU使用率與數(shù)據(jù)傳輸量的閾值,在50 s之前系統(tǒng)數(shù)據(jù)處理的功率逐步上升,且穩(wěn)定在50 s左右,其原因為數(shù)據(jù)傳輸速率逐步穩(wěn)定,而數(shù)據(jù)傳輸及處理在不同的工作節(jié)點上的功率不相同。但對于不同的基準測試,系統(tǒng)根據(jù)不同的閾值情況,通過實施不同的節(jié)能算法,使功率明顯低于原系統(tǒng),具體計算結(jié)果在表5中進行統(tǒng)計。
由表5可知,系統(tǒng)執(zhí)行DVRCP算法后的功率低于執(zhí)行DVRNP算法后的功率。且根據(jù)實驗test13、test23、test33、test43、test53與test63的結(jié)果可知,系統(tǒng)工作節(jié)點CPU使用率與數(shù)據(jù)傳輸量的最佳閾值由實驗前期采樣結(jié)果以及實驗選擇不同的拓撲決定。因此,后續(xù)實驗工作節(jié)點CPU使用率與數(shù)據(jù)傳輸量的閾值根據(jù)實驗前期采樣結(jié)果與選擇的不同拓撲訓練集決定。
根據(jù)工作節(jié)點是否在拓撲執(zhí)行的關(guān)鍵路徑上,工作節(jié)點內(nèi)存電壓調(diào)控節(jié)能策略可分為2種節(jié)能算法,并根據(jù)數(shù)據(jù)處理限制條件對工作節(jié)點CPU使用率與數(shù)據(jù)傳輸量的閾值進行判別,從而動態(tài)調(diào)節(jié)系統(tǒng)不同電壓,當系統(tǒng)數(shù)據(jù)處理高于工作節(jié)點CPU使用率與數(shù)據(jù)傳輸量的閾值時內(nèi)存電壓上升,當系統(tǒng)數(shù)據(jù)處理低于工作節(jié)點CPU使用率與數(shù)據(jù)傳輸量的閾值時內(nèi)存電壓下降。現(xiàn)通過不同的基準測試對策略進行測試,并通過對比CPU的動態(tài)電壓調(diào)控節(jié)能策略[38],驗證算法的可行性。根據(jù)5.2節(jié)實驗test13、test23、test33、test43、test53與test63選擇的閾值,通過測試5 min內(nèi)系統(tǒng)不停地傳輸元組的能耗,對系統(tǒng)進行CPU敏感型的WordCount、內(nèi)存敏感型的RollingSort以及網(wǎng)絡(luò)帶寬敏感型的Sol共3組不同的基準測試,其中基準測試WordCount與Sol為理想狀態(tài)下系統(tǒng)的能耗情況,RollingSort為整個系統(tǒng)工作節(jié)點內(nèi)存環(huán)境的能耗情況。圖9展示了0~5 min內(nèi)系統(tǒng)在3種基準測試下的能耗情況。
圖8 3種不同基準測試的工作節(jié)點CPU使用率與數(shù)據(jù)傳輸量的閾值情況
表5 兩種節(jié)能算法下系統(tǒng)的功率情況
由圖9可以看出,隨著時間的增加,系統(tǒng)的能耗不斷上升,且系統(tǒng)實施3種節(jié)能算法后的能耗明顯小于原系統(tǒng),而DVFS算法明顯優(yōu)于其他2種節(jié)能算法。但DVFS算法已廣泛應(yīng)用到IT行業(yè)的不同領(lǐng)域,而內(nèi)存的電壓調(diào)控節(jié)能策略還不成熟,且CPU的工作電壓遠高于內(nèi)存的工作電壓,因此DVFS算法節(jié)能效果更明顯。對于DVRNP算法與DVRCP算法,由圖9(a) 的WordCount測試與圖9(b)的Sol測試表明,在220 s前DVRNP算法的節(jié)能效果優(yōu)于DVRCP算法的節(jié)能效果,根據(jù)3.4節(jié)可知,DVRCP算法受系統(tǒng)元組在拓撲執(zhí)行關(guān)鍵路徑上的處理及傳輸時間的影響,因此220 s前DVRNP算法的節(jié)能效果比較好;在220 s后系統(tǒng)執(zhí)行DVRCP算法的節(jié)能效果優(yōu)于DVRNP算法的節(jié)能效果,根據(jù)5.2節(jié)采樣確定storm集群存在2個拓撲執(zhí)行的非關(guān)鍵路徑工作節(jié)點與14個拓撲執(zhí)行的關(guān)鍵路徑工作節(jié)點,因此220 s后DVRCP算法的節(jié)能效果比較好。而圖9(b) RollingSort測試的能耗相對較高的原因為包含了如系統(tǒng)必要時間計算成本W等物理因素,在180 s后系統(tǒng)的數(shù)據(jù)處理及傳輸基本穩(wěn)定,系統(tǒng)能耗逐步達到平衡。
圖9 系統(tǒng)在3種基準測試下的能耗情況
RollingCount是storm平臺下的一個大數(shù)據(jù)典型基準測試,其特點為持續(xù)在內(nèi)存中遵循某個統(tǒng)計指令(如同一件商品的出現(xiàn)次數(shù))計算,然后每隔一段時間輸出實時計算后的結(jié)果,可以廣泛應(yīng)用到各類需要大數(shù)據(jù)實時計算的場景,例如實時熱門廣告、商品、微博等的統(tǒng)計。本實驗采用RollingCount對系統(tǒng)的真實功率進行測試,首先根據(jù)5.2節(jié)對RollingCount基準測試的閾值進行選擇,圖10為0~5 min內(nèi)對storm集群19臺PC機采用RollingCount測試的功率情況。
圖10 系統(tǒng)執(zhí)行RollingCount測試后的功率情況
由圖10可以看出,系統(tǒng)工作節(jié)點CPU使用率與數(shù)據(jù)傳輸量的閾值在CPU使用率為65%、數(shù)據(jù)處理量為50 000 tuple/s的情況下,2種算法的節(jié)能效果最好,且系統(tǒng)執(zhí)行DVRNP算法與DVRCP算法后的功率明顯小于原系統(tǒng)。因此后續(xù)系統(tǒng)執(zhí)行RollingCount測試的實驗工作節(jié)點CPU使用率與數(shù)據(jù)傳輸量的閾值以CPU使用率65%、數(shù)據(jù)處理量50 000 tuple/s為準。由圖10計算,系統(tǒng)執(zhí)行DVRNP算法的功率的平均值為924.2 W,系統(tǒng)執(zhí)行DVRCP算法的功率的平均值為791.1W,因此系統(tǒng)執(zhí)行DVRCP算法的功率低于系統(tǒng)執(zhí)行DVRNP算法的功率。為計算系統(tǒng)的能耗,需對系統(tǒng)不同時期的能耗結(jié)果進行累加,現(xiàn)計算19臺PC機5min內(nèi)的能耗情況,計算結(jié)果如圖11所示。
圖11 系統(tǒng)執(zhí)行RollingCount測試后計算系統(tǒng)的能耗結(jié)果
由圖11可以看出,原系統(tǒng)能耗基本不受系統(tǒng)數(shù)據(jù)處理及傳輸?shù)挠绊?,而系統(tǒng)實施3種不同的節(jié)能算法后,能耗增加比率也在隨著時間的變化不斷發(fā)生改變,而CPU的工作電壓遠高于內(nèi)存的工作電壓,故DVFS算法節(jié)能效果優(yōu)于其他2種算法,但調(diào)節(jié)CPU的電壓容易對系統(tǒng)的性能造成影響,不適合storm系統(tǒng)的運行。對于DVRNP算法與DVRCP算法而言,在180 s之前,數(shù)據(jù)傳輸量較少,相對觸發(fā)CPU使用率閾值的可能較低,系統(tǒng)工作節(jié)點內(nèi)存電壓普遍較低,將系統(tǒng)實施DVRNP算法與DVRCP算法分別與原系統(tǒng)能耗作對比,系統(tǒng)實施DVRNP算法將原系統(tǒng)的能耗降低到54.3%,系統(tǒng)實施DVRCP算法將原系統(tǒng)的能耗降低到53.0%;在180 s之后,數(shù)據(jù)傳輸量超過系統(tǒng)閾值,且觸發(fā)CPU使用率閾值的可能性較高,系統(tǒng)工作節(jié)點內(nèi)存電壓增大,將系統(tǒng)實施DVRNP算法與DVRCP算法分別與原系統(tǒng)能耗作對比,系統(tǒng)實施DVRNP算法將處理能耗降低到原系統(tǒng)的97.1%,系統(tǒng)實施DVRCP算法將處理能耗降低到原系統(tǒng)的93.3%。因此,現(xiàn)統(tǒng)計系統(tǒng)5 min內(nèi)處理及傳輸數(shù)據(jù)的總能耗,其中原系統(tǒng)總能耗為7 170.3 kJ,實施DVRNP算法后的系統(tǒng)能耗為5 212.7 kJ,實施DVRCP算法后的系統(tǒng)能耗為4 656.8 kJ。系統(tǒng)實施DVRNP算法與DVRCP算法分別與原系統(tǒng)能耗作對比,系統(tǒng)實施DVRNP算法將原系統(tǒng)的能耗降低了28.5%,系統(tǒng)實施DVRCP算法將原系統(tǒng)的能耗降低了35.1%。綜上所述,工作節(jié)點內(nèi)存電壓調(diào)控節(jié)能策略取得了比較理想的效果。
由于缺少更多的物理節(jié)點,實驗通過虛擬機建立更多的虛擬節(jié)點以評估算法的局限性,實驗分別設(shè)置36、56、76和96個工作節(jié)點與原系統(tǒng)16個工作節(jié)點進行比對,以能耗降低的百分比為評估指標,實驗結(jié)果如圖12所示。
圖12 實施2種算法系統(tǒng)的節(jié)能效果
圖12為理想狀態(tài)下實施2種算法系統(tǒng)的節(jié)能效果,由圖12可知,系統(tǒng)實施2種節(jié)能算法并未隨著工作節(jié)點的增加而產(chǎn)生影響。但在理想狀態(tài)下并未考慮數(shù)據(jù)的處理及傳輸速率等因素,現(xiàn)根據(jù)真實節(jié)點數(shù)量的增加情況,計算數(shù)據(jù)的處理及傳輸速率,具體的計算結(jié)果如圖13所示。
圖13 系統(tǒng)實施2種算法對系統(tǒng)數(shù)據(jù)的處理及傳輸速率的影響
由圖13可知,實施DVRNP算法對系統(tǒng)數(shù)據(jù)的處理及傳輸速率基本不會產(chǎn)生影響,但實施DVRCP算法會隨著集群節(jié)點數(shù)的增加,而使系統(tǒng)數(shù)據(jù)的處理速率降低,工作節(jié)點間數(shù)據(jù)傳輸速率下降,系統(tǒng)性能下降,且數(shù)據(jù)的處理及傳輸速率降低會影響系統(tǒng)整體的通信開銷,由此,根據(jù)圖13可得出DVRCP算法的理論函數(shù)為
其中,V為數(shù)據(jù)的處理及傳輸速率,N為節(jié)點數(shù),代入圖13的數(shù)據(jù),化簡得到式(37)。
由此可知,實施DVRCP算法隨著工作節(jié)點數(shù)量的增加會對系統(tǒng)性能等因素造成一定的影響,因此工作節(jié)點內(nèi)存電壓調(diào)控節(jié)能策略存在一定的局限性。
工作節(jié)點內(nèi)存電壓調(diào)控節(jié)能策略應(yīng)該以保證性能為前提,其中DVRNP算法對系統(tǒng)性能沒有影響,在此不做分析。然而DVRCP算法對系統(tǒng)性能造成一定的影響,其主要的影響為元組在拓撲執(zhí)行關(guān)鍵路徑上的處理及傳輸時間增加,因此需要對DVRCP算法進行評估,評估的方法為選用性耗比,圖14為5 min內(nèi)系統(tǒng)性耗比的變化。
圖14 性耗比
根據(jù)3.4節(jié)可以看出,實施DVRCP算法后系統(tǒng)的性耗比與原系統(tǒng)性耗比基本相等,現(xiàn)由圖14測試16個工作節(jié)點的結(jié)果可知,系統(tǒng)實施DVRCP算法對storm集群的性耗比并不構(gòu)成影響,但是元組在拓撲執(zhí)行關(guān)鍵路徑上的處理及傳輸時間與系統(tǒng)總能耗乘機的倒數(shù)存在誤差,實驗中不同服務(wù)器之間的性耗比并不相同,經(jīng)實驗反復測試,獲得實驗存在誤差常數(shù)C在[0.75, 1.34]之間。原系統(tǒng)16臺服務(wù)器的平均性耗比為0.073 75;實施DVRCP算法后系統(tǒng)16臺服務(wù)器的平均性耗比為0.081 5。由此,可見DVRCP算法對系統(tǒng)的性能不構(gòu)成影響,因此DVRCP算法是完全可行的。
隨著大數(shù)據(jù)技術(shù)的不斷發(fā)展,各種流式計算平臺和系統(tǒng)不斷產(chǎn)生,storm作為大數(shù)據(jù)流式計算的主流平臺,已逐漸在學術(shù)界和產(chǎn)業(yè)界引起廣泛關(guān)注,然而storm系統(tǒng)并未考慮因自身性能帶來的能耗問題。近年來現(xiàn)有研究改進了storm數(shù)據(jù)調(diào)度存在的某些問題,但依舊存在系統(tǒng)能耗過高以及應(yīng)用場景單一等問題。針對上述問題,本文提出了WNDVR-storm,即針對工作節(jié)點是否在拓撲執(zhí)行的關(guān)鍵路徑上分別提出2種節(jié)能算法,計算不同工作節(jié)點內(nèi)存電壓取值范圍,并通過數(shù)據(jù)處理及傳輸制約條件,以此對工作節(jié)點CPU使用率與數(shù)據(jù)傳輸量的閾值進行判別,根據(jù)數(shù)據(jù)流的處理及傳輸情況對系統(tǒng)電壓進行動態(tài)調(diào)節(jié),從而降低了系統(tǒng)不必要的能耗損失。經(jīng)4種基準測試論證了算法的可行性,工作節(jié)點內(nèi)存電壓調(diào)控節(jié)能策略有效地提高了storm平臺的能量利用率。
下一步的研究工作主要包括以下幾點。
1) 從storm平臺的性能出發(fā),以不改變甚至提高系統(tǒng)性能為前提,實現(xiàn)storm平臺的節(jié)能??赏ㄟ^提高storm平臺的計算速率,降低數(shù)據(jù)處理時間以實現(xiàn)系統(tǒng)的節(jié)能,如將系統(tǒng)部分CPU處理的非文本數(shù)據(jù)替換到圖形處理器(GPU, graphics processing unit)中處理。
2) 可以增大storm平臺的網(wǎng)絡(luò)帶寬,網(wǎng)絡(luò)帶寬越大,數(shù)據(jù)量的傳輸速率越快,從而使得系統(tǒng)整體性能提高,可從側(cè)面提高系統(tǒng)節(jié)能效果。因此,可以考慮網(wǎng)絡(luò)帶寬方面的節(jié)能策略,以減少數(shù)據(jù)處理時間來達到降低storm平臺能耗的目的。
3) 可通過降低storm平臺的內(nèi)存延遲,提高系統(tǒng)的整體性能,如果延遲降低,則數(shù)據(jù)傳輸時間變短,從而達到以提高性能為前提并從側(cè)面降低系統(tǒng)能耗的目的。
[1] 孟小峰, 慈祥. 大數(shù)據(jù)管理: 概念、技術(shù)與挑戰(zhàn)[J]. 計算機研究與發(fā)展, 2013, 50(1): 146-169.
MENG X F, CI X. Big data management: concepts, techniques and challenges[J]. Journal of Computer Research and Development, 2013, 50(1): 146-169.
[2] 孫大為. 大數(shù)據(jù)流式計算: 應(yīng)用特征和技術(shù)挑戰(zhàn)[J]. 大數(shù)據(jù), 2015,1(3): 99-105.
SUN D W. Big data stream comuting: features and challenges[J]. Big Data Research, 2015,1(3): 99-105.
[3] CHEN C L P, ZHANG C Y. Data-intensive applications, challenges, techniques and technologies: a survey on big data[J]. Information Sciences, 2014, 275(11): 314-347.
[4] RANJAN R. Streaming big data processing in datacenter clouds[J]. IEEE Cloud Computing, 2014, 1(1): 78-83.
[5] KAMBATLA K, KOLLIAS G, KUMAR V, et al. Trends in big data analytics[J]. Journal of Parallel and Distributed Computing, 2014, 74(7): 2561-2573.
[6] 鄧維, 劉方明, 金海, 等. 云計算數(shù)據(jù)中心的新能源應(yīng)用: 研究現(xiàn)狀與趨勢[J]. 計算機學報, 2013, 36(3): 582-598.
DENG W, LIU F M, JIN H, et al. Leveraging renewable energy in cloud computing datacenters: state of the art and future research[J]. Chinese Journal of Computers, 2013, 36(3): 582-598.
[7] 廖彬, 張?zhí)? 于炯, 等. 溫度感知的MapReduce節(jié)能任務(wù)調(diào)度策略[J].通信學報, 2016, 37(1): 61-75.
LIAO B, ZHANG T, YU J, et al. Temperature aware energy-efficient task scheduling strategies for MapReduce[J]. Journal on Communications, 2016, 37(1): 61-75.
[8] 蒲勇霖,于炯,魯亮,等. 基于實時流式計算系統(tǒng)的數(shù)據(jù)分類節(jié)能策略[J].計算機工程與設(shè)計,2017, 38(1): 59-64
PU Y L, YU J, LU L, et al. Energy-efficient strategy based on data classification in real-time stream computing system[J]. Computer Engineering and Design, 2017, 38(1): 59-64
[9] SUN D, ZHANG G, YANG S, et al. Re-Stream: Real-time and energy-efficient resource scheduling in big data stream computing environments[J]. Information Sciences, 2015, (319): 92-112.
[10] TOSHNIWAL A, TANEJA S, SHUKLA A, et al. Storm @Twitter [C] //Proc of the 2014 ACM SIGMOD Int Conf on Management of data. ACM, 2014: 147-156.
[11] BORTHAKUR D, GRAY J, SARMA J S, et al. Apache hadoop goes realtime at Facebook[C] //The 2011 ACM SIGMOD Int Conf on Management of data. 2011: 1071-1080.
[12] NEUMEVER L, ROBBINS B, NAIR A, et al. S4: Distributed stream computing platform[C] //The 10th IEEE Int Conf on Data Mining Workshops (ICDMW 2010). 2010: 170-177.
[13] ZAHARIA M, DAS T, LI H, et al. Discretized streams: an efficient and fault-tolerant model for stream processing on large clusters[C]//The 4th USENIX conf on Hot Topics in Cloud Computing. 2012: 10.
[14] FISCHER M J, SU X, YIN Y. Assigning tasks for efficiency in hadoop[C]//The 22th annual ACM Symp on Parallelism in algorithms and architectures. 2010: 30-39.
[15] ALBERS S. Energy-efficient algorithms[J]. Communications of the ACM, 2010, 53(5):86-96.
[16] TCHEMYKH A, PECERO J E, BARRONDO A, et al. Adaptive energy efficient scheduling in Peer-to-Peer desktop grids[J]. Future Generation Computer Systems, 2014, 36(7):209-220.
[17] POLLAKIS E, CAVALCANTE R L G, STANCZAK S. Traffic demand-aware topology control for enhanced energy-efficiency of cellular networks[J]. EURASIP Journal on Wireless Communications and Networking, 2016, 2016(1):61-77.
[18] LIU G X, XU J L, HONG X B. Internet of things sensor node information scheduling model and energy saving strategy[J]. Advanced Materials Research, 2013, 773(1):215-220.
[19] WANG X, WANG Y, CUI Y. A new multi-objective bi-level programming model for energy and locality aware multi-job scheduling in cloud computing[J]. Future Generation Computer Systems, 2014, 36(7):91-101.
[20] HE F Y, WANG F. Research on energy saving for multi-back after blending water from one station system’s parameters optimization[J]. Advanced Materials Research, 2014, 1023:187-191.
[21] MILI M R, MUSAVIAN L, HAMDI K A, et al. How to increase energy efficiency in cognitive radio networks[J]. IEEE Transactions on Communications, 2016, 64(5):1829-1843.
[22] CHEN X, YANG H, ZHANG W. A comprehensive sensitivity study of major passive design parameters for the public rental housing development in Hong Kong[J]. Energy, 2015, (93): 1804-1818.
[23] WANG H, CHEN Q. A semi-empirical model for studying the impact of thermal mass and cost-return analysis on mixed-mode ventilation in office buildings[J]. Energy & Buildings, 2013, 67(4):267-274.
[24] YANG T, MINO G, BAROLLI L, et al. Energy-saving in wireless sensor networks considering mobile sensor nodes[J]. Computer Systems Science & Engineering, 2011, 27(5): 317-326.
[25] 孫大為, 張廣艷, 鄭緯民. 大數(shù)據(jù)流式計算: 關(guān)鍵技術(shù)及系統(tǒng)實例[J].軟件學報, 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.
[26] LI K C, JIANG H, YANG L T, et al. Big data: algorithms, analytics, and applications[M]. Florida: CRC Press, 2015: 193-214.
[27] BONAMY R, BILAVARN S, MULLER F. An energy-aware scheduler for dynamically reconfigurable multi-core systems[C]// International Symposium on Reconfigurable Communication-Centric Systems-On-Chip. 2015:1-6.
[28] 蒲勇霖, 于炯, 魯亮, 等. 大數(shù)據(jù)流式計算環(huán)境下的內(nèi)存節(jié)能策略[J].小型微型計算機系統(tǒng), 2017, 38(9): 1988-1993.
PU Y L, YU J, LU L, et al. Energy-efficient strategy for memory in big data stream computing environment[J]. Journal of Chinese Mini-Micro Computer Systems, 2017, 38(9):1988-1993.
[29] TRIHINAS D, PALLIS G, DIKAIAKOS M D. JCatascopia: monitoring elastically adaptive applications in the cloud[C]//The 14th IEEE/ACM Int Symp on Cluster, Cloud and Grid Computing (CCGrid). 2014: 226-235.
[30] VAN D V J S, VAN D W B, LAZOVIK E, et al. dynamically scaling apache storm for the analysis of streaming data[C]//The 2015 IEEE 1st Int Conf on Big Data Computing Service and Applications. 2015: 154-161.
[31] CORDESCHI N, SHOJAFAR M, AMENDOLA D, et al. Energy-efficient adaptive networked datacenters for the QoS support of real-time applications[J]. The Journal of Supercomputing, 2014, 71(2): 448-478.
[32] BASKIYAR S, ABDEL-KADER R. Energy aware DAG scheduling on heterogeneous systems[J]. Cluster Computing, 2010, 13(4): 373-383.
[33] HSU C H, SLAGTER K D, CHEN S C, et al. Optimizing energy consumption with task consolidation in clouds[J]. Information Sciences, 2014, 258(3):452-462.
[34] KIM N, CHO J, SEO E. Energy-credit scheduler: an energy-aware virtual machine scheduler for cloud systems[J]. Future Generation Computer Systems, 2014, 32(2):128-137.
[35] ZONG Z, MANZANARES A, RUAN X, et al. EAD and PEBD: two energy-aware duplication scheduling algorithms for parallel tasks on homogeneous clusters[J]. IEEE Transactions on Computers, 2010, 60(3):360-374.
[36] PATAN R, RAJASEKHARA B M. Re-storm: real-time energy efficient data analysis adapting storm platform[J]. Jurnal Teknologi, 2016, 78(10):139-146.
[37] 魯亮,于炯,卞琛,等. 大數(shù)據(jù)流式計算框架Storm的任務(wù)遷移策略[J]. 計算機研究與發(fā)展, 2018, 55(1): 71-92.
LU L, YU J, BIAN C, et al. A Task Migration Strategy in Big Data Stream Computing with Storm[J]. Journal of Computer Research and Development, 2018, 55(1): 71-92.
[38] MATTEIS T D, MENCAGLI G. Keep calm and react with foresight: strategies for low-latency and energy-efficient elastic data stream processing[J]. Journal of Systems and Software, 2016, 51(8):1-12.
[39] PAMLEY M R, ORRO J M, KEOWN W F, et al. Dynamic memory voltage scaling for power management: US, US20100250981[P]. 2010.
[40] 蒲勇霖, 于炯, 王躍飛, 等. 大數(shù)據(jù)流式計算環(huán)境下的閾值調(diào)控節(jié)能策略[J]. 計算機應(yīng)用, 2017, 37(6):1580-1586.
PU Y L, YU J, WANG Y F, et al. Energy-efficient strategy for threshold control in big data stream computing environment[J]. Journal of Computer Applications, 2017, 37(6):1580-1586.
[41] HONG S P, YOO S J. Dynamic voltage scaling method of CPU using workload estimator and computer readable medium storing the method: US, US7685446[P]. 2010.
[42] HWANG I, PEDRAM M. A comparative study of the effectiveness of CPU consolidation versus dynamic voltage and frequency scaling in a virtualized multicore server[J]. IEEE Transactions on Very Large Scale Integration Systems, 2016, 24(6):2103-2116.
[43] 林闖, 田源, 姚敏. 綠色網(wǎng)絡(luò)和綠色評價: 節(jié)能機制、模型和評價[J].計算機學報, 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.
[44] GRIFFITHS N. Nmon performance: A free tool to analyze AIX and Linux performance[EB/OL]. (2017-06-25)[2017-07-03]. http://www. ibm. com/ developerworks/aix/library/au-analyze aix.
Energy-efficient strategy for work node by DRAM voltage regulation in storm
PU Yonglin1, YU Jiong1,2, LU Liang2, BIAN Chen2, LIAO Bin3, LI Ziyang1,4
1. School of Software, Xinjiang University, Urumqi 830008, China 2. School of Information Science and Engineering, Xinjiang University, Urumqi 830046, China 3. School of Statistics and Information, Xinjiang University of Finance and Economics, Urumqi 830012, China 4. Xinjiang Runwu Network Limited Company, Urumqi 830002, China
Focused on the problem that traditional energy-efficient strategies never consider about the real time of data processing and transmission, models of directed acyclic graph, parallelism of instance, resource allocation for task and critical path were set up based on the features of data stream processing and the structure of storm cluster. Meanwhile, the WNDVR-storm (energy-efficient strategy for work node by dram voltage regulation in storm) was proposed according to the analysis of critical path and system performance, which included two energy-efficient algorithms aiming at whether there were any work nodes executing on the non-critical path of a topology. Finally, the appropriate threshold values fit for the CPU utilization of work node and the volume of transmitted data were determined based on the data processing and transmission constraints to dynamically regulate the DRAM voltage of the system. The experimental result shows that the strategy can reduce energy consumptioneffectively. Moreover, the fewer constraints are, the higher energy efficiency is.
big data, stream computing, storm, critical path, DRAM voltage, energy consumption
TP311
A
10.11959/j.issn.1000-436x.2018213
蒲勇霖(1991?),男,山東淄博人,新疆大學博士生,主要研究方向為內(nèi)存計算、流式計算、綠色計算等。
于炯(1964?),男,新疆烏魯木齊人,博士,新疆大學教授、博士生導師,主要研究方向為并行計算、分布式系統(tǒng)、綠色計算等。
魯亮(1990?),男,新疆烏魯木齊人,新疆大學博士生,主要研究方向為分布式系統(tǒng)、內(nèi)存計算、綠色計算。
卞?。?981?),男,江蘇南京人,博士,新疆大學副教授,主要研究方向為分布式系統(tǒng)、內(nèi)存計算、綠色計算等。
廖彬(1986?),男,新疆烏魯木齊人,博士,新疆財經(jīng)大學副教授、碩士生導師,主要研究方向為分布式系統(tǒng)、數(shù)據(jù)庫理論與技術(shù)、綠色計算等。
李梓楊(1993?),男,新疆烏魯木齊人,新疆大學碩士生,主要研究方向為流式計算、內(nèi)存計算等。
2017?07?18;
2017?12?25
蒲勇霖,puyonglin1991@foxmail.com
國家自然科學基金資助項目(No.61262088, No.61462079, No.61562086, No.61363083, No.61562078);國家科技部科技支撐項目(No.2015BAH02F01);新疆維吾爾自治區(qū)研究生科研創(chuàng)新項目(No.XJGRI2016028)
The National Natural Science Foundation of China (No.61262088, No.61462079, No.61562086, No.61363083, No. 61562078), The Science and Technology Support Projects of Ministry of National Science and Technology(No. 2015BAH02F01), The Research Innovation Project of Graduate Student in Xinjiang Uygur Autonomous Region (No. XJGRI2016028)