偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

提升資源利用率與保障服務(wù)質(zhì)量,魚與熊掌不可兼得?

原創(chuàng) 精選
開發(fā) 新聞
本文介紹了LAR的設(shè)計理念、基本框架以及核心設(shè)計,并結(jié)合在線和混部場景應(yīng)用展開思考,并展示了部分落地成果。希望能為從事相關(guān)工作的同學(xué)帶來一些啟發(fā)或者幫助。

作者:啟超 汪喆 譚霖等

美團(tuán)Hulk調(diào)度系統(tǒng)團(tuán)隊在集群服務(wù)質(zhì)量與資源利用率運營的長期落地實踐中,基于業(yè)務(wù)實際場景,自主設(shè)計研發(fā)了集群負(fù)載自動調(diào)控系統(tǒng)(LAR)以及配套的運營體系,在提升集群整體資源利用率的同時保障了業(yè)務(wù)服務(wù)質(zhì)量。

隨著云計算時代的到來,大規(guī)模資源運營面臨著如何在保障服務(wù)質(zhì)量的同時提升資源利用率(降本增效)。但這兩個目標(biāo)的達(dá)成在當(dāng)前的軟硬件技術(shù)水平上,是相互矛盾的。本文介紹的LAR(Load Auto-Regulator)系統(tǒng),即是探索這兩個矛盾方向間的平衡點,在保證質(zhì)量的前提下,提升資源的利用率。LAR通過資源分級池化,完備的QoS保障機制,做到精細(xì)化的單機資源調(diào)度與隔離,在提升整體資源利用率的同時,能夠根據(jù)服務(wù)的優(yōu)先級和特征保證服務(wù)的質(zhì)量。LAR的整體設(shè)計可以適用于多個場景,包括在線場景和混部場景。目前LAR已經(jīng)在美團(tuán)在線場景中投入生產(chǎn)使用,并取得了較好的效果。

1 背景

1.1 云計算時代數(shù)據(jù)中心資源規(guī)模爆炸

云計算時代的到來,資源規(guī)?;\營成為必然的選擇,大規(guī)模數(shù)據(jù)中心成為當(dāng)今企業(yè)級互聯(lián)網(wǎng)應(yīng)用和云計算系統(tǒng)的關(guān)鍵支撐。據(jù)權(quán)威報告指出,2020年全球數(shù)據(jù)中心的服務(wù)器總量將達(dá)到1800萬臺,并且正以每年100萬臺的速度增長。然而,伴隨著數(shù)據(jù)中心的急速擴容,資源利用率卻始終處于較低狀態(tài)。統(tǒng)計數(shù)據(jù)表明,目前全球數(shù)據(jù)中心資源利用率僅為10%~20%,如此低的資源利用率意味著數(shù)據(jù)中心大量的資源浪費,進(jìn)而導(dǎo)致目前數(shù)據(jù)中心的成本效率極低。

1.2 資源利用率提升影響巨大

在國家戰(zhàn)略層面,數(shù)據(jù)中心資源利用率低,造成大量的資源浪費,包括物力資源和電能浪費,這與可持續(xù)發(fā)展的理念是沖突的。2021年7月,工業(yè)和信息化部印發(fā)《新型數(shù)據(jù)中心發(fā)展三年行動計劃(2021-2023年)》,提出用3年時間,基本形成布局合理、技術(shù)先進(jìn)、綠色低碳、算力規(guī)模與數(shù)字經(jīng)濟(jì)增長相適應(yīng)的新型數(shù)據(jù)中心發(fā)展格局。計劃中重點提出建設(shè)綠色高效的數(shù)據(jù)中心目標(biāo),將資源利用率提升作為核心目標(biāo)。

在公司經(jīng)營上,提升資源利用率可以提升運營效率降低運營成本。谷歌在2019年發(fā)表的論文“Borg-the Next Generation”披露其2011年數(shù)據(jù)中心核心集群(統(tǒng)計1.2萬臺服務(wù)器)的月平均CPU利用率在30%左右,而到2019年,其數(shù)據(jù)中心核心集群(統(tǒng)計9.6萬臺服務(wù)器)的月平均CPU利用率達(dá)到了50%左右,8年時間內(nèi)提升了約20%,資源使用效能的大幅提升,幫助谷歌節(jié)省成本累計數(shù)十億美元。國內(nèi)各大云服務(wù)提供商和互聯(lián)網(wǎng)公司,目前投入大量人力物力去做提升數(shù)據(jù)中心資源利用率的工作,包括阿里巴巴、騰訊、百度、華為等公司均陸續(xù)提出了比較完善的資源利用率提升方案,在內(nèi)部落地實踐并取得了一定的成績。

提升資源利用率,降本增效,能給數(shù)據(jù)中心節(jié)省大量的成本。以數(shù)百萬核CPU的規(guī)模的數(shù)據(jù)中心為例,整體資源利用率每提升1個百分點,節(jié)省成本(包括采購成本和運營成本,運營成本主要是機房租金、電費以及運維費用等)每年將達(dá)到數(shù)千萬元。如果考慮到集群運營人工成本等,隨著資源規(guī)模持續(xù)擴大,這個收益將持續(xù)增長。持續(xù)提升機器的資源利用率,降低單核成本,提升集群服務(wù)質(zhì)量,是美團(tuán)Hulk團(tuán)隊的核心目標(biāo)之一。針對用戶對降本增效的需求,Hulk調(diào)度團(tuán)隊在集群資源利用率提升和服務(wù)質(zhì)量保障方向率先做出相關(guān)探索,提出了一系列的建設(shè)方案,并推進(jìn)落地。本文重點介紹在Hulk整體資源利用率運營體系中的核心系統(tǒng)集群負(fù)載自動均衡管理系統(tǒng)。

