获国际架构顶会ATC2021最佳论文!Fuxi2.0去中心化的调度架构详解
簡(jiǎn)介:?近日,在國(guó)際體系架構(gòu)頂會(huì)USENIX ATC2021上,阿里云飛天伏羲團(tuán)隊(duì)與香港中文大學(xué)合作的一篇論文《Scaling Large Production Clusters with Partitioned Synchronization》不僅成功被大會(huì)錄取,而且被大會(huì)專家組評(píng)定為三篇最佳論文之一(Best Paper Award)。
作者 | 馮亦揮、劉智、趙蘊(yùn)健、金曉月、吳一迪、張楊、鄭尚策、李超、關(guān)濤
來(lái)源 | 阿里技術(shù)公眾號(hào)
引言
近日,在國(guó)際體系架構(gòu)頂會(huì)USENIX ATC2021上,阿里云飛天伏羲團(tuán)隊(duì)與香港中文大學(xué)合作的一篇論文《Scaling Large Production Clusters with Partitioned Synchronization》不僅成功被大會(huì)錄取,而且被大會(huì)專家組評(píng)定為三篇最佳論文之一(Best Paper Award)。
ATC在計(jì)算機(jī)系統(tǒng)領(lǐng)域極具影響力。自1992年至今,ATC已成功舉辦31屆,吸引了普林斯頓、斯坦福、加州大學(xué)伯克利分校、康奈爾、中國(guó)清華大學(xué)、北京大學(xué)等頂級(jí)名校,以及微軟、英特爾、三星等科技巨頭發(fā)布研究成果。ATC 對(duì)論文要求極高,必須滿足基礎(chǔ)性貢獻(xiàn)、前瞻性影響和堅(jiān)實(shí)系統(tǒng)實(shí)現(xiàn)的要求,2021 USENIX組委會(huì)錄用64篇(錄取率為18%),全球僅選取3篇最佳論文(其他兩篇來(lái)自Stanford University和Columbia University)。這也是ATC最佳論文首次出現(xiàn)中國(guó)公司的身影。
本次大會(huì)上,我們?cè)敿?xì)介紹了Fuxi 2.0項(xiàng)目的最新成果,超大規(guī)模分布式集群去中心化的調(diào)度架構(gòu),首次向外界披露了阿里云在超大規(guī)模集群調(diào)度上的實(shí)現(xiàn)細(xì)節(jié),也是飛天操作系統(tǒng)核心能力的又一次成功展現(xiàn)。
一 論文背景
AI/大數(shù)據(jù)計(jì)算場(chǎng)景,隨著計(jì)算需求的快速增長(zhǎng),云計(jì)算集群突破單集群萬(wàn)臺(tái)規(guī)模(一個(gè)集群可能有10萬(wàn)臺(tái)機(jī)器,每天執(zhí)行數(shù)十億個(gè)任務(wù),特別是短時(shí)任務(wù)),以實(shí)現(xiàn)高利用率低成本的附加值,具有重要意義。資源調(diào)度器作為大型生產(chǎn)集群的核心組件,它負(fù)責(zé)將集群內(nèi)的多維度資源請(qǐng)求與機(jī)器資源進(jìn)行高效匹配,而集群規(guī)模的增長(zhǎng),意味著有更高的并發(fā)請(qǐng)求,產(chǎn)生”乘積“效應(yīng),使調(diào)度復(fù)雜度急劇增加。因此,如何實(shí)現(xiàn)集群規(guī)模的可擴(kuò)展,在保持良好的調(diào)度效果的同時(shí),做到高并發(fā)、低延時(shí),是業(yè)內(nèi)公認(rèn)的非常艱巨的任務(wù)。傳統(tǒng)的中心調(diào)度器,受限于單點(diǎn)調(diào)度能力,大多數(shù)無(wú)法處理生產(chǎn)級(jí)別的規(guī)模,也無(wú)法保證穩(wěn)定性和健壯性,做到升級(jí)過(guò)程對(duì)用戶透明。
二 現(xiàn)狀分析
1 作業(yè)負(fù)載
在阿里巴巴,單個(gè)計(jì)算集群每天運(yùn)行著數(shù)百萬(wàn)的作業(yè)。圖1a(實(shí)心曲線)繪制了一個(gè)集群某個(gè)月份內(nèi)每天隨機(jī)處理的作業(yè)數(shù),334萬(wàn)至436萬(wàn),而一個(gè)作業(yè)由許多任務(wù)組成,圖1a(虛線)顯示每天的任務(wù)數(shù)量大概為從31億到44億。其中大部分任務(wù)都是短時(shí)任務(wù),如圖1b所示,87%的任務(wù)在10秒內(nèi)完成。大規(guī)模集群的調(diào)度負(fù)載還是非常大的。
2 調(diào)度架構(gòu)升級(jí)的必要性
在Fuxi1.0,調(diào)度器遵循典型的master-worker架構(gòu),FuxiMaster負(fù)責(zé)管理并調(diào)度集群中的所有資源,同時(shí)每臺(tái)機(jī)器上有一個(gè)agent,Tubo,定期通過(guò)心跳消息向FuxiMaster同步狀態(tài)。用戶提交的每個(gè)作業(yè)都有其所在的quota組的信息,quota組能使用資源的最大最小值由SRE設(shè)置。我們的quota機(jī)制既能在集群高負(fù)載時(shí)保證各個(gè)quota組之間的公平性,也能在集群相對(duì)較閑時(shí),削峰填谷,讓集群資源被充分使用。
近年來(lái),計(jì)算集群的規(guī)模在顯著地增長(zhǎng),在可預(yù)見(jiàn)的將來(lái),集群規(guī)模很可能突破十萬(wàn)臺(tái)。面對(duì)超大規(guī)模集群,一種方法是將集群靜態(tài)切分為幾個(gè)小集群,但該方法有著明顯的局限性。首先,一些超大規(guī)模作業(yè)的資源需求可能就超過(guò)上述單個(gè)集群的規(guī)模;其次,集群的切分也會(huì)帶來(lái)資源碎片問(wèn)題,局部視圖無(wú)法保證全局調(diào)度結(jié)果的最優(yōu);最后是其他非技術(shù)的因素,比如project之間存在依賴關(guān)系,同一業(yè)務(wù)部門的不同project需要互相訪問(wèn)數(shù)據(jù),將它們部署在同一個(gè)集群(而不是拆分成一個(gè)個(gè)小集群)會(huì)大大降低運(yùn)維和管理的代價(jià)。
但單master架構(gòu)無(wú)法處理十萬(wàn)級(jí)別的集群規(guī)模,主要有兩方面原因:1)隨著集群規(guī)模的擴(kuò)大,受限于單調(diào)度器處理能力的上限,master和worker之間的心跳延時(shí)會(huì)增加,調(diào)度信息不能及時(shí)下發(fā),導(dǎo)致集群利用率下降;2)規(guī)模的提升意味著更高的任務(wù)并發(fā)度,使調(diào)度復(fù)雜度急劇增加,最終超過(guò)單調(diào)度器的處理能力。
3 調(diào)度的目標(biāo)和挑戰(zhàn)
除了規(guī)模可擴(kuò)展性上的挑戰(zhàn),調(diào)度器還應(yīng)在以下多個(gè)調(diào)度目標(biāo)間進(jìn)行權(quán)衡,我們關(guān)注的目標(biāo)主要包括:
- 調(diào)度效率(或者延時(shí)),即一個(gè)任務(wù)需要在資源上等待多長(zhǎng)時(shí)間,一個(gè)好的調(diào)度器應(yīng)該讓資源快速流轉(zhuǎn)。
- 調(diào)度質(zhì)量,資源的約束是否都被滿足,比如data locality,更大體積的內(nèi)存,更快的CPU型號(hào)等。
- 公平性和優(yōu)先級(jí),在多租戶共享的生產(chǎn)環(huán)境,需要保證租戶間資源使用的公平性,同時(shí)提供高優(yōu)先級(jí)作業(yè)的保障機(jī)制。
- 資源利用率,一個(gè)極其重要的目標(biāo),集群利用率低會(huì)面臨很多挑戰(zhàn),尤其是財(cái)務(wù)上的挑戰(zhàn)。
但上述幾個(gè)目標(biāo)之間通常是互相沖突的,比如,更好的調(diào)度效果往往意味更長(zhǎng)的調(diào)度延時(shí),絕對(duì)的公平性有時(shí)會(huì)導(dǎo)致資源未能被充分使用,從而導(dǎo)致集群利用率下降。
經(jīng)過(guò)十幾年的積累,伏羲的資源調(diào)度器通過(guò)各種策略在上述幾大目標(biāo)間實(shí)現(xiàn)了很好的權(quán)衡,但考慮資源調(diào)度周邊還有其他兄弟團(tuán)隊(duì)開(kāi)發(fā)的應(yīng)用組件,我們?cè)谠O(shè)計(jì)新的調(diào)度器時(shí),也應(yīng)該做到盡量少改動(dòng),以保持系統(tǒng)的健壯性和向前兼容性。調(diào)度器架構(gòu)調(diào)整引入的系統(tǒng)升級(jí)應(yīng)該對(duì)用戶是透明的,不管是內(nèi)部用戶還是外部用戶。
三 理論概述
針對(duì)調(diào)度器的規(guī)模可擴(kuò)展問(wèn)題,我們對(duì)業(yè)內(nèi)現(xiàn)有的調(diào)度模型做了廣泛的調(diào)研(詳見(jiàn)論文),并選取了其中一個(gè)最適合我們場(chǎng)景的方案(Omega)進(jìn)行進(jìn)一步的分析。以O(shè)mega為代表的shared-state的多調(diào)度器架構(gòu)能滿足我們之前說(shuō)的那兩個(gè)約束條件,向后兼容和對(duì)用戶透明。但是share-state方案不可避免的會(huì)帶來(lái)調(diào)度沖突,我們希望能清楚如下幾個(gè)問(wèn)題:
我們首先對(duì)沖突進(jìn)行建模,得出沖突(Conflict)的期望為(推導(dǎo)過(guò)程詳見(jiàn)論文):
在上述公式中,Yi是多調(diào)度器在某個(gè)slot上沖突的期望, N是調(diào)度器的數(shù)量,K是單個(gè)調(diào)度器的處理能力,S是機(jī)器可調(diào)度的槽位數(shù)。可見(jiàn),如果想減少?zèng)_突的概率,可以通過(guò)增加S或者N來(lái)實(shí)現(xiàn)。增加S是一種很符合直覺(jué)的方式,通過(guò)額外的資源供給來(lái)降低沖突概率。增加N的方式有些反直覺(jué),因?yàn)檎{(diào)度器越多,越容易增加沖突,然而雖然在一輪調(diào)度過(guò)程中沖突變多了,但每個(gè)調(diào)度器一開(kāi)始分到的task調(diào)度壓力也等比例地減小了,所以就有了更多的時(shí)間來(lái)解決沖突,最終反而起到了降低沖突概率的效果。總結(jié)起來(lái),增加N是在整體壓力不變的情況下,通過(guò)降低每個(gè)調(diào)度器的調(diào)度壓力來(lái)實(shí)現(xiàn)沖突的減少的。
此外我們也通過(guò)公式證明了,在調(diào)度器數(shù)量>1的情況下,無(wú)法徹底消除沖突。
下面的實(shí)驗(yàn)反映了不同的沖突因素對(duì)沖突的影響:
- 圖a考量的是任務(wù)壓力變化對(duì)沖突產(chǎn)生的影響。R表示調(diào)度器收到的task速率,可以看到在調(diào)度器數(shù)量相同的情況下,隨著R的增大,為了保持沖突數(shù)量不發(fā)生明顯的變化,需要額外補(bǔ)充的slot數(shù)目就越多;反過(guò)來(lái),在R不變的情況下,隨著調(diào)度器數(shù)量的增加,每個(gè)調(diào)度器承受的調(diào)度壓力下降,需要額外補(bǔ)充的slot數(shù)目就越少。
- 圖b反映的是資源視圖同步頻率變化對(duì)沖突的影響。G表示同步的延遲,可以看到在調(diào)度器數(shù)量相同的情況下,隨著G的增大,為了保持沖突數(shù)量不發(fā)生明顯的變化,需要額外補(bǔ)充的slot數(shù)目就越多;反過(guò)來(lái),在G不變的情況下,隨著調(diào)度器數(shù)量的增加,每個(gè)調(diào)度器承受的調(diào)度壓力下降,需要額外補(bǔ)充的slot數(shù)目就越少。
- 圖c反映的是機(jī)器分?jǐn)?shù)(比如更好的硬件性能)對(duì)沖突的影響,V表示機(jī)器分?jǐn)?shù)的方差,可以看到在調(diào)度器數(shù)量相同的情況下,隨著V的增大,為了保持沖突不發(fā)生明顯的變化,需要額外補(bǔ)充的slot數(shù)目就越多;反過(guò)來(lái),在V不變的情況下,隨著調(diào)度器數(shù)量的增加,每個(gè)調(diào)度器承受的調(diào)度壓力下降,需要額外補(bǔ)充的slot數(shù)目就越少。
- 圖d反映的是機(jī)器partition數(shù)量對(duì)沖突的影響,可以看到這個(gè)因素對(duì)沖突幾乎沒(méi)有影響。因?yàn)椴还軝C(jī)器partition的數(shù)量是多少,調(diào)度器總是以自己內(nèi)部的視圖狀態(tài)進(jìn)行調(diào)度,即使有些視圖的狀態(tài)已經(jīng)不夠新了,所以partition數(shù)量并不會(huì)對(duì)沖突產(chǎn)生明顯的影響。
由以上分析不難發(fā)現(xiàn),在shared-state架構(gòu)下,如果我們想盡可能的降低沖突,可以采取增加額外資源或者增加調(diào)度器數(shù)量的方式來(lái)降低沖突,但在實(shí)際的生產(chǎn)環(huán)境中,增加額外資源是不可能的,一方面是集群大小是相對(duì)固定的,此外新引入slot也會(huì)大幅增加集群的成本;而增加調(diào)度器則會(huì)顯著帶來(lái)維護(hù)\升級(jí)的代價(jià)。
四 方案實(shí)現(xiàn)
由于我們的目標(biāo)是為了減少?zèng)_突,所以我們先簡(jiǎn)單介紹下一種能夠完全消除沖突的策略,悲觀鎖策略。悲觀鎖策略是每個(gè)調(diào)度器能夠調(diào)度的機(jī)器是“靜態(tài)排他\靜態(tài)劃分”的,這樣顯然能夠消除沖突,但是對(duì)利用率是非常不利的,因?yàn)闀?huì)產(chǎn)生資源浪費(fèi)(其他調(diào)度器本來(lái)可以調(diào)度)。還有一種策略是通過(guò)類似于zookeeper等組件實(shí)現(xiàn)的基于鎖搶占的調(diào)度策略,當(dāng)一批機(jī)器被某一個(gè)調(diào)度器鎖住時(shí),其他機(jī)器是由于拿不到機(jī)器鎖從而暫時(shí)無(wú)法調(diào)度,當(dāng)持鎖的調(diào)度器放鎖時(shí),其他調(diào)度器可以通過(guò)鎖競(jìng)爭(zhēng)來(lái)嘗試進(jìn)行調(diào)度,但是在大規(guī)模高并發(fā)的調(diào)度場(chǎng)景下,這種高頻的交互會(huì)對(duì)調(diào)度效率產(chǎn)生很大的負(fù)作用。
由前面的分析可以知道,降低資源同步的延遲能夠有效降低沖突,由此我們提出了一種基于“分區(qū)同步”(下稱ParSync)的策略:首先將集群的機(jī)器分為P個(gè)partition,同時(shí)要求P>N。通過(guò)round robin策略,每個(gè)調(diào)度器在同一個(gè)時(shí)刻去同步不同partition的資源視圖,這樣做能夠保證在每個(gè)round內(nèi)每個(gè)調(diào)度器都能夠更新完所有partition的資源,而P>N保證了同一時(shí)刻不同的調(diào)度器不會(huì)同步相同的patition資源。
根據(jù)前文所述,在大規(guī)模高并發(fā)的調(diào)度場(chǎng)景下,調(diào)度器最優(yōu)先的目標(biāo)往往不是locality prefer而是speed prefer,所以調(diào)度器會(huì)優(yōu)先在最新同步的partition機(jī)器內(nèi)進(jìn)行資源調(diào)度,在該策略下多調(diào)度器間是不會(huì)產(chǎn)生資源沖突的。ParSync其實(shí)是變相降低了每個(gè)patition對(duì)其當(dāng)前同步調(diào)度器的同步延遲,因?yàn)檎驹诋?dāng)前更新的調(diào)度器的視角,這個(gè)partiton的同步延遲其實(shí)是低于其他未同步的調(diào)度器的,這也是能夠有效降低沖突的理論原因。
我們提供三種調(diào)度策略:latency-first, quality-first, adaptive。latency-first是在優(yōu)先在最新的partition上調(diào)度資源, quality-first是優(yōu)先在score最好的機(jī)器上調(diào)度資源,而adaptvie是先采取quality-first的調(diào)度策略,當(dāng)資源等待時(shí)間超過(guò)閾值時(shí)再采取latency-first的策略。我們通過(guò)一組實(shí)驗(yàn)來(lái)驗(yàn)證3種調(diào)度策略的調(diào)度效果:我們將調(diào)度器分為2類,A\B類調(diào)度器在階段1都收到自身調(diào)度能力的2/3調(diào)度請(qǐng)求;階段2,A類調(diào)度器收到等同于自身調(diào)度能力的調(diào)度請(qǐng)求,而B類調(diào)度器不變;階段3,A\B類調(diào)度器都收到等同于自身調(diào)度能力的調(diào)度請(qǐng)求。
- 從(a)(b)可以看出,在階段1\2\3, 調(diào)度quality的表現(xiàn)都是很好的,但是在階段2\3隨著調(diào)度壓力的增加,調(diào)度latency出現(xiàn)了直線上升的情況,這是符合直覺(jué)預(yù)期的。
- 從(c)(d)可以看到,在階段1調(diào)度器壓力只有2/3的時(shí)候,調(diào)度latency和quality都是表現(xiàn)比較好的。隨著調(diào)度壓力的增加,quality質(zhì)量開(kāi)始出現(xiàn)了下降,但是latency的增加卻非常有限,這也符合直覺(jué)預(yù)期。
- 從(e)(f)可以看到,在階段2,由于B類調(diào)度器的調(diào)度壓力仍只有2/3,所以還停留在quality-first策略,而A類調(diào)度器由于調(diào)度latency的增加進(jìn)入到了latency-first策略。通過(guò)仔細(xì)觀察可以看到在quality的圖里B類調(diào)度器的quality質(zhì)量(淺灰色)是優(yōu)于latency-first策略的。在階段3,A\B類調(diào)度器同時(shí)將調(diào)度latency約束在了門限值(1.5s),符合設(shè)計(jì)預(yù)期。
五 實(shí)驗(yàn)分析
我們通過(guò)“風(fēng)洞”系統(tǒng)來(lái)驗(yàn)證整個(gè)調(diào)度框架。在風(fēng)洞環(huán)境下,除了調(diào)度器是真實(shí)的,單機(jī)節(jié)點(diǎn)和am都是程序模擬出來(lái)的,它們和調(diào)度器進(jìn)行真實(shí)的資源交互,通過(guò)sleep來(lái)模擬作業(yè)的執(zhí)行,這樣在一個(gè)node上就可以進(jìn)行1:500的模擬。
測(cè)試環(huán)境:
從圖(a)可以看出,隨著調(diào)度壓力的變化,latency-first在調(diào)度latency上優(yōu)于adaptive, 而quality-first優(yōu)于StateSync(以O(shè)mega為代表的視圖同步策略,調(diào)度器每次同步整個(gè)視圖信息),latency-first策略能夠?qū)atency控制在一個(gè)非常好的水準(zhǔn),而StateSync的latency已經(jīng)不受控制了,這也很好地證明了ParSync策略對(duì)沖突控制的有效性。對(duì)于quality-first策略,其latency也出現(xiàn)了不受控制的情況,這是調(diào)度器一直嘗試在分?jǐn)?shù)最高的機(jī)器上進(jìn)行調(diào)度所帶來(lái)的副作用。而adaptive策略對(duì)latency-first和quality-first進(jìn)行了一個(gè)良好的折中。
從圖(b)中可以看出,隨著調(diào)度壓力的變化,latency-first和adaptive策略在quality上表現(xiàn)都有一個(gè)明顯的下降,這個(gè)符合預(yù)期。而quality-first的表現(xiàn)基本和StateSync持平。
綜上,ParSync在quality與StateSync表現(xiàn)持平的情況下,latency表現(xiàn)遠(yuǎn)優(yōu)于StateSync。其他更多的詳細(xì)的數(shù)據(jù)分析詳見(jiàn)論文。
六 總結(jié)
論文首先介紹了分布式調(diào)度器領(lǐng)域在解決規(guī)模問(wèn)題時(shí)的常見(jiàn)做法:多調(diào)度器聯(lián)合調(diào)度,其次介紹了多調(diào)度器的一種常見(jiàn)的資源供給模型StateSync。在StateSync模式下,不同調(diào)度器間會(huì)產(chǎn)生嚴(yán)重的調(diào)度沖突,進(jìn)而影響集群的調(diào)度效率和利用率。針對(duì)上述問(wèn)題,論文通過(guò)理論分析,給出了緩解沖突方法:增加可調(diào)度資源或擴(kuò)充調(diào)度器,但是在實(shí)際中這2種方法都是不可接受的。
本文提出了一種新的資源供給模式:ParSync。在ParSync模式下,不同的調(diào)度器通過(guò)round robin的方式來(lái)分時(shí)更新機(jī)器資源。同時(shí)ParSync提供了三種調(diào)度策略:latency-first, quality-first, adaptive,用來(lái)滿足不同場(chǎng)景下調(diào)度器對(duì)于latency\quality的要求。大規(guī)模實(shí)驗(yàn)表明,ParSync在調(diào)度質(zhì)量上與其他調(diào)度器持平,但在調(diào)度延時(shí)上遠(yuǎn)優(yōu)于其他調(diào)度器。
附錄
生產(chǎn)集群資源調(diào)度架構(gòu)圖
原文鏈接
本文為阿里云原創(chuàng)內(nèi)容,未經(jīng)允許不得轉(zhuǎn)載。
總結(jié)
以上是生活随笔為你收集整理的获国际架构顶会ATC2021最佳论文!Fuxi2.0去中心化的调度架构详解的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Apsara Stack 技术百科 |
- 下一篇: 致敬 hacker |盘点内存虚拟化探索