本發(fā)明涉及一種多租戶資源管理技術(shù),特別涉及一種面向不同類型負(fù)載的多租戶資源優(yōu)化調(diào)度方法。
背景技術(shù):
:近年來,網(wǎng)絡(luò)信息技術(shù)突飛猛進(jìn),海量的數(shù)字化信息與人們獲取所需信息能力之間的矛盾日益突出。另一方面,MapReduce、Dryad和Spark等分布式計(jì)算框架的應(yīng)用使得用戶在容忍的時(shí)間內(nèi)從海量資料庫中找到正確的信息成為可能。傳統(tǒng)的Web多租戶系統(tǒng)需要處理復(fù)雜的業(yè)務(wù)邏輯、因而也需要保障較高的數(shù)據(jù)一致性級(jí)別、支持復(fù)雜的數(shù)據(jù)查詢。與之相反,基于大數(shù)據(jù)平臺(tái)的多租戶系統(tǒng)往往具有數(shù)據(jù)量非常大、不要求嚴(yán)格的一致性、只支持簡(jiǎn)單的查詢、支持可用資源的動(dòng)態(tài)擴(kuò)展的特點(diǎn)。大數(shù)據(jù)平臺(tái)對(duì)用戶提供的是存儲(chǔ)和計(jì)算的應(yīng)用服務(wù),平臺(tái)具有開源Hadoop框架強(qiáng)大的資源管理和任務(wù)調(diào)度的支持,有較好的負(fù)載均衡機(jī)制,同時(shí)在其上還可以方便的部署搭建許多強(qiáng)大的大數(shù)據(jù)處理組件,如:Hive、Spark、Storm等,這為多應(yīng)用共享集群資源提供了無可比擬的優(yōu)勢(shì),然而采用共享應(yīng)用實(shí)例的架構(gòu)意味著需要支持較高的租戶密度以及較低的管理成本和維護(hù)成本,實(shí)現(xiàn)大數(shù)據(jù)平臺(tái)的多租戶架構(gòu)面臨著數(shù)據(jù)本地化、按需擴(kuò)展、性能優(yōu)化等方面的挑戰(zhàn)。多租戶共享集群是Hadoop框架下應(yīng)用的典型場(chǎng)景,然而資源的共享使得作業(yè)之間存在競(jìng)爭(zhēng)性,導(dǎo)致可計(jì)算資源包含某一作業(yè)待處理數(shù)據(jù)的可能性降低,帶來較低的數(shù)據(jù)本地化程度,因而需要經(jīng)常從遠(yuǎn)地拷貝數(shù)據(jù),由此帶來的占用網(wǎng)絡(luò)帶寬、計(jì)算效率低下等問題非常突出。基于Hadoop框架的云計(jì)算平臺(tái)中,由于計(jì)算資源所需要的數(shù)據(jù)處于不同的物理位置,需要遷移數(shù)據(jù),即數(shù)據(jù)本地化問題。由于只有當(dāng)數(shù)據(jù)和計(jì)算任務(wù)處于同一節(jié)點(diǎn)時(shí),計(jì)算效率才能夠得到保證,因此數(shù)據(jù)的本地化程度是決定Hadoop框架下云計(jì)算效率的重要因素。如何提高數(shù)據(jù)本地化程度,節(jié)省網(wǎng)絡(luò)帶寬資源,提高任務(wù)的執(zhí)行效率,保證用戶作業(yè)服務(wù)質(zhì)量的同時(shí)維護(hù)集群整體吞吐率是應(yīng)用多用戶共享式集群需要解決的核心問題。為了解決數(shù)據(jù)本地化問題,核心思想是采用移動(dòng)計(jì)算而非移動(dòng)數(shù)據(jù),即把計(jì)算任務(wù)遷移到距離數(shù)據(jù)更近的位置?;谏鲜鏊枷?,美國(guó)的MateiZaharia等學(xué)者在公平調(diào)度器的基礎(chǔ)上提出了延遲調(diào)度算法,其核心思想是:允許就緒作業(yè)在一定時(shí)間內(nèi)放棄若干次調(diào)度機(jī)會(huì),直至?xí)r間超時(shí)或者該作業(yè)存在計(jì)算任務(wù)的待處理數(shù)據(jù)距離計(jì)算資源較近,則接受當(dāng)前調(diào)度資源,否則放棄。張博鈺等人對(duì)延遲調(diào)度算法進(jìn)行進(jìn)一步的研究,給出了延遲調(diào)度算法延遲間隔選擇的一個(gè)較為理想的方案。陶永才等人則在延遲調(diào)度的基礎(chǔ)上充分考慮集群的負(fù)載均衡,提出基于負(fù)載均衡的動(dòng)態(tài)延遲調(diào)度機(jī)制DDS(DynamicDelayScheduling),上述研究均表明采用延遲調(diào)度算法的公平調(diào)度器可以很好的做到作業(yè)調(diào)度中公平性和效率之間的均衡。美國(guó)MohammadHammoud等學(xué)者針對(duì)數(shù)據(jù)本地優(yōu)化設(shè)計(jì)了一種Reduce作業(yè)調(diào)度器LARTS,將節(jié)點(diǎn)網(wǎng)絡(luò)位置和Reducer’spartitions大小作為調(diào)度器的決策條件,大幅度地提高了集群的效率。類似的,美國(guó)ShadiIbrahim等學(xué)者也提出了一個(gè)本地感知算法,不過它是通過改變partition函數(shù)的hash算法來實(shí)現(xiàn)的,XiangpingBu等人提出了一種適用于MapReduce的虛擬集群本地感知調(diào)度算法,為MapReduce程序減輕干擾的同時(shí)保持?jǐn)?shù)據(jù)的本地化。雖然最近幾年在多租戶資源管理方向已經(jīng)開展了不少研究工作,然而,目前基于大數(shù)據(jù)平臺(tái)的多租戶資源優(yōu)化調(diào)度研究主要是針對(duì)資源公平性的調(diào)度。同時(shí),現(xiàn)有的延遲調(diào)度算法多是基于固定的等待時(shí)間,而且沒有充分考慮作業(yè)的不同負(fù)載類型。假設(shè)作業(yè)的大部分?jǐn)?shù)據(jù)集中在某個(gè)節(jié)點(diǎn)或者集群中少數(shù)數(shù)據(jù)節(jié)點(diǎn)上,可能出現(xiàn)計(jì)算任務(wù)也同樣集中在集群中某一節(jié)點(diǎn)或部分節(jié)點(diǎn)上,從而導(dǎo)致作業(yè)較低的并行效率以及較長(zhǎng)的響應(yīng)時(shí)間。因此,針對(duì)作業(yè)的不同負(fù)載類型進(jìn)行多租戶資源優(yōu)化調(diào)度是多租戶資源管理領(lǐng)域亟待解決的重要問題。技術(shù)實(shí)現(xiàn)要素:鑒于上述現(xiàn)有技術(shù)存在的不足,本發(fā)明目的是提供一種面向不同類型負(fù)載的多租戶資源優(yōu)化調(diào)度方法,能根據(jù)作業(yè)不同負(fù)載類型判斷是否進(jìn)行延遲調(diào)度,重新構(gòu)造目標(biāo)計(jì)算節(jié)點(diǎn)以提高作業(yè)并行效果,保持較高比例的本地化調(diào)度,減輕網(wǎng)絡(luò)I/O負(fù)載,提高作業(yè)的執(zhí)行效率。為了實(shí)現(xiàn)上述目的,本發(fā)明至少采用如下技術(shù)方案之一。一種面向不同類型負(fù)載的多租戶資源優(yōu)化調(diào)度方法,其特征在于包括以下步驟:第一步驟:使用多租戶系統(tǒng)的租戶提交作業(yè)到作業(yè)隊(duì)列中;第二步驟:采集作業(yè)負(fù)載信息發(fā)送到資源管理器;第三步驟:資源管理器根據(jù)作業(yè)負(fù)載信息分別得到Map-shuffle階段數(shù)據(jù)讀寫率和磁盤I/O帶寬大小,通過比較兩者之間大小關(guān)系判定作業(yè)不同負(fù)載類型,將類型信息發(fā)送給作業(yè)調(diào)度器;第四步驟:作業(yè)調(diào)度器根據(jù)不同負(fù)載類型確定作業(yè)的調(diào)度方式;如果是計(jì)算密集型作業(yè)則直接在當(dāng)前節(jié)點(diǎn)調(diào)度執(zhí)行,如果是I/O密集型作業(yè)則執(zhí)行延遲調(diào)度;匯總調(diào)度決策信息發(fā)送給調(diào)度重構(gòu)決策器;第五步驟:調(diào)度重構(gòu)決策器根據(jù)決策信息重構(gòu)目標(biāo)計(jì)算節(jié)點(diǎn),得到最終調(diào)度結(jié)果并執(zhí)行作業(yè)調(diào)度;第六步驟:當(dāng)有新的用戶提交作業(yè),重復(fù)執(zhí)行以上第一至第五步驟。進(jìn)一步地,所述第一步驟中,為滿足多租戶共享集群,資源管理器采用Hadoop現(xiàn)有公平調(diào)度器(FairScheduler)對(duì)資源進(jìn)行初步劃分。進(jìn)一步地,所述第三步驟中,所述作業(yè)負(fù)載類型判定方法為:將分布式計(jì)算作業(yè)劃分為Map、Shuffle、Reduce三個(gè)階段,通過作業(yè)Map-Shuffle階段的數(shù)據(jù)讀寫率和磁盤I/O帶寬的大小對(duì)比關(guān)系來區(qū)分作業(yè)的負(fù)載類型;設(shè)MID、MOD、SOD、SID分別為Map讀取數(shù)據(jù)大小、Map寫入數(shù)據(jù)大小、Shuffle寫入數(shù)據(jù)大小和shuffle讀取數(shù)據(jù)大小,設(shè)置適當(dāng)?shù)腗ap數(shù)據(jù)轉(zhuǎn)換率為ρ,則有關(guān)系式MOD=ρ*MID,又由于shuffle寫入數(shù)據(jù)即為Map寫入數(shù)據(jù),因此有SOD=MOD,再設(shè)節(jié)點(diǎn)上同時(shí)運(yùn)行的任務(wù)數(shù)為n,該階段的完成時(shí)間為MCT,計(jì)算可得作業(yè)的數(shù)據(jù)讀寫率如下:如磁盤I/O帶寬大小為DIOR,有判定關(guān)系為:(1)當(dāng)MIOR<DIOR時(shí),則該作業(yè)為計(jì)算密集型;(2)當(dāng)MIOR≥DIOR時(shí),則該作業(yè)為I/O密集型。進(jìn)一步地,所述第四步驟中,所述延遲調(diào)度的方法為:如果作業(yè)無法在當(dāng)前節(jié)點(diǎn)啟動(dòng)一個(gè)本地任務(wù)的話,暫時(shí)將它跳過而接著去調(diào)度其他滿足本地化要求的作業(yè);設(shè)置時(shí)間閾值t1和t2,t1<t2,如果作業(yè)被跳過的時(shí)間累加超過閾值t1,那么調(diào)度器將允許它在當(dāng)前節(jié)點(diǎn)啟動(dòng)一個(gè)rack_local的任務(wù),即任務(wù)執(zhí)行所需的數(shù)據(jù)可以不在這個(gè)節(jié)點(diǎn)上,但要在和這個(gè)節(jié)點(diǎn)同屬于一個(gè)機(jī)架內(nèi)的另一個(gè)節(jié)點(diǎn)上;當(dāng)這個(gè)作業(yè)被跳過的時(shí)間累加超過更長(zhǎng)的時(shí)間閾值t2以后,調(diào)度器將允許這個(gè)作業(yè)在任何節(jié)點(diǎn)上啟動(dòng)任務(wù)以保證公平性。進(jìn)一步地,所述第五步驟中,所述重構(gòu)目標(biāo)計(jì)算節(jié)點(diǎn)的方法為:設(shè)為第M個(gè)機(jī)器上第i個(gè)任務(wù)的計(jì)算代價(jià),假設(shè)單個(gè)節(jié)點(diǎn)上任務(wù)之間為串行關(guān)系,則表示第M個(gè)機(jī)器上執(zhí)行完該作業(yè)所有串行任務(wù)的時(shí)間,選取最早完成時(shí)間Tmin,統(tǒng)計(jì)每個(gè)節(jié)點(diǎn)在時(shí)間Tmin內(nèi)可運(yùn)行任務(wù)的個(gè)數(shù),記為某作業(yè)在該節(jié)點(diǎn)的計(jì)算容量;將計(jì)算容量分為本地化任務(wù)容量L和遷移任務(wù)容量M,分別表示可計(jì)算本地化任務(wù)的數(shù)量與可計(jì)算遷移任務(wù)的數(shù)量;重構(gòu)目標(biāo)計(jì)算節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)根據(jù)本地化容量的大小選取本地化任務(wù),優(yōu)先選擇I/O密集型任務(wù),被選取的任務(wù)將該節(jié)點(diǎn)作為自己的目標(biāo)計(jì)算節(jié)點(diǎn),若此時(shí)作業(yè)還有剩余未被分配的任務(wù),則剩余任務(wù)作為遷移任務(wù)依次分配至遷移容量不為零的節(jié)點(diǎn)。本發(fā)明與現(xiàn)有的多租戶資源優(yōu)化調(diào)度方法相比,具有如下優(yōu)點(diǎn):(1)提出了面向不同類型負(fù)載的多租戶資源優(yōu)化調(diào)度方法,通過采集作業(yè)負(fù)載信息,以每個(gè)作業(yè)Map-Shuffle階段的數(shù)據(jù)讀寫率和磁盤帶寬的大小對(duì)比關(guān)系為依據(jù),區(qū)分不同負(fù)載類型,根據(jù)作業(yè)的不同負(fù)載類型判斷是否進(jìn)行延遲調(diào)度,實(shí)現(xiàn)資源本地化的同時(shí),進(jìn)一步提高系統(tǒng)的吞吐率。(2)提出的重構(gòu)資源優(yōu)化調(diào)度方法,盡可能保持作業(yè)本地化的同時(shí)使計(jì)算任務(wù)分散到集群中各個(gè)節(jié)點(diǎn),充分利用集群資源,以實(shí)現(xiàn)分布式負(fù)載均衡。(3)提出的重新構(gòu)造目標(biāo)計(jì)算節(jié)點(diǎn)同樣考慮作業(yè)的不同負(fù)載類型,優(yōu)先本地化I/O密集型作業(yè),增加了作業(yè)的并行程度,減少了作業(yè)的響應(yīng)時(shí)間。相比其他多租戶資源優(yōu)化調(diào)度算法具有更高的資源利用率。附圖說明圖1為實(shí)例中面向不同類型負(fù)載的多租戶資源優(yōu)化調(diào)度方法的流程圖。圖2為面向不同類型負(fù)載的多租戶資源優(yōu)化調(diào)度方法的實(shí)施示意圖。具體實(shí)施方式下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步的詳細(xì)描述,但本發(fā)明的實(shí)施和保護(hù)范圍不限于此,需指出的是,以下若有未特別詳細(xì)說明之處,均是本領(lǐng)域技術(shù)人員可參照現(xiàn)有技術(shù)實(shí)現(xiàn)的。如圖1所示,為本實(shí)例的流程圖,使用系統(tǒng)的租戶提交作業(yè)到作業(yè)等待隊(duì)列中;作業(yè)負(fù)載監(jiān)控器收集作業(yè)負(fù)載信息,如Map-shuffle階段讀寫數(shù)據(jù)大小、讀寫完成時(shí)間、磁盤I/O帶寬等信息,發(fā)送給資源管理器;資源管理器根據(jù)作業(yè)Map-Shuffle階段的數(shù)據(jù)讀寫率和磁盤I/O帶寬的大小對(duì)比關(guān)系判定作業(yè)不同負(fù)載類型,具體判斷方法為:根據(jù)作業(yè)負(fù)載信息計(jì)算作業(yè)的數(shù)據(jù)讀寫率MIOR,根據(jù)作業(yè)負(fù)載監(jiān)控器反饋信息得到磁盤I/O帶寬大小為DIOR,有判定關(guān)系為:(1)當(dāng)MIOR<DIOR時(shí),則該作業(yè)為計(jì)算密集型;(2)當(dāng)MIOR≥DIOR時(shí),則該作業(yè)為I/O密集型;將類型信息發(fā)送給作業(yè)調(diào)度器;作業(yè)調(diào)度器根據(jù)作業(yè)的不同負(fù)載類型確定作業(yè)的調(diào)度方式,如果是計(jì)算密集型作業(yè)則直接在當(dāng)前節(jié)點(diǎn)調(diào)度執(zhí)行,如果是I/O密集型作業(yè)則執(zhí)行延遲調(diào)度;匯總調(diào)度決策信息發(fā)送給調(diào)度重構(gòu)決策器。調(diào)度重構(gòu)決策器根據(jù)決策信息重構(gòu)目標(biāo)計(jì)算節(jié)點(diǎn),每個(gè)節(jié)點(diǎn)根據(jù)本地化容量的大小選取本地化任務(wù),優(yōu)先選擇I/O密集型任務(wù),被選取的任務(wù)將該節(jié)點(diǎn)作為自己的目標(biāo)計(jì)算節(jié)點(diǎn),若此時(shí)作業(yè)還有剩余未被分配的任務(wù),則剩余任務(wù)作為遷移任務(wù)依次分配至遷移容量不為零的節(jié)點(diǎn),得到最終調(diào)度決策結(jié)果并執(zhí)行作業(yè)調(diào)度;當(dāng)有新的用戶提交作業(yè),重復(fù)執(zhí)行以上步驟,直到系統(tǒng)終止運(yùn)行。如圖2所示,給出了面向不同類型負(fù)載的多租戶資源優(yōu)化調(diào)度方法的一種實(shí)施方式,該調(diào)度系統(tǒng)由作業(yè)I/O監(jiān)控器、主控節(jié)點(diǎn)、資源管理器、作業(yè)調(diào)度器、調(diào)度重構(gòu)決策器和計(jì)算節(jié)點(diǎn)組成,其中作業(yè)I/O監(jiān)控器負(fù)責(zé)對(duì)每個(gè)作業(yè)調(diào)度前需要進(jìn)行數(shù)據(jù)讀寫的等待時(shí)間進(jìn)行統(tǒng)計(jì)和收集,并將信息反饋給資源管理器;主控節(jié)點(diǎn)和資源管理器負(fù)責(zé)接收租戶提交作業(yè)的請(qǐng)求、全局資源管理和分配,它根據(jù)作業(yè)進(jìn)行I/O讀寫的等待時(shí)間,區(qū)分作業(yè)的不同負(fù)載類型,將作業(yè)的負(fù)載類型信息發(fā)送給作業(yè)調(diào)度器;作業(yè)調(diào)度器根據(jù)作業(yè)的不同負(fù)載類型信息,確定作業(yè)的調(diào)度方式,將系統(tǒng)中資源分配給各個(gè)正在運(yùn)行的作業(yè);調(diào)度重構(gòu)決策器對(duì)作業(yè)調(diào)度器的調(diào)度結(jié)果進(jìn)行重新構(gòu)造,考慮不同負(fù)載類型信息,面對(duì)計(jì)算密集型任務(wù)可以優(yōu)先調(diào)度它到本地機(jī)架上的其他節(jié)點(diǎn)執(zhí)行,I/O密集型任務(wù)則優(yōu)先調(diào)度到具有節(jié)點(diǎn)本地性的節(jié)點(diǎn)上執(zhí)行,盡可能保持作業(yè)本地化的同時(shí)使計(jì)算任務(wù)分散到集群中各個(gè)節(jié)點(diǎn),獲得最終的資源優(yōu)化調(diào)度結(jié)果并執(zhí)行作業(yè)調(diào)度。計(jì)算節(jié)點(diǎn)是普通的物理PC機(jī),這些物理服務(wù)器可以是異構(gòu)的,包括物理服務(wù)器的物理資源(CPU、內(nèi)存等)大小、體系結(jié)構(gòu)、能耗等不同。實(shí)例為了驗(yàn)證面向不同類型負(fù)載的多租戶資源優(yōu)化調(diào)度方法的有效性,我們模擬使用提出的調(diào)度方法,分析比較優(yōu)化后作業(yè)響應(yīng)時(shí)間和集群吞吐率?,F(xiàn)選取四臺(tái)在同一機(jī)架上的普通PC機(jī)搭建Hadoop集群,一臺(tái)機(jī)器作為主控節(jié)點(diǎn),另外三臺(tái)作為從節(jié)點(diǎn)(計(jì)算節(jié)點(diǎn)),假設(shè)每個(gè)計(jì)算節(jié)點(diǎn)只有一個(gè)資源槽,在任何時(shí)刻某個(gè)節(jié)點(diǎn)只存在一個(gè)任務(wù)處于運(yùn)行狀態(tài),節(jié)點(diǎn)上的任務(wù)之間是完全串行的關(guān)系,所以任務(wù)在某個(gè)節(jié)點(diǎn)上運(yùn)行時(shí)間可以直接累加。先通過建立數(shù)學(xué)模型分析根據(jù)不同負(fù)載類型判斷是否進(jìn)行延遲調(diào)度的有效性。假設(shè)一個(gè)任務(wù)在非本地節(jié)點(diǎn)運(yùn)行比在本地節(jié)點(diǎn)運(yùn)行多耗費(fèi)D秒,把作業(yè)請(qǐng)求的到達(dá)近似為一個(gè)泊松分布,每次出現(xiàn)請(qǐng)求節(jié)點(diǎn)滿足任務(wù)數(shù)據(jù)本地性的時(shí)間間隔為t秒,提交節(jié)點(diǎn)本地性任務(wù)的等待時(shí)間為w,因此延遲調(diào)度對(duì)響應(yīng)時(shí)間影響的預(yù)期增益可表示如下:(1-e-w/t)(D-t)(2)因?yàn)?1-e-w/t)恒大于零,所以要想獲得正的增益只需要滿足D>t。如果作業(yè)為計(jì)算密集型,顯然有D趨近于0,所以本方法采取直接調(diào)度而非延遲等待。相反的,對(duì)于I/O密集型作業(yè)通常采取延遲等待,通過設(shè)定合理的時(shí)間閾值t1和t2可以很大程度的縮短作業(yè)響應(yīng)時(shí)間。在很多作業(yè)運(yùn)行且各個(gè)節(jié)點(diǎn)之間負(fù)載均衡時(shí),當(dāng)一個(gè)作業(yè)無法提交本地任務(wù)時(shí)隊(duì)列后面的其他作業(yè)將有符合數(shù)據(jù)本地化要求的等待調(diào)度,所以等待調(diào)度對(duì)系統(tǒng)的吞吐率提高也是有利的。但是也有可能帶來熱點(diǎn)節(jié)點(diǎn)的競(jìng)爭(zhēng)問題,假設(shè)作業(yè)的大部分?jǐn)?shù)據(jù)集中在某個(gè)節(jié)點(diǎn)或者集群中少數(shù)數(shù)據(jù)節(jié)點(diǎn)上,可能出現(xiàn)計(jì)算任務(wù)也同樣集中在集群中某一節(jié)點(diǎn)或部分節(jié)點(diǎn)上,多個(gè)調(diào)度隊(duì)列中的作業(yè)都在等待同一個(gè)節(jié)點(diǎn)執(zhí)行任務(wù),從而導(dǎo)致作業(yè)較低的并行效率以及較長(zhǎng)的響應(yīng)時(shí)間。為了進(jìn)一步提高系統(tǒng)的吞吐率,調(diào)度重構(gòu)決策器對(duì)調(diào)度計(jì)劃進(jìn)行重新構(gòu)造,根據(jù)作業(yè)的不同負(fù)載類型進(jìn)行不同的調(diào)度策略,針對(duì)計(jì)算密集型任務(wù)可以優(yōu)先調(diào)度它到本地機(jī)架上的其他節(jié)點(diǎn)執(zhí)行,I/O密集型任務(wù)則優(yōu)先調(diào)度到具有節(jié)點(diǎn)本地性的節(jié)點(diǎn)上執(zhí)行,盡可能保持作業(yè)本地化的同時(shí)使計(jì)算任務(wù)分散到集群中各個(gè)節(jié)點(diǎn),從而減少任務(wù)間對(duì)熱點(diǎn)節(jié)點(diǎn)的競(jìng)爭(zhēng)?,F(xiàn)有兩個(gè)租戶同時(shí)提交作業(yè),通過作業(yè)負(fù)載監(jiān)控器反饋信息,根據(jù)作業(yè)負(fù)載類型判斷方法判定作業(yè)Job-1為I/O密集型、作業(yè)Job-2為計(jì)算密集型,每個(gè)作業(yè)由4個(gè)任務(wù)組成,作業(yè)的待處理數(shù)據(jù)相同,但是待處理數(shù)據(jù)分片分布在3個(gè)計(jì)算節(jié)點(diǎn)上,數(shù)據(jù)分片在各個(gè)節(jié)點(diǎn)的分布情況如表1所示:表1數(shù)據(jù)分片在三個(gè)計(jì)算節(jié)點(diǎn)的分布情況節(jié)點(diǎn)Job-1Job-2Node-142Node-202Node-300其中I/O密集型作業(yè)Job-1的4個(gè)數(shù)據(jù)分片都在節(jié)點(diǎn)1上,計(jì)算密集型作業(yè)Job-2有2個(gè)數(shù)據(jù)分片在節(jié)點(diǎn)1上,2個(gè)數(shù)據(jù)分片在節(jié)點(diǎn)2上。<i,j>序列對(duì)表示編號(hào)i任務(wù)的待處理數(shù)據(jù)在第j節(jié)點(diǎn)上,即Job-1的數(shù)據(jù)分布為{<1,1>,<2,1>,<3,1>,<4,1>},Job-2的數(shù)據(jù)分布為{<1,1>,<2,1>,<3,2>,<4,2>}。由此重構(gòu)目標(biāo)計(jì)算節(jié)點(diǎn),選取作業(yè)最早完成時(shí)間Tmin,然后統(tǒng)計(jì)每個(gè)節(jié)點(diǎn)在時(shí)間Tmin內(nèi)可運(yùn)行任務(wù)的個(gè)數(shù),記為各個(gè)節(jié)點(diǎn)的計(jì)算容量如表2所示:表2各個(gè)節(jié)點(diǎn)的計(jì)算容量節(jié)點(diǎn)本地化任務(wù)容量L遷移任務(wù)容量MNode-140Node-222Node-304每個(gè)節(jié)點(diǎn)根據(jù)本地化容量的大小選取本地化任務(wù),在節(jié)點(diǎn)1上優(yōu)先選擇調(diào)度I/O密集型作業(yè)Job-1,被選取的任務(wù)將該節(jié)點(diǎn)作為自己的目標(biāo)計(jì)算節(jié)點(diǎn),即分配Job-1本地化任務(wù){(diào)<1,1>,<2,1>,<3,1>,<4,1>},分配Job-2本地化任務(wù){(diào)<3,2>,<4,2>};節(jié)點(diǎn)2和節(jié)點(diǎn)3存在遷移任務(wù)容量,由于三個(gè)節(jié)點(diǎn)都在同一機(jī)架上,所以Job-2剩余的未分配任務(wù)1、2可選取節(jié)點(diǎn)3作為目標(biāo)計(jì)算節(jié)點(diǎn)。重構(gòu)的目標(biāo)計(jì)算節(jié)點(diǎn)為{<1,3>,<2,3>,<3,2>,<4,2>}。通過上面的多租戶調(diào)度實(shí)例可以驗(yàn)證,優(yōu)化后的資源調(diào)度方案節(jié)省了2個(gè)時(shí)間單位,顯然可以降低作業(yè)響應(yīng)時(shí)間并提高系統(tǒng)的吞吐率。上述實(shí)施例為本發(fā)明較佳的實(shí)施方式,但本發(fā)明的實(shí)施方式并不受上述實(shí)施例的限制,其他的任何未背離本發(fā)明的精神實(shí)質(zhì)與原理下所作的改變、修飾、替代、組合、簡(jiǎn)化,均應(yīng)為等效的置換方式,都包含在本發(fā)明的保護(hù)范圍之內(nèi)。當(dāng)前第1頁1 2 3