本發(fā)明涉及數(shù)據(jù)分析集群中的資源分配和作業(yè)調(diào)度領(lǐng)域,尤其涉及公平性的資源調(diào)度分配與截止時(shí)間,吞吐量,利用率等系統(tǒng)性能指標(biāo)相結(jié)合的調(diào)度,具體涉及一種基于效用函數(shù)的面向大數(shù)據(jù)處理的公平資源調(diào)度方法。
背景技術(shù):
在大數(shù)據(jù)處理的調(diào)度算法中,公平性是最被關(guān)注的調(diào)度目標(biāo)。其中,最大最小公平算法能夠?yàn)楦饔脩襞c作業(yè)隊(duì)列之間提供很好的性能隔離,所以被很多大數(shù)據(jù)分析平臺(tái)所采用。但保障公平性往往意味著系統(tǒng)服務(wù)質(zhì)量與系統(tǒng)性能的下降,如何基于公平性原則提高系統(tǒng)的服務(wù)質(zhì)量與系統(tǒng)性能是當(dāng)前需要迫切解決的問(wèn)題。隨著數(shù)據(jù)分析集群的迅速發(fā)展,各種各樣的作業(yè)擁有不同的截止時(shí)間(deadline)方面的服務(wù)需求,一般來(lái)說(shuō),交互式作業(yè)和流數(shù)據(jù)作業(yè)對(duì)于截止時(shí)間的要求較高,而批處理作業(yè)由于待處理的工作量比較大,通常對(duì)于截止時(shí)間的界定比較寬松。為了保障各類作業(yè)的截止時(shí)間都能夠被滿足,最近截止時(shí)間優(yōu)先的算法(earliest-deadline-first)被廣泛應(yīng)用在各類調(diào)度算法中。在這樣一種作業(yè)調(diào)度方式下,交互式作業(yè)和流數(shù)據(jù)作業(yè)通常被優(yōu)先調(diào)度,而批處理作業(yè)由于長(zhǎng)時(shí)間獲取不到系統(tǒng)資源產(chǎn)生了“饑餓”,同時(shí),作業(yè)之間的公平性也得不到保障。所以,單純用一個(gè)截止時(shí)間的指標(biāo)不足以衡量不同作業(yè)之間輕重緩急的程度,系統(tǒng)的公平性效率也得不到很好的描述。
效用函數(shù)能夠標(biāo)識(shí)各類作業(yè)隨著時(shí)間在推移過(guò)程中對(duì)于系統(tǒng)的重要程度的變化情況。通常,越早完成的作業(yè)對(duì)于系統(tǒng)產(chǎn)生的效用越高,越接近或超過(guò)其截止時(shí)間,作業(yè)的效用函數(shù)下降得越快。由于交互式作業(yè)和流數(shù)據(jù)作業(yè)對(duì)于截止時(shí)間的要求較高,硬性效用函數(shù)可以用來(lái)表示該類任務(wù),在系統(tǒng)時(shí)間超過(guò)作業(yè)截止時(shí)間時(shí),作業(yè)的效用瞬間下降到0或者負(fù)數(shù)值。而批處理作業(yè)由于對(duì)于截止時(shí)間的要求比較寬松,可以采用軟性效用函數(shù),在超出作業(yè)截止時(shí)間之后也能夠產(chǎn)生一部分系統(tǒng)效用。由于效用函數(shù)的上述特性,其在處理器和網(wǎng)絡(luò)調(diào)度等領(lǐng)域中經(jīng)常被用來(lái)取代單一的截止時(shí)間指標(biāo),各種作業(yè)的性質(zhì)都能夠在這個(gè)函數(shù)框架下得到靈活和準(zhǔn)確的描述,同時(shí),公平性調(diào)度中權(quán)重的概念也能夠在效用函數(shù)中得到很好的體現(xiàn)。進(jìn)一步考慮,作業(yè)的截止時(shí)間之所以得不到保障通常由于當(dāng)前系統(tǒng)的負(fù)載較高,系統(tǒng)中的共享資源不能夠滿足所有作業(yè)的需求。所以,在保證系統(tǒng)資源分配公平性與優(yōu)先調(diào)度比較緊急的作業(yè)的同時(shí),提高系統(tǒng)的吞吐量和利用率是保障作業(yè)截止時(shí)間的重要途徑。離線版的多資源利用率問(wèn)題可以規(guī)約為np-hard的背包問(wèn)題,所以我們考慮采用在線版本的最大資源點(diǎn)乘法設(shè)計(jì)貪心調(diào)度算法。
技術(shù)實(shí)現(xiàn)要素:
發(fā)明目的:為了克服現(xiàn)有技術(shù)中存在的不足,本發(fā)明提供一種基于效用函數(shù)的面向大數(shù)據(jù)處理的公平資源調(diào)度方法,能在公平調(diào)度的基礎(chǔ)上,有效地保證系統(tǒng)性能的隔離性,提高系統(tǒng)資源的利用率,減少違反服務(wù)質(zhì)量保證的作業(yè)比例。
技術(shù)方案:為實(shí)現(xiàn)上述目的,本發(fā)明中的基于效用函數(shù)的面向大數(shù)據(jù)處理的公平資源調(diào)度方法,包括以下步驟:
步驟(1):對(duì)于數(shù)據(jù)分析集群中的每一個(gè)作業(yè),獲取其作業(yè)基本數(shù)據(jù),所述作業(yè)基本數(shù)據(jù)包括:作業(yè)權(quán)重、有向無(wú)環(huán)圖、資源需求、運(yùn)行時(shí)間、截止時(shí)間和作業(yè)的時(shí)間窗口;
步驟(2):對(duì)于某一作業(yè),根據(jù)作業(yè)的時(shí)間窗口和程序接口(api)性質(zhì)確定其是否為流數(shù)據(jù)處理作業(yè),若不是流數(shù)據(jù)處理作業(yè),則根據(jù)運(yùn)行時(shí)間與預(yù)設(shè)的閾值進(jìn)行比較來(lái)判斷其作業(yè)類型,運(yùn)行時(shí)間小于或等于預(yù)設(shè)的閾值為交互式作業(yè);運(yùn)行時(shí)間大于預(yù)設(shè)的閾值為批處理作業(yè);;
步驟(3):對(duì)流數(shù)據(jù)作業(yè)采用離線預(yù)約的方式進(jìn)行資源分配;
步驟(4):對(duì)于其他作業(yè),調(diào)度流數(shù)據(jù)處理作業(yè)預(yù)約之后的剩余資源。
其中,步驟(3)中對(duì)流數(shù)據(jù)作業(yè)采用離線預(yù)約的方式進(jìn)行資源分配,包括以下步驟:
(31)對(duì)于所有的流數(shù)據(jù)處理作業(yè),各自按照最大資源點(diǎn)乘法排列其內(nèi)部任務(wù)的執(zhí)行順序;
(32)對(duì)于所有已經(jīng)確定內(nèi)部執(zhí)行順序的作業(yè)劃分執(zhí)行區(qū)間,單個(gè)作業(yè)執(zhí)行區(qū)間的開(kāi)始時(shí)間為上個(gè)流數(shù)據(jù)處理作業(yè)的數(shù)據(jù)輸出結(jié)束時(shí)間,執(zhí)行區(qū)間的結(jié)束時(shí)間為下一個(gè)流數(shù)據(jù)處理作業(yè)的數(shù)據(jù)輸入開(kāi)始時(shí)間,按照?qǐng)?zhí)行區(qū)間的由長(zhǎng)至短依次為流數(shù)據(jù)處理作業(yè)預(yù)約資源。
其中,步驟(32)中對(duì)于執(zhí)行區(qū)間長(zhǎng)度相同的流數(shù)據(jù)處理作業(yè),先對(duì)所有作業(yè)按照運(yùn)行時(shí)間長(zhǎng)度進(jìn)行排序,先按照時(shí)間方向從前向后調(diào)度,然后從相反方向調(diào)度,如此類推反復(fù)改變時(shí)間方向直至所有流數(shù)據(jù)處理作業(yè)得到資源的預(yù)約。在每個(gè)方向上的調(diào)度方式均為:在所有待預(yù)約的作業(yè)中,按照作業(yè)運(yùn)行時(shí)間的長(zhǎng)度,依次對(duì)作業(yè)進(jìn)行預(yù)約,直到達(dá)到執(zhí)行區(qū)間所能允許調(diào)度的最多作業(yè)。
其中,步驟(4)中對(duì)于其他作業(yè),調(diào)度流數(shù)據(jù)處理作業(yè)預(yù)約之后的剩余資源,包括以下步驟:
(41)根據(jù)其作業(yè)權(quán)重、運(yùn)行時(shí)間和截止時(shí)間特征創(chuàng)建其各自的效用函數(shù),使用當(dāng)前作業(yè)調(diào)用完成的預(yù)期時(shí)間點(diǎn)的效用函數(shù)的值除以該作業(yè)的剩余的松弛時(shí)間求出其效用密度,松弛時(shí)間通過(guò)剩余的截止時(shí)間減去剩余的完成時(shí)間來(lái)計(jì)算,然后對(duì)效用密度按照從大到小的順序進(jìn)行排列;
用作業(yè)在當(dāng)前正在系統(tǒng)當(dāng)中運(yùn)行的任務(wù)數(shù)除以作業(yè)的權(quán)重值得到作業(yè)的公平性平衡程度,并對(duì)各作業(yè)的公平性平衡程度按照從小到大的順序進(jìn)行排序;
選擇符合條件的作業(yè)放入待調(diào)度作業(yè)池,所述符合條件是指對(duì)于某個(gè)作業(yè),該作業(yè)的效用密度在所有作業(yè)中的排列次序不大于預(yù)先給定的截止時(shí)間系數(shù)值與作業(yè)總數(shù)的乘積向上取整之后的數(shù)值,且該作業(yè)的公平性平衡程度在所有作業(yè)中的排列次序不大于預(yù)先給定的公平性系數(shù)與作業(yè)總數(shù)的乘積向上取整之后的數(shù)值;
(42)在進(jìn)行在線調(diào)度時(shí),丟棄預(yù)期效用小于或等于0的失效作業(yè),從作業(yè)池中選擇滿足不超出當(dāng)前可分配資源條件并且資源點(diǎn)乘法結(jié)果最大的任務(wù)進(jìn)行調(diào)度。
有益效果:本發(fā)明中基于效用函數(shù)的面向大數(shù)據(jù)處理的公平資源調(diào)度方法,對(duì)流數(shù)據(jù)作業(yè)采用離線預(yù)約的方式,對(duì)交互式和批處理作業(yè)采用在線調(diào)度的方式來(lái)確定資源分配和作業(yè)調(diào)度的結(jié)果,利用了不同作業(yè)類型的特點(diǎn),同時(shí),在保證系統(tǒng)資源分配的公平性的基礎(chǔ)上,考慮以截止時(shí)間作為主要的服務(wù)質(zhì)量的指標(biāo)進(jìn)行約束,同時(shí)統(tǒng)籌兼顧了系統(tǒng)的資源利用率和吞吐量的提高。本發(fā)明方法將效用函數(shù)作為衡量作業(yè)重要性的指標(biāo),能夠更加完善、準(zhǔn)確以及滿足用戶公平性,提高作業(yè)服務(wù)質(zhì)量,系統(tǒng)的總體處理能力以及整體效用。
附圖說(shuō)明
圖1為本發(fā)明中基于效用函數(shù)的面向大數(shù)據(jù)處理的公平資源調(diào)度方法的流程圖;
圖2為作業(yè)效用函數(shù)的示意圖;圖2(a)為一種硬性效用函數(shù),圖2(b)為一種軟性效用函數(shù),圖2(c)為另一種軟性效用函數(shù),圖2(d)為另一種硬性效用函數(shù);
圖3為實(shí)施例中流數(shù)據(jù)處理、交互式和批處理作業(yè)的有向無(wú)環(huán)圖;
圖4為圖3中作業(yè)調(diào)度的結(jié)果圖。
具體實(shí)施方式
下面結(jié)合實(shí)例對(duì)本發(fā)明做進(jìn)一步的詳細(xì)說(shuō)明,本實(shí)例對(duì)本發(fā)明不構(gòu)成限定。
圖1中基于效用函數(shù)的面向大數(shù)據(jù)處理的公平資源調(diào)度方法,對(duì)三種不同的作業(yè)采用離線預(yù)約和在線調(diào)度兩種不同的方式來(lái)確定資源分配和作業(yè)調(diào)度的結(jié)果。具體包括以下步驟:
(1)對(duì)于大數(shù)據(jù)系統(tǒng)(數(shù)據(jù)分析集群)中的每一個(gè)作業(yè),獲取其作業(yè)基本數(shù)據(jù),所述作業(yè)基本數(shù)據(jù)包括:作業(yè)權(quán)重、表征作業(yè)內(nèi)部任務(wù)相互依賴關(guān)系的有向無(wú)環(huán)圖、資源需求、運(yùn)行時(shí)間、作業(yè)的截止時(shí)間、作業(yè)的時(shí)間窗口等;
每一個(gè)作業(yè)的基本情況對(duì)應(yīng)一組相應(yīng)的特征向量,作業(yè)的截止時(shí)間如果在用戶和服務(wù)提供商的sla合同中沒(méi)有明確給出,則通過(guò)用戶反饋的方法進(jìn)行自動(dòng)標(biāo)定。
(2)對(duì)于某一作業(yè),根據(jù)其時(shí)間窗口和api性質(zhì)確定其是否為流數(shù)據(jù)處理作業(yè),若不是流數(shù)據(jù)處理作業(yè),則根據(jù)其運(yùn)行時(shí)間與預(yù)設(shè)的閾值進(jìn)行比較判斷其作業(yè)類型,運(yùn)行時(shí)間小于或等于預(yù)設(shè)的閾值為交互式作業(yè);運(yùn)行時(shí)間大于預(yù)設(shè)的閾值為批處理作業(yè);
流數(shù)據(jù)處理作業(yè)的時(shí)間窗口通常為用戶設(shè)定的較為規(guī)整的數(shù)值,因此判斷作業(yè)是否為流數(shù)據(jù)處理作業(yè)的方式包括:作業(yè)運(yùn)行是否具有穩(wěn)定的時(shí)間窗口(外來(lái)的流數(shù)據(jù)輸入間隔)以及是否經(jīng)由流數(shù)據(jù)處理特定的程序接口(api)提交作業(yè)。
(3)對(duì)流數(shù)據(jù)作業(yè)采用離線預(yù)約的方式進(jìn)行資源分配,具體包括以下步驟:
(31)對(duì)于所有的流數(shù)據(jù)處理作業(yè),對(duì)所有的流數(shù)據(jù)處理作業(yè)分別按照最大資源點(diǎn)乘法排列其內(nèi)部任務(wù)的執(zhí)行順序;系統(tǒng)資源將扣除之前已經(jīng)預(yù)約完成的任務(wù)所需求的資源,扣除的結(jié)果將作為后續(xù)任務(wù)的調(diào)度算法中最大點(diǎn)乘法計(jì)算的基礎(chǔ)。
(32)對(duì)于所有已經(jīng)確定內(nèi)部執(zhí)行順序的作業(yè)劃分執(zhí)行區(qū)間,單個(gè)作業(yè)執(zhí)行區(qū)間的開(kāi)始時(shí)間為上個(gè)流數(shù)據(jù)處理作業(yè)的數(shù)據(jù)輸出結(jié)束時(shí)間,執(zhí)行區(qū)間的結(jié)束時(shí)間為下一個(gè)流數(shù)據(jù)處理作業(yè)的數(shù)據(jù)輸入開(kāi)始時(shí)間。系統(tǒng)優(yōu)先為執(zhí)行區(qū)間較長(zhǎng)的流數(shù)據(jù)處理作業(yè)預(yù)約資源。
用戶提交的時(shí)間窗口通常比較規(guī)整,所以可以預(yù)期相當(dāng)比例的流數(shù)據(jù)處理作業(yè)在同一個(gè)執(zhí)行區(qū)間內(nèi)執(zhí)行,并且每一個(gè)執(zhí)行區(qū)間內(nèi)的作業(yè)調(diào)度安排形成了離線版本的背包問(wèn)題。對(duì)于執(zhí)行區(qū)間相同的流數(shù)據(jù)處理作業(yè),可以同時(shí)預(yù)約調(diào)度。仿照背包問(wèn)題的貪心求解方法,即:先把所有作業(yè)按照運(yùn)行時(shí)間長(zhǎng)度進(jìn)行排序,第一次先從前向后調(diào)度,優(yōu)先調(diào)度時(shí)間最長(zhǎng)的作業(yè),若當(dāng)前執(zhí)行區(qū)間尚未結(jié)束,則依次選擇次長(zhǎng)的任務(wù)在上一作業(yè)結(jié)束完成時(shí)間之后調(diào)度,直到執(zhí)行區(qū)間再也容納不下額外的作業(yè)時(shí)間長(zhǎng)度;第二次調(diào)度從后向前調(diào)度,同樣的,先把尚未預(yù)約資源的作業(yè)按照運(yùn)行時(shí)間長(zhǎng)度進(jìn)行排序,優(yōu)先調(diào)度時(shí)間最長(zhǎng)的作業(yè)放置在執(zhí)行區(qū)間的末尾,若當(dāng)前執(zhí)行區(qū)間尚未結(jié)束,則依次選擇次長(zhǎng)的任務(wù)在上一作業(yè)結(jié)束開(kāi)始時(shí)間之前調(diào)度,直到執(zhí)行區(qū)間所能允許調(diào)度的最多作業(yè);依次類推,反復(fù)改變時(shí)間方向,直至為所有流數(shù)據(jù)處理作業(yè)預(yù)約到系統(tǒng)資源。
對(duì)于流數(shù)據(jù)處理作業(yè)的調(diào)度方式先考慮各作業(yè)之間不同時(shí)執(zhí)行,便于系統(tǒng)的資源能夠在執(zhí)行時(shí)間段內(nèi)被平均地分?jǐn)偅辉诖嘶A(chǔ)上,因?yàn)槭啄﹥啥说馁Y源經(jīng)常得不到預(yù)約,所以通過(guò)反復(fù)改變時(shí)間方向來(lái)預(yù)約資源,便于為后面的交互式作業(yè)和批處理作業(yè)的執(zhí)行預(yù)留比較合理而均勻的資源空間。
(4)對(duì)于其他作業(yè),調(diào)度流數(shù)據(jù)處理作業(yè)預(yù)約之后的剩余資源。
(41)對(duì)于后兩類作業(yè)根據(jù)其權(quán)重、運(yùn)行時(shí)間和截止時(shí)間的特征創(chuàng)建其各自的效用函數(shù),使用當(dāng)前作業(yè)調(diào)用完成的預(yù)期時(shí)間點(diǎn)的效用函數(shù)的值除以該作業(yè)的松弛時(shí)間(剩余的截止時(shí)間-剩余的完成時(shí)間)求出其效用密度,對(duì)效用密度按照從大到小的順序進(jìn)行排列,根據(jù)用戶給定的截止時(shí)間系數(shù)κ(0≤κ≤1)值篩選當(dāng)前κ比例的作業(yè)放入待調(diào)度作業(yè)池。
創(chuàng)建效用函數(shù)指的是:先將作業(yè)按照交互式作業(yè)和批處理作業(yè)分類成為軟性和硬性的效用函數(shù),然后由系統(tǒng)管理員選擇當(dāng)前系統(tǒng)所使用的兩種效用函數(shù)模型,在模型里面根據(jù)完成時(shí)間等關(guān)鍵值生成具體函數(shù)。比如一個(gè)硬性的直線函數(shù)(圖2a),設(shè)定前一段縱坐標(biāo)的值(效用值)等于作業(yè)的完成時(shí)間乘以權(quán)重值,而效用值降為0的點(diǎn)在橫坐標(biāo)上等于作業(yè)的截止時(shí)間。
另外,對(duì)于所有的系統(tǒng)作業(yè),也可以按照其公平性的平衡程度,設(shè)定公平性系數(shù)μ(0≤μ≤1),將各作業(yè)的公平性平衡程度按照從小到大進(jìn)行排序,選出總體比例不大于公平性系數(shù)的作業(yè)放入作業(yè)池。公平性的平衡程度計(jì)算一般是用作業(yè)在當(dāng)前正在系統(tǒng)當(dāng)中運(yùn)行的任務(wù)數(shù)除以作業(yè)的權(quán)重值,比值越小表示對(duì)該作業(yè)分配的資源越不公平。
亦或者,通過(guò)截止時(shí)間系數(shù)和公平性系數(shù)共同選擇,即,能夠進(jìn)入作業(yè)池的作業(yè)滿足以下條件:該作業(yè)的效用密度在所有作業(yè)中的排列次序不大于預(yù)先給定的截止時(shí)間系數(shù)值與作業(yè)總數(shù)的乘積向上取整之后的數(shù)值,且該作業(yè)的公平性平衡程度在所有作業(yè)排列次序不大于預(yù)先給定的公平性系數(shù)與作業(yè)總數(shù)的乘積向上取整之后的數(shù)值。例如:系統(tǒng)當(dāng)中有3個(gè)作業(yè),截止時(shí)間比例為60%,則3*60%=1.8≈2,取排列次序?yàn)榍皟蓚€(gè)的作業(yè)進(jìn)入系統(tǒng)作業(yè)池。
公平性系數(shù)μ和系統(tǒng)截止時(shí)間系數(shù)κ越接近0表示該項(xiàng)指標(biāo)的約束力越大,越接近1表示該項(xiàng)指標(biāo)的約束力越小。
(42)在進(jìn)行在線調(diào)度時(shí),從作業(yè)池中選擇滿足不超出可分配資源條件并且當(dāng)前資源點(diǎn)乘法結(jié)果最大的任務(wù)進(jìn)行調(diào)度,并丟棄當(dāng)前等待隊(duì)列中預(yù)期效用小于或等于0的失效作業(yè)。
上述預(yù)期效用指的是把當(dāng)前作業(yè)按照最大分布度調(diào)度到系統(tǒng)當(dāng)中去,在預(yù)期完成時(shí)間點(diǎn)的效用值。如果小于0,也就是說(shuō)無(wú)論怎么調(diào)度都已經(jīng)不會(huì)對(duì)系統(tǒng)產(chǎn)生正向效用了。步驟(42)的處理可以使得部分未能夠預(yù)期在截止時(shí)間前完成的硬性效用函數(shù)的交互式作業(yè)提前被丟棄,而部分拖延時(shí)間較長(zhǎng)的軟性效用函數(shù)的批處理作業(yè)同樣會(huì)被丟棄,避免系統(tǒng)在這些已經(jīng)失效的作業(yè)上浪費(fèi)資源。
上述資源點(diǎn)乘法指的是:兩個(gè)資源向量相乘的值,比如當(dāng)前系統(tǒng)剩余可分配資源的向量為a=(a1,b1,c1),作業(yè)所需求的資源向量為b=(a2,b2,c2),則a·b=a1a2+b1b2+c1c2,這個(gè)就是資源向量點(diǎn)乘法。本發(fā)明中基于效用函數(shù)的面向大數(shù)據(jù)處理的公平資源調(diào)度方法中,采用離線預(yù)約的方式預(yù)先確定流數(shù)據(jù)處理作業(yè)需要的資源,然后采用在線調(diào)度的方式對(duì)于交互式作業(yè)和批處理作業(yè)進(jìn)行調(diào)度,本實(shí)施例結(jié)合圖3中各作業(yè)的運(yùn)行時(shí)間t以及資源需求比例r來(lái)對(duì)本發(fā)明方法做具體的解釋。
圖3當(dāng)中,設(shè)流數(shù)據(jù)處理作業(yè)st、st′、st″的窗口時(shí)間(執(zhí)行區(qū)間)大小均為4s,所以可以根據(jù)步驟(31)的要求將各個(gè)作業(yè)內(nèi)部的任務(wù)進(jìn)行緊湊的順序排列,由于st′、st″都是單任務(wù)作業(yè),所以排列很簡(jiǎn)單,而st是多任務(wù)工作,st中包含了四個(gè)任務(wù),分別為st1、st2、st3和st4,st3需要在任務(wù)st1執(zhí)行完畢后才能執(zhí)行,任務(wù)st4需要在st2、st3執(zhí)行完畢后才能執(zhí)行。假設(shè)當(dāng)前系統(tǒng)資源中的資源向量為(1,1),則st2所需求的資源向量為(0.2,0.5),st1所需求的資源向量為(0.4,ε),ε為幾乎為0的數(shù),按照最大資源點(diǎn)乘法則,優(yōu)先分配st2的資源,由于0.2+0.4<1,所以在執(zhí)行st2的同時(shí)可以執(zhí)行st1,st2的運(yùn)行時(shí)間t為1s,st1的運(yùn)行時(shí)間t為0.3,且st3所需求的資源向量為(ε,0.4),所以,st1執(zhí)行完畢后可繼續(xù)執(zhí)行st3,這樣st1、st3都可以與st2并行調(diào)度,對(duì)相應(yīng)作業(yè)的運(yùn)行時(shí)間進(jìn)行了壓縮,在三個(gè)任務(wù)完成之后最后調(diào)度st4,最終,st的運(yùn)行時(shí)間為1.5s。
由于三個(gè)流數(shù)據(jù)處理任務(wù)均處于同一執(zhí)行區(qū)間,st′的運(yùn)行時(shí)間t最長(zhǎng)為2s,所以按照步驟(32)的要求,先預(yù)定st′的資源,其次是運(yùn)行時(shí)間t為1.5s的st。此時(shí),由于st″的運(yùn)行時(shí)間t是0.8s,如果接著st的后面調(diào)度就會(huì)超出4s的執(zhí)行區(qū)間的結(jié)束時(shí)間,所以st″從反方向的末尾端向前安排預(yù)留資源。
對(duì)于交互式作業(yè)和批處理作業(yè),采用在線調(diào)度的方式。先確定其相應(yīng)的效用函數(shù)。如圖2所示,a和d為兩種硬性效用函數(shù),一旦系統(tǒng)時(shí)間到達(dá)作業(yè)截止時(shí)間,那么作業(yè)的效用立刻衰減為0,而b和c為軟性效用函數(shù),作業(yè)效用在截止時(shí)間到達(dá)后仍然可以產(chǎn)出較少的系統(tǒng)效用,需要指出的是c類函數(shù)是一種特殊情況,遞增部分表示當(dāng)前作業(yè)的輸入數(shù)據(jù)沒(méi)完全輸入進(jìn)系統(tǒng)之前該作業(yè)執(zhí)行完成的效用情況。在本發(fā)明中,結(jié)合各類作業(yè)的性質(zhì),交互式作業(yè)考慮采用硬性效用函數(shù),而批處理作業(yè)則使用軟性效用函數(shù)。如圖3所示,其中的交互式作業(yè)in和in′均采用a類效用函數(shù),設(shè)定其截止時(shí)間為2s,截止時(shí)間之前的效用值為0.5。而批處理任務(wù)ba采用b類效用函數(shù),設(shè)定其截止時(shí)間為20s,截止時(shí)間之前的效用值為4.5,截止時(shí)間之后的效用函數(shù)是斜率為-0.5的直線段,直到效用降低到0為止。
假設(shè)在0s的時(shí)候,共有6個(gè)交互式作業(yè)in′,6個(gè)交互式作業(yè)in,1個(gè)批處理作業(yè)ba到達(dá)系統(tǒng)。在2s的時(shí)候,共有2個(gè)交互式作業(yè)in′,2個(gè)交互式作業(yè)in作業(yè)到達(dá)系統(tǒng)。由于交互式作業(yè)都是單任務(wù)作業(yè),所以對(duì)于同一時(shí)間釋放的作業(yè)來(lái)說(shuō),系統(tǒng)在選擇哪個(gè)作業(yè)去執(zhí)行都是等價(jià)的,任選它們中的同一時(shí)間釋放的作業(yè)執(zhí)行即可。但為了辨認(rèn)不同時(shí)間釋放的作業(yè),設(shè)定0s釋放的作業(yè)為in0s以及in′0s,而第2s釋放的作業(yè)為in2s以及in′2s。由于交互式作業(yè)只包含一個(gè)任務(wù),所以我們可以設(shè)定第0s釋放的作業(yè)in0s中的任務(wù)為in1-0s,in′0s中的任務(wù)為in′1-0s;而第0s釋放的作業(yè)in2s中的任務(wù)為in1-2s,in′2s中的任務(wù)為in′1-2s(如圖4所示)。
在系統(tǒng)時(shí)間為0s的時(shí)候,共有6個(gè)交互式作業(yè)in0s,6個(gè)交互式作業(yè)in′0s,1個(gè)批處理作業(yè)ba到達(dá)當(dāng)前系統(tǒng),in0s與in′0s的截止時(shí)間都是2s,而ba的截止時(shí)間是20s。假設(shè)用戶設(shè)置系統(tǒng)的截止時(shí)間系數(shù)κ為0.85,公平系數(shù)μ為0,根據(jù)步驟(41),表示系統(tǒng)當(dāng)中效用密度按照從大到小排列次序?yàn)榍?2
系統(tǒng)時(shí)間為1s時(shí),由于當(dāng)前系統(tǒng)中的作業(yè)只剩下2個(gè)in0s作業(yè),2個(gè)in′0s作業(yè),1個(gè)sb作業(yè),由于當(dāng)前交互式處理任務(wù)數(shù)量減少,則從大到小排列次序?yàn)榍?
系統(tǒng)時(shí)間為2s時(shí),由于in0s作業(yè)的預(yù)期效用(預(yù)計(jì)在2.5s時(shí)才能完成)為0,所以0s提交的兩個(gè)inos作業(yè)均被丟棄。此時(shí),新到達(dá)了2個(gè)in2s作業(yè)和2個(gè)in′2s作業(yè)。由于當(dāng)前的作業(yè)個(gè)數(shù)是5,截止時(shí)間系數(shù)是0.85,類似1s時(shí)間點(diǎn)處的計(jì)算所有作業(yè)都被放入作業(yè)池中,并且此時(shí)ba2和ba3都可以被系統(tǒng)調(diào)度。此時(shí)以及按照步驟(42),如圖4所示,在2s時(shí),除去預(yù)約資源的剩余資源是(0.4,0.5),in2s的資源點(diǎn)乘法計(jì)算結(jié)果是0.3*0.5,in′2s的資源點(diǎn)乘法計(jì)算結(jié)果是0.3*0.4,而ba2的資源點(diǎn)乘法為0.4*0.4,ba3的資源點(diǎn)乘法為0.1*0.4+0.4*0.5,此時(shí)雖然ba3的資源點(diǎn)乘最大,但是,在2.3s的時(shí)候,系統(tǒng)當(dāng)中的資源為(0.8,0.1),而ba3的運(yùn)行時(shí)間為1.5s,當(dāng)其運(yùn)行到2.3s時(shí)會(huì)發(fā)生資源不足的情況,所以我們選擇資源點(diǎn)乘法次多的ba2進(jìn)行調(diào)度,空余資源可以分配給in中的任務(wù),2.5s之后,st1和st3都已運(yùn)行完成,此時(shí)ba3也可以進(jìn)行調(diào)度,并同時(shí)按資源點(diǎn)乘所計(jì)算的順序運(yùn)行in′1-2s,in1-2s以及in′1-2s三個(gè)任務(wù)??梢钥吹剿腥蝿?wù)都在4s之前得到了調(diào)度。所以,調(diào)度過(guò)程的時(shí)間跨度(makespan)為4s,整個(gè)過(guò)程的兩種系統(tǒng)資源平均利用率均達(dá)到了80%以上。
本發(fā)明方法將系統(tǒng)中的流數(shù)據(jù)處理、交互式和批處理任務(wù)區(qū)別對(duì)待,首先將對(duì)時(shí)間要求比較敏感的流數(shù)據(jù)處理任務(wù)按照緊湊的部署方式在執(zhí)行區(qū)間內(nèi)均勻地進(jìn)行系統(tǒng)資源的預(yù)約,其次為了保障作業(yè)的公平性和截止時(shí)間的要求,使用效用函數(shù)的方式對(duì)作業(yè)進(jìn)行建模,并使用公平性系數(shù)和截止時(shí)間系數(shù)對(duì)系統(tǒng)的作業(yè)池進(jìn)行篩選。最后利用最大資源點(diǎn)乘法貪心調(diào)度當(dāng)前最合適的任務(wù),提高系統(tǒng)的利用率。因此,最終的調(diào)度能夠在保證系統(tǒng)公平性的基礎(chǔ)上保證截止時(shí)間,以及吞吐量?jī)煞矫娴男枨?,提高系統(tǒng)的總體性能。并且這樣的調(diào)度方式更加準(zhǔn)確完備地符合當(dāng)前大數(shù)據(jù)處理中多用戶各種各樣的個(gè)性化配置,能夠以可插拔式的設(shè)計(jì)理念與現(xiàn)代流行的資源調(diào)度平臺(tái)相結(jié)合。
以上詳細(xì)描述了本發(fā)明的優(yōu)選實(shí)施方式,但是,本發(fā)明并不限于上述實(shí)施方式中的具體細(xì)節(jié),在本發(fā)明的技術(shù)構(gòu)思范圍內(nèi),可以對(duì)本發(fā)明的技術(shù)方案進(jìn)行多種等同變換,這些等同變換均屬于本發(fā)明的保護(hù)范圍。