自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

2135億背后,你不知道的阿里規(guī)模化混部技術(shù)!

開(kāi)發(fā) 架構(gòu)
2135 億!11 月 12 日零點(diǎn),2018 天貓“雙11”全球狂歡節(jié)的成交額在數(shù)據(jù)大屏定格,較去年的記錄增長(zhǎng)近 27%,物流訂單超 10 億!天貓雙 11 再次成為阿里巴巴創(chuàng)造紀(jì)錄并突破紀(jì)錄的商業(yè)奇跡。

2135 億!11 月 12 日零點(diǎn),2018 天貓“雙11”全球狂歡節(jié)的成交額在數(shù)據(jù)大屏定格,較去年的記錄增長(zhǎng)近 27%,物流訂單超 10 億!天貓雙 11 再次成為阿里巴巴創(chuàng)造紀(jì)錄并突破紀(jì)錄的商業(yè)奇跡。

[[249192]]

此刻,比雙 11 的數(shù)字更該被記錄的,是阿里巴巴在雙 11 背后做了哪些技術(shù)上的突破?

混部技術(shù)在業(yè)界還尚屬于較少研究的領(lǐng)域,該技術(shù)只有在資源及成本的體量達(dá)到一定規(guī)模時(shí),才會(huì)顯現(xiàn)出其可觀的技術(shù)紅利。

今天,阿里系統(tǒng)軟件部技術(shù)專家蔣玲從阿里巴巴混部探索簡(jiǎn)介、混部方案及架構(gòu)以及混部核心技術(shù)等幾個(gè)方面帶大家全面了解混部技術(shù),希望對(duì)你有所啟發(fā)。

阿里巴巴混部探索簡(jiǎn)介

混部技術(shù)的出發(fā)點(diǎn),源自于對(duì)不斷增長(zhǎng)的業(yè)務(wù)和日益攀升的資源成本如何平衡的思考,我們希望用最小的資源成本,支撐更大的業(yè)務(wù)需求。

是否能夠復(fù)用已有的存量資源,來(lái)滿足新增的業(yè)務(wù),這就是混部技術(shù)發(fā)展的思想源頭。

為什么做混部?

 

上圖是阿里巴巴從 2009 年開(kāi)始做雙十一購(gòu)物狂歡節(jié)以來(lái)的歷年交易額曲線,對(duì)業(yè)務(wù)同學(xué)而言,這張曲線增長(zhǎng)圖比較漂亮,但是對(duì)于技術(shù)人員和運(yùn)維人員而言,這張圖背后意味著重大的挑戰(zhàn)和資源壓力。

對(duì)于做電商平臺(tái)型業(yè)務(wù)的業(yè)界同行,大家應(yīng)該知道我們?cè)谧龃黉N活動(dòng)時(shí),技術(shù)壓力往往來(lái)自于開(kāi)賣的第一秒,是一個(gè)脈沖式的洪峰流量。

阿里巴巴在線業(yè)務(wù)的雙十一零點(diǎn)峰值流量(通常用秒級(jí)交易創(chuàng)建量來(lái)描述)跟這張圖的曲線走勢(shì)基本吻合。

從 2012 年往后的年份開(kāi)始,0 點(diǎn)峰值壓力基本是上一年的兩倍。可以看到在線側(cè)業(yè)務(wù)發(fā)展如此快,主要跟我們促銷活動(dòng)密不可分。

除了在線型業(yè)務(wù),阿里巴巴還擁有較大規(guī)模的離線計(jì)算型業(yè)務(wù)。隨著 AI 技術(shù)的興起,計(jì)算型業(yè)務(wù)也呈不斷上升趨勢(shì)。截止當(dāng)前,我司大數(shù)據(jù)存儲(chǔ)量達(dá)到 KPB 級(jí)、日均任務(wù)量在百萬(wàn)級(jí)。

業(yè)務(wù)不斷增長(zhǎng),在基礎(chǔ)設(shè)施層儲(chǔ)備了大量的資源以滿足在線型和離線業(yè)務(wù)的需求。

由于在線型業(yè)務(wù)和離線型業(yè)務(wù)有很多不一致的資源使用特性,最初設(shè)計(jì)時(shí)由兩個(gè)獨(dú)立的數(shù)據(jù)中心來(lái)支撐,當(dāng)前,兩個(gè)數(shù)據(jù)中心均已達(dá)到萬(wàn)臺(tái)服務(wù)器以上的規(guī)模。

然而我們發(fā)現(xiàn),數(shù)據(jù)中心的資源體量雖然龐大,但有些資源的利用率卻并不樂(lè)觀,尤其是在線業(yè)務(wù)數(shù)據(jù)中心,日均資源利用率僅在 10% 左右。