2 什么是LAR?

LAR全稱是集群負(fù)載自動均衡管理系統(tǒng)(LAR,Load Auto-Regulator),是美團(tuán)Hulk團(tuán)隊基于Kubernetes研發(fā)的容器編排系統(tǒng)。LAR在Kubernetes之上,通過提供分級的QoS管理機制和負(fù)載管控能力,實現(xiàn)從時空維度對資源的精確調(diào)度分配管理。

2.1 目標(biāo)與挑戰(zhàn)

提升資源利用率從大的層面講,符合國家降本增效、節(jié)能減排的綠色低碳發(fā)展戰(zhàn)略;從小的層面講,通過提升資源利用率,可以為企業(yè)每年節(jié)省數(shù)億的成本,并且降低整體系統(tǒng)復(fù)雜度及運維風(fēng)險。提升資源利用率,竟有這么大的收益?可能超乎絕大多數(shù)人的預(yù)料。按照很多同學(xué)的理解,通過非常簡單的操作即可達(dá)成這個目標(biāo)——提高單機的服務(wù)部署密度。但如此簡單的操作,為何全球數(shù)據(jù)中心資源利用率僅為10%~20%呢?利用率如此之低,這里最為關(guān)鍵的因素有三個:

  • 部署到同一臺物理機的服務(wù)在資源使用上存在相互干擾。
  • 服務(wù)在流量上存在高低峰,反映在資源使用上也有高低峰。
  • 關(guān)鍵核心在線服務(wù)的服務(wù)質(zhì)量下降無法接受。

整體來說,從當(dāng)前硬件架構(gòu)和操作系統(tǒng)設(shè)計上看,雖然在資源分配上,理論上是進(jìn)程作為獨立的分配單位,資源相互隔離,但在實際使用上卻是共享的,典型的包括CPU、網(wǎng)卡、I/O總線、Cache以及內(nèi)核軟件資源等。當(dāng)然,軟硬件如此設(shè)計本身就是為了提升整體資源利用的效率,提升整體任務(wù)的處理能力。而提升資源利用率,從本質(zhì)上講,是提升資源的復(fù)用共享,避免資源閑置浪費。但是提升資源共享復(fù)用水平,多少都會影響進(jìn)程運行的效率,且隨著復(fù)用水平越高,影響越大。

操作系統(tǒng)提供了一系列的資源隔離保障措施,意圖降低服務(wù)在資源使用時彼此間的干擾,一定程度上在保障資源共享復(fù)用的同時提升了資源隔離的能力,但由于底層硬件架構(gòu)上的限制,這種提升是有限的。而對于大多數(shù)業(yè)務(wù)的在線服務(wù),服務(wù)質(zhì)量的波動,比如延時增加、TPS下降等是難以接受的,特別是類似支付、訂單類的核心服務(wù)。這是造成了當(dāng)前數(shù)據(jù)中心整體資源利用率低的根本矛盾:一方面是在線業(yè)務(wù)對資源競爭導(dǎo)致的服務(wù)質(zhì)量下降是難以容忍的,在線服務(wù)質(zhì)量必須保障,另一方面當(dāng)前大規(guī)模的數(shù)據(jù)中心在整體上資源利用率水平低,運營成本居高不下,亟需提升資源利用率,而提升資源利用率、降低運營成本會直接影響到在線業(yè)務(wù)服務(wù)質(zhì)量。

一方面,“服務(wù)質(zhì)量”關(guān)系著業(yè)務(wù)的服務(wù)體驗,直接關(guān)系到營收,而另一方面,“提升資源利用率”,又有著巨大的成本空間可以降低,能夠增加整體的收益。二者對于企業(yè)來說,就像“魚與熊掌不可兼得”的矛盾。

圖片

圖1 美團(tuán)在線服務(wù)雙峰特征

當(dāng)前業(yè)界,很多企業(yè)和研究單位都在投入大量的資源來研究如何解決這一矛盾,努力實現(xiàn)整體利益的最大化。

LAR(Load Auto-Regulator),聚焦于“資源利用率提升”和“服務(wù)質(zhì)量保障”這一矛盾的解決,整個系統(tǒng)設(shè)計的根本出發(fā)點,即是在集群資源運營上要實現(xiàn)資源利用率和服務(wù)質(zhì)量的雙重保障,解決數(shù)據(jù)中心運營中的“魚與熊掌不可兼得”難題和挑戰(zhàn)。

2.2 系統(tǒng)架構(gòu)

提升資源利用率的本質(zhì)是提升資源共享復(fù)用水平,而保障服務(wù)質(zhì)量則需要通過資源隔離能力,保障服務(wù)的性能穩(wěn)定。針對上述兩個根本點,LAR在Kubernetes上提出兩個核心創(chuàng)新點:

  • 資源池化分級

通過將單機資源劃分到不同的資源池,提升資源在池內(nèi)的共享復(fù)用水平。

