日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

眾所周知,假期出行,熱情高漲,需求增多也使得穩定性保障壓力大。當各個服務流量激增時,資源負載壓力將會顯著提升。微觀上,單臺物理機的 CPU 利用率會大幅提升,單機上各個容器之間的爭搶會增加,性能受到影響。宏觀上,整個彈性云的熱點機器會增加,可供調度的資源會降低,容器調度和擴容的失敗率會上升。

今年,在降本增效的大前提下,不額外增加計算型服務器采購,如何保障資源供給以及確保高壓場景下的容器穩定性,對彈性云而言是個巨大的挑戰。為了提供更穩定的容器服務,彈性云全面梳理了容器服務資源保障的每一個環節,提出了新分級保障體系,提供了明確的容器資源保障等級,在此基礎上,針對不同優先級的容器提供相應的資源和穩定性保障。

早期彈性云容器體系帶來的超賣隱患

彈性云早期分級體系提供了1/2/3級容器等級,只是對容器的優先級進行了簡單的區分,并未將容器優先級與底層的資源保障關聯在一起。容器服務在使用過程中,會遇到以下問題:

  • 資源爭搶嚴重
  • 業務延遲較高,毛刺較多
  • 擴容失敗概率較高
  • 業務容量評估不準
  • 物理機數量難以評估

之所以會存在這些問題,實際上還是因為在資源層面沒有相應的保障。從單機資源看,部分物理機的 CPU 使用率峰值過高,并且容器的 CPU 資源存在不同程度的超賣。

從集群資源來看,舊體系下 quota 與物理機資源缺乏關聯,導致業務申請的 quota 僅僅停留在數字層面,不指導物理機資源的準備。此外,quota 還缺乏管控,導致 quota 的申請與實際需求嚴重脫節。

既要穩也要省,容器資源該怎么分配?

造成上述諸多問題很重要的一個原因就是彈性云資源整體上是超賣的,且比較嚴重。

所謂的資源超賣,指的是資源的申請量>供給量,表現為單機 & 集群方面均超賣。

  • 單機層面,一臺物理機上運行的所有容器的規格相加大于物理機所能提供的資源總量。
  • 集群層面,服務資源的 quota 總和大于集群物理機資源總量。 既要穩也要省,容器資源該怎么分配?

從上圖中可以看到,單是1級服務申請的資源量,就已經超過了物理機的總資源量。在集群和單機都超賣的情況下,早期的分級體系并沒有確立明確的超賣規則,使得舊體系容器運行環境整體處于無序和不確定的狀態下。

兩大超賣解決思路帶來的四大收益

思路一:核心服務鏈路不超賣

所有的核心服務鏈路上的服務均1:1對應物理機資源,不超賣。通過對機房1和機房2進行簡單的統計, 發現核心服務鏈路中網約車+兩輪車+代駕服務的申請量總和占據了所有服務總申請量的大約一半,且機房1核心服務的申請量已經超過總CPU數,機房2核心服務的申請量基本接近總CPU數。所以,核心服務不超賣受限于資源,方式不可行。      

既要穩也要省,容器資源該怎么分配?     

思路二:核心服務鏈路中最重要的服務不超賣

受限于資源,無法做到所有的核心服務鏈路中的服務都不超賣,那退一步,在物理資源有限的情況下,保障核心服務鏈路中最重要的服務不超賣,并在此基礎上,對于剩余的服務制定合理的超賣規則。

因此,彈性云需要重新制定分級保障體系,同時為新分級體系制定明確的超賣規則。超賣規則如下:

  • 核心服務中20% -> S級服務:不超賣
  • 老1級 -> A級服務:2倍超賣
  • 老2/3級 -> B級服務:4倍超賣

既要穩也要省,容器資源該怎么分配?

在新的超賣規則下,可以看到,機房1和機房2的總物理CPU量是基本能滿足需求的(機房2的資源申請量略微超出, 可以通過新增機器或是縮容來滿足要求)。

這樣的重新設計下,我們在2022年元旦前完成所有S級服務的接入,2022年國慶前完成網約車核心服務/兩輪車核心服務/代駕核心服務接入新體系。總體來看,這樣的改變帶來了四大收益:

  • 收益1:資源層面,S級服務CPU外部爭搶降低60% ~80%,A級服務CPU外部爭搶降低30~50%。
  • 收益2:業務延遲方面,業務99分位延遲(均值)降低7% ~ 20%業務99分位延遲(最大值)降低5% ~ 15%。
  • 收益3:容量方面,高峰期S級服務比之前多承載30%+流量,S級服務比之前能縮容30%+資源。
  • 收益4:業務收益角度,高峰期CPU外部爭搶下降65%~75%,毛刺基本消失,業務延遲指標下降5%~25%,業務壓測CPU外部爭搶下降60%~70%。