基于以上背景,同時(shí)考慮到不同業(yè)務(wù)對(duì)資源使用和要求的差異性:

  • 一方面,不同業(yè)務(wù)具備不同時(shí)段峰值的特性(分時(shí)復(fù)用資源)。
  • 另一方面,對(duì)資源被響應(yīng)的容忍度不一(資源按優(yōu)先級(jí)競(jìng)爭(zhēng)和搶占),促使我們探索不同業(yè)務(wù)混合部署的技術(shù)方向。

何為混部 ( Co-location )?

 

簡(jiǎn)而言之,混部技術(shù)就是:將不同類型的業(yè)務(wù)進(jìn)行混合部署,用一份資源同時(shí)提供兩份不同業(yè)務(wù)的資源當(dāng)量的技術(shù)。

混部技術(shù)首先,是資源整合,把原本物理分離的業(yè)務(wù)部署于統(tǒng)一的物理資源上。

其次,進(jìn)行資源共享,同一份資源,既支撐 A 業(yè)務(wù),又支撐 B 業(yè)務(wù),在 A 和 B 業(yè)務(wù)的視角,同時(shí)看到各一份的資源。

最后,是資源合理競(jìng)爭(zhēng),既然由原來(lái)的一份資源,一生為二,變成 2 份,必然存在資源的競(jìng)爭(zhēng),需要提供合理競(jìng)爭(zhēng)的手段,使得不同資源需求的業(yè)務(wù)符合各自的服務(wù)要求。

混部最大的價(jià)值在于通過(guò)資源共享的方式充分復(fù)用資源,實(shí)現(xiàn)無(wú)中生有。而混部技術(shù)的核心目標(biāo)在于出現(xiàn)資源競(jìng)爭(zhēng)時(shí),優(yōu)先保證高等級(jí)的業(yè)務(wù)。

因此,我們希望通過(guò)調(diào)度管控和內(nèi)核隔離的手段進(jìn)行資源充分共享和競(jìng)爭(zhēng)隔離。

在線離線混部

 

在線型業(yè)務(wù),在混部技術(shù)里主要描述的場(chǎng)景是交易型業(yè)務(wù)、支付型業(yè)務(wù)、瀏覽型請(qǐng)求。

在線型業(yè)務(wù)的特性是實(shí)時(shí)性,對(duì)實(shí)時(shí)性的要求非常高,以及不可降級(jí)。如果用戶在選購(gòu)寶貝的過(guò)程中,出現(xiàn)長(zhǎng)時(shí)間等待(比如秒級(jí)別),很有可能該用戶就會(huì)放棄購(gòu)買(mǎi);如果需要用戶重試,估計(jì)就很難留存該用戶了。

在線型業(yè)務(wù),尤其像我們做電商的,業(yè)務(wù)量趨勢(shì)非常明顯。伴隨用戶作息時(shí)間,白天高、晚上低,白天買(mǎi)買(mǎi)買(mǎi)。

電商型平臺(tái)另一個(gè)比較大的特性是,日常的流量相對(duì)于大促而言非常低,大促當(dāng)天的秒級(jí)創(chuàng)建量可能是平常峰值量的十倍甚至百倍以上,它具有很強(qiáng)的時(shí)間場(chǎng)景性。

離線型業(yè)務(wù),比如:計(jì)算業(yè)務(wù)、算法運(yùn)算、統(tǒng)計(jì)報(bào)告、數(shù)據(jù)處理等業(yè)務(wù),業(yè)務(wù)類型相比于在線而言,可以稱之為時(shí)延不敏感。

用戶提交的作業(yè)和業(yè)務(wù),本身的處理時(shí)長(zhǎng)就在秒級(jí)、分鐘級(jí)以上,甚至有小時(shí)級(jí)、天級(jí),因此它們可以運(yùn)行一段時(shí)間后才完成。

同時(shí)它們可以接受重試,技術(shù)上我們應(yīng)該更關(guān)心的是誰(shuí)幫它重試。用戶重試不可接受,但若有系統(tǒng)幫忙重試,用戶是無(wú)感的。

此外,離線業(yè)務(wù)的時(shí)間場(chǎng)景性沒(méi)有在線那么強(qiáng),隨時(shí)都可以跑,甚至表現(xiàn)出反在線業(yè)務(wù)時(shí)間特性,其有一定概率的白天比較低,凌晨比較高。

究其原因,也表現(xiàn)出和用戶行為有關(guān),例如:用戶在提交一份統(tǒng)計(jì)型,等待凌晨 0 點(diǎn)后開(kāi)始運(yùn)行,第二天早上上班前收取報(bào)告。

從不同業(yè)務(wù)的運(yùn)行時(shí)特性分析,我們可以發(fā)現(xiàn),在線型業(yè)務(wù)和離線型業(yè)務(wù),具備業(yè)務(wù)壓力錯(cuò)峰和資源錯(cuò)峰的條件。

另一方面,在線業(yè)務(wù)明顯具備更高的優(yōu)先級(jí)和資源搶占能力,與此同時(shí),離線業(yè)務(wù)表現(xiàn)出一定的資源不足時(shí)的容忍度。這些因素,成為在線、離線業(yè)務(wù)混部技術(shù)的可行性要素。

