日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

独家解密:阿里是如何应对超大规模集群资源管理挑战的?

發(fā)布時間:2025/3/20 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 独家解密:阿里是如何应对超大规模集群资源管理挑战的? 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

More Applications in Less Machines

你辦得到嗎?

互聯(lián)網(wǎng)應(yīng)用和現(xiàn)代數(shù)據(jù)中心

云計(jì)算已經(jīng)火了很多年了,早已開始惠及我們每一個人。今天火熱的大數(shù)據(jù)、機(jī)器學(xué)習(xí)、人工智能、以及我們看到的像淘寶、天貓、優(yōu)酷等大規(guī)模的互聯(lián)網(wǎng)應(yīng)用都是運(yùn)行在云上的。而支撐云的,是大型云計(jì)算服務(wù)商部署在世界各地的多個數(shù)據(jù)中心,每個數(shù)據(jù)中心都有大量的物理服務(wù)器。為了有效的管理這些服務(wù)器,我們需要集群資源管理系統(tǒng)(Cluster Resource Management System),后面簡稱資源管理系統(tǒng)。資源管理系統(tǒng)的價值,用一句話說,是Datacenter as a Computer,像管理和使用一個臺電腦一樣簡單地管理和使用數(shù)據(jù)中心

資源管理系統(tǒng)作為將數(shù)據(jù)中心資源向上抽象的關(guān)鍵一層,需要全面的能力。從保障應(yīng)用的穩(wěn)定性、性能(保證SLA,Service Level Agreement)到全面提高數(shù)據(jù)中心運(yùn)行的效率,節(jié)約能源等等,今天這篇文章,我們重點(diǎn)講一講調(diào)度算法在資源管理中的作用。

調(diào)度算法的價值

調(diào)度算法在是整個資源管理系統(tǒng)中的一個重要組成部分,簡單的說,調(diào)度算法的作用是決定一個計(jì)算任務(wù)需要放在集群中的哪臺機(jī)器上面。

在容器化的今天,集群中調(diào)度器的調(diào)度對象很可能是一個容器實(shí)例,Docker或者是PouchContainer。為容器選擇合適的宿主機(jī)顯然是一個值得考慮的問題,這里我們說一說調(diào)度算法能夠幫助我們實(shí)現(xiàn)的價值,這些價值可以從單個容器、到應(yīng)用、再到數(shù)據(jù)中心,這三個不同的層面展示出來。

?

單個容器層面

滿足容器運(yùn)行的資源需求:確保每個容器在運(yùn)行的時候擁有足夠的資源,CPU、Memory、Disk、網(wǎng)絡(luò)帶寬等等。除了用數(shù)量衡量的資源,很多容器在運(yùn)行的時候還需要一些特殊的資源,例如特定的操作系統(tǒng)版本、特定的硬件等等。

讓容器在更“舒適”的環(huán)境下運(yùn)行:容器之間可能發(fā)生資源的搶占現(xiàn)象,例如兩個對Memory消耗很大的容器部署在同一臺機(jī)器上,很容易造成Memory資源的吃緊。雖然我們可以通過容器和內(nèi)核提供的資源隔離技術(shù)降低這種影響,但是最好的辦法還是在一開始不讓這種“容易吵架的人做鄰居”。

?

應(yīng)用層面

每個應(yīng)用在提供服務(wù)的時候往往是多個容器實(shí)例同時支持的,調(diào)度器需要考慮應(yīng)用的需求。

應(yīng)用的高可用:分布式環(huán)境下宿主機(jī)失敗或者單個容器的失敗是正常現(xiàn)象,因此我們要保證每個應(yīng)用同時有多個實(shí)例在運(yùn)行,這樣即使有一個實(shí)例掛了,整個應(yīng)用不會受很大影響。