不同的資源池之間有不同的優(yōu)先級,并提供不同的資源隔離水平(資源隔離水平越高,資源共享復(fù)用水平越低)。

資源在不同優(yōu)先級的資源池之間根據(jù)優(yōu)先級和資源池的資源負(fù)載水平流動,優(yōu)先保障高優(yōu)資源池服務(wù)的資源使用,從而保障其服務(wù)質(zhì)量。

  • 動態(tài)負(fù)載和靜態(tài)資源映射
  • 資源的分配,本質(zhì)上是負(fù)載空間的分配。假設(shè)單機整體CPU利用率小于50%的情況下,運營在其上的服務(wù)的服務(wù)質(zhì)量不會有影響,那么這個機器的靜態(tài)資源其實對應(yīng)的就是節(jié)點50% CPU利用率的負(fù)載空間。換個角度看,就是無論如何調(diào)度分配資源,只要這個節(jié)點的負(fù)載不超過50%即可。
  • 業(yè)務(wù)靜態(tài)的資源申請,根據(jù)服務(wù)的特征經(jīng)過調(diào)度計算后,服務(wù)被放入對應(yīng)的資源池,而資源池的資源配置則根據(jù)池內(nèi)所有服務(wù)的實際負(fù)載進(jìn)行資源配置,并可以實時地根據(jù)負(fù)載調(diào)整資源配置,實現(xiàn)靜態(tài)資源分配和動態(tài)負(fù)載的映射管理。

上述兩個核心創(chuàng)新點在幫助提升資源共享復(fù)用的同時,通過負(fù)載管理和操作系統(tǒng)提供的單機資源隔離能力,實現(xiàn)分級的服務(wù)質(zhì)量保障的機制,具有很強的通用性,應(yīng)用場景也比較廣泛。結(jié)合上述的核心創(chuàng)新點,LAR的整體設(shè)計目標(biāo)包括:

  • 相較于Kubernetes,提供分級可編輯更細(xì)致靈活的QoS服務(wù)質(zhì)量保障機制,充分保障核心服務(wù)的資源供給及服務(wù)質(zhì)量。
  • 建立負(fù)載與資源之間的映射關(guān)系,解決Kubernetes基于Request的靜態(tài)資源調(diào)度難以解決的節(jié)點負(fù)載問題,降低負(fù)載動態(tài)調(diào)度的整體復(fù)雜度。
  • 提供靈活且具有一定通用性的單機資源調(diào)度能力,實現(xiàn)不同服務(wù)間資源的錯峰復(fù)用。
  • 提供更強力的資源隔離能力,保障核心在線業(yè)務(wù)的服務(wù)質(zhì)量前提下,提升整體的資源利用率。

圖片

圖2 Hulk資源利用率運營體系

在Hulk整體資源利用率運營體系中,LAR基于Kubernetes擴展,負(fù)責(zé)單個集群的資源管理和調(diào)度。相較于Native的Kubernetes,LAR提供分級可編輯更細(xì)致靈活的QoS服務(wù)質(zhì)量保障機制,充分保障不同服務(wù)的資源供給及服務(wù)質(zhì)量。

而LAR依托于底層的MTOS提供的資源隔離能力和調(diào)度資源Buffer池的物理機彈性伸縮能力,并根據(jù)集群運營數(shù)據(jù)中心和服務(wù)畫像提供的集群及服務(wù)等特征,向上提供精細(xì)化的動態(tài)資源調(diào)整、負(fù)載管理以及QoS服務(wù)質(zhì)量保障能力。統(tǒng)一調(diào)度系統(tǒng)在LAR之上,根據(jù)LAR提供的動態(tài)資源及服務(wù)質(zhì)量數(shù)據(jù),完成不同應(yīng)用場景下,包括在線服務(wù)和離線服務(wù)的跨集群統(tǒng)一調(diào)度。

LAR處于整個資源利用率運營體系中核心關(guān)鍵位置,從功能上來看,整個產(chǎn)品分為五大主要功能模塊:

  • 資源分級管理模塊
  • 資源池配置管理模塊
  • 服務(wù)質(zhì)量保障模塊
  • 資源隔離管理模塊
  • 策略配置模塊

上述五大功能模塊由LAR系統(tǒng)中3個核心組件來落地實現(xiàn)。LAR是基于原生的Kubernetes進(jìn)行研發(fā)擴展,如下圖3的整體架構(gòu)所示,LAR在Kubernetes的基礎(chǔ)功能上,擴展了Scheduler和Kubelet的功能,并新增Recommender和QoSAdaptor兩個組件。對Kubernetes原生組件的擴展均采用插件開發(fā)的模式,減少對原生組件的入侵式修改,從而降低未來運維和升級的成本;對于新增組件,遵循云原生的開發(fā)模式,包括代碼風(fēng)格以及運行機制,和Kubernetes保持統(tǒng)一。

圖片圖3 LAR系統(tǒng)架構(gòu)

QoSAdaptor

QoSAdaptor主要負(fù)責(zé)服務(wù)質(zhì)量保障,其核心功能是負(fù)責(zé)單機資源的分池分級管理,提供分級的單機QoS服務(wù)質(zhì)量保障機制。QoSAdaptor分為五個功能模塊:

  • 指標(biāo)采集模塊:通過Cadvisor、Node-Exporter等工具采集節(jié)點與容器的指標(biāo),為資源池管理提供決策依據(jù)。
  • 資源池管理模塊