阿里巴巴在做混部探索的歷程

 

在展開(kāi)技術(shù)介紹前,簡(jiǎn)述下阿里巴巴混部技術(shù)探索的歷程:

  • 2014 年提出混部技術(shù)。
  • 2015 年做線下測(cè)試和原形模擬。
  • 2016 年大概上 200 臺(tái)機(jī)器到生產(chǎn)環(huán)境,公司內(nèi)用戶作為第一批吃螃蟹的人,運(yùn)行了一年的時(shí)間;在內(nèi)部用戶適用,線上落地后有效。
  • 2017 年生產(chǎn)環(huán)境小規(guī)?;觳?,達(dá)到數(shù)千臺(tái)物理機(jī)級(jí)別,直接面向外部用戶,并且支撐了 2017 年的雙十一大促。
  • 2018 年,我們希望是規(guī)?;侀_(kāi)的一年,我們希望混部能在規(guī)?;?yīng)下帶來(lái)客觀的技術(shù)紅利,打造萬(wàn)臺(tái)體量的混部集群。

阿里巴巴規(guī)模化混部成果

阿里巴巴規(guī)?;觳砍晒缦拢?/p>

  • 混部規(guī)模達(dá)數(shù)千臺(tái),經(jīng)歷雙 11 交易核心場(chǎng)景驗(yàn)證;在線集群上引入離線計(jì)算任務(wù)(在離線):日常 CPU 利用率從 10% 提升到 40%。
  • 離線集群上部署在線業(yè)務(wù)(離在線),支撐雙 11 大促數(shù) W 筆/s 交易創(chuàng)建能力。
  • 混部環(huán)境下對(duì)在線業(yè)務(wù)服務(wù)干擾影響小于 5%。

當(dāng)前初做混部,存在兩種場(chǎng)景:

  • 由在線集群提供資源做混部,用在線的資源提供額外的離線計(jì)算力,供離線業(yè)務(wù)運(yùn)行。
  • 由離線集群提供資源做混部,用離線的資源創(chuàng)造在線業(yè)務(wù)交易能力(主要應(yīng)對(duì)大促等在線流量洪峰)。

在我們內(nèi)部有個(gè)簡(jiǎn)單的約定,在線和離線,誰(shuí)提供機(jī)器,誰(shuí)就排在前面,因此有在離線混部和離在線混部的叫法。

2017 年雙 11,我司官方發(fā)布的秒級(jí)創(chuàng)建量是 37.5 萬(wàn)筆每秒,離在線混部集群做到萬(wàn)筆每秒的交易體量,使用離線的資源支撐在線高峰,節(jié)約了一定量的大促資源開(kāi)銷。

同時(shí),在離線混部集群上線后,將在線原生集群的日均資源利用率從 10% 提升到了 40%,給離線提供了額外的日常計(jì)算力。

如下圖所示:

 

這是真實(shí)監(jiān)控系統(tǒng)的數(shù)據(jù):

  • 右圖這個(gè)代表非混部場(chǎng)景,時(shí)間點(diǎn)大概是 7 點(diǎn)到 11 點(diǎn)左右,在線中心利用率是 10%。
  • 左圖這個(gè)代表混部場(chǎng)景的數(shù)據(jù),平均利用率在 40% 左右,抖動(dòng)性比較大,因?yàn)殡x線業(yè)務(wù)本身具有比較大的波動(dòng)性。

節(jié)約了這么多資源,業(yè)務(wù)(尤其在線業(yè)務(wù))的服務(wù)質(zhì)量是不是變得很差呢?

以下是負(fù)責(zé)交易處理的在線核心服務(wù)的 RT 曲線圖,其中綠色曲線代表混部集群中的 RT 表現(xiàn),黃色曲線為非混部集群的 RT 表現(xiàn)。

可以看出,兩條曲線基本重合,混部場(chǎng)景中的平均 RT 較普通集群差 5% 以內(nèi),符合服務(wù)質(zhì)量要求:

 

混部方案及架構(gòu)

由于混部技術(shù)跟公司的業(yè)務(wù)體系、運(yùn)維體系存在一定的關(guān)聯(lián)性,因此文中可能會(huì)提及不同的技術(shù)背景,由于篇幅關(guān)系只做了簡(jiǎn)單引述,未做詳細(xì)介紹。

下面將簡(jiǎn)單介紹混部方案,包括:整體架構(gòu)、混部場(chǎng)景業(yè)務(wù)部署策略、混部集群資源管理及分配機(jī)制、混部場(chǎng)景下的業(yè)務(wù)運(yùn)行策略等。

混部整體架構(gòu)