應(yīng)用的容災(zāi):容災(zāi)其實(shí)也經(jīng)常和高可用放在一起,如果一個應(yīng)用有多個應(yīng)用實(shí)例,但是都部署在一個機(jī)房,如果機(jī)房斷電,那么應(yīng)用也就不能提供服務(wù)了,沒有高可用了。解決這個問題需要的容災(zāi)部署,也就不同維度的打散。調(diào)度算法需要盡量讓同一個應(yīng)用的不同實(shí)例部署在不同的宿主機(jī)、不同的機(jī)架、不同的機(jī)房、不同的數(shù)據(jù)中心、不同的城市、甚至是不同的國家;這種容災(zāi)甚至可以體現(xiàn)在更高一層,幾個重要應(yīng)用之間的所有實(shí)例,也要盡量打散。

很多應(yīng)用因?yàn)槠涮峁┓?wù)特性往往需要調(diào)度器做更多的事情,例如:按照一定的順序調(diào)度實(shí)例、將計(jì)算任務(wù)調(diào)度到離數(shù)據(jù)最近的地方,等等,這里不一一列舉了。

數(shù)據(jù)中心層面

降低數(shù)據(jù)中心的成本:合理的調(diào)度能夠節(jié)省數(shù)據(jù)中心大量的成本,如果用裝箱問題來表示,就是用更少的服務(wù)器裝下了更多的應(yīng)用。服務(wù)器數(shù)目的減少不僅僅是采購成本的下降,服務(wù)器的占地、用電、冷卻等都是一筆很大的開銷,合理的資源調(diào)度能夠?yàn)閿?shù)據(jù)中心節(jié)省大量成本。

除了以上這些內(nèi)容,實(shí)際中調(diào)度算法要考慮的內(nèi)容還有很多,例如公平性的問題、應(yīng)用間的干擾問題、不同應(yīng)用間資源共享(互相借用)的問題、單機(jī)資源的調(diào)配問題(超線程、內(nèi)存帶框等)等等。例如,實(shí)際管理阿里巴巴集團(tuán)在線服的資源管理系統(tǒng)Sigma的調(diào)度規(guī)則,就十分復(fù)雜。

?

為了讓更多的學(xué)生、研究者能夠接觸到我們的調(diào)度問題,并鼓勵他們與我們一起應(yīng)對挑戰(zhàn),我們舉辦了“阿里巴巴全球調(diào)度算法挑戰(zhàn)賽”。這個算法大賽是怎么回事兒呢?讓我們介紹一下。

首屆阿里全球調(diào)度算法大賽

大家可以想象下,阿里巴巴擁有如此大規(guī)模的數(shù)據(jù)中心,1%的資源利用率的提升都將為阿里巴巴自身和整個社會帶來可觀的能源節(jié)約讓用戶享受更加綠色的計(jì)算資源。所以最近我們發(fā)起了首屆阿里全球調(diào)度算法大賽,初賽賽題來自我們生產(chǎn)環(huán)境中的一個真實(shí)的場景,簡化了一些約束條件,方便一些對這個領(lǐng)域剛剛開始了解的同學(xué)找到一個求解的方法,但是即使對于在該領(lǐng)域有一定經(jīng)驗(yàn)的同學(xué)、工程師、研究者們,我們也相信這份題目能夠讓你花費(fèi)一些精力才能得到一個優(yōu)化的解。

在這次算法大賽中,我們提供了大約6K個宿主機(jī),68K個實(shí)例(其中一部分已經(jīng)部署,一部分尚未部署),約束類型主要有3類:資源約束、重要應(yīng)用高可用約束和應(yīng)用間反親和約束。

資源約束

資源約束是最容易理解的,每個屬于不同應(yīng)用的實(shí)例都有不同的計(jì)算資源要求。我們本次比賽的一個重要特點(diǎn)是,CPU和Mem的數(shù)量約束是以時間曲線的形式給出的。每個應(yīng)用的對應(yīng)資源需求的時間曲線是我們通過對該應(yīng)用下多個實(shí)例(一個應(yīng)用由很多實(shí)例組成)的24小時的歷史數(shù)據(jù)進(jìn)行觀察并整理得到的需求曲線,描述了每個應(yīng)用下面的實(shí)例在一天當(dāng)中每個采樣點(diǎn)需要的對應(yīng)資源的數(shù)量。映射的場景是我們假定各個應(yīng)用的實(shí)例的資源需求的有著24小時的變化周期(即98個點(diǎn)的變化周期),第二天、第三天甚至再往后,應(yīng)用的實(shí)例還是按照這個需求長時間存在。注意,這里提到的應(yīng)用是長應(yīng)用(Long Running Service),沒有特殊原因是不會下線的(例如淘寶網(wǎng)),這種長應(yīng)用與一些分布式計(jì)算中的有限持續(xù)時間計(jì)算任務(wù)是不一樣。