資源動態(tài)配置管理:根據(jù)數(shù)據(jù)指標(biāo)對資源池實時進(jìn)行負(fù)載計算,并基于負(fù)載策略及優(yōu)先級動態(tài)調(diào)整資源在各級資源池的配置。

QoS服務(wù)質(zhì)量保障:實時監(jiān)控負(fù)載指標(biāo),依據(jù)資源池的優(yōu)先級管理策略,在資源競爭的情況下,通過資源搶占、服務(wù)降級及驅(qū)逐等多種手段分優(yōu)先級保障服務(wù)質(zhì)量。

  • 資源配置管理模塊:基于各資源池的配置,通過Cgroup等系統(tǒng)工具,對不同資源池的資源進(jìn)行隔離與限制。
  • 資源上報模塊:周期Patch節(jié)點的資源使用情況、資源池負(fù)載等信息。

圖片

圖4 QoSAdaptor與KubeletQoSAdaptor

以DaemonSet的形式部署在Kubelet節(jié)點上,核心功能是實現(xiàn)資源池和容器的資源配置管理。如上圖4所示,我們通過自研的CRI Plugin,以Runtime Hook的形式在容器生命周期管理中引入自定義的QoS保障機制。

由于QoSAdaptor的資源調(diào)整與QoS服務(wù)質(zhì)量保障動作,均基于本地指標(biāo)采集并進(jìn)行實時的負(fù)載和策略計算,不依賴外部監(jiān)控系統(tǒng),減少了數(shù)據(jù)傳輸時延,在保證服務(wù)的穩(wěn)定性同時確??梢悦爰夗憫?yīng)資源配置調(diào)整和服務(wù)質(zhì)量保障動作,保障業(yè)務(wù)容器的穩(wěn)定性。

Recommender

Recommender主要負(fù)責(zé)LAR運行中策略及參數(shù)的配置更新,依托外部服務(wù)數(shù)據(jù),周期性計算并更新LAR相關(guān)策略參數(shù),提供統(tǒng)一的集群策略配置入口。

圖片

圖5 Recommender與其它服務(wù)組件調(diào)用關(guān)系

Recommender以集群為維度,每個集群部署一套服務(wù)。如上圖5所示,Recommender通過集群運營數(shù)據(jù)中心和服務(wù)畫像服務(wù)的離線數(shù)據(jù),周期迭代計算LAR的策略參數(shù)。主要功能模塊包括:

  • 資源預(yù)測:根據(jù)離線監(jiān)控數(shù)據(jù)及服務(wù)畫像數(shù)據(jù),對節(jié)點物理資源未來的使用情況進(jìn)行提前預(yù)估,指導(dǎo)節(jié)點的不同資源池的資源配置,并可能觸發(fā)QoS服務(wù)質(zhì)量保障動作以及集群級別的資源調(diào)整,比如節(jié)點擴容及服務(wù)重調(diào)度等。
  • 策略計算:根據(jù)節(jié)點的各級資源池負(fù)載數(shù)據(jù)及集群運營數(shù)據(jù)中心的集群服務(wù)質(zhì)量數(shù)據(jù),周期性迭代更新各級資源池的負(fù)載控制及資源配置策略,保障服務(wù)質(zhì)量的同時不斷提升資源利用效率。此外,策略計算會定期更新QoS服務(wù)質(zhì)量保障機制中的相關(guān)策略,比如服務(wù)降級、驅(qū)逐等判斷條件。
  • 參數(shù)配置:提供統(tǒng)一的QoSAdaptor參數(shù)配置,實現(xiàn)配置變更分發(fā)的功能。

Scheduler

在LAR中,通過靜態(tài)資源和動態(tài)負(fù)載之間的映射,進(jìn)而在調(diào)度層屏蔽了動態(tài)負(fù)載變化,在調(diào)度層面降低了根據(jù)負(fù)載進(jìn)行動態(tài)調(diào)度的復(fù)雜度。

Kubernetes默認(rèn)根據(jù)業(yè)務(wù)申請的資源規(guī)格進(jìn)行資源的調(diào)度分配,并以此設(shè)計調(diào)度計算框架和算法。但由于業(yè)務(wù)申請的資源規(guī)格是個靜態(tài)值,且業(yè)務(wù)方對服務(wù)資源的使用通常傾向于放大評估,進(jìn)而導(dǎo)致整體的資源申請和實際資源使用時存在較大的Gap。我們進(jìn)一步考慮到資源的使用通常是動態(tài)的,也具有規(guī)律性的波峰波谷。這兩點因素導(dǎo)致在集群的運營上,整體資源分配率接近滿分配的情況下,資源使用率平均水平其實很低。

