任務(wù)調(diào)度優(yōu)化經(jīng)驗:細(xì)分隊列,合理利用調(diào)度策略,提升集群資源利用率
??相信目前很多生產(chǎn)系統(tǒng)誊爹,都使用了多租戶模式管理所有進駐大數(shù)據(jù)平臺的應(yīng)用方贞远,租戶模式的優(yōu)勢畴博,想必大家都有所了解,它能夠管控租戶權(quán)限蓝仲,彈性分配資源俱病,提高數(shù)據(jù)安全性及計算資源利用率,但Yarn集群中租戶的資源調(diào)度器分為FairScheduler和CapacityScheduler袱结,本文將探究生產(chǎn)任務(wù)的資源開銷差異較大亮隙、且存在不同優(yōu)先級的情況下,如何選擇調(diào)度器垢夹,以及配置怎樣的調(diào)度方式更為合理溢吻。
首先簡單了解一下兩種調(diào)度器
FairScheduler---公平調(diào)度
??根據(jù)我的經(jīng)驗及理解,相對于CapacityScheduler調(diào)度器棚饵,F(xiàn)airScheduler在配置過程上更加簡單煤裙,但資源調(diào)度上就相對粗暴一些;
CapacityScheduler---容器調(diào)度
??該調(diào)度器在資源調(diào)度上更加精細(xì)噪漾,但配置過程相對復(fù)雜一些硼砰。
??由于兩種調(diào)度器實現(xiàn)的功能并無太大差異,對于生產(chǎn)系統(tǒng)來講欣硼,兩種調(diào)度器均可使用题翰,筆者本次主要針對FairScheduler調(diào)度器進行實踐及探究。
實踐探究
??FairScheduler支持Fair(公平排序算法)和Fifo(先進先出)兩種調(diào)度模式诈胜,來實現(xiàn)各個租戶和任務(wù)之間資源的調(diào)度豹障,然而如何行之有效的結(jié)合Fair和Fifo兩種模式來平衡任務(wù)差異性與資源利用最大化之間的關(guān)系,是多租戶平臺需要探究的問題焦匈,經(jīng)過長期的生產(chǎn)實踐及相關(guān)測試血公,筆者得出如下結(jié)論:
-
模式設(shè)置:隊列之間使用Fifo(先進先出)模式,隊列內(nèi)部任務(wù)之間使用Fifo(先進先出)模式
實踐結(jié)論:這種組合模式下缓熟,隊列內(nèi)部先提交的任務(wù)可獲得充足的資源以最快速度完成累魔,但在空閑資源較少的情況時摔笤,后提交任務(wù)的隊列需要等待前面隊列中任務(wù)釋放資源后才可啟動,若前面隊列任務(wù)執(zhí)行較慢垦写,則會大大增加后續(xù)隊列所有任務(wù)的等待時間吕世,從而增加后續(xù)隊列所有任務(wù)的延遲時間; -
模式設(shè)置:隊列之間使用Fifo(先進先出)模式梯投,隊列內(nèi)部任務(wù)之間使用Fair(公平排序)模式
實踐結(jié)論:這種模式與第一種模式存在同樣的問題命辖,后續(xù)隊列中的任務(wù)在資源較為緊張的情況下延時過大。 -
模式設(shè)置:隊列之間使用Fair(公平排序)模式分蓖,隊列內(nèi)部任務(wù)之間使用Fifo(先進先出)模式
實踐結(jié)論:這種模式下尔艇,無論各個隊列提交任務(wù)的次序如何,均可在搶占時間到達(dá)時咆疗,獲得配置的最小資源量供隊列內(nèi)任務(wù)運行漓帚,而隊列內(nèi)部的Fifo模式也可保證先提交的任務(wù)獲得充足的資源母债,以最快速度完成午磁,且整體資源利用率較高。 -
模式設(shè)置:隊列之間使用Fair(公平排序)模式毡们,隊列內(nèi)部任務(wù)之間使用Fair(公平排序)模式
實踐結(jié)論:這種模式與第三種類似迅皇,可以保證每個隊列提交的任務(wù)都可以獲取資源,但隊列內(nèi)部任務(wù)之間的Fair模式衙熔,使得任務(wù)之間公平的獲取資源登颓,如果出現(xiàn)隊列內(nèi)同一時間段提交大量任務(wù)的情況,則這些任務(wù)各自獲取的資源量就很小红氯,也就意味著隊列內(nèi)所有任務(wù)執(zhí)行速度都非常緩慢框咙,即所有任務(wù)都會出現(xiàn)較大延時。
??綜上所述痢甘,在任務(wù)差異性較大的多租戶平臺中喇嘱,較為合理的調(diào)度模式為上述第三種:在隊列間使用Fair(公平排序)模式,隊列內(nèi)部的任務(wù)間使用Fifo(先進先出)模式塞栅。