本發(fā)明涉及一種基于最小費(fèi)用最大流的大規(guī)模資源調(diào)度系統(tǒng)及方法,屬于大數(shù)據(jù)資源管理領(lǐng)域,特別是大規(guī)模環(huán)境下資源調(diào)度問(wèn)題。
背景技術(shù):
隨著互聯(lián)網(wǎng)(Internet)、物聯(lián)網(wǎng)(IoT)等技術(shù)的快速發(fā)展,數(shù)據(jù)(Data)開(kāi)始從簡(jiǎn)單處理對(duì)象向基礎(chǔ)性服務(wù)轉(zhuǎn)變,多個(gè)作業(yè)(Job)同時(shí)提交,分解成并行執(zhí)行任務(wù)(Task),在至少萬(wàn)級(jí)規(guī)模的物理服務(wù)器上運(yùn)行處理,已成主流的應(yīng)用模式,稱之為“并行作業(yè)(Concurrentjob)”問(wèn)題。例如,Github每年需處理2000多萬(wàn)個(gè)作業(yè),F(xiàn)acebook每天要響應(yīng)近萬(wàn)個(gè)作業(yè)請(qǐng)求。
大規(guī)模資源調(diào)度是指多目標(biāo)約束下,任務(wù)與物理資源最優(yōu)映射決策過(guò)程,它是解決并行作業(yè)問(wèn)題的關(guān)鍵。已有研究工作或權(quán)衡任務(wù)干擾約束(cross-task interference)和資源利用率(high resource utilization),如Whare-Map、Tetrisched;或權(quán)衡公平性(fairness)和數(shù)據(jù)局部性(data locality),如Quincy、YARN;或權(quán)衡公平性(fairness)和隔離性(isolation),如Mesos、Omega;或滿足優(yōu)先級(jí)(priority)等單一約束條件,如Borg、Alsched、Quasar。由此可見(jiàn),已有工作通常只能適用目標(biāo)固定不變,但相關(guān)研究表明,相同的作業(yè)集合采用不同的目標(biāo)進(jìn)行調(diào)度,或?qū)е聵O低的資源利用率,如Twitter平均資源利用率小于20%;或引起作業(yè)性能下降5倍。因此,根據(jù)合適的場(chǎng)景選擇合適的調(diào)度目標(biāo)意義重大。
隨著大數(shù)據(jù)的快速發(fā)展和應(yīng)用深入,白天采用公平性調(diào)度目標(biāo),為各服務(wù)類(郵件、門(mén)戶等)作業(yè)提供資源,晚上采用優(yōu)先級(jí)調(diào)度目標(biāo),優(yōu)先保證服務(wù)類作業(yè)資源供給,利用閑置資源提交大數(shù)據(jù)分析類作業(yè)(Hadoop、Spark等)已成為一種主流的業(yè)務(wù)模式。故而產(chǎn)生了資源調(diào)度具備動(dòng)態(tài)目標(biāo)組合,按需配置生效的新需求。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明技術(shù)解決問(wèn)題:克服現(xiàn)有技術(shù)的不足,提出了一種基于最小費(fèi)用最大流的大規(guī)模資源調(diào)度系統(tǒng)及方法,滿足了實(shí)際業(yè)務(wù)場(chǎng)景靈活性需求,即調(diào)度系統(tǒng)支持多種調(diào)度目標(biāo),且可針對(duì)不同場(chǎng)景需求,靈活選取最優(yōu)調(diào)度目標(biāo)以適應(yīng)需求。
本發(fā)明技術(shù)解決方案:一種基于最小費(fèi)用最大流的大規(guī)模資源調(diào)度系統(tǒng),包括:任務(wù)狀態(tài)表、集群狀態(tài)表、調(diào)度目標(biāo)表、最小費(fèi)用最大流構(gòu)造器、最小費(fèi)用最大流求解器、任務(wù)執(zhí)行器,其中:
任務(wù)狀態(tài)表,接收并保存用戶提交的任務(wù)狀態(tài),包括任務(wù)的CPU使用率、內(nèi)存使用率、網(wǎng)絡(luò)I/O、磁盤(pán)I/O和優(yōu)先級(jí);
集群狀態(tài)表,保存集群狀態(tài)信息,包括集群CPU使用率、內(nèi)存使用率、網(wǎng)絡(luò)和磁盤(pán)I/O,在集群狀態(tài)發(fā)生變化時(shí)對(duì)集群狀態(tài)表進(jìn)行更新;
調(diào)度目標(biāo)表:存儲(chǔ)用戶配置的調(diào)度目標(biāo),目前包括優(yōu)先級(jí)、放置約束及公平性;
最小費(fèi)用最大流構(gòu)造器,根據(jù)任務(wù)狀態(tài)表和集群狀態(tài)表信息,從調(diào)度目標(biāo)表選擇調(diào)度目標(biāo),構(gòu)造最小費(fèi)用最大流圖;
最小費(fèi)用最大流求解器,采用增量式算法對(duì)最小費(fèi)用最大流構(gòu)造器構(gòu)造的最小費(fèi)用最大流圖進(jìn)行求解;
任務(wù)執(zhí)行器,采用容器技術(shù)進(jìn)行任務(wù)隔離與執(zhí)行,同時(shí)把任務(wù)狀態(tài)和集群狀態(tài)定期同步到任務(wù)狀態(tài)表和集群狀態(tài)表。
所述最小費(fèi)用最大流構(gòu)造器對(duì)最小費(fèi)用最大流圖的構(gòu)造方法如下:
(1)根據(jù)最小費(fèi)用最大流構(gòu)造器建立最小費(fèi)用最大流模型,提供基本操作接口;
(2)根據(jù)任務(wù)狀態(tài)表、集群狀態(tài)表、調(diào)度目標(biāo)表獲取任務(wù)狀態(tài)、集群狀態(tài)和調(diào)度目標(biāo);
(3)根據(jù)第一步提供的基本操作接口和第二步獲取的任務(wù)狀態(tài)、集群狀態(tài)、和調(diào)度目標(biāo),采用不同構(gòu)造方法構(gòu)造最小費(fèi)用最大流圖;
(4)將構(gòu)造結(jié)果輸出至最小費(fèi)用最大流求解器。
所述采用增量式算法對(duì)最小費(fèi)用最大流圖進(jìn)行求解方法如下;
(1)循環(huán)監(jiān)測(cè)任務(wù)狀態(tài)表和集群狀態(tài)表的變更事件,包括添加任務(wù)、添加機(jī)器,將變更結(jié)果輸出值最小費(fèi)用最大流圖構(gòu)造器;
(2)最小費(fèi)用最大流圖構(gòu)造器根據(jù)第一步得到的變更事件更新最小費(fèi)用最大流圖,將更新后的最小費(fèi)用最大流圖輸出至最小費(fèi)用最大流求解器;
(3)最小費(fèi)用最大流求解器緩存上次求解結(jié)果,對(duì)第二步得到的更新后的最小費(fèi)用最大流圖進(jìn)行局部求解,得到任務(wù)與資源映射關(guān)系。
一種基于最小費(fèi)用最大流的大規(guī)模資源調(diào)度方法,包括以下步驟:
步驟S01:根據(jù)任務(wù)狀態(tài)表和集群狀態(tài)表獲取任務(wù)狀態(tài)和集群狀態(tài),輸出至最小費(fèi)用最大流求解器;
步驟S02:根據(jù)調(diào)度目標(biāo)表和用戶配置信息,獲取調(diào)度目標(biāo),輸出至最小費(fèi)用最大流構(gòu)造器;
步驟S03:根據(jù)步驟S01和步驟S02獲取的任務(wù)狀態(tài)、集群狀態(tài)、調(diào)度目標(biāo),采用最小費(fèi)用最大流構(gòu)造器構(gòu)造最小費(fèi)用最大流圖,將結(jié)果輸出至最小費(fèi)用最大流求解器;
步驟S04:根據(jù)最小費(fèi)用最大流求解器,采用增量式算法,對(duì)步驟S03中構(gòu)造的最小費(fèi)用最大流圖進(jìn)行求解,得到任務(wù)與資源的映射關(guān)系;
步驟S05:根據(jù)步驟S04得到的任務(wù)與資源映射關(guān)系,將相應(yīng)任務(wù)調(diào)度到特定機(jī)器的任務(wù)執(zhí)行器上執(zhí)行。
本發(fā)明與現(xiàn)有技術(shù)相比的優(yōu)點(diǎn)在于:
(1)本發(fā)明提出基于最小費(fèi)用最大流的大規(guī)模資源調(diào)度方法,支持多種調(diào)度目標(biāo),且可針對(duì)不同場(chǎng)景按需切換,解決了傳統(tǒng)方法難以適用于多種調(diào)度場(chǎng)景問(wèn)題;
(2)本發(fā)明提出了最小費(fèi)用最大流圖的增量式求解算法,能夠有效降低流圖的求解時(shí)間,使本發(fā)明更具有實(shí)用價(jià)值。
附圖說(shuō)明
圖1為本發(fā)明方法實(shí)現(xiàn)原理圖;
圖2為本發(fā)明方法中最小費(fèi)用最大流網(wǎng)絡(luò)模型原理圖;
圖3為本發(fā)明中最小費(fèi)用最大流構(gòu)造器的實(shí)現(xiàn)流程圖;
圖4為本發(fā)明中最小費(fèi)用最大流求解器的實(shí)現(xiàn)流程圖。
具體實(shí)施方式
為使本發(fā)明更加容易理解,結(jié)合一個(gè)實(shí)例對(duì)本發(fā)明作進(jìn)一步闡述,但該實(shí)例不構(gòu)成對(duì)本發(fā)明的任何限制。
如附圖1,本發(fā)明技術(shù)解決方案:基于最小費(fèi)用最大流的大規(guī)模資源調(diào)度系統(tǒng),包括任務(wù)狀態(tài)表、集群狀態(tài)表、調(diào)度目標(biāo)表、最小費(fèi)用最大流構(gòu)造器、最小費(fèi)用最大流求解器、任務(wù)執(zhí)行器。其中:
任務(wù)狀態(tài)表接收并保存用戶提交的任務(wù)狀態(tài),包括任務(wù)的CPU使用率、內(nèi)存使用率、網(wǎng)絡(luò)I/O、磁盤(pán)I/O、優(yōu)先級(jí);
集群狀態(tài)表保存集群狀態(tài)信息,包括集群CPU使用率、內(nèi)存使用率、網(wǎng)絡(luò)和磁盤(pán)I/O,在集群狀態(tài)發(fā)生變化時(shí)對(duì)集群狀態(tài)表進(jìn)行更新;
調(diào)度目標(biāo)表:存儲(chǔ)用戶配置的調(diào)度目標(biāo),目前包括優(yōu)先級(jí)、放置約束以及公平性;
最小費(fèi)用最大流構(gòu)造器,根據(jù)任務(wù)狀態(tài)表和集群狀態(tài)表信息和調(diào)度目標(biāo)表中信息,根據(jù)不同構(gòu)造方法,構(gòu)造最小費(fèi)用最大流圖;
最小費(fèi)用最大流求解器采用增量式算法對(duì)構(gòu)造器構(gòu)造的最小費(fèi)用最大流圖進(jìn)行求解;
任務(wù)執(zhí)行器,采用容器技術(shù),進(jìn)行任務(wù)執(zhí)行與隔離。
如圖3所示,本發(fā)明中最小費(fèi)用最大流構(gòu)造器的實(shí)現(xiàn)如下:
首先采用最小費(fèi)用最大流構(gòu)造器建立最小費(fèi)用最大流模型,提供基本操作接口;然后根據(jù)任務(wù)狀態(tài)表、集群狀態(tài)表和調(diào)度目標(biāo)表獲取任務(wù)狀態(tài)、集群狀態(tài)和調(diào)度目標(biāo),輸出至最小費(fèi)用最大流構(gòu)造器;最小費(fèi)用最大流構(gòu)造器根據(jù)不同調(diào)度目標(biāo)的構(gòu)造方法,構(gòu)造最小費(fèi)用最大流圖。
所述最小費(fèi)用最大流模型及基本操作接口如下:
圖2是最小費(fèi)用最大流模型,左側(cè)是任務(wù)集合T,右側(cè)是物理資源集合M,邊T1,2→M1以及T2,1→U1,表示資源M1和U1為任務(wù)T1,2資源供給的候選項(xiàng);每條邊的容量和費(fèi)用表示任務(wù)是否可調(diào)度到相應(yīng)物理資源上(容量),如果可以,其供給的效果(費(fèi)用)如何。資源調(diào)度問(wèn)題映射到最小費(fèi)用最大流問(wèn)題后,圖中各元素的物理含義如表1所示。
表1基于最小費(fèi)用最大流調(diào)度元素具體含義(A→B表示A到B節(jié)點(diǎn)構(gòu)成的有向邊,*號(hào)表示任意節(jié)點(diǎn))
本系統(tǒng)提供的圖的基本操作接口如表1所示,包括添加邊AddEdge、添加節(jié)點(diǎn)AddNode、設(shè)置容量SetCapacity、設(shè)置費(fèi)用SetCost。
表1圖的基本操作接口
所述不同調(diào)度目標(biāo)的具體構(gòu)造方法如下:
公平性、放置約束、優(yōu)先級(jí)三種主要調(diào)度目標(biāo)從資源視角轉(zhuǎn)換為圖的容量和費(fèi)用賦值問(wèn)題,基于以上基本操作接口,分別介紹公平性、放置約束、優(yōu)先級(jí)的構(gòu)造算法。
1)公平性
公平性指作業(yè)集合公平共享物理資源。例如,對(duì)于Job j,其包含的任務(wù)數(shù)為Nj,通過(guò)公平算法計(jì)算其所需公平份額為Aj。若調(diào)度算法分配給Job j的資源份額為Aj,則滿足公平性。
公平性通過(guò)圖的容量構(gòu)造問(wèn)題來(lái)表達(dá),算法步驟如下:
i.對(duì)于每個(gè)作業(yè)Job j添加等待節(jié)點(diǎn)Uj
ii.設(shè)置Uj→S容量上下界為:
[Nj-Aj,Nj-Aj] (1)
iii.由于Uj→S的上下界均為Nj-Aj,則通過(guò)Uj的流量fu=Nj-Aj(最小費(fèi)用最大流網(wǎng)絡(luò)模型的約束條件)即Jobj中需要等待的任務(wù)為Nj-Aj個(gè)。
iv.Job j的任務(wù)Nj或流向Uj,處于等待狀態(tài),或流向資源節(jié)點(diǎn)進(jìn)行調(diào)度,因此Job j通過(guò)資源節(jié)點(diǎn)的流量
fr=Nj-(Nj-Aj)=Aj (2)
即Job j分配到Aj份額資源,滿足最大最小公平性。
表2圖的公平性構(gòu)造算法
2)放置約束
放置約束可描述為如公式(3)所示三元組:
placement constraint=<task,resources,utility> (3)
其中Task表示任務(wù),resources表示任務(wù)約束的資源,表示task放置到resources上所獲得的效益。采用效益函數(shù)描述放置約束,即
max∑utility (4)
放置約束可映射到最小費(fèi)用最大流網(wǎng)絡(luò)邊和費(fèi)用的構(gòu)造問(wèn)題,步驟如下:
i.在圖中task和resources之間建立一條邊task→resources
ii.為新建立的邊賦予一個(gè)與效益值相反的費(fèi)用,如公式(5)所示
cost(task→resources)=-utility (5)
iii.最大效益函數(shù)對(duì)應(yīng)最小費(fèi)用
min∑cost (6)
由公式(4)、(6)可知,通過(guò)最小費(fèi)用最大流網(wǎng)絡(luò)表述的放置約束等價(jià)于放置約束的定義。
表3圖的放置約束構(gòu)造算法
3)優(yōu)先級(jí)
在支持優(yōu)先級(jí)的調(diào)度中,優(yōu)先級(jí)高的任務(wù)優(yōu)先獲得資源。
最小費(fèi)用最大流網(wǎng)絡(luò)能夠通過(guò)費(fèi)用構(gòu)造來(lái)支持嚴(yán)格的優(yōu)先級(jí)調(diào)度,步驟如下:
i.類似Brog,帶有優(yōu)先級(jí)調(diào)度的費(fèi)用計(jì)算公式定義為
其中,w1-n代表每一維度(優(yōu)先級(jí)維度,CPU利用率維度,磁盤(pán)利用率維度等)的權(quán)重,每一維度的取值范圍規(guī)范化為[0,ω],ω是一個(gè)常數(shù)值。
ii.為滿足嚴(yán)格優(yōu)先級(jí)約束,把優(yōu)先級(jí)維度權(quán)重賦值為∑1≤i≤nwi×ω,則優(yōu)先級(jí)較高的任務(wù)費(fèi)用一定最小;
iii.對(duì)圖進(jìn)行構(gòu)造時(shí)任務(wù)相關(guān)費(fèi)用α賦值為cost(w,v)
α=cost(w,v) (8)
表4圖的優(yōu)先級(jí)構(gòu)造算法
如圖4所示,最小費(fèi)用最大流求解器的實(shí)現(xiàn)流程如下:
首先采用已有CostScaling方法對(duì)圖進(jìn)行初始化求解,并保存求解結(jié)果;然后,循環(huán)監(jiān)測(cè)任務(wù)狀態(tài)表和集群狀態(tài)表的變更事件,其中變更事件包括添加、移除任務(wù),添加、移除資源,費(fèi)用變更和容量變更;如果監(jiān)測(cè)到變更事件,則采用最小費(fèi)用最大流構(gòu)造器更新最小費(fèi)用最大流圖,并觸發(fā)最小費(fèi)用最大流求解器復(fù)用上次求解結(jié)果,僅對(duì)圖中的更新部分進(jìn)行增量求解。
所述增量求解的原理如下:
最小費(fèi)最大流網(wǎng)絡(luò)問(wèn)題的形式化描述如下:
目標(biāo)函數(shù)min∑(w,v)∈Ec(w,v)f(w,v) (9)
約束條件
其中,w,v表示圖中節(jié)點(diǎn),c(w,v)表示邊(w,v)的費(fèi)用,f(w,v)表示邊(w,v)的流量,u(w,v)表示邊(w,v)的容量,b(v)>0的頂點(diǎn)為源節(jié)點(diǎn),b(v)<0的點(diǎn)為匯聚節(jié)點(diǎn)。滿足∑vb(v)=0的流稱為可行流。每個(gè)節(jié)點(diǎn)v的勢(shì)π(v)是一個(gè)實(shí)數(shù)值,給定節(jié)點(diǎn)勢(shì)的集合,邊的相對(duì)費(fèi)用(Reduced cost)定義為cπ(v,w)=c(v,w)-π(v)+π(w)。對(duì)于可行流f,G(f)為圖G的殘存網(wǎng)絡(luò)。
當(dāng)最小費(fèi)用最大流問(wèn)題的可行流f滿足以下條件之一時(shí),可行流f是最優(yōu)的:
·負(fù)圈最優(yōu)化條件(Negative cycle optimality):G(f)中沒(méi)有費(fèi)用為負(fù)數(shù)的增廣圈;
·相對(duì)費(fèi)用最優(yōu)化條件(Reduced cost optimality):G(f)中每一個(gè)邊的相對(duì)費(fèi)用cπ(v,w)均大于0;
·互補(bǔ)松弛最優(yōu)化條件(Complementary slackness optimality):G(f)的邊,或滿足cπ(v,w)>0且f(v,w)=0,或滿足0<f(v,w)<u(v,w)且cπ(v,w)=0,或滿足cπ(v,w)<0且f(v,w)=u(v,w)。
基于以上條件,已有算法或維護(hù)最大流,迭代減少費(fèi)用;或維護(hù)最小費(fèi)用,迭代增加流,即算法是迭代進(jìn)行的。根據(jù)Google實(shí)測(cè)結(jié)果,已有算法在10萬(wàn)臺(tái)物理資源規(guī)模下,調(diào)度延遲會(huì)大于90秒,不具有實(shí)用性。本發(fā)明提出一種圖的增量式求解方法,通過(guò)緩存并復(fù)用上次求解結(jié)果,僅需對(duì)圖進(jìn)行局部運(yùn)算,即可得到圖的全局最優(yōu)解,具有實(shí)用性。
所述增量求解具體算法如下:
對(duì)于圖G=(V,E,U,C),其最小費(fèi)用流為f,G網(wǎng)絡(luò)結(jié)構(gòu)局部發(fā)生改變,改變后的圖G={V′,E′,U′,C′}。增量式最小費(fèi)用流算法,即圖G′基于G的最小費(fèi)用流f進(jìn)一步優(yōu)化,求得G′的最小費(fèi)用流f′。
首先,基于事件驅(qū)動(dòng)模型循環(huán)檢全局物理資源的狀態(tài)改變事件Event(任務(wù)提交,機(jī)器宕機(jī)等),當(dāng)有事件發(fā)生,更新圖的結(jié)構(gòu),然后復(fù)用上次求解結(jié)果,調(diào)用Cost scaling算法對(duì)更新后的圖進(jìn)行求解。Cost scaling算法主要思想是不斷迭代尋找互補(bǔ)松弛最優(yōu)化條件,其中∈表示松弛條件,隨著迭代次數(shù)增加逐漸減小,f表示初始最大流,基于流f,CostScaling算法迭代尋找減小費(fèi)用條件并更新總費(fèi)用,直到滿足松弛條件∈為止。增量迭代操作,采用推送-重標(biāo)簽算法對(duì)松弛條件進(jìn)行更新。增量式算法的時(shí)間復(fù)雜度和圖改變的范圍相關(guān),最好情況下為O(VE);最壞條件下需遍歷整個(gè)圖,時(shí)間復(fù)雜度為O(V2Elog(VC))。
表4增量式最小費(fèi)用最大流算法
本發(fā)明的大規(guī)模資源調(diào)度方法包括以下步驟:
步驟S01:任務(wù)狀態(tài)表接收并保存用戶提交的任務(wù)狀態(tài),包括任務(wù)的CPU使用率、內(nèi)存使用率、網(wǎng)絡(luò)I/O、磁盤(pán)I/O、優(yōu)先級(jí);集群狀態(tài)表保存集群狀態(tài)信息,包括集群CPU使用率、內(nèi)存使用率、網(wǎng)絡(luò)和磁盤(pán)I/O,在集群狀態(tài)發(fā)生變化時(shí)對(duì)集群狀態(tài)表進(jìn)行更新。任務(wù)狀態(tài)和集群狀態(tài)輸出至最小費(fèi)用最大流構(gòu)造器。
步驟S02:用戶配置的調(diào)度目標(biāo)表,從優(yōu)先級(jí)、放置約束以及公平性目標(biāo)中選擇一個(gè)調(diào)度目標(biāo)。調(diào)度目標(biāo)輸出至最小費(fèi)用最大流構(gòu)造器。
步驟S03:最小費(fèi)用最大流構(gòu)造器建立最小費(fèi)用最大流模型,提供基本操作接口,并根據(jù)任務(wù)狀態(tài)、集群狀態(tài)和用戶選擇的調(diào)度目標(biāo)構(gòu)造最小費(fèi)用最大流圖。最小費(fèi)用最大流圖輸出至最小費(fèi)用最大流求解器。
其中,最小費(fèi)用最大流模型建立過(guò)程如下:
資源調(diào)度問(wèn)題可映射為最小費(fèi)用最大流模型問(wèn)題,對(duì)于模型G=(V,E,U,C),資源調(diào)度問(wèn)題與其映射關(guān)系如下:
·節(jié)點(diǎn)集V:表示資源供需實(shí)體,比如資源需求實(shí)體是任務(wù)、資源供給實(shí)體是物理服務(wù)器;
·邊集E:表示任務(wù)與資源之間的可達(dá)性,即任務(wù)是否能映射到資源。任務(wù)與資源之間存在邊相連,表示可達(dá),否則表示不可達(dá);
·容量U:表示資源的最大供給,例如物理服務(wù)器M1的CPU核數(shù)是12;
·費(fèi)用C:當(dāng)任務(wù)與候選供給資源是一對(duì)多關(guān)系時(shí)候,用于評(píng)估每種資源供需組合的效果
對(duì)于模型G的基本操作接口包括:添加變AddEdge,添加節(jié)點(diǎn)AddNode,設(shè)置容量SetCapacity,設(shè)置費(fèi)用SetCost。
不同調(diào)度目標(biāo)構(gòu)造方法如下:
公平性通過(guò)圖的容量構(gòu)造問(wèn)題來(lái)表達(dá),算法步驟如下:
i.對(duì)于每個(gè)作業(yè)Job j添加等待節(jié)點(diǎn)Uj
ii.設(shè)置Uj→S容量上下界為:
[Nj-Aj,Nj-Aj] (1)
iii.由于Uj→S的上下界均為Nj-Aj,則通過(guò)Uj的流量fu=Nj-Aj(最小費(fèi)用最大流網(wǎng)絡(luò)模型的約束條件)即Job j中需要等待的任務(wù)為Nj-Aj個(gè)。
iv.Job j的任務(wù)Nj或流向Uj,處于等待狀態(tài),或流向資源節(jié)點(diǎn)進(jìn)行調(diào)度,因此Job j通過(guò)資源節(jié)點(diǎn)的流量
fr=Nj-(Nj-Aj)=Aj (2)
即Job j分配到Aj份額資源,滿足最大最小公平性。
放置約束可映射到最小費(fèi)用最大流網(wǎng)絡(luò)邊和費(fèi)用的構(gòu)造問(wèn)題,步驟如下:
i.在圖中task和resources之間建立一條邊task→resources
ii.為新建立的邊賦予一個(gè)與效益值相反的費(fèi)用,如公式(5)所示
cost(task→resources)=-utility (5)
iii.最大效益函數(shù)對(duì)應(yīng)最小費(fèi)用
min∑cost (6)
由公式(4)、(6)可知,通過(guò)最小費(fèi)用最大流網(wǎng)絡(luò)表述的放置約束等價(jià)于放置約束的定義。
優(yōu)先級(jí)構(gòu)造步驟如下:
i.優(yōu)先級(jí)調(diào)度的費(fèi)用計(jì)算公式定義為
其中,w1-n代表每一維度(優(yōu)先級(jí)維度,CPU利用率維度,磁盤(pán)利用率維度等)的權(quán)重,每一維度的取值范圍規(guī)范化為[0,ω],ω是一個(gè)常數(shù)值。
ii.把優(yōu)先級(jí)維度權(quán)重賦值為∑1≤i≤nwi×ω,優(yōu)先級(jí)較高的任務(wù)費(fèi)用一定最?。?/p>
iii.對(duì)圖進(jìn)行構(gòu)造時(shí)任務(wù)相關(guān)費(fèi)用α賦值為cost(w,v)
α=cost(w,v) (8)
步驟S04:最小費(fèi)用最大流求解器對(duì)步驟S03得到的最小費(fèi)用最大流圖采用增量式算法進(jìn)行求解,得到任務(wù)與資源的映射關(guān)系。任務(wù)與資源的映射關(guān)系輸出至任務(wù)執(zhí)行器。
其中,增量式算法具體過(guò)程如下,
基于事件驅(qū)動(dòng)模型循環(huán)檢全局物理資源的狀態(tài)改變事件Event(任務(wù)提交,機(jī)器宕機(jī)等),當(dāng)有事件發(fā)生,更新圖的結(jié)構(gòu),然后復(fù)用上次求解結(jié)果,調(diào)用Cost scaling算法對(duì)更新后的圖進(jìn)行求解。Cost scaling算法主要思想是不斷迭代尋找互補(bǔ)松弛最優(yōu)化條件,其中∈表示松弛條件,隨著迭代次數(shù)增加逐漸減小,f表示初始最大流,基于流f,CostScaling算法迭代尋找減小費(fèi)用條件并更新總費(fèi)用,直到滿足松弛條件∈為止。增量迭代操作,采用推送-重標(biāo)簽算法對(duì)松弛條件進(jìn)行更新。
步驟S05:根據(jù)步驟S04得到的任務(wù)與資源映射關(guān)系,將任務(wù)調(diào)度到相應(yīng)資源,由任務(wù)執(zhí)行器負(fù)責(zé)任務(wù)的具體執(zhí)行。任務(wù)執(zhí)行器采用容器。