傳統(tǒng)的方案通過節(jié)點資源超售來解決資源申請和實際資源使用之間存在的Gap,并引入根據(jù)負(fù)載的動態(tài)調(diào)度策略。調(diào)整節(jié)點資源超售,雖然能在一定程度上緩解資源申請和使用的Gap問題,但由于Gap在不同的服務(wù)間并不相同,加上服務(wù)資源使用的波峰波谷分布集中的情況(美團(tuán)在線業(yè)務(wù)的典型特征),此方法在整體上過于粗放,會導(dǎo)致節(jié)點間的負(fù)載分布不均衡,部分節(jié)點負(fù)載很高,影響服務(wù)質(zhì)量;另一部分節(jié)點負(fù)載極低,實際上形成資源浪費。而根據(jù)負(fù)載直接進(jìn)行資源調(diào)度,由于負(fù)載是動態(tài)變化的,在調(diào)度算法設(shè)計及計算框架實現(xiàn)上會非常復(fù)雜,且效果一般。

在LAR中,我們通過引入資源配置因子(RCF,Resource Configuration Factor,資源池內(nèi)的資源配比,動態(tài)控制池內(nèi)容器的實際可用資源,數(shù)值區(qū)間為(0, 1]),根據(jù)負(fù)載調(diào)整實際的資源分配,從而將負(fù)載的變化映射為可調(diào)度剩余資源的變化。如下圖6所示,資源負(fù)載即為實際的使用資源,是動態(tài)變化的,靜態(tài)資源是指資源總量和業(yè)務(wù)申請的資源規(guī)格,RCF由服務(wù)所在的節(jié)點的資源池決定,根據(jù)服務(wù)的歷史資源使用數(shù)據(jù)和服務(wù)畫像進(jìn)行計算,并周期進(jìn)行迭代更新。

圖片

圖6 RCF實現(xiàn)節(jié)點負(fù)載和可調(diào)度資源轉(zhuǎn)換

2.3 關(guān)鍵能力實現(xiàn)

圍繞資源利用率提升和服務(wù)質(zhì)量保障,LAR系統(tǒng)實現(xiàn)了以下關(guān)鍵技術(shù):

  • 分級池化資源模型:實現(xiàn)資源分池動態(tài)管理以及資源池優(yōu)先級管理。
  • 資源動態(tài)視圖:實現(xiàn)負(fù)載和資源配置之間的動態(tài)映射,簡化負(fù)載管理,保證負(fù)載的均衡度,保障服務(wù)質(zhì)量。
  • QoS保障機制:根據(jù)負(fù)載管理的資源配置,在資源競爭的場景下,提供資源搶占以及服務(wù)降級驅(qū)逐等功能,提供分級服務(wù)質(zhì)量的保障能力。
  • 資源智能運營:通過池間資源配置、池內(nèi)負(fù)載配置、歷史負(fù)載預(yù)測等運營策略,自動化調(diào)控節(jié)點資源分配情況,從而達(dá)到提升資源利用率的目的。

2.3.1 分級池化資源模型

分級池化資源模型是LAR整個設(shè)計的核心,整個模型包括資源分池動態(tài)管理和資源池優(yōu)先級管理兩個核心設(shè)計。

資源分池動態(tài)管理機制

資源分池動態(tài)管理引入資源池的概念,通過將節(jié)點資源進(jìn)行分池管理,實現(xiàn)資源池內(nèi)部資源高度共享,在提高資源復(fù)用率的同時,通過池間資源隔離達(dá)到池間服務(wù)的干擾隔離。資源池內(nèi)資源的配置依據(jù)服務(wù)的負(fù)載進(jìn)行動態(tài)調(diào)整,并通過資源配置的調(diào)整,控制資源池內(nèi)部的資源負(fù)載維系在相對穩(wěn)定的范圍內(nèi),從而保證服務(wù)質(zhì)量。

資源池優(yōu)先級管理機制

在資源分池動態(tài)管理機制基礎(chǔ)上,LAR引入資源池優(yōu)先級管理機制,通過分級的服務(wù)質(zhì)量保障機制,保障業(yè)務(wù)的服務(wù)質(zhì)量。在資源池優(yōu)先級管理機制中,不同的資源池具有不同的優(yōu)先級,對應(yīng)不同級別的服務(wù)質(zhì)量保障級別。不同優(yōu)先級的資源池,在資源配置管理上有3點區(qū)別:

  • 資源配置管理策略不同:資源配置管理策略用于決策資源池的資源配置,并通過資源配置控制資源池的資源供給和負(fù)載水平。對于優(yōu)先級高的資源池,資源配置充裕,資源池內(nèi)的負(fù)載維系在安全穩(wěn)定的水平,并通過資源池的資源隔離能力,實現(xiàn)對資源池內(nèi)部服務(wù)資源使用的優(yōu)先保障,從而保證更高的服務(wù)質(zhì)量。
  • 資源隔離保障能力不同:高級別的資源池依托系統(tǒng)內(nèi)核等提供的資源隔離能力,提供更高級別的資源池資源隔離級別,通過實現(xiàn)資源的獨占或優(yōu)先搶占使用,達(dá)到高優(yōu)資源池內(nèi)部服務(wù)在系統(tǒng)進(jìn)程級別資源調(diào)度時的優(yōu)先保障。比如,對于高優(yōu)資源池,可以進(jìn)行獨立的CPU互斥綁定、I/O隔離等,保障其內(nèi)部服務(wù)不受池外服務(wù)的影響。
  • 優(yōu)先級資源搶占機制:資源池的資源配置可以動態(tài)調(diào)整,在高級別資源池配置資源不足,池內(nèi)負(fù)載過高時,QoS服務(wù)質(zhì)量保障機制會根據(jù)資源池優(yōu)先級,高優(yōu)資源池可以搶占低優(yōu)資源池已配置的資源,通過犧牲低優(yōu)資源池服務(wù)質(zhì)量水平,優(yōu)先保障高級別資源池的資源供給,保障高優(yōu)服務(wù)的服務(wù)質(zhì)量。

