任務(wù)調(diào)度優(yōu)化經(jīng)驗(yàn):細(xì)分隊(duì)列,合理利用調(diào)度策略,提升集群資源利用率
??相信目前很多生產(chǎn)系統(tǒng),都使用了多租戶模式管理所有進(jìn)駐大數(shù)據(jù)平臺(tái)的應(yīng)用方,租戶模式的優(yōu)勢(shì),想必大家都有所了解,它能夠管控租戶權(quán)限,彈性分配資源,提高數(shù)據(jù)安全性及計(jì)算資源利用率,但Yarn集群中租戶的資源調(diào)度器分為FairScheduler和CapacityScheduler,本文將探究生產(chǎn)任務(wù)的資源開(kāi)銷差異較大、且存在不同優(yōu)先級(jí)的情況下,如何選擇調(diào)度器,以及配置怎樣的調(diào)度方式更為合理。
首先簡(jiǎn)單了解一下兩種調(diào)度器
FairScheduler---公平調(diào)度
??根據(jù)我的經(jīng)驗(yàn)及理解,相對(duì)于CapacityScheduler調(diào)度器,F(xiàn)airScheduler在配置過(guò)程上更加簡(jiǎn)單,但資源調(diào)度上就相對(duì)粗暴一些;
CapacityScheduler---容器調(diào)度
??該調(diào)度器在資源調(diào)度上更加精細(xì),但配置過(guò)程相對(duì)復(fù)雜一些。
??由于兩種調(diào)度器實(shí)現(xiàn)的功能并無(wú)太大差異,對(duì)于生產(chǎn)系統(tǒng)來(lái)講,兩種調(diào)度器均可使用,筆者本次主要針對(duì)FairScheduler調(diào)度器進(jìn)行實(shí)踐及探究。
實(shí)踐探究
??FairScheduler支持Fair(公平排序算法)和Fifo(先進(jìn)先出)兩種調(diào)度模式,來(lái)實(shí)現(xiàn)各個(gè)租戶和任務(wù)之間資源的調(diào)度,然而如何行之有效的結(jié)合Fair和Fifo兩種模式來(lái)平衡任務(wù)差異性與資源利用最大化之間的關(guān)系,是多租戶平臺(tái)需要探究的問(wèn)題,經(jīng)過(guò)長(zhǎng)期的生產(chǎn)實(shí)踐及相關(guān)測(cè)試,筆者得出如下結(jié)論:
-
模式設(shè)置:隊(duì)列之間使用Fifo(先進(jìn)先出)模式,隊(duì)列內(nèi)部任務(wù)之間使用Fifo(先進(jìn)先出)模式
實(shí)踐結(jié)論:這種組合模式下,隊(duì)列內(nèi)部先提交的任務(wù)可獲得充足的資源以最快速度完成,但在空閑資源較少的情況時(shí),后提交任務(wù)的隊(duì)列需要等待前面隊(duì)列中任務(wù)釋放資源后才可啟動(dòng),若前面隊(duì)列任務(wù)執(zhí)行較慢,則會(huì)大大增加后續(xù)隊(duì)列所有任務(wù)的等待時(shí)間,從而增加后續(xù)隊(duì)列所有任務(wù)的延遲時(shí)間; -
模式設(shè)置:隊(duì)列之間使用Fifo(先進(jìn)先出)模式,隊(duì)列內(nèi)部任務(wù)之間使用Fair(公平排序)模式
實(shí)踐結(jié)論:這種模式與第一種模式存在同樣的問(wèn)題,后續(xù)隊(duì)列中的任務(wù)在資源較為緊張的情況下延時(shí)過(guò)大。 -
模式設(shè)置:隊(duì)列之間使用Fair(公平排序)模式,隊(duì)列內(nèi)部任務(wù)之間使用Fifo(先進(jìn)先出)模式
實(shí)踐結(jié)論:這種模式下,無(wú)論各個(gè)隊(duì)列提交任務(wù)的次序如何,均可在搶占時(shí)間到達(dá)時(shí),獲得配置的最小資源量供隊(duì)列內(nèi)任務(wù)運(yùn)行,而隊(duì)列內(nèi)部的Fifo模式也可保證先提交的任務(wù)獲得充足的資源,以最快速度完成,且整體資源利用率較高。 -
模式設(shè)置:隊(duì)列之間使用Fair(公平排序)模式,隊(duì)列內(nèi)部任務(wù)之間使用Fair(公平排序)模式
實(shí)踐結(jié)論:這種模式與第三種類似,可以保證每個(gè)隊(duì)列提交的任務(wù)都可以獲取資源,但隊(duì)列內(nèi)部任務(wù)之間的Fair模式,使得任務(wù)之間公平的獲取資源,如果出現(xiàn)隊(duì)列內(nèi)同一時(shí)間段提交大量任務(wù)的情況,則這些任務(wù)各自獲取的資源量就很小,也就意味著隊(duì)列內(nèi)所有任務(wù)執(zhí)行速度都非常緩慢,即所有任務(wù)都會(huì)出現(xiàn)較大延時(shí)。
??綜上所述,在任務(wù)差異性較大的多租戶平臺(tái)中,較為合理的調(diào)度模式為上述第三種:在隊(duì)列間使用Fair(公平排序)模式,隊(duì)列內(nèi)部的任務(wù)間使用Fifo(先進(jìn)先出)模式。