混部技術(shù)抽象來(lái)說(shuō),分為三個(gè)層面:

  • 合并資源,整合資源池。既可以給 A 業(yè)務(wù)用,也可以給 B 業(yè)務(wù)用。
  • 我們要做到很好的資源調(diào)度與分配。在做混部技術(shù)之前,阿里巴巴集團(tuán)已有多個(gè)資源調(diào)度平臺(tái),其中在線側(cè)資源調(diào)度系統(tǒng)稱之為 Sigma,離線側(cè)資源調(diào)度系統(tǒng)稱為 Fuxi。
  • 混部技術(shù)的挑戰(zhàn)在于做好資源不同業(yè)務(wù)資源分配,統(tǒng)一多個(gè)資源調(diào)度系統(tǒng),并進(jìn)行決策仲裁。

運(yùn)行時(shí)做好資源競(jìng)爭(zhēng)時(shí)的隔離與優(yōu)先搶占。

 

上圖的架構(gòu)表現(xiàn)為一定的層次性:最底層,是基礎(chǔ)設(shè)施層,整個(gè)集團(tuán)的數(shù)據(jù)中心是統(tǒng)一的,不管上層怎么用,機(jī)器、網(wǎng)絡(luò)、等等的硬件設(shè)施及配套都是同一套。

往上一層,是資源層,我們要做混部,必須打通池子,把資源放在一起管控。

再往上一層,是調(diào)度層,分為服務(wù)端和客戶端。在線是 Sigma,離線是 Fuxi,我們把各業(yè)務(wù)自己的資源調(diào)度平臺(tái)稱為一層調(diào)度器。

在混部架構(gòu)中,引入“0 層”調(diào)度器,主要負(fù)責(zé)協(xié)調(diào)兩個(gè)一層調(diào)度器的資源管控和資源分配決策,它也有自己的 Agent。

最上面一層,是面向業(yè)務(wù)的資源調(diào)度與管控層,有些經(jīng)一層調(diào)度器直接交付資源給業(yè)務(wù),有些還會(huì)涉及二層,例如:Hippo 等。

而在混部架構(gòu)中還有一個(gè)特殊混部管控層,其主要負(fù)責(zé)混部模式下業(yè)務(wù)運(yùn)行的機(jī)制的編排與執(zhí)行,以及對(duì)物理資源的配置管控、業(yè)務(wù)監(jiān)控和決策判斷。

以上是資源分配的體系架構(gòu),由此可以將機(jī)器和資源分配給不同的業(yè)務(wù),然而在分配完后,運(yùn)行時(shí)的業(yè)優(yōu)先級(jí)和 SLA 如何保障?在線業(yè)務(wù)和離線業(yè)務(wù)同時(shí)跑在一個(gè)物理機(jī)上,如果業(yè)務(wù)間發(fā)生資源爭(zhēng)搶怎么辦?

我們通過(guò)內(nèi)核隔離來(lái)做到運(yùn)行時(shí)資源保障,我們開(kāi)發(fā)了很多內(nèi)核特性,支持不同類型資源隔離、切換和降級(jí)。內(nèi)核相關(guān)機(jī)制將在第三章中介紹。

混部場(chǎng)景在線業(yè)務(wù)部署策略

 

本小節(jié)將介紹如何將混部技術(shù)運(yùn)用于在線業(yè)務(wù)場(chǎng)景,為電商平臺(tái)提供交易創(chuàng)建能力。

首先,混部技術(shù)由于其新穎性及包含較多的技術(shù)改造點(diǎn),為了規(guī)避風(fēng)險(xiǎn),我們希望能夠在有限的、可控的范圍內(nèi)進(jìn)行小規(guī)模試驗(yàn)。

因此我們基于我司電商(在線)單元化部署架構(gòu)進(jìn)行了業(yè)務(wù)部署策略,將混部集群構(gòu)建出獨(dú)立的交易單元,一方面確?;觳考夹g(shù)在局部范圍內(nèi)收斂不影響全局,另一方面可以到單元的業(yè)務(wù)閉環(huán)和獨(dú)立的資源調(diào)配管控。

在電商在線型體系中,我們把買(mǎi)家購(gòu)買(mǎi)行為相關(guān)的全鏈條服務(wù),閉環(huán)到一個(gè)服務(wù)集合中,將這個(gè)服務(wù)集合定義為交易單元。

交易單元可以做到:買(mǎi)家交易行為相關(guān)的所有請(qǐng)求與指令,都在這個(gè)單元內(nèi)閉環(huán)完成,這就是異地多活-單元化部署架構(gòu)。

混部技術(shù)實(shí)施中的另外一項(xiàng)約束,來(lái)自于硬件資源限制。由于離線在線業(yè)務(wù)對(duì)硬件資源的訴求不一,而各自的存量資源都不一定適配另一方的業(yè)務(wù),在實(shí)施中我們遇到了存量資源的適配問(wèn)題,最為強(qiáng)烈的體現(xiàn)在磁盤(pán)。

離線業(yè)務(wù)的原生資源中,有大批低成本的 HDD 盤(pán)資源,并且離線在運(yùn)行中幾乎會(huì)將 HDD 盤(pán)用滿。這樣對(duì)在線業(yè)務(wù)來(lái)說(shuō)基本就不可用了。