在LAR的分級池化的資源模型中,節(jié)點空閑資源,放置到優(yōu)先級最低的資源池內(nèi),其它資源池的資源配置由服務(wù)的資源申請規(guī)格、資源池資源配置管理策略以及資源池資源負(fù)載決定。在資源池資源配置管理策略中,包含資源池目標(biāo)負(fù)載和資源池RCF兩部分內(nèi)容。資源池具體的配置資源由服務(wù)申請的資源和資源池實時負(fù)載決定。當(dāng)實時負(fù)載升高時,LAR會調(diào)整對應(yīng)資源池的RCF,增加資源池的資源配置,降低資源池負(fù)載;當(dāng)資源池負(fù)載降低時,LAR會通過調(diào)整RCF降低資源池的資源配置,釋放冗余資源。

圖片

圖7 LAR單機資源分配及資源池資源調(diào)整

上圖7以3級資源池為例,節(jié)點資源被劃分為0、1、2三類資源池,優(yōu)先級依次降低。初始整個機器無服務(wù)調(diào)度其上,資源全部集中在Pool2。隨著服務(wù)的調(diào)度,Pool1先調(diào)度了服務(wù)1,這時會根據(jù)上述的資源計算方式,LAR將Pool2的對應(yīng)的資源調(diào)整至Poo1,Pool2資源減少。隨著Pool1中服務(wù)增多,配置的資源隨之增多,Pool2相應(yīng)資源減少。優(yōu)先級最高的Pool0調(diào)入服務(wù)后,同樣的資源從Pool2調(diào)整至Pool0;Pool2調(diào)度入服務(wù)時,Pool2資源不變。

3個資源池配置不同的資源配置管理策略,0號池優(yōu)先級最高,池內(nèi)目標(biāo)CPU負(fù)載控制在30%~50%之間;1號池優(yōu)先級次之,池內(nèi)目標(biāo)CPU負(fù)載控制在45%~60%之間;2號池優(yōu)先級最低,池內(nèi)目標(biāo)CPU負(fù)載控制在50%~80%。已分配的資源由資源池內(nèi)服務(wù)共享,在池間相互隔離。在負(fù)載低時,不同資源池根據(jù)資源池管理策略,自動調(diào)整各資源池的資源配置,保證資源池內(nèi)負(fù)載穩(wěn)定;出現(xiàn)資源緊張時,高優(yōu)資源池可以從低優(yōu)資源池?fù)屨假Y源,優(yōu)先保障高優(yōu)服務(wù)的資源需求。

2.3.2 動態(tài)資源視圖

LAR通過引入動態(tài)資源視圖,將靜態(tài)資源與動態(tài)負(fù)載進(jìn)行映射,并基于資源池的實際負(fù)載進(jìn)行更精確的資源分配決策。

當(dāng)在線資源池出現(xiàn)負(fù)載波動時,池內(nèi)分配資源會隨著負(fù)載進(jìn)行變化,引起池間的資源流動。池間資源流動遵循以下規(guī)則:

  • 所有資源池的池內(nèi)分配資源之和為節(jié)點可分配的資源總量。
  • 當(dāng)池內(nèi)負(fù)載降低,釋放資源到最低等級的資源池,復(fù)用閑時資源。
  • 當(dāng)池內(nèi)負(fù)載升高,向等級低于自身的資源池,根據(jù)從低到高的順序進(jìn)行資源請求,根據(jù)優(yōu)先級滿足服務(wù)資源需求。
  • 池內(nèi)的資源最多不會超過用戶申請的量。

圖片

圖8 動態(tài)資源視圖(以三級池為例)

如圖8所示,以3級資源池為例:

  • 當(dāng)Pool1負(fù)載升高時,從等級更低的Pool2搶占資源,優(yōu)先保障自身的服務(wù)資源需求,Pool1負(fù)載降低時,將冗余的資源釋放回Pool2。
  • 當(dāng)Pool0負(fù)載升高時,優(yōu)先從Pool2搶占資源,當(dāng)Pool2資源不足時,從Pool1搶占資源,保證更高等級的服務(wù)資源需求,當(dāng)Pool0負(fù)載降低時,冗余的資源被釋放回Pool2,此時若Pool1存在負(fù)載壓力,則會重新從Pool2搶占資源。

下圖為資源池內(nèi)負(fù)載與池內(nèi)分配資源的變化情況,可以看到其變化趨勢與美團(tuán)在線服務(wù)負(fù)載特性基本保持一致。

圖片

圖9 節(jié)點池內(nèi)負(fù)載與池內(nèi)分配資源變化情況

2.3.3 QoS服務(wù)質(zhì)量保障機制

提升資源利用率會導(dǎo)致資源競爭,LAR通過池間、池內(nèi)兩層QoS服務(wù)質(zhì)量保障機制,分級保證服務(wù)的隔離性和穩(wěn)定性。

池間多維度資源隔離

