面向能耗的云工作流調度優(yōu)化方法
【技術領域】
[0001] 本發(fā)明涉及一種計算機技術、信息技術和系統(tǒng)工程領域,更具體的說,尤其涉及一 種面向能耗的云工作流調度優(yōu)化方法。
【背景技術】
[0002] 云計算環(huán)境下的工作流,簡稱"云工作流",是云計算與工作流相關技術的整合,能 有效提高云計算的服務質量,在需要高效計算性能和大規(guī)模存儲支撐的跨組織業(yè)務協(xié)作、 科學計算等領域具有廣泛的應用前景。在云計算環(huán)境下,通常配置有型號不一定相同的眾 多主機;工作流執(zhí)行時,通常以虛擬機作為計算資源的最小分配單位負責接收并處理工作 流任務,而虛擬機是建立在單臺主機中的,由主機給其分配計算能力、帶寬。云工作流調度 是指在滿足工作流任務時序和用戶需要約束下如何把工作流任務映射/分配到合適的云 計算資源(虛擬機)上,以及如何安排被分配到云計算資源(虛擬機)上的任務的執(zhí)行順 序。云工作流調度直接決定了整個云工作流系統(tǒng)的性能,已成為云工作流系統(tǒng)的一個重要 研究內容。當前大多數的云工作流調度/執(zhí)行優(yōu)化方法通常只關注執(zhí)行時間或成本的優(yōu) 化,很少考慮能耗因素,少數基于DVFS技術的云工作流執(zhí)行/調度優(yōu)化方法考慮了能耗因 素,但DVFS技術需要調整服務器CPU的運行電壓/頻率、反復關閉/重啟服務器,這會影響 服務器的性能,也會提升服務器組件的磨損率,進而引發(fā)服務器采購與替換成本的上升,在 實際使用中有一定的局限性。
【發(fā)明內容】
[0003] 本發(fā)明的目的就在于為了解決上述問題而提供了一種面向能耗的云工作流調度 優(yōu)化方法。
[0004] 本發(fā)明通過以下技術方案來實現上述目的:面向能耗的云工作流調度優(yōu)化方法, 包括如下步驟:
[0005] 步驟1 :建立面向能耗的云工作流過程模型和資源模型,獲得調度優(yōu)化所需的信 息。
[0006] 云工作流過程模型定義為:Φ = {T,E},T是云工作流過程模型中的任務t的集 合,E是一個有向邊(T中元素有序對)的集合,E中的每個有向邊被表示為e (Utj);在一個 e (t" t)中,h稱為t j的前繼任務,t」稱為t 土的后繼任務,t」只有在其前繼任務t ;被執(zhí)行 完成后才能被資源執(zhí)行;任務集T中的任務t被進一步描述為t = (id, length, IFL, 0FL); t. id是任務t的編號或名稱;t. length是任務t的執(zhí)行長度,即任務t被計算資源(虛擬 機)處理時需要耗費的指令數量;t. IFL是處理任務t時需要的輸入文件列表;t. OFL是任 務t被處理后產生的輸出文件列表。用file, size表示文件file的大小。
[0007] 云工作流資源模型被定義為:cr = (H, VM) ;cr. H是云計算環(huán)境下主機h的集合; cr. VM是云計算環(huán)境下虛擬機vm的集合。
[0008] 所述主機h被定義為:h = (id, ps, n , St) ;h. id是主機h的編號或名稱;h. PS是 主機h的計算能力;h. Tl是主機h的負載一功耗函數,根據《計算服務器功耗和性能特性 的工業(yè)標準》提供的數據采用線性內插法來計算獲得;h. St是主機h的當前狀態(tài),h. St = 〇表示當前主機h是空閑的,h. st = 1表示當前主機h正在處理任務,在s時刻主機h的狀 態(tài)用h. st (s)表示。
[0009] 所述虛擬機vm被定義為:vm = (id, hid, T, ps, bw, st) ;vm. id是虛擬機vm的編號 或名稱;vm. hid是虛擬機vm所在主機的編號或名稱;vm. T是虛擬機vm可以處理的工作流 任務集合;vm. ps是虛擬機vm的計算能力,由所在主機分配;vm. bw是虛擬機vm的帶寬,由 所在主機分配;vm. st是虛擬機vm的當前狀態(tài),vm. st = 0表示當前虛擬機vm空閑,vm. st =1表示當前虛擬機vm正在處理任務,在s時刻虛擬機vm的狀態(tài)用vm. st (s)表示;vm處 于1狀態(tài)時,其總是全力處理任務,其利用率為1,反之,vm處于0狀態(tài)時,虛擬機不處理任 務,其利用率為0。
[0010] 步驟2 :計算任務的優(yōu)先級(rank值)
[0011] 首先,計算處理任務^時的平均執(zhí)行時間^、需要從共享數據庫獲得輸入數據/ 文件的平均傳輸時間?;,及兩個連續(xù)任務在虛擬機間的數據/文件平均傳輸時間ζ。 [0012] 處理任務&時的平均執(zhí)行時間的計算方法如下:
[0014] 其中:VMi= {vm| t # vm. T}表示所有可以處理任務t ;的虛擬機集合。
[0015] 處理任務h時需要從共享數據庫獲得輸入數據/文件的平均傳輸時間ξ的計算 方法如下:
[0017] 從任務^到t j的數據/文件平均傳輸時間$的計算方法如下:
?
[0019] 其中:VMj= IvmIt jG vm.T}表示所有可以執(zhí)行任務、的虛擬機集合;
[0020] 然后,計算每個任務的優(yōu)先級,在工作流過程模型中對于沒有后繼任務的結束任 務tp其優(yōu)先級為:
[0022] 其它任務的優(yōu)先級采用如下遞歸公式進行計算:
[0024] 其中:succ (tj = ItIeUi, t) e E}是任務h的后繼任務集合;
[0025] 步驟3 :從任務集T中取出一個優(yōu)先級最高的任務t,找出可以執(zhí)行任務t的虛擬 機集合VMt,計算把任務t分別分配給VM t中的每個虛擬機后完成包括t在內的所有已分配 任務{V i,…,t' J將消耗的能耗
[0026] 所述計算方法如下:
[0028] 其中.?為任務C丨,…,C m的完成時間,VMh= {vm I vm. hid = h. id}是 創(chuàng)建在主機h中的虛擬機集合。
[0029] 步驟4 :找出消耗能耗最小的vm,如果最小的只有一個,把t分配給此vm,如有多 個最小的,則計算這些vm開始處理任務t時所在主機h的性能功率比ξ h (s)(其中s是虛 擬機vm開始處理任務t的時刻),把t分配給能耗消耗最小當中其所在主機性能功耗比最 高的;把任務t從任務集T中刪除,若任務集T不為空則轉到步驟3,否則轉到步驟5 ;
[0030] 所述虛擬機vm開始處理任務t時其所在主機h的性能功率比ξ h (s)計算如下:
[0032] 步驟5 :輸出工作流調度(任務分配)方案。
[0033] 在步驟1中,若任務h是任務t j的前繼任務,那么任務t ;執(zhí)行后廣生的輸出文件 中至少有一個是任務tj執(zhí)行所需要的輸入文件,SP : V氣/ e五,ti. OFL n IFL辛Φ。
[0034] 在步驟1中,所述主機狀態(tài)為0的充要條件是:主機中的所有虛擬機都沒有處理任 務處于〇狀態(tài),形式化表示為:
主機狀態(tài)為1的充要條件是:主機 中有虛擬機在處理任務處于1狀態(tài),形式化表示為
[0035] 在步驟1中,所述任務執(zhí)行長度與虛擬機的處理能力共同影響著虛擬機執(zhí)行任務 的時間。任務t在虛擬機vm上的執(zhí)行時間為:
[0037] 在步驟1中,所述文件大小與虛擬機帶寬共同影響著文件在不同虛擬機或虛擬機 與共享文件系統(tǒng)之間的傳輸時間。
[0038] 文件在虛擬機Vmi,Vmj間傳輸文件f i I e所需的時間為:
[0040] 文件在虛擬機Vm1與共享數據庫間傳輸file所需的時間為:
[0042] 本發(fā)明的有益效果在于:
[0043] (1)在云工作流資源模型中包含能耗因素的描述,建立了云工作流任務執(zhí)行、虛 擬機狀態(tài)和主機負載之間的關系,根據《計算服務器功耗和性能特性的工業(yè)標準》(The SPECpower benchmark)提供的數據采用線性內插法來計算建立了主機負載與功耗之間的 關系,實現了基于負載的能耗計算方法。
[0044] (2)在任務優(yōu)先級計算及任務選擇時考慮了任務處理時文件在不同虛擬機間傳輸 的速度差異、虛擬機與本地共享數據庫間的文件傳輸等因素,更符合實際情況,在資源選擇 時,采用了能耗消耗最小的規(guī)則,在保持工作流執(zhí)行時間效率的同時有效降低主機處理任 務所消耗的能耗。
[0045] (3)從主機負載與功耗關系角度,進行能耗的計算與調度優(yōu)化方法,不需要通過調 整主機CPU的運行電壓/頻率、反復關閉/重啟主機來實現能耗優(yōu)化,不會影響主機的性 能,也不會提升主機組件的磨損率,使用限制更少、范圍更廣。
【附圖說明】
[0046] 圖1 一個CyberSha