為了屏蔽磁盤(pán) IOPS 性能問(wèn)題,我們引入了計(jì)算存儲(chǔ)分離技術(shù)。計(jì)算存儲(chǔ)分離技術(shù)是我們集團(tuán)內(nèi)在演進(jìn)的另一項(xiàng)技術(shù)。

它提供中心式的計(jì)算與存儲(chǔ)服務(wù),計(jì)算節(jié)點(diǎn)通過(guò)網(wǎng)絡(luò)連接存儲(chǔ)中心,可以屏蔽計(jì)算節(jié)點(diǎn)對(duì)本地磁盤(pán)的依賴。

存儲(chǔ)集群可以提供不同的存儲(chǔ)能力。在線業(yè)務(wù)對(duì)存儲(chǔ)性能要求高,吞吐量卻不大,因此我們通過(guò)計(jì)算存儲(chǔ)分離技術(shù),獲得了有 IOPS 保障的遠(yuǎn)程存儲(chǔ)服務(wù)。

混部集群資源分配

 

說(shuō)完整體架構(gòu),我們?cè)購(gòu)馁Y源的角度來(lái)看看混部集群的資源分配,是如何做到無(wú)中生有的。

首先是單機(jī)角度的資源,主要是 CPU、MEM、Disk、Net,下文將陳述如何實(shí)現(xiàn)額外資源的獲得。

先來(lái)看看 CPU,純?cè)诰€集群的日常資源利用差不多在 10% 左右,可以說(shuō)在線業(yè)務(wù)無(wú)法在日常狀況下將 CPU 充分地利用起來(lái),而當(dāng)大促等促銷場(chǎng)景時(shí),在線將會(huì)在瞬間達(dá)到一個(gè) CPU 使用高峰。

離線任務(wù)則更像是吸水的海綿,其業(yè)務(wù)體量巨大,對(duì)于 CPU 計(jì)算能力,有多少就能用多少。有了以上業(yè)務(wù)對(duì)資源使用的背景,促成了混部技術(shù)中讓 CPU 一生為二。

CPU 資源在內(nèi)核運(yùn)行機(jī)制中,以時(shí)間片輪詢分配給不同的進(jìn)程,我們將 1 個(gè) CPU 核,同時(shí)分配給在線業(yè)務(wù)和離線任務(wù),并確保在線有高的優(yōu)先級(jí)。

當(dāng)在線閑時(shí),離線可以使用該 CPU,而當(dāng)在線需要使用時(shí),將離線任務(wù)搶占并掛起。

上文有提到兩個(gè)資源調(diào)度器(在線調(diào)度器 Sigma 和離線調(diào)度器 Fuxi),在線業(yè)務(wù)以 Pouch 容器做為資源單元,Pouch 容器會(huì)綁定一定的 CPU 核,供某個(gè)在線業(yè)務(wù)使用。Sigma 會(huì)認(rèn)為整臺(tái)物理機(jī)都屬于在線。

同時(shí)候,離線 Fuxi 調(diào)度器認(rèn)為這臺(tái)機(jī)器屬于離線,它會(huì)把整體機(jī)器的 CPU 資源作為可分配資源分配給離線任務(wù)。通過(guò)這種方式,就做到 Double CPU 資源的效果。

將同一份 CPU 分配給兩個(gè)業(yè)務(wù)運(yùn)行,一定會(huì)存在競(jìng)爭(zhēng)的風(fēng)險(xiǎn),這就依賴核心內(nèi)核技術(shù)來(lái)進(jìn)行 CPU 隔離和調(diào)度,這些會(huì)在下文中提到。

CPU 可以被多進(jìn)程分享時(shí)間片,但 MEM 和 Disk 資源就比較棘手,其作為消耗型資源,分給一方使用,就不能被另外的進(jìn)程使用了,否則就會(huì)被新進(jìn)程給覆蓋。如何進(jìn)行內(nèi)存層面的復(fù)用就成為另一個(gè)研究重點(diǎn)。

如圖(右上)所示,介紹了混部技術(shù)中內(nèi)存超賣使用的機(jī)制,圖上側(cè)的括弧表示在線內(nèi)存分配額(藍(lán)色)和離線內(nèi)存分配額(紅色),而圖下側(cè)的括弧表示在線內(nèi)存使用額(藍(lán)色)和離線內(nèi)存使用額(紅色)。

圖中可見(jiàn),離線在使用內(nèi)存時(shí),多用了分配給在線的內(nèi)存額度,通過(guò)這種機(jī)制,實(shí)現(xiàn)內(nèi)存超賣使用。

為何在線內(nèi)存允許被超賣使用,由于我們公司在線業(yè)務(wù)以 Java 語(yǔ)言為主,分配到容器的內(nèi)存一方面用于 Java 堆內(nèi)存開(kāi)銷,剩余的內(nèi)存作為 Cache 使用。