這樣的時間曲線比普通的標(biāo)量規(guī)定的資源需求具有更多的優(yōu)化空間,但也帶來了更多的復(fù)雜度。下面這個圖是兩個應(yīng)用在不同時間點(diǎn)的資源需求對于滿足機(jī)器容量的互斥(左)與互補(bǔ)(右)的例子。

重要應(yīng)用高可用約束

除了CPU、Mem、Disk這樣計(jì)算資源的約束,我們還有三類名為P、M、PM的約束,這個約束名字大家可能會覺得有些奇怪,但這是我們通過調(diào)度來保障重要應(yīng)用高可用的重要約束。我們把一些重要應(yīng)用標(biāo)記為P類、M類、或者PM類,通過限制每臺機(jī)器上可以承載的P、M、PM類型應(yīng)用實(shí)例的上限來保證在機(jī)器發(fā)生故障的時候(宕機(jī)、斷網(wǎng)等),重要應(yīng)用受到的影響最小。

應(yīng)用間反親和約束

在上述兩種約束之外,我們提供第三種的約束類型是應(yīng)用之間的反親和,以<App_1, App_2, k>的形式給出,其語義是:如果一臺機(jī)器上已經(jīng)部署了一個App_1的實(shí)例,那么這臺機(jī)器上最多可以部署k個來自App_2的實(shí)例。這種約束在實(shí)際中的意義是什么呢?這些約束使我們通過觀測和經(jīng)驗(yàn),確定這兩個應(yīng)用間可能存在干擾因素,如果有超過一定數(shù)量的兩類應(yīng)用的實(shí)例部署在一起,會影響彼此的性能,因此,在進(jìn)行調(diào)度決策的時候盡量不讓這種互相干擾的應(yīng)用的實(shí)例出現(xiàn)“扎堆”的現(xiàn)象。

優(yōu)化的目標(biāo)

我們的優(yōu)化目標(biāo)是在維持每臺機(jī)器的資源使用率在一定水平的基礎(chǔ)上(具體數(shù)字不透露,你好好看一下題目的描述,相信你可以判斷出來的),盡量減少使用的機(jī)器的數(shù)目(即實(shí)際部署了容器的機(jī)器的數(shù)目)。為什么這樣設(shè)計(jì)呢?較少機(jī)器的數(shù)目很容易想到是節(jié)省成本,而維持機(jī)器的資源利用率在一定水平,而不是100%,在實(shí)際生產(chǎn)中是很有意義的。因?yàn)槊總€應(yīng)用都會有一定的、不可準(zhǔn)確預(yù)計(jì)的負(fù)載增加,因此,我們需要在每臺機(jī)器上流出一定的“余量”來應(yīng)對每個實(shí)例可能突然需要的計(jì)算資源。

這些余量的資源在平時也可以為我們所用,但這并在不在我們初賽的考察范圍內(nèi)。也許復(fù)賽中我們會涉及到這些內(nèi)容。另外,有經(jīng)驗(yàn)的朋友可能會發(fā)現(xiàn)我們這里沒有對應(yīng)用的遷移做出限制,沒錯,我們這樣做的目的是為了降低初賽的難度。實(shí)際生產(chǎn)中,應(yīng)用的遷移,尤其我們這次考慮的在線應(yīng)用的遷移是一件頗有代價的事情,你能否在設(shè)計(jì)算法的時候考慮一下應(yīng)用遷移的代價呢?

?

我們誠摯的邀請所有對資源調(diào)度、運(yùn)籌優(yōu)化、資源管理、算法有興趣的同學(xué)、學(xué)者來參加我們的大賽,獎金豐厚而且有前往美國參加Hackathon的機(jī)會!

總結(jié)

以上是生活随笔為你收集整理的独家解密:阿里是如何应对超大规模集群资源管理挑战的?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。