彈性云新分級保障體系總體架構

為了支持新分級保障體系,彈性云從下到上,針對每一層中的相關組件都進行開發改造,同時也包含了系統部 CMP 系統quota相關的開發工作,主要體現在操作系統層、k8s 調度層、kube-odin 層、服務樹和系統部 CMP 系統。

既要穩也要省,容器資源該怎么分配?

從上述架構圖中可以看到,位于最底層的是機房的物理機資源,物理機分別位于不同的機房。

操作系統層

物理機之上是操作系統層,操作系統層面分為內核態和用戶態。在內核態新增特性上,新分級體系對 CPU 調度,內存管理,IO 讀寫都進行了針對性的開發和優化。

CPU 調度:

  • 新增優先級權重概念,不同優先級容器的調度權重不同,用于區分不同等級容器調度優先級。
  • 新增 CPU Burst 技術,允許部分重要容器能短時間內突破規格的上線,臨時使用超量的 CPU。

內存管理:

  • 新增優先級回收技術,優先回收低優先級容器的內存,最后回收高優先級容器內存。
  • 新增分級水位特性,減少系統內存緊張時高優先級容器內存分配受阻。

IO 讀寫:

  • 新增帶寬限速特性,支持對低優先級容器的 IO 讀寫帶寬進行限速,以減少對高優先級容器的影響。
  • 新增優先級帶寬分配特性,支持按容器優先級分配 IO 帶寬。

在用戶態新增特性上,操作系統用戶態針對新分級體系的支持主要體現在 Kubelet、IRMAS 和單機資源調度這幾個組件上。其中,kubelet 和 IRMAS 主要新增了新分級體系容器的識別、信息采集上報、單機資源配置、環境適配等工作。新增單機資源調度模塊實現了極端情況下單機資源的壓制和恢復,以及與 k8s 調度聯動等功能。

k8s 調度層

在 k8s 容器調度層,針對新分級體系新增了最小資源保障策略,指的是通過合理的調度,保障任何時候,容器均能獲得承諾的資源量。

容器分級均衡打散策略指的是保證一臺物理機上不會存在過多同一級別的容器,將不同等級的容器均勻打散到不同的物理機上。

分級容量資源大盤指的是資源大盤新增新分級體系容器支持,實時觀察新分級容器容量健康情況。

擴容成功率保障指的是新增容量預估特性,優化資源申請流程,實時監控彈性云可供擴容資源量,有效提高擴容成功率。

kube-odin 層

kube-odin 層配合新分級體系也進行了相關改動和升級:

  • 新增新等級接入平臺:包括新等級容器查詢操作相關接口的適配。
  • 計費管理模塊:新增新分級體系容器的計費支持,支持多種計費場景。
  • 服務 quota 操作:新增 quota 操作接口。

服務樹

服務樹在保持兼容性的基礎上,新增了新分級體系集群信息的支持。

系統部 CMP 系統

新體系容器的 quota 申請和使用由系統部 CMP 系統操作和記錄。

CMP 系統通過獲取業務申請的 quota 信息,能明確推算所需的物理機資源,更好實現物理機資源的保障。針對新體系容器的 quota 支持,CMP 系統新增了 quota 成本賬戶、quota 成本賬戶以及 quota 申請模塊。

  • quota 成本賬戶:包含S級/A級/B級的 quota 信息。
  • quota 管控模塊:對 quota 的使用量進行追蹤和考察,以便進行有效的資源管控。
  • quota 申請模塊:規范 quota 申請流程,明確 quota 申請規則。

新分級體系三大重點資源保障

新分級體系立足于核心問題,在單機層面和集群層面都對容器申請的資源進行相應保障。

單機資源保障:CPU

新分級體系資源保障的其中一個重點為:保障容器的 CPU 資源任何時刻都能按超賣比所規定的有效交付。

在前文中,我們提到新體系容器的超賣規則為:S級不超賣,A級2倍超賣,B級4倍超賣。那對于不同等級的容器,可輕松得知其所需的物理 CPU 個數。新分級體系所需要保證的就是一臺物理機上所有容器經過超賣比計算后得到的物理 CPU 個數必須小于物理機上的 CPU 個數。