這就造成在線容器內(nèi)存在一定量的空閑內(nèi)存,我們通過(guò)精細(xì)地內(nèi)存使用量監(jiān)聽(tīng),并結(jié)合一定的防護(hù)機(jī)制,把在線容器分配的空閑內(nèi)存分配給離線使用。

但由于這部分內(nèi)存屬于在線,對(duì)離線而言無(wú)法強(qiáng)保障,因此離線會(huì)把相對(duì)低等級(jí)可降級(jí)的業(yè)務(wù)調(diào)度到這些資源上。

Disk 方面,磁盤(pán)容量對(duì)于雙方業(yè)務(wù)還是比較充分的,故未做過(guò)多約束。而磁盤(pán) IO 方面,做了一系列帶寬限速,以約束離線任務(wù)使用的最大 IO 小于一定數(shù)量,避免完全擠占在線及系統(tǒng)的 IO。

另外,單機(jī) Net 層面,由于當(dāng)前容量較為富余,當(dāng)前不是瓶頸點(diǎn),不做過(guò)多介紹。

大促資源退讓機(jī)制:站點(diǎn)快上快下

以上談了單機(jī)層面的資源如何做到共享與競(jìng)爭(zhēng)隔離,再讓我們一起看看從整個(gè)資源集群層面,如果通過(guò)整體的運(yùn)維管控,實(shí)現(xiàn)資源的遷移和最大化利用。

混部技術(shù)中,我們追求資源利用的極致,讓不該用的業(yè)務(wù)場(chǎng)景不要浪費(fèi)每一份資源。

于是我們提出了站點(diǎn)快上快下的概念,其面向在線業(yè)務(wù)而言,如前文所述,每個(gè)混部集群即為一個(gè)在線交易單元,其獨(dú)立支撐一小部分用戶的交易行為。

因此我們也將其稱為“站點(diǎn)”,我們把在線站點(diǎn)的整體容量做伸縮變換,就是快上快下的過(guò)程。

如下圖所示:

 

在線型業(yè)務(wù)在日常運(yùn)行和特殊促銷活動(dòng)時(shí)的業(yè)務(wù)壓力表現(xiàn)出巨大的偏差,雙 11 期間有可能是日常流量的百倍以上,這個(gè)特性奠定了快上快下方案的可行性基礎(chǔ)。

如上圖所示,把兩個(gè)大的方塊圖,比作是在線站點(diǎn)整個(gè)容量,每一個(gè)小方塊代表某個(gè)在線服務(wù)的容器數(shù)量,每一行代表一個(gè)在線服務(wù)的容量?jī)?chǔ)備(容器總數(shù))。

我們通過(guò)對(duì)整個(gè)站點(diǎn)的容量規(guī)劃,實(shí)現(xiàn)日常狀態(tài)和大促狀態(tài)的容量模型切換,從而使得精細(xì)化地使用資源。

我們電商業(yè)務(wù)通常以一個(gè)業(yè)務(wù)目標(biāo),比如秒級(jí)交易創(chuàng)建筆數(shù),作為站點(diǎn)容量評(píng)估的基準(zhǔn)。

通常而言,在日常態(tài),單個(gè)站點(diǎn)保留 K 筆/s 的容量已經(jīng)足夠,而等到大促臨近,我們會(huì)將站點(diǎn)切換至大促態(tài),通常是 W 筆/s 容量級(jí)別。

通過(guò)以上模式,從整個(gè)站點(diǎn)的維度,把不必要的在線容量進(jìn)行整體縮容,以達(dá)到充分釋放資源,如此就可以讓離線業(yè)務(wù)拿到更多的物理資源,這就是快上快下機(jī)制。

站點(diǎn)快上過(guò)程(從低容量到高容量),執(zhí)行效率在一小時(shí)內(nèi)。站點(diǎn)快下過(guò)程(從高容量到低容量),執(zhí)行效率在半小時(shí)內(nèi)。

在日常狀態(tài)下,混部站點(diǎn)以最小容量模型支持日常在線流量,而當(dāng)大型促銷或全鏈路壓測(cè)前夕,將把混部站點(diǎn)迅速拉起到比較高的容量狀態(tài),并持續(xù)運(yùn)行幾個(gè)小時(shí)后,進(jìn)行站點(diǎn)快下。

通過(guò)這個(gè)機(jī)制,我們確保絕大部分地時(shí)間,在線僅占用極少的資源,而 90% 以上的資源均被離線充分使用。

下圖展示了快上快下各階段的資源分配細(xì)節(jié):

 

上圖資源分布的情況,左、中、右三個(gè)矩形框分別代表:日常態(tài)、壓測(cè)態(tài)、大促態(tài)混部集群的資源分配狀況。

其中,紅色代表離線,綠色代表在線。而每個(gè)矩形框中,又分為上、中、下三層,上層表示業(yè)務(wù)運(yùn)行及量級(jí);中層代表資源(宿主機(jī))分布,其中藍(lán)色小方塊代表混部資源;下層代表集群層面資源的分配比例及運(yùn)行模式。