LAR對資源池進(jìn)行了多維度的資源隔離與限制。除了基礎(chǔ)資源(CPU、Memory),還對磁盤I/O、CPU調(diào)度、Memory Cache、內(nèi)存帶寬、L3 Cache、OOM Score、網(wǎng)絡(luò)帶寬等更細(xì)粒度的資源進(jìn)行了隔離,進(jìn)一步提升不同等級服務(wù)間的隔離性,保證服務(wù)不會受到其他資源池的影響。

圖片

圖10 多維度資源隔離

美團(tuán)操作系統(tǒng)團(tuán)隊針對LAR場景進(jìn)行了隔離增強,關(guān)于MTOS相關(guān)特性的詳細(xì)介紹,大家可持續(xù)關(guān)注美團(tuán)技術(shù)團(tuán)隊公眾號的相關(guān)內(nèi)容。

池內(nèi)多層級保障策略

當(dāng)資源池內(nèi)負(fù)載出現(xiàn)不符合預(yù)期的情況時(如容器負(fù)載異常),由于資源池內(nèi)資源共享,整個資源池的服務(wù)都可能受到影響。LAR基于資源池內(nèi)不同的負(fù)載等級,制定了多級保障策略。LAR提供了資源釋放、資源搶占、CPU降級、Cache釋放、容器驅(qū)逐等負(fù)載處理策略。QoSAdaptor周期性(秒級)地獲取節(jié)點負(fù)載的數(shù)據(jù),并計算資源池的負(fù)載等級。當(dāng)負(fù)載達(dá)到一定的資源等級時,執(zhí)行對應(yīng)的負(fù)載策略。通過CPU降級、驅(qū)逐等行為,根據(jù)優(yōu)先級對部分容器進(jìn)行資源降級,保障池內(nèi)絕大多數(shù)容器的穩(wěn)定性。

  • 容器驅(qū)逐:Kubernetes原生的驅(qū)逐策略基于整個節(jié)點的負(fù)載,LAR中將策略縮小到了資源池維度,當(dāng)池內(nèi)Memory使用接近Cgroup限制,避免整個資源池出現(xiàn)OOM,影響所有容器的正常運行,會結(jié)合優(yōu)先級篩選Memory使用較多的容器進(jìn)行驅(qū)逐操作。
  • CPU降級:池內(nèi)CPU負(fù)載超過一定負(fù)載等級,避免高負(fù)載導(dǎo)致的容器間互相影響,LAR會結(jié)合優(yōu)先級篩選CPU使用較多的容器,對其CPU使用進(jìn)行單獨的限制。降級操作存在定時檢查機制,當(dāng)負(fù)載恢復(fù)正常,或有資源可以搶占的情況下,會將CPU限制進(jìn)行恢復(fù)。
  • 強制搶占:從更低等級的資源池?fù)屨假Y源,與普通資源搶占的區(qū)別為,即使資源已經(jīng)被其他池使用,強制搶占會優(yōu)先滿足高等級資源池的需求。

2.3.4 資源智能運營

LAR基于資源池的歷史負(fù)載與歷史分配情況,對池內(nèi)高峰資源使用情況進(jìn)行預(yù)測,為節(jié)點資源調(diào)整提供指導(dǎo)。由于資源池負(fù)載變化比較頻繁,同時受到池內(nèi)服務(wù)變更、資源總量、高低峰時間區(qū)間等因素的影響,節(jié)點基于實時負(fù)載進(jìn)行池內(nèi)資源的變更較不穩(wěn)定。Recommender周期性地根據(jù)各節(jié)點資源池的歷史負(fù)載與分配情況進(jìn)行高峰資源預(yù)測,并下發(fā)到節(jié)點,提供高峰負(fù)載控制指導(dǎo),提升資源池資源保障的穩(wěn)定性。同時通過RCF完成動態(tài)負(fù)載和靜態(tài)資源的轉(zhuǎn)換,在調(diào)度層屏蔽了動態(tài)負(fù)載變化,減少負(fù)載頻繁變化對調(diào)度準(zhǔn)確性的影響。

圖片

圖11 基于歷史負(fù)載的資源預(yù)測

3 應(yīng)用場景

LAR的設(shè)計目標(biāo)是在保障服務(wù)質(zhì)量的同時提升整體資源的利用率,在資源分池分級的設(shè)計上,針對通用的在線服務(wù)進(jìn)行服務(wù)分級,對接不同資源池,提供不同的服務(wù)質(zhì)量保障,從而提升資源的利用率。而對于離線服務(wù),本身相對于在線服務(wù)的服務(wù)質(zhì)量要求低,故而LAR天然地適用于混部場景。

3.1 在線場景

對于在線服務(wù),通過對服務(wù)進(jìn)行分級,并通過服務(wù)畫像對服務(wù)進(jìn)行細(xì)致刻畫,將資源敏感型服務(wù)和關(guān)鍵核心服務(wù)部署到LAR優(yōu)先級最高的資源池中;而對于一般的在線服務(wù),部署在次優(yōu)先級資源池。高優(yōu)資源池提供更細(xì)粒度與嚴(yán)格的資源隔離手段(包括綁核、進(jìn)程級優(yōu)先調(diào)度、I/O隔離、網(wǎng)絡(luò)隔離、Cache隔離等),以及在資源競爭時高優(yōu)的資源供給保障,保證池內(nèi)服務(wù)的質(zhì)量穩(wěn)定。