既要穩也要省,容器資源該怎么分配?圖片

上述的示例中,對于一個40核的物理機,可用的 CPU 數為: 40*90%=36核 (90%為計算各種 agent 和調度損耗之后的有效核數)。容器總共申請的核數為56核,經過超賣比計算后得到的所需物理核為36,剛好滿足要求。

通過明確超賣比,根據超賣比準備對應物理 CPU 資源的方式,在高負載期間,如果所有的容器都滿載運行,則物理機上的 CPU 資源將會按照超賣比承諾的比例進行分配。在低負載時刻,算力足夠時,由于機器整體空閑,容器之間幾乎不發生爭搶,此時容器可以正常使用 CPU。

單機資源保障:內存

在物理機層面,內存是所有容器之間共享的資源,傳統內核沒有對容器進行優先級的劃分,所有容器的內存使用對于內核而言都是一視同仁。

內存對容器性能的影響主要體現在內存分配和內存回收上。

內存分級水位

既要穩也要省,容器資源該怎么分配?

操作系統內核會監控整個系統的內存使用情況,當可用內存低于一定水位時,就會阻塞內存分配路徑,觸發內存回收操作。

某些場景下,低優先級容器可能大量申請內存,導致內存水位線降職 min 水位以下,物理機面臨內存分配和回收時,高優容器將會受到影響,無法及時的分配內存。

針對這個場景,內核新增了內存分級水位特性,允許按照優先級設置不同的 min 水位。這樣,在申請內存時,低優先級容器會先達到回收水位線觸發低優先級容器的內存回收,而高優先級容器的內存回收水位線較低,可以正常分配。

內存按優先級回收

由于原生內存沒有對內存進行優先級區分,因此當內核走到內存回收路徑,會無差別的進行內存回收動作。此時,可能高優先級容器的內存被回收,而低優先級容器內存則完好無損。

新分級體系的目標顯然是要在回收內存的時候優先回收低優先級容器的內存,這樣可以最大程度保護高優先級容器的內存,進而保障高優先級容器的性能表現。 

既要穩也要省,容器資源該怎么分配?圖片

基于優先級回收的思想,內核所做的就是識別容器優先級,然后按照容器優先級逐一回收內存,直至內存水位線恢復健康水平。

既要穩也要省,容器資源該怎么分配?先回收B級容器的內存

既要穩也要省,容器資源該怎么分配?再回收A級容器的內存

既要穩也要省,容器資源該怎么分配?

 

集群資源保障:quota

業務在申請容器服務的時候,一般需要指定單個容器的規格(CPU/內存大小)和申請的數量。匯總服務總共所需的資源量,即為 quota,quota 管理的最小單位為成本賬戶。

既要穩也要省,容器資源該怎么分配?圖片

可以看到,在新分級體系下,quota 按照容器優先級,分為了對應的S級/A級/B級 quota。quota 是用于描述業務的資源申請量,而對于彈性云和系統部而言, 則可以根據 quota,進行物理資源的準備。例如對于某個成本賬戶,申請的 quota 如下所示:  

既要穩也要省,容器資源該怎么分配?圖片

我們可以清楚看到,業務申請的 quota 量與實際準備物理機資源量之間的對應關系。

通過建立并規范 quota 的申請和使用流程,新分級體系能根據資源超賣規則有效的將 quota 的申請量與后臺真實物理資源的準備量結合起來,從而實現資源層面的強保障。另外,在 quota 體系逐步完善之后,還能根據 quota 使用率和容器的 CPU 使用率對 quota 進行有效的資源管控。

總結

很長一段時間,舊的彈性云分級體系存在資源爭搶、業務延遲、擴容失敗、業務無法準確評估容量、物理機數量難以評估等問題。這些問題的本質是由于沒有制定明確的資源準備和分配規則。

新分級體系立足于核心問題,提出了明確的資源超賣規則,在單機層面和集群層面都對容器申請的資源進行相應保障。在單機層面,保證了按超賣比轉化后實際的物理機資源不會超過物理機所提供的最大資源量,同時制定了明確的資源爭搶規則。在集群層面,建立并規范了 quota 申請流程,明確了 quota 與物理機資源之間的對應關系,保障了資源的供給,同時,也有效管控了 quota ,避免資源的浪費。

通過在容器資源申請、容器調度、運行時保障、資源管控等多個方面添加資源保障策略,彈性云新分級體系支持容器高效穩定的運行,確保了彈性云整體的穩定性,也一定程度降低了物理機運營成本。

分享到:
標簽:容器
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定