本發(fā)明涉及虛擬化云計算領(lǐng)域,特別地,涉及一種云計算系統(tǒng)中隨機(jī)事件觸發(fā)的實時工作流調(diào)度方法。
背景技術(shù):
云計算已成為分布式計算的新工作模式。在這種模式下,云供應(yīng)商以即用即付費的方式,按需為用戶提供服務(wù),包括應(yīng)用、平臺與計算資源等。從用戶的角度來看,云模式的費用較低,因為用戶只需為他們的實際使用付費;同時,用戶還可以按需使用資源,因此云模式具有良好的擴(kuò)展性。云計算已被應(yīng)用到越來越多領(lǐng)域,包括銀行、電子商務(wù)、零售業(yè)與科研機(jī)構(gòu)。值得注意的是,這些領(lǐng)域中的應(yīng)用通常包括許多相互約束的計算任務(wù)(即工作流任務(wù))。由于任務(wù)之間存在約束關(guān)系,導(dǎo)致虛擬機(jī)在執(zhí)行相連兩個任務(wù)之間可能會存在空閑時隙,這會使得虛擬機(jī)的資源得不到充分的利用。此外,云系統(tǒng)中的低資源利用率也會造成費用的浪費,對于大規(guī)模公司,提高資源利用率能夠明顯地節(jié)約成本。
高效的調(diào)度算法能夠解決上述問題。目前,已經(jīng)有大量的工作致力于研究云計算系統(tǒng)的工作流調(diào)度方法;然而現(xiàn)有的調(diào)度方法都基于準(zhǔn)確的任務(wù)執(zhí)行時間和任務(wù)之間的通信時間。在實際的云計算環(huán)境中,任務(wù)執(zhí)行時間通常不能被準(zhǔn)確預(yù)測,而實際值只有在任務(wù)完成后才能獲得。這可能由以下兩個原因造成:①任務(wù)通常包含條件性指令——并行應(yīng)用程序可能包含多個選擇和條件語句,不同的輸入將運行應(yīng)用中不同的分支和循環(huán),而不同的分支或循環(huán)就意味著不同的指令數(shù),這將導(dǎo)致相同的任務(wù)面對不同的數(shù)據(jù)輸入,可能導(dǎo)致不同的任務(wù)運行時間;②云環(huán)境中虛擬機(jī)的性能具有不確定性——借助先進(jìn)的虛擬化技術(shù),多個虛擬機(jī)可以同時共享一臺物理主機(jī)的硬件資源,而這種資源共享會導(dǎo)致虛擬機(jī)之間的資源沖突,從而造成虛擬機(jī)的性能具有不確定性。
由于云計算環(huán)境的動態(tài)性和隨機(jī)性,眾多的不確定因素(如任務(wù)執(zhí)行時間的波動、虛擬機(jī)性能的變化、新工作流的到達(dá)等)將會出現(xiàn),使得預(yù)先安排的調(diào)度方案不能被嚴(yán)格執(zhí)行。而絕大多數(shù)的研究并沒有考慮這些動態(tài)和隨機(jī)因素,這可能會造成調(diào)度方案的實際運行效果與預(yù)期的效果相差甚遠(yuǎn)。針對現(xiàn)有技術(shù)中預(yù)先安排的調(diào)度方案在不確定因素的作用下不能被嚴(yán)格執(zhí)行的問題,目前尚未有有效的解決方案。
技術(shù)實現(xiàn)要素:
有鑒于此,本發(fā)明的目的在于提出一種云計算系統(tǒng)中隨機(jī)事件觸發(fā)的實時工作流調(diào)度方法,能夠減緩不確定因素對執(zhí)行調(diào)度方案的影響,在保證工作流時效性的條件下,提高虛擬機(jī)的資源利用率、降低云服務(wù)提供商的成本。
基于上述目的,本發(fā)明提供的技術(shù)方案如下:
根據(jù)本發(fā)明的一個方面,提供了一種云計算系統(tǒng)中隨機(jī)事件觸發(fā)的實時工作流調(diào)度方法,包括:
獲取虛擬化云中的虛擬機(jī)信息與工作流信息;
持續(xù)獲取虛擬機(jī)上的任務(wù)完成信息與新到達(dá)的工作流信息,并在虛擬機(jī)上以成本、資源利用率和調(diào)度方案波動性作為調(diào)度目標(biāo),對工作流任務(wù)進(jìn)行動態(tài)調(diào)度;
完成全部任務(wù)并返回任務(wù)結(jié)果。
其中,虛擬機(jī)信息包括:啟用虛擬機(jī)的數(shù)量、每臺虛擬機(jī)的性能與價格、每兩臺虛擬機(jī)間的通信帶寬;工作流信息包括:該工作流的到達(dá)時間、截止時間與結(jié)構(gòu),其中,結(jié)構(gòu)為表明該工作流中所有任務(wù)之間依賴關(guān)系的有向無環(huán)圖;工作流中每個任務(wù)的執(zhí)行時間符合獨立正態(tài)分布。
并且,持續(xù)獲取虛擬機(jī)上的任務(wù)完成信息,并在虛擬機(jī)上以成本、資源利用率和調(diào)度方案波動性作為調(diào)度目標(biāo),對工作流任務(wù)進(jìn)行動態(tài)調(diào)度包括:
將未調(diào)度的任務(wù)置于任務(wù)池中等待處理;
持續(xù)獲取虛擬機(jī)上的任務(wù)完成信息,并根據(jù)虛擬機(jī)信息與任務(wù)信息,生成任務(wù)池中等待任務(wù)與虛擬機(jī)的映射關(guān)系;
根據(jù)虛擬機(jī)信息與虛擬機(jī)利用情況調(diào)整虛擬機(jī)的數(shù)量;
根據(jù)任務(wù)池中的等待任務(wù)與虛擬機(jī)之間的映射關(guān)系,將任務(wù)分配到對應(yīng)的虛擬機(jī)中。
并且,每個工作流的所有任務(wù)的完成時間的最大值不應(yīng)超過工作流的截止時間;對于依賴任務(wù),后繼任務(wù)的開始時間不應(yīng)早于前驅(qū)任務(wù)的完成時間與前驅(qū)任務(wù)所在虛擬機(jī)和后繼任務(wù)所在虛擬機(jī)之間的數(shù)據(jù)傳輸時間之和。
同時,根據(jù)虛擬機(jī)信息與任務(wù)信息,以虛擬機(jī)成本最小化、虛擬機(jī)資源利用率最大化、波動最小化為優(yōu)化目標(biāo),生成任務(wù)池中等待任務(wù)與虛擬機(jī)的映射關(guān)系。
同時,根據(jù)虛擬機(jī)信息與任務(wù)信息將任務(wù)池中的任務(wù)與虛擬機(jī)建立映射關(guān)系包括:
完成任務(wù)的虛擬機(jī)若存在等待任務(wù),則執(zhí)行其等待任務(wù);
當(dāng)被完成任務(wù)的后置任務(wù)的所有前驅(qū)任務(wù)已經(jīng)被映射到虛擬機(jī)上時,將被完成任務(wù)的后置任務(wù)標(biāo)記為就緒任務(wù)并移出任務(wù)池;
選定工作流中的就緒任務(wù)按照期望最晚完成時間從小到大進(jìn)行排序;
按照排序順序?qū)⑺芯途w任務(wù)依次與虛擬機(jī)建立映射關(guān)系。
并且,就緒任務(wù)為不存在前驅(qū)任務(wù)的任務(wù);或其所有前驅(qū)任務(wù)都已經(jīng)被映射到虛擬機(jī),且至少一個前驅(qū)任務(wù)已經(jīng)被完成的任務(wù)。
同時,按照排序順序?qū)⑺芯途w任務(wù)依次與虛擬機(jī)建立映射關(guān)系包括:判斷是否存在一臺虛擬機(jī)能在期望最晚完成時間之內(nèi)以最小期望費用完成被調(diào)度的任務(wù),若是,則將任務(wù)與該虛擬機(jī)建立映射關(guān)系;若否,則租賃一臺能以最小期望費用在期望最晚完成時間之內(nèi)完成被調(diào)度的任務(wù)的新虛擬機(jī),并將任務(wù)與該虛擬機(jī)建立映射關(guān)系。
另外,持續(xù)獲取新到達(dá)的工作流信息,并在虛擬機(jī)上以成本、資源利用率和調(diào)度方案波動性作為調(diào)度目標(biāo),對工作流任務(wù)進(jìn)行動態(tài)調(diào)度包括:
獲取新到達(dá)工作流中的任務(wù)信息,并將任務(wù)置于任務(wù)池中等待處理;
根據(jù)虛擬機(jī)信息與任務(wù)信息,生成任務(wù)池中等待任務(wù)與虛擬機(jī)的映射關(guān)系;
根據(jù)虛擬機(jī)信息與虛擬機(jī)利用情況調(diào)整虛擬機(jī)的數(shù)量;
根據(jù)任務(wù)池中的任務(wù)與虛擬機(jī)之間的映射關(guān)系,將任務(wù)分配到對應(yīng)的虛擬機(jī)中。
并且,每個工作流的所有任務(wù)的完成時間的最大值不應(yīng)超過工作流的截止時間;對于依賴任務(wù),后繼任務(wù)的開始時間不應(yīng)早于前驅(qū)任務(wù)的完成時間與前驅(qū)任務(wù)所在虛擬機(jī)和后繼任務(wù)所在虛擬機(jī)之間的數(shù)據(jù)傳輸時間之和。
同時,根據(jù)虛擬機(jī)信息與任務(wù)信息,以虛擬機(jī)成本最小化、虛擬機(jī)資源利用率最大化、波動最小化為優(yōu)化目標(biāo),生成任務(wù)池中等待任務(wù)與虛擬機(jī)的映射關(guān)系。
同時,根據(jù)虛擬機(jī)信息與任務(wù)信息將任務(wù)池中的任務(wù)與虛擬機(jī)建立映射關(guān)系包括:
分別判斷工作流在任務(wù)池中的每個任務(wù)是否為就緒任務(wù);
選定工作流中的就緒任務(wù)按照期望最晚完成時間從小到大進(jìn)行排序;
按照排序順序?qū)⑺芯途w任務(wù)依次與虛擬機(jī)建立映射關(guān)系。
并且,就緒任務(wù)為不存在前驅(qū)任務(wù)的任務(wù);或其所有前驅(qū)任務(wù)都已經(jīng)被映射到虛擬機(jī),且至少一個前驅(qū)任務(wù)已經(jīng)被完成的任務(wù)。
同時,按照排序順序?qū)⑺芯途w任務(wù)依次與虛擬機(jī)建立映射關(guān)系包括:判斷是否存在一臺虛擬機(jī)能在期望最晚完成時間之內(nèi)以最小期望費用完成被調(diào)度的任務(wù),若是,則將任務(wù)與該虛擬機(jī)建立映射關(guān)系;若否,則租賃一臺能以最小期望費用在期望最晚完成時間之內(nèi)完成被調(diào)度的任務(wù)的新虛擬機(jī),并將任務(wù)與該虛擬機(jī)建立映射關(guān)系。
從上面所述可以看出,本發(fā)明提供的技術(shù)方案通過使用虛擬機(jī)上任務(wù)的完成信息與新到達(dá)的工作流信息作為執(zhí)行調(diào)度方法的觸發(fā)條件,根據(jù)成本、資源利用率和調(diào)度方案的波動性作為調(diào)度目標(biāo),對工作流任務(wù)進(jìn)行動態(tài)調(diào)度的技術(shù)手段,能夠減緩不確定因素對執(zhí)行調(diào)度方案的影響,并在保證工作流時效性的條件下,提高虛擬機(jī)的資源利用率、降低云服務(wù)提供商的成本。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為根據(jù)本發(fā)明實施例的一種云計算系統(tǒng)中隨機(jī)事件觸發(fā)的實時工作流調(diào)度方法的流程圖;
圖2為根據(jù)本發(fā)明實施例的一種云計算系統(tǒng)中隨機(jī)事件觸發(fā)的實時工作流調(diào)度方法的詳細(xì)流程圖;
圖3(a)為根據(jù)本發(fā)明實施例的一種云計算系統(tǒng)中隨機(jī)事件觸發(fā)的實時工作流調(diào)度方法中,PRS、SHEFT和RTC三種算法的總成本-方差柱狀對比圖;
圖3(b)為根據(jù)本發(fā)明實施例的一種云計算系統(tǒng)中隨機(jī)事件觸發(fā)的實時工作流調(diào)度方法中,PRS、SHEFT和RTC三種算法的資源利用率-方差柱狀對比圖;
圖3(c)為根據(jù)本發(fā)明實施例的一種云計算系統(tǒng)中隨機(jī)事件觸發(fā)的實時工作流調(diào)度方法中,PRS、SHEFT和RTC三種算法的調(diào)度偏差-方差柱狀對比圖。
具體實施方式
為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚明白,下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)一步進(jìn)行清楚、完整、詳細(xì)地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
根據(jù)本發(fā)明的實施例,提供了一種云計算系統(tǒng)中隨機(jī)事件觸發(fā)的實時工作流調(diào)度方法。
如圖1所示,根據(jù)本發(fā)明實施例的提供的一種云計算系統(tǒng)中隨機(jī)事件觸發(fā)的實時工作流調(diào)度方法包括:
步驟S101,獲取虛擬化云中的虛擬機(jī)信息與工作流信息;
步驟S103,持續(xù)獲取虛擬機(jī)上的任務(wù)完成信息與新到達(dá)的工作流信息,并在虛擬機(jī)上以成本、資源利用率和調(diào)度方案波動性作為調(diào)度目標(biāo),對工作流任務(wù)進(jìn)行動態(tài)調(diào)度;
步驟S105,完成全部任務(wù)并返回任務(wù)結(jié)果。
其中,虛擬機(jī)信息包括:啟用虛擬機(jī)的數(shù)量、每臺虛擬機(jī)的性能與價格、每兩臺虛擬機(jī)間的通信帶寬;工作流信息包括:該工作流的到達(dá)時間、截止時間與結(jié)構(gòu),其中,結(jié)構(gòu)為表明該工作流中所有任務(wù)之間依賴關(guān)系的有向無環(huán)圖;工作流中每個任務(wù)的執(zhí)行時間符合獨立正態(tài)分布。
并且,持續(xù)獲取虛擬機(jī)上的任務(wù)完成信息,并在虛擬機(jī)上以成本、資源利用率和調(diào)度方案波動性作為調(diào)度目標(biāo),對工作流任務(wù)進(jìn)行動態(tài)調(diào)度包括:
將未調(diào)度的任務(wù)置于任務(wù)池中等待處理;
持續(xù)獲取虛擬機(jī)上的任務(wù)完成信息,并根據(jù)虛擬機(jī)信息與任務(wù)信息,生成任務(wù)池中等待任務(wù)與虛擬機(jī)的建立映射關(guān)系;
根據(jù)虛擬機(jī)信息與虛擬機(jī)利用情況調(diào)整虛擬機(jī)的數(shù)量;
根據(jù)任務(wù)池中的任務(wù)與虛擬機(jī)之間的映射關(guān)系,將任務(wù)分配到對應(yīng)的虛擬機(jī)中。
并且,每個工作流的所有任務(wù)的完成時間的最大值不應(yīng)超過工作流的截止時間;對于依賴任務(wù),后繼任務(wù)的開始時間不應(yīng)早于前驅(qū)任務(wù)的完成時間與前驅(qū)任務(wù)所在虛擬機(jī)和后繼任務(wù)所在虛擬機(jī)之間的數(shù)據(jù)傳輸時間之和。
同時,根據(jù)虛擬機(jī)信息與任務(wù)信息,以虛擬機(jī)成本最小化、虛擬機(jī)資源利用率最大化、波動最小化為優(yōu)化目標(biāo),生成任務(wù)池中等待任務(wù)與虛擬機(jī)的映射關(guān)系。
同時,根據(jù)虛擬機(jī)信息與任務(wù)信息將任務(wù)池中的任務(wù)與虛擬機(jī)建立映射關(guān)系包括:
完成任務(wù)的虛擬機(jī)若存在等待任務(wù),則執(zhí)行其等待任務(wù);
當(dāng)被完成任務(wù)的后置任務(wù)的所有前驅(qū)任務(wù)已經(jīng)被映射到虛擬機(jī)上時,將被完成任務(wù)的后置任務(wù)標(biāo)記為就緒任務(wù)并移出任務(wù)池;
選定工作流中的就緒任務(wù)按照期望最晚完成時間從小到大進(jìn)行排序;
按照排序順序?qū)⑺芯途w任務(wù)依次與虛擬機(jī)建立映射關(guān)系。
并且,就緒任務(wù)為不存在前驅(qū)任務(wù)的任務(wù);或其所有前驅(qū)任務(wù)都已經(jīng)被映射到虛擬機(jī),且至少一個前驅(qū)任務(wù)已經(jīng)被完成的任務(wù)。
同時,按照排序順序?qū)⑺芯途w任務(wù)依次與虛擬機(jī)建立映射關(guān)系包括:判斷是否存在一臺虛擬機(jī)能在期望最晚完成時間之內(nèi)以最小期望費用完成被調(diào)度的任務(wù),若是,則將任務(wù)與該虛擬機(jī)建立映射關(guān)系;若否,則租賃一臺能以最小期望費用在期望最晚完成時間之內(nèi)完成被調(diào)度的任務(wù)的新虛擬機(jī),并將任務(wù)與該虛擬機(jī)建立映射關(guān)系。
另外,持續(xù)獲取新到達(dá)的工作流信息,并在虛擬機(jī)上以成本、資源利用率和調(diào)度方案波動性作為調(diào)度目標(biāo),對工作流任務(wù)進(jìn)行動態(tài)調(diào)度包括:
獲取新到達(dá)工作流中的任務(wù)信息,并將任務(wù)置于任務(wù)池中等待處理;
根據(jù)虛擬機(jī)信息與任務(wù)信息,生成任務(wù)池中等待任務(wù)與虛擬機(jī)的映射關(guān)系;
根據(jù)虛擬機(jī)信息與虛擬機(jī)利用情況調(diào)整虛擬機(jī)的數(shù)量;
根據(jù)任務(wù)池中的任務(wù)與虛擬機(jī)之間的映射關(guān)系,將任務(wù)分配到對應(yīng)的虛擬機(jī)中。
并且,每個工作流的所有任務(wù)的完成時間的最大值不應(yīng)超過工作流的截止時間;對于依賴任務(wù),后繼任務(wù)的開始時間不應(yīng)早于前驅(qū)任務(wù)的完成時間與前驅(qū)任務(wù)所在虛擬機(jī)和后繼任務(wù)所在虛擬機(jī)之間的數(shù)據(jù)傳輸時間之和。
同時,根據(jù)虛擬機(jī)信息與任務(wù)信息,以虛擬機(jī)成本最小化、虛擬機(jī)資源利用率最大化、波動最小化為優(yōu)化目標(biāo),生成任務(wù)池中等待任務(wù)與虛擬機(jī)的映射關(guān)系。
同時,根據(jù)虛擬機(jī)信息與任務(wù)信息將任務(wù)池中的任務(wù)與虛擬機(jī)建立映射關(guān)系包括:
分別判斷工作流在任務(wù)池中的每個任務(wù)是否為就緒任務(wù);
選定工作流中的就緒任務(wù)按照期望最晚完成時間從小到大進(jìn)行排序;
按照排序順序?qū)⑺芯途w任務(wù)依次與虛擬機(jī)建立映射關(guān)系。
并且,就緒任務(wù)為不存在前驅(qū)任務(wù)的任務(wù);或其所有前驅(qū)任務(wù)都已經(jīng)被映射到虛擬機(jī),且至少一個前驅(qū)任務(wù)已經(jīng)被完成的任務(wù)。
同時,按照排序順序?qū)⑺芯途w任務(wù)依次與虛擬機(jī)建立映射關(guān)系包括:判斷是否存在一臺虛擬機(jī)能在期望最晚完成時間之內(nèi)以最小期望費用完成被調(diào)度的任務(wù),若是,則將任務(wù)與該虛擬機(jī)建立映射關(guān)系;若否,則租賃一臺能以最小期望費用在期望最晚完成時間之內(nèi)完成被調(diào)度的任務(wù)的新虛擬機(jī),并將任務(wù)與該虛擬機(jī)建立映射關(guān)系。
下面根據(jù)具體實施例,進(jìn)一步闡述本發(fā)明的技術(shù)特征。
云計算平臺提供多種類型的虛擬機(jī),虛擬機(jī)類型集合記為S={s1,s2,…,sm},其中,每一個虛擬機(jī)類型su∈S都有一個特定的配置和價格。不同類型虛擬機(jī)的配置差異主要體現(xiàn)在,處理器性能、內(nèi)存、存儲、網(wǎng)絡(luò)和操作系統(tǒng)等方面。每一個su都有一個與它相關(guān)的價格,記為Price(su)。在本實施例中,虛擬機(jī)的使用時間以小時為單位,不夠一個小時的那部分時間按照一個小時來計費。例如,虛擬機(jī)使用了5.1個小時,那么就算使用了6個小時。本實施例使用符號表示云計算平臺中的第k臺虛擬機(jī),且該虛擬機(jī)的類型為su。
在云計算環(huán)境中,虛擬機(jī)可以運行在不同的數(shù)據(jù)中心,虛擬機(jī)之間底層網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)非常復(fù)雜。不失一般性地,本實施例使用參數(shù)lkl表示虛擬機(jī)和虛擬機(jī)之間的通信帶寬,且不考慮網(wǎng)絡(luò)擁塞。
本實施例關(guān)注非周期的、動態(tài)的工作流,工作流表示為W={w1,w2,…,wm}。對于任意一個工作流應(yīng)用wi∈W,可以建模為wi={ai,di,Gi},其中ai,di和Gi分別表示工作流wi的到達(dá)時間、截止期和結(jié)構(gòu)。另外,工作流的結(jié)構(gòu)Gi可以進(jìn)一步表示為有向無環(huán)圖(Directed Acyclic Graph,簡寫為DAG)Gi=(Ti,Ei),其中是頂點的集合,頂點tij表示工作流wi中的第j個任務(wù),i表示任務(wù)間的有向邊集合。如果任務(wù)tip和任務(wù)tij之間存在數(shù)據(jù)依賴關(guān)系,那么有向邊就存在,且稱tip是任務(wù)tij的直接前驅(qū)任務(wù),而tij是任務(wù)tip的直接后繼任務(wù)。符號pred(tij)表示任務(wù)tij所有直接前驅(qū)任務(wù)組成的集合,符號succ(tij)表示任務(wù)tij所有直接后繼任務(wù)組成的集合。
本實施例設(shè)計了一個面向云平臺的不確定感知的調(diào)度架構(gòu),該平臺由用戶層、調(diào)度層和資源層組成:用戶層動態(tài)地向云服務(wù)提供商提交工作流;調(diào)度層根據(jù)一定的目標(biāo)和資源的預(yù)測性能,負(fù)責(zé)生成任務(wù)與虛擬機(jī)的映射方案;資源層包括大規(guī)模異構(gòu)虛擬機(jī),且虛擬機(jī)可以動態(tài)增加和減少。
調(diào)度層包括一個任務(wù)池(Task Pool,簡寫為TP)、一個調(diào)度分析器、一個資源控制器與一個任務(wù)控制器。其中,TP容納大部分的等待任務(wù);調(diào)度分析器負(fù)責(zé)生成虛擬機(jī)調(diào)整的計劃及TP中等待任務(wù)與虛擬機(jī)的映射方案;計算資源調(diào)整方案包括何時添加/刪除不同類型的虛擬機(jī),并由資源控制器來實施這些方案;任務(wù)控制器動態(tài)分配TP中的等待任務(wù)到對應(yīng)的虛擬機(jī)。
該調(diào)度架構(gòu)的獨特的特點是,大部分任務(wù)在TP中等待,而不是直接放置到虛擬機(jī)。只有那些已經(jīng)映射到虛擬機(jī)上的任務(wù),才會被放置到虛擬機(jī)上。
此調(diào)度架構(gòu)的主要優(yōu)勢包括:
①可以阻斷不確定因素在調(diào)度方案中傳播。由于只有被調(diào)度的任務(wù)才允許在虛擬機(jī)上等待,執(zhí)行任務(wù)的不確定性只能轉(zhuǎn)移到同一個虛擬機(jī)上的等待任務(wù)上。當(dāng)執(zhí)行任務(wù)完成時,就不再存在不確定性,并且在該虛擬機(jī)上的后續(xù)等待任務(wù)將不會受到影響。
②這個設(shè)計使通信和計算時間重疊。當(dāng)一個虛擬機(jī)正在執(zhí)行任務(wù),這個虛擬機(jī)可以同時接收一個新的任務(wù)作為等待任務(wù),通過重疊通信和計算來節(jié)省時間。
在本發(fā)明中,變量xij,k被用來表示任務(wù)tij與虛擬機(jī)的映射關(guān)系。如果任務(wù)tij被映射到虛擬機(jī)那么xij,k為1,否則為0,即:
定義1:分配給任務(wù)tij的虛擬機(jī)的索引定義為r(tij)。例如,如果工作流w1中的任務(wù)t12被調(diào)度到虛擬機(jī)上,那么r(t12)=8。
由于任務(wù)的執(zhí)行時間是隨機(jī)變量,在調(diào)度工作流時,我們使用它們執(zhí)行時間的α分位點。符號表示任務(wù)tij在虛擬機(jī)上執(zhí)行時間的α分位點;符號pstij,k和pftij,k分別用來表示任務(wù)的期望開始時間和期望結(jié)束時間。期望開始時間pstij,k可由以下式子計算:
其中,pftlh,k表示任務(wù)tlh的期望完成時間,任務(wù)tlh是當(dāng)前虛擬機(jī)的最后一個任務(wù),表示任務(wù)間的數(shù)據(jù)傳輸時間。
任務(wù)tij在虛擬機(jī)上期望完成時間pftij,k可表示為:
當(dāng)工作流wi中所有任務(wù)都被調(diào)度后,工作流wi期望完成時間定義為:
當(dāng)任務(wù)完成后,它們的實際開始時間、執(zhí)行時間和完成時間就可以獲得。符號rstij,k、retij,k和rftij,k分別表示任務(wù)tij在虛擬機(jī)上的實際開始時間、執(zhí)行時間和完成時間。例如在調(diào)度時,任務(wù)t11在虛擬機(jī)上的執(zhí)行時間假設(shè)為et11,2~N(120,102)秒,和et11,2的0.9分位點是秒;當(dāng)任務(wù)t11在虛擬機(jī)上完成后,實際的完成時間rft11,2可能是135秒。工作流wi實際的完成時間可定義為:
在不確定調(diào)度環(huán)境中,工作流wi的實際完成時間rfti決定它的時效性是否得到保障。因此,我們有以下約束:
由于工作流中任務(wù)之間的前后約束關(guān)系,一個任務(wù)只有接收到所有前驅(qū)任務(wù)的數(shù)據(jù)才能開始運行。因此存在以下約束:
滿足以上約束,如式子(6)和(7)所示,首要優(yōu)化目標(biāo)是最小化完成工作流集合W的成本:
其中,|VM|表示運行工作流集合的虛擬機(jī)數(shù)量,tpk是虛擬機(jī)的工作周期。
除了總成本,資源利用率也是衡量云計算平臺性能的一個重要指標(biāo)。因此,另一個優(yōu)化目標(biāo)是最大化虛擬機(jī)的平均資源利用率,表示如下:
其中,wtk和ttk分別表示虛擬機(jī)在運行工作流集合W過程中的工作時間和總活躍時間,總活躍時間包括工作時間和空閑時間。
在不確定計算環(huán)境中,另外一個需要優(yōu)化的目標(biāo)是最小化波動成本函數(shù),定義為工作流實際完成時間與期望值差的絕對值的加權(quán)和的均值,表示如下:
其中,wi表示工作流實際完成時間與期望值差的邊緣成本。
本實施例提出了一個兼具前攝性調(diào)度和反應(yīng)式策略的啟發(fā)式算法,以較低的計算開銷獲得近似最優(yōu)調(diào)度方案,其中,前攝性調(diào)度是用來建立基于冗余的基準(zhǔn)調(diào)度方案,任務(wù)執(zhí)行時間的分位點被用來近似任務(wù)的執(zhí)行時間;反應(yīng)式策略將被動態(tài)觸發(fā)來生成新的前攝性調(diào)度方案,以應(yīng)對工作流運行中的各種干擾。當(dāng)有虛擬機(jī)完成一個任務(wù)時,反應(yīng)式策略將被觸發(fā)。
任務(wù)調(diào)度中的一個重要問題是如何對任務(wù)進(jìn)行排序。在本實施例中,任務(wù)池中的所有任務(wù)將被按照其期望的最晚開始時間plstij進(jìn)行排序。對于每一個任務(wù),其期望的最晚開始時間plstij定義為最晚時間點,如果該任務(wù)在該時間點之后開始,工作流的期望完成時間pfti將大于它的截止期di。
定義2:任務(wù)tij的期望最晚開始時間plstij可以遞歸計算如下:
其中,succ(tij)表示任務(wù)tij的所有直接前驅(qū)任務(wù),表示任務(wù)tij執(zhí)行時間α分位點的最小值。
根據(jù)以上定義,任務(wù)期望的最晚完成時間plftij可以計算如下:
定義3:就緒任務(wù)是指:一個任務(wù)沒有任何前驅(qū)任務(wù),即或其所有前驅(qū)任務(wù)都已經(jīng)被映射到虛擬機(jī),且至少一個前驅(qū)任務(wù)已經(jīng)完成。
任務(wù)tij在虛擬機(jī)上的期望成本定義為:
其中,prtk表示虛擬機(jī)可用的期望時間。
在云計算平臺的實際運行中,由于工作流的到達(dá)時間和虛擬機(jī)上任務(wù)的完成時間具有不確定性。我們將實時工作流的到達(dá)和一個任務(wù)的完成視為隨機(jī)事件。當(dāng)這些隨機(jī)事件發(fā)生后,算法PRS將觸發(fā)來動態(tài)調(diào)度就緒任務(wù)到虛擬機(jī)上。具體來講,如果新工作流到達(dá)時,根據(jù)定義3,沒有前驅(qū)的任務(wù)是就緒任務(wù),這些任務(wù)將被算法PRS映射到虛擬機(jī)上,其它未就緒任務(wù)將被加入到任務(wù)池中等待。另外,當(dāng)虛擬機(jī)完成一個任務(wù)時,根據(jù)定義3,剛被完成任務(wù)的后繼任務(wù)可能會變成就緒任務(wù),那么算法PRS將被觸發(fā)來調(diào)度剛變?yōu)榫途w的任務(wù)到虛擬機(jī)上。
如圖2所示,算法PRS的執(zhí)行步驟如下:
第一步,初始化:初始化系統(tǒng)中可用的虛擬機(jī)為vmList;虛擬機(jī)類型集合S為S={s1,s2,…,sm};任務(wù)池(TP)中的任務(wù)集合為taskPool;就緒任務(wù)集合readyTL為空,即
第二步,監(jiān)控虛擬化云中工作流到達(dá)和虛擬機(jī)完成任務(wù)的隨機(jī)事件,如果是新工作流到達(dá),則轉(zhuǎn)第三步;如果是虛擬機(jī)完成一個任務(wù)tij,則轉(zhuǎn)第四步;
第三步,計算新工作流中每個任務(wù)的最晚期望開始時間plstij和期望完成時間plftij;將就緒任務(wù)加到readyTL中;并將非就緒任務(wù)加入到任務(wù)池taskPool中,即taskPool←taskPool∪{Ti\readyTL};轉(zhuǎn)第七步;
第四步,運行虛擬機(jī)上的等待任務(wù)。如果虛擬機(jī)上存在等待任務(wù),且該任務(wù)收到其所有前驅(qū)任務(wù)的輸出數(shù)據(jù),則運行該等待任務(wù);轉(zhuǎn)第五步;
第五步,找出剛變?yōu)榫途w的等待任務(wù),方法是:
5.1初始化剛被完成任務(wù)為tij,其直接后繼任務(wù)的索引為s←1;任務(wù)tij直接后繼任務(wù)集合為succ(tij);任務(wù)tij直接后繼任務(wù)的數(shù)量N,即N=|succ(tij)|;
5.2判斷s>N是否成立,如果成立,則轉(zhuǎn)第六步;否則執(zhí)行5.3步;
5.3根據(jù)定義3,判斷任務(wù)tis∈succ(tij)是否變?yōu)榫途w,如果成立,則將任務(wù)tis加到就緒任務(wù)集合readyTL中,即readyTL←readyTL∪{tis},轉(zhuǎn)5.4步;否則,直接轉(zhuǎn)5.4步;
5.4更新后繼任務(wù)的索引為s←s+1,轉(zhuǎn)5.2步;
第六步,將就緒任務(wù)readyTL從任務(wù)池(TP)中移除,即taskPool←taskPool\readyTL,轉(zhuǎn)第七步;
第七步,將每個就緒任務(wù)調(diào)度到虛擬機(jī)上,方法是:
7.1對readyTL中所有的就緒任務(wù),根據(jù)期望最晚開始時間plstij進(jìn)行升序排序;
7.2初始化就緒任務(wù)的數(shù)量為R,即R=|readyTL|;就緒任務(wù)的索引為s←1;轉(zhuǎn)7.3步;
7.3判斷s>R是否成立,如果成立,清空就緒任務(wù)列表,即則轉(zhuǎn)第二步;否則,從readyTL取出第個s任務(wù),記為tis,轉(zhuǎn)7.4步;
7.4將任務(wù)tis調(diào)度到已經(jīng)開啟的虛擬機(jī)上,方法是:
7.4.1虛擬機(jī)的索引為k←1;可用虛擬機(jī)的數(shù)量為K,即K=|vmList|;選擇的虛擬機(jī)selVM為空;最小完成費用minCost為minCost←+∞;執(zhí)行7.4.2步;
7.4.2判斷k>K是否成立,如果成立,則轉(zhuǎn)7.4.3步;否則,轉(zhuǎn)7.4.4步;
7.4.3如果選擇的虛擬機(jī)selVM不為空,則映射任務(wù)tis到虛擬機(jī)selVM上,并更新任務(wù)的索引s為s←s+1,轉(zhuǎn)7.3步;否則,轉(zhuǎn)7.5步;
7.4.4計算任務(wù)tis在虛擬機(jī)上的期望完成時間pftis,k,和費用pcis,k;轉(zhuǎn)7.4.5;
7.4.5判斷pftis,k≤plftis是否成立,如果成立,轉(zhuǎn)7.4.6;否則,更新虛擬機(jī)的索引k為k←k+1;轉(zhuǎn)7.4.2步;
7.4.6判斷pcis,k<minCost是否成立,如果成立,則更新選擇的虛擬機(jī)為更新虛擬機(jī)的索引k為k←k+1;轉(zhuǎn)7.4.2步;否則,更新虛擬機(jī)的索引k為k←k+1;轉(zhuǎn)7.4.2步;
7.5將任務(wù)調(diào)度到新租的虛擬機(jī)上,方法是:
7.5.1初始化虛擬機(jī)類型的索引u為u←1;m為虛擬機(jī)類型的總量;選出的虛擬機(jī)類型u*為空;最小完成費用minCostAdd為minCostAdd←+∞;,轉(zhuǎn)7.5.2步;
7.5.2判斷u>m是否成立,如果成立,則租一臺類型為u*的新虛擬機(jī),并將任務(wù)tis映射到該虛擬機(jī)上,并更新任務(wù)的索引s為s←s+1,轉(zhuǎn)7.3步;否則,轉(zhuǎn)7.5.3步;
7.5.3計算任務(wù)tis在類型為u的新虛擬機(jī)上的期望完成時間pftis,k和費用pcis,k,轉(zhuǎn)7.5.4步;
7.5.4判斷pftis,k≤plftis是否成立,如果成立,則轉(zhuǎn)7.5.5步;否則,更新虛擬機(jī)類型的索引u為u←u+1,轉(zhuǎn)7.5.2步;
7.5.5判斷pcis,k<minCostAdd是否成立,如果成立,則更新選擇的虛擬機(jī)類型為u*←u,更新虛擬機(jī)的索引u為u←u+1;轉(zhuǎn)7.5.2步;否則,更新,更新虛擬機(jī)的索引u為u←u+1;轉(zhuǎn)7.5.2步。
對比實驗驗證了算法PRS的有效性。選擇兩個已有的調(diào)度算法(SHEFT和RTC)作為對比算法,由于這兩個對比算法設(shè)計來調(diào)度單個工作流,在實驗中,為了使它們適應(yīng)實時工作流,每當(dāng)新工作流到達(dá)時,這些算法就被觸發(fā)來調(diào)度工作流中所有任務(wù)到虛擬機(jī)上。
假設(shè)云計算平臺提供6類虛擬機(jī),且每類虛擬機(jī)的數(shù)量可任意增加。下表列出的是這些虛擬機(jī)的配置和單價,這些參數(shù)來自Amazon的EC2。虛擬機(jī)的計費周期是1小時,虛擬機(jī)之間的帶寬設(shè)為1Gbps。
實驗中選擇四組實際測試集,即Cybershake,LIGO,Montage和SIPHT。
圖3(a)、(b)、(c)示出的是觀察任務(wù)執(zhí)行時間的不確定性對算法性能的影響,其中,任務(wù)運行時間的方差值從0.10增加到0.40,步長為0.05。
如圖3(a)所示,隨著任務(wù)運行時間方差的增加,3個調(diào)度算法的總成本都以不同的速率上升。對于算法SHEFT和RTC,這種趨勢尤為突出,這是因為算法SHEFT和RTC在基準(zhǔn)調(diào)度方案執(zhí)行的過程中沒有采用任何反應(yīng)策略來控制的隨機(jī)因素。PRS的成本平均比SHEFT和RTC低14.01%和21.60%,證明了算法PRS可以降低云服務(wù)提供商的成本。
如圖3(b)所示,算法PRS的資源利用率最高,約71.17%;算法SHEFT和RTC的資源利用率分別在46.19%和45.62%左右波動。這可歸結(jié)于以下幾個原因:首先,當(dāng)?shù)却蝿?wù)變?yōu)榫途w,PRS就將這些任務(wù)動態(tài)調(diào)度到虛擬機(jī),使得每個虛擬機(jī)上的空閑時隙被有效壓縮和去除;其次,隨著任務(wù)執(zhí)行時間方差的變大,任務(wù)的期望完成時間和時間完成時間的間隔也相應(yīng)增加,對于算法SHEFT和RTC,浪費的時間間隙就越大,從而導(dǎo)致資源利用率降低。
如圖3(c)所示,隨著任務(wù)執(zhí)行時間的方差增大,算法PRS、SHEFT和RTC得到調(diào)度方案的偏差也相應(yīng)變大,這是因為較大的方差使得期望和實際的任務(wù)完成時間之間的差異變得更大。此外,PRS的偏差平均比RTC低491.80%,這是因為算法RTC不控制不確定性在等待任務(wù)之間的傳播。以上證明了PRS能夠有效減輕不確定因素對基準(zhǔn)調(diào)度方案的影響。
綜上所述,借助于本發(fā)明的上述技術(shù)方案,通過使用以虛擬機(jī)上的任務(wù)完成信息與新到達(dá)的工作流信息作為執(zhí)行調(diào)度方法的觸發(fā)條件根據(jù)成本、資源利用率和調(diào)度方案的波動性作為調(diào)度目標(biāo),對工作流中的非周期性動態(tài)任務(wù)進(jìn)行調(diào)度的技術(shù)手段,能夠消除不確定因素對執(zhí)行調(diào)度方案的影響,并在保證工作流時效性的條件下提高虛擬機(jī)的資源利用率、降低云服務(wù)提供商的成本。
所屬領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:以上所述僅為本發(fā)明的具體實施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。