圖片

圖12 LAR在線場景資源池

如上圖12所示,一方面我們對高優(yōu)資源池配置更強的資源隔離策略(比如CPU綁核、進(jìn)程優(yōu)先調(diào)度等),另一方面在池內(nèi)資源配置上,高優(yōu)資源池的資源配置更高。轉(zhuǎn)換成資源池的資源利用率,高優(yōu)池資源利用率控制在一個安全較低的水位;而低優(yōu)池,則相對在一個更高的水平。

而由于高優(yōu)池主要針對關(guān)鍵核心且對資源敏感的在線服務(wù),其在整個在線服務(wù)中相對比例不超過20%。從而能整體提升整機的資源利用率水平。LAR在線服務(wù)場景中的應(yīng)用,目前在Hulk的線上線下均已落地,如圖13所示線上LAR集群(藍(lán)色曲線表示)的整體平均CPU利用率相對于Native的Kubernetes集群(橙色和綠色曲線表示)平均高5到10個百分點,但整體平均服務(wù)質(zhì)量(圖14)和Native的Kubernetes集群反而更穩(wěn)定。其中LAR集群目前作為在線集群使用,暫無離線服務(wù)接入。

圖片

圖13 在線集群資源利用率

圖片

圖14 集群服務(wù)質(zhì)量

3.2 混部場景

混部主要就是通過將延時和穩(wěn)定性容錯性更高的離線服務(wù)和在線服務(wù)混合部署,實現(xiàn)在線服務(wù)和離線服務(wù)在資源使用時空上的削峰填谷,如下圖15所示:

圖片

圖15 混部場景資源復(fù)用

從上述章節(jié)介紹的LAR資源模型可知,LAR資源模型的核心特征包括:

  • 資源分池分級管理,池內(nèi)資源共享,池間資源隔離。
  • 資源池資源配置由資源池優(yōu)先級和資源池內(nèi)負(fù)載決定。
  • QoS服務(wù)質(zhì)量保障機制根據(jù)負(fù)載調(diào)整資源池的資源配置,優(yōu)先保障高優(yōu)資源池資源供給。

有了上述能力的保障,LAR天然地適應(yīng)于混部場景。在混部場景中,假設(shè)將資源池分為0、1、2三個級別,優(yōu)先級依次由高到低。0和1號池分別對應(yīng)核心關(guān)鍵在線服務(wù)和一般的在線服務(wù),而2號池對應(yīng)離線服務(wù)使用的資源池。LAR的資源動態(tài)調(diào)整保障負(fù)載能力,會自動將0號池與1號池在業(yè)務(wù)低峰期(負(fù)載低)的閑置資源回收,提供給2號池的離線服務(wù)使用。并且QoS服務(wù)質(zhì)量保障機制,可以確保在業(yè)務(wù)高峰來臨時,秒級搶占2號池資源(對于內(nèi)存等非復(fù)用型資源,通過驅(qū)逐方式強制回收),從而保障在線服務(wù)的資源使用。

目前,LAR集群已陸續(xù)接入離線服務(wù)進(jìn)行混部的驗證。

4 演進(jìn)規(guī)劃

圖片

圖16 LAR演進(jìn)規(guī)劃LAR系統(tǒng)

從2021年開始規(guī)劃并啟動建設(shè),1.0版本我們完成了資源分級系統(tǒng)、負(fù)載驅(qū)動的動態(tài)資源視圖建設(shè)。2.0版本,我們主要完成了服務(wù)質(zhì)量保障體系建設(shè)。目前,我們正在與美團(tuán)內(nèi)部多個業(yè)務(wù)方深度進(jìn)行合作,探索服務(wù)分級接入及混部場景的應(yīng)用。未來,LAR會繼續(xù)在自動化智能化運營和混部場景應(yīng)用進(jìn)行探索迭代。

5 作者簡介

啟超、汪喆、譚霖等,均來自美團(tuán)基礎(chǔ)技術(shù)部/基礎(chǔ)軟件中心Hulk調(diào)度系統(tǒng)。

責(zé)任編輯:張燕妮 來源: 美團(tuán)技術(shù)團(tuán)隊
相關(guān)推薦

2017-09-29 11:07:00

IPS優(yōu)勢缺憾

2009-12-10 16:32:06

IDC虛擬化惠普

2016-05-12 15:21:32

IBM大型機LinuxONE

2017-04-06 22:33:43

with磁盤數(shù)據(jù)

2013-04-02 09:15:40

服務(wù)器虛擬化

2017-12-27 22:49:48

云服務(wù)網(wǎng)絡(luò)云計算

2013-08-30 13:56:57

2012-10-08 10:19:46

虛擬化

2012-01-17 10:31:21

惠普激光打印機

2015-10-15 09:09:38

Oracle數(shù)據(jù)庫華為

2014-03-06 22:38:32

代碼女神女程序員技術(shù)

2009-05-26 17:34:14

VMware虛擬化服務(wù)器

2017-06-12 12:23:46

打印機文印產(chǎn)品Brother

2023-12-23 23:35:13

語言視覺

2015-04-21 13:13:49

Fortinet

2012-05-08 13:24:45

負(fù)載均衡帶寬銳捷網(wǎng)絡(luò)

2022-04-12 15:54:12

阿里云云原生開源
點贊
收藏

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