在日常態(tài)(左矩形框),離線占用絕大部分資源,一部分通過(guò)分配獲得,小部分通過(guò)運(yùn)行時(shí)爭(zhēng)搶獲得(在線不使用即會(huì)被離線使用)。

而等到壓測(cè)態(tài)(中)和大促態(tài)(右),離線會(huì)進(jìn)行資源退讓,基本達(dá)到離線、在線各 50% 的分配比例,在線高壓力時(shí),離線不進(jìn)行超賣爭(zhēng)搶,而在準(zhǔn)備期內(nèi)(大促態(tài)但非高壓力時(shí)間),離線仍然可以爭(zhēng)搶在線空閑資源。

在雙 11 大促當(dāng)天,我們?yōu)榱烁_定地保障在線業(yè)務(wù)穩(wěn)定,離線會(huì)做一定程度的業(yè)務(wù)降級(jí)。

日常資源退讓機(jī)制:分時(shí)復(fù)用

上文呈述的快上快下機(jī)制是在線站點(diǎn)容量在大促態(tài)和日常態(tài)的切換過(guò)程,除此之外,在線業(yè)務(wù)在白天和凌晨也表現(xiàn)出一種規(guī)律性極強(qiáng)地流量高峰和低谷現(xiàn)象。

為了更進(jìn)一步提升資源利用率,我們還提出了日常情況下的資源退讓機(jī)制:分時(shí)復(fù)用。

 

上圖是在線業(yè)務(wù)日常表現(xiàn)出的一天的流量周期曲線,凌晨會(huì)比較低,白天比較高,我們針對(duì)每一個(gè)在線服務(wù),做到以天為周期的容量精細(xì)化伸縮,以最小化在線業(yè)務(wù)的資源使用,從而出讓資源給離線使用。

混部核心技術(shù)

混部核心技術(shù)主要分為兩方面:

  • 內(nèi)核隔離技術(shù)
  • 資源調(diào)度技術(shù)

由于涉及內(nèi)容均涉及專業(yè)領(lǐng)域,考慮到當(dāng)前文章篇幅,下文僅羅列了一系列技術(shù)點(diǎn),并不做細(xì)節(jié)展開(kāi)。

內(nèi)核隔離技術(shù)簡(jiǎn)介

我們?cè)趦?nèi)核各資源類型層面均做了較強(qiáng)地隔離特性開(kāi)發(fā),包括:CPU 維度、IO 維度、內(nèi)存維度、網(wǎng)絡(luò)維度。

整體上基于 CGroup 進(jìn)行在線、離線業(yè)務(wù)組別劃分,以區(qū)分兩類業(yè)務(wù)的內(nèi)核優(yōu)先級(jí)。

在 CPU 維度,我們實(shí)現(xiàn)了超線程對(duì)、調(diào)度器、三級(jí)緩存等的隔離特性。在內(nèi)存維度,實(shí)現(xiàn)了內(nèi)存帶寬隔離和 OOM kill 優(yōu)先級(jí)。

磁盤(pán)維度實(shí)現(xiàn)了 IO 帶寬限速。網(wǎng)絡(luò)維度,單機(jī)層面流量控制,還做了網(wǎng)絡(luò)全鏈條層的分等級(jí) QoS 保障。

混部?jī)?nèi)核隔離技術(shù)的詳細(xì)介紹大家可以自行搜索獲取,下文僅展開(kāi)有關(guān)內(nèi)存超賣機(jī)制的介紹。

Memory 動(dòng)態(tài)超賣機(jī)制:

 

如上圖中實(shí)線括弧所示,紅色、藍(lán)色分別代表離線、在線 CGroup 的內(nèi)存分配額,其和值代表整機(jī)可分配的內(nèi)存(已去除系統(tǒng)開(kāi)銷內(nèi)存)。

其下還有一個(gè)紫色實(shí)線括弧,代表離線的超賣內(nèi)存配額,其大小值因運(yùn)行時(shí)變化,是通過(guò)監(jiān)聽(tīng)運(yùn)行時(shí)發(fā)現(xiàn)在線未使用的空閑內(nèi)存大小來(lái)決定的。

如圖中上側(cè)虛線括弧,代表離線、在線實(shí)際使用內(nèi)存,其中,在線業(yè)務(wù)通常而言不會(huì)將內(nèi)存用滿,其剩余的內(nèi)存,離線作為其超賣配額進(jìn)行使用。

為了防止在線突發(fā)性內(nèi)存需求,在機(jī)制中預(yù)留了一定的內(nèi)存作為 buffer。通過(guò)以上機(jī)制,實(shí)現(xiàn)了離線超賣使用內(nèi)存。

資源調(diào)度技術(shù)

