一種多資源偏序調(diào)度策略的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及到互聯(lián)網(wǎng)技術(shù)領(lǐng)域,特別適用于NFV(包括SDN)等新型體系架構(gòu)環(huán)境, 涉及一種多資源偏序調(diào)度策略。
【背景技術(shù)】
[0002] 無論是NFV、SDN、云計(jì)算,還是數(shù)據(jù)中心,任務(wù)扮演著十分重要的角色。所謂任務(wù) 是指,用戶從發(fā)送一個(gè)請求到最終響應(yīng)的最小應(yīng)用單元,它相當(dāng)于一次的應(yīng)用實(shí)例響應(yīng)。例 如在NFV網(wǎng)絡(luò)中,NFV基礎(chǔ)設(shè)施(簡稱NFVI)將硬件抽象成一系列的虛擬資源,虛擬網(wǎng)絡(luò)功 能(簡稱VNF)則根據(jù)不同任務(wù)需求形成服務(wù)鏈。作為具有全局視角的NFV編排器,它將統(tǒng) 一管理這些服務(wù),通過盡量充分利用這些虛擬資源來使每個(gè)需要調(diào)度的任務(wù)達(dá)到最優(yōu)。
[0003] 然而,調(diào)度這些任務(wù)具有以下挑戰(zhàn)。一是傳統(tǒng)的流調(diào)度算法并未考慮流之間的關(guān) 系。一般情況下,任務(wù)包含若干個(gè)子任務(wù),每個(gè)子任務(wù)可以由若干個(gè)流組成,例如,云中的 MapReduce包含兩階段的子任務(wù),即map和reduce。這些流和子任務(wù)都存在著依賴關(guān)系,如 reduce相關(guān)子任務(wù)只能在map子任務(wù)之后才會被考慮。因此,兼顧考慮每個(gè)子任務(wù)之間的 關(guān)系,可以使調(diào)度時(shí)間達(dá)到最優(yōu),并可以使資源得到充分利用。二是資源類型的多樣化。每 個(gè)虛擬化功能將會涉及多種資源,諸如CPU、內(nèi)存、硬盤和網(wǎng)絡(luò)等。多資源的限制會導(dǎo)致傳統(tǒng) 的求解方法,如關(guān)鍵路徑法(簡稱CPM)等失效,增加了調(diào)度算法的難度,理論證明,該問題 是一個(gè)NP-hard問題,無法在多項(xiàng)式時(shí)間內(nèi)完成。
【發(fā)明內(nèi)容】
[0004] 為了克服上述現(xiàn)有技術(shù)的缺點(diǎn),本發(fā)明的目的在于提供一種多資源偏序調(diào)度策 略,該策略是貪婪的多項(xiàng)式時(shí)間算法,它充分利用了虛擬資源,保證了任務(wù)平均時(shí)間和平均 尾時(shí)間最短,并確保所有任務(wù)不會因?yàn)橘Y源的充分利用而被餓死的情況發(fā)生,該策略將會 使發(fā)起任務(wù)的終端用戶總體利益達(dá)到最大。
[0005] 為了實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案是:
[0006] -種多資源偏序調(diào)度策略,在NFV網(wǎng)絡(luò)架構(gòu)中,將基于偏序結(jié)構(gòu)的多資源任務(wù)調(diào) 度問題形式化為如下模型:
[0007]
[0008]
[0009]
[0010]
[0011]
[0012]
1,3- W
[0013] 其中,D為一個(gè)多目標(biāo)矩陣,包含兩個(gè)子目標(biāo)DJPD2,Di為平均處理時(shí)間,02為 尾處理時(shí)間,
為所有任務(wù)集合,每個(gè)任務(wù)ieT分解成為 一系列的子任務(wù)(i,j),S表示所有子任務(wù)(i,j)的集合,對于任務(wù)i,任務(wù)的開始時(shí)間和 處理時(shí)間分別定義為<和<,而子任務(wù)(i,j)的開始時(shí)間、處理時(shí)間和結(jié)束時(shí)間則分別定 義為<;、4和·ζ,對于子任務(wù)(i,j),其前趨集和后繼集分別定義為17(/>和1|:(^,式中 /er7U)表示,子任務(wù)(i,j)是子任務(wù)(i,j)的前趨子任務(wù),顯然表示子任務(wù)(i,j) 的結(jié)束時(shí)間,<,(〇表示子任務(wù)(i,j)在時(shí)刻t分配資源r的數(shù)量,R表示資源類型有限集, 資源reR,^則表示子任務(wù)(i,j)對資源r的需求,y表示為資源reR的容量;
[0014] 實(shí)現(xiàn)該模型即實(shí)現(xiàn)了多資源偏序任務(wù)調(diào)度。
[0015] 采用基于事件驅(qū)動的兩階段多項(xiàng)式時(shí)間算法實(shí)現(xiàn)上述模型,算法步驟如下:
[0016] 步驟1 :將所有即將調(diào)度的子任務(wù)按主控資源分組;
[0017] 步驟2 :組內(nèi)子任務(wù)優(yōu)先級設(shè)置:在每個(gè)主控資源分組內(nèi)根據(jù)子任務(wù)的開始時(shí)間 和處理時(shí)間來判斷最低優(yōu)先級,并根據(jù)這個(gè)優(yōu)先級確定子任務(wù)的調(diào)度順序;
[0018] 步驟3 :求出最大無關(guān)向量組子任務(wù);
[0019] 步驟4 :根據(jù)當(dāng)前待調(diào)度的子任務(wù)的需求矩陣進(jìn)行資源分配;
[0020] 步驟5 :當(dāng)子任務(wù)完成后,即在沖刺期之后,如果沒有子任務(wù),則等待新子任務(wù)的 到達(dá);否則返回步驟3 ;當(dāng)一個(gè)新子任務(wù)到達(dá)后,則重新進(jìn)行步驟1。
[0021] 所述步驟1中,通過如下方式分組:
[0022] 步驟1. 1根據(jù)
計(jì)算子任務(wù)(i,j)的主控資源,其中€表示為子任 務(wù)(i,j)的主控資源;
[0023] 步驟1. 2具有相同的主控資源《的子任務(wù)(i,j)被分至同一類主控資源組中。
[0024] 所述步驟2中,通過如下方式設(shè)置組內(nèi)子任務(wù)優(yōu)先級:
[0025] 步驟2. 1定義每個(gè)子任務(wù)的開始時(shí)間,如果是該子任務(wù)沒有前趨,或者所 有前趨已經(jīng)完成調(diào)度,此時(shí),該子任務(wù)開始時(shí)間是已知的,即為 否則的話,將根據(jù)
計(jì)算子任務(wù)的開始時(shí)間,其中表示子任務(wù)(i,j)的前趨子任務(wù) (i,j)的開始時(shí)間〇和<,-則表示為子任務(wù)(i,j)對應(yīng)主控資源^的需求及容量; ?廣
[0026] 步驟2. 2計(jì)算每個(gè)子任務(wù)(i,j)的處理時(shí)間估計(jì)值G ,其中@表示子任務(wù) cu (i,j)處理時(shí)間的估計(jì)值;與步驟2. 1中的定義類似,和表示為子任務(wù)(i,j)對應(yīng) 主控資源的需求及容量;
[0027] 步驟2.3利用公式〇/?/^./)=<+12計(jì)算每個(gè)子任務(wù)(^)的01^值;
[0028] 步驟2. 4根據(jù)DRP值,對每個(gè)組內(nèi)子任務(wù)分別進(jìn)行排序;若有新的子任務(wù)到達(dá)時(shí), 該子任務(wù)將根據(jù)其DRP值插入到已經(jīng)排好序的隊(duì)列中。
[0029] 所述步驟3中,通過如下步驟求出最大無關(guān)向量組子任務(wù):
[0030] 步驟3. 1取出每個(gè)組最小DRP值的子任務(wù),將它們的需求組成一個(gè)需求矩陣;
[0031] 步驟3. 2求出該需求矩陣的最大無關(guān)向量組,如果是滿秩的,則表明所有子任務(wù) 都將被調(diào)度;如果不是滿秩的,則說明仍然有子任務(wù)線性相關(guān),將不會在本輪被調(diào)度;
[0032] 步驟3. 3將所有線性相關(guān)的子任務(wù)返回到相應(yīng)的隊(duì)列頭當(dāng)中,等待下一輪的調(diào) 度。
[0033] 所述步驟4中,整個(gè)分配階段分為穩(wěn)定期和沖刺期兩個(gè)階段,利用最大利用率分 配(MUA)算法實(shí)現(xiàn)資源分配,該算法步驟如下:
[0034] 步驟4. 1計(jì)算待調(diào)度的子任務(wù)分配份額值ku,其矩陣計(jì)算由V)給 出,其中,(&,)、(<;)和(c〇分別表示子任務(wù)(i,j)分配份額矩陣、需求矩陣和容量矩陣, (<,廣則表示對需求矩陣求逆矩陣;
[0035] 步驟4. 2在穩(wěn)定期t,子任務(wù)(i,j)對資源r的分配值⑴為Λ·;,.⑴= ;
[0036] 步驟4. 3在沖刺期t,子任務(wù)(i,j)對資源r的分配值將變?yōu)?br>,:其中符號「1表示對數(shù)值進(jìn)行上取整。
[0037] 本發(fā)明首次提出了在NFV網(wǎng)絡(luò)中多資源偏序調(diào)度問題。現(xiàn)有的調(diào)度算法僅針對其 中的幾點(diǎn)限制來研究。DRF算法提出一種公平的多資源流算法。該算法提出了主控資源的 概念,這使得多資源問題可以簡化到一種單資源問題。然而DRF算法并未考慮流間關(guān)系問 題,使得該算法無法高效地使用在基于任務(wù)的調(diào)度上來。FIF0-LM算法則針對任務(wù)調(diào)度提出 一種序列化算法,理論上可以使單資源調(diào)度問題達(dá)到最優(yōu)。然而該策略未考慮多資源的問 題。對于多資源,事實(shí)證明FIF0-LM策略對于多資源情況并不一定都能達(dá)到最優(yōu)狀況。MR3 算法和GMR3算法類似,都考慮了多資源任務(wù)調(diào)度問題,而任務(wù)中的子任務(wù)之間僅為鏈狀結(jié) 構(gòu),對于較為復(fù)雜的偏序結(jié)構(gòu)問題則并未考慮。Myopia策略考慮了NFV場景下多資源任務(wù) 問題,將該問題又向前推進(jìn)一步。然而該策略仍然未考慮偏序結(jié)構(gòu),仍然無法較為復(fù)雜的偏 序任務(wù)調(diào)度問題。此外,傳統(tǒng)的偏序算法,如CPM,并未考慮資源的限制,也很難解決NFV網(wǎng) 絡(luò)中多資源偏序調(diào)度問題。
[0038] 與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果還表現(xiàn)在如下幾個(gè)方面:
[0039] (1)最優(yōu)性。相對于現(xiàn)有技術(shù),該算法具有最優(yōu)特性。它是公平共享算法和序列化 算法的權(quán)衡。通過貪婪的占用資源,來實(shí)現(xiàn)最優(yōu)的平均調(diào)度時(shí)間和尾調(diào)度時(shí)間