混部技術(shù)的第二大核心技術(shù)為資源調(diào)度技術(shù),混部場(chǎng)景中的資源調(diào)度,又可分為原生的一層資源調(diào)度(在線資源調(diào)度技術(shù) Sigma 和離線資源調(diào)度技術(shù)Fuxi)和混部 0 層調(diào)度。

在線資源調(diào)度:Sigma

在線資源調(diào)度器主要基于應(yīng)用資源畫(huà)像,進(jìn)行合理地資源調(diào)度與分配,包括一系列裝箱問(wèn)題、親和/互斥規(guī)則、全局最優(yōu)解等,并從全局維度進(jìn)行應(yīng)用容量自動(dòng)伸縮、分時(shí)復(fù)用以及戰(zhàn)斗維度快上快下。

 

上圖是在線一級(jí)調(diào)度 Sigma 的架構(gòu)圖,其兼容 Kubernetes API,基于阿里 Pouch 容器技術(shù)進(jìn)行調(diào)度,并且進(jìn)過(guò)多年阿里大規(guī)模流量及雙 11 大促驗(yàn)證。

離線資源調(diào)度:Fuxi

離線集群調(diào)度器主要實(shí)現(xiàn)分等級(jí)任務(wù)調(diào)度、動(dòng)態(tài)內(nèi)存超賣、無(wú)損/有損離線降級(jí)方案等。

 

這是離線資源調(diào)度 Fuxi 的運(yùn)行機(jī)制圖,其基于 Job 進(jìn)行調(diào)度,面向海量數(shù)據(jù)處理和大規(guī)模計(jì)算類型的復(fù)雜應(yīng)用,提供了一個(gè)數(shù)據(jù)驅(qū)動(dòng)的多級(jí)流水線并行計(jì)算框架。

其在表述能力上兼容 MapReduce,Map-Reduce-Merge,Cascading,F(xiàn)lumeJava 等多種編程模式,高可擴(kuò)展性,支持十萬(wàn)以上級(jí)的并行任務(wù)調(diào)度,并能根據(jù)數(shù)據(jù)分布優(yōu)化網(wǎng)絡(luò)開(kāi)銷。

統(tǒng)一資源調(diào)度:0 層

混部場(chǎng)景中,離線和在線業(yè)務(wù)通過(guò)各自的一層資源調(diào)度器進(jìn)行資源調(diào)度和分配,但在一層調(diào)度器下面,還有一個(gè)統(tǒng)一資源調(diào)度層—0 層,其職能為雙方資源的協(xié)調(diào)與仲裁,通過(guò)監(jiān)聽(tīng)與決策,合理分配資源。

以下為混部資源調(diào)度的整體架構(gòu)圖:

 

未來(lái)展望

混部技術(shù)的未來(lái)發(fā)展,將往三個(gè)方向演進(jìn),分別是:規(guī)?;⒍嘣途?xì)化方向。

規(guī)?;涸?2018 年,將會(huì)做到萬(wàn)臺(tái)級(jí)別的混部,這將是一次量級(jí)的飛躍,我們希望把混部作為集團(tuán)內(nèi)部資源交付的基礎(chǔ)能力,更大規(guī)模地節(jié)約資源成本。

多元化:未來(lái)希望能支持更多的業(yè)務(wù)類型、更多的硬件資源類型,以及更復(fù)雜的環(huán)境,甚至希望可以打通云上資源,阿里云和公司內(nèi)部資源混部互通。

 

精細(xì)化:未來(lái)希望能將業(yè)務(wù)的資源畫(huà)像刻畫(huà)得更加細(xì)致,調(diào)度層面時(shí)效更實(shí)時(shí)、調(diào)度精度更細(xì)致,內(nèi)核隔離更加精細(xì),監(jiān)控及運(yùn)維管控更加實(shí)時(shí)精準(zhǔn)。

責(zé)任編輯:武曉燕 來(lái)源: 高效運(yùn)維
相關(guān)推薦

2018-10-17 09:25:22

2014-12-02 10:38:41

5G

2018-11-25 10:08:44

阿里巴巴技術(shù)開(kāi)源

2011-08-12 09:27:33

移動(dòng)設(shè)備虛擬化虛擬化

2018-12-06 09:12:58

2023-11-27 19:37:51

CPU云原生

2024-01-03 07:47:18

CPU規(guī)模化技術(shù)

2020-06-12 09:20:33

前端Blob字符串

2020-07-28 08:26:34

WebSocket瀏覽器

2011-09-15 17:10:41

2022-10-13 11:48:37

Web共享機(jī)制操作系統(tǒng)

2009-12-10 09:37:43

2021-02-01 23:23:39

FiddlerCharlesWeb

2016-02-19 09:29:32

微軟雅黑微軟字體

2016-10-31 21:12:07

軟件

2010-08-23 09:56:09

Java性能監(jiān)控

2016-09-13 17:14:30

2020-11-03 10:44:35

敏捷性數(shù)字化

2019-05-20 08:11:02

淘寶個(gè)性化推薦

2013-09-09 09:59:39

虛擬化云計(jì)算
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)