《北京金融科技產業聯盟:2024基于混部技術的金融云平臺資源集約化和穩定性提升研究報告(23頁).pdf》由會員分享,可在線閱讀,更多相關《北京金融科技產業聯盟:2024基于混部技術的金融云平臺資源集約化和穩定性提升研究報告(23頁).pdf(23頁珍藏版)》請在三個皮匠報告上搜索。
1、基于混部技術的金融云平臺資源集約化和穩定性提升研究報告北京金融科技產業聯盟2024 年 3 月I版權聲明本報告版權屬于北京金融科技產業聯盟,并受法律保護。轉載、編摘或利用其他方式使用本報告文字或觀點的,應注明來源。違反上述聲明者,將被追究相關法律責任。II編制委員會編委會成員:聶麗琴王鑫編寫組成員:趙葉紅白佳樂沈震宇楊曉峰許振峰黃宇晴陳錦濤鄭建飛趙茭茭秦朝勇才振功王羽中李翔敬銳盧景曉編審:黃本濤周豫齊參編單位:北京金融科技產業聯盟秘書處中國工商銀行金融科技研究院杭州諧云科技有限公司華為技術有限公司浙江大學III摘要摘要數據中心是重要的信息基礎設施,也是企業應用的關鍵支撐。然而,目前業界數據中心
2、的資源利用率普遍較低,導致部分資源閑置,帶來了額外的運維成本,制約各大企業的計算效能提升?;觳浚╟olocation),即通過將不同業務類型的應用混合部署到同一資源池,利用不同業務之間在資源使用類型、周期等方面的互補性,實現對服務器資源利用率的有效提升,作為提升物理資源利用率、降低運營成本的有效方案,是當今學術界和產業界的研究熱點?;趯I界混部技術方案的充分調研以及各大云廠商混部技術實踐的參考,結合金融業應用的實際情況,本報告提出了一套基于高低優先級的應用混部技術方案基于高低優先級的應用混部技術方案,主要包含混部調度混部調度和資源隔離資源隔離兩大核心能力。其中,混部調度混部調度通過資源超分的
3、思想和混部調度系統,實現節點空閑資源的充分利用,當節點上的資源產生干擾時,通過驅逐低優先級應用來保障高優先級應用資源使用;資源隔離資源隔離提供增強型資源隔離特性,基于優先級的資源動態分配方法,在資源不足時保證高優先級應用使用資源,實現毫秒級的資源隔離。關鍵詞:關鍵詞:混部、資源利用率、調度、隔離、云計算IV目錄目錄一、研究背景及目標.1(一)研究背景.1(二)研究目標.2二、國內外應用現狀.2三、技術方案.3(一)系統總體架構.3(二)混部調度框架.4(三)混部資源隔離.9四、驗證場景.11(一)應用混部.12(二)干擾檢測與驅逐.13(三)干擾隔離.15五、應用成果.17六、總結和展望.17
4、1一、研究背景及目標(一)研究背景大規模數據中心是當今企業級互聯網應用和云計算系統的關鍵支撐。為保障日益增長的互聯網應用和云計算系統的計算需求,數據中心需要不斷橫向擴容,其規模和服務器總量呈現快速增長趨勢。然而,伴隨著數據中心的急速擴容,其資源利用率卻始終處于較低狀態。統計數據表明,目前全球數據中心資源利用率僅為10%20%,如此低的資源利用率意味著大量的資源浪費。因此,如何把這些浪費的資源合理利用起來成為一個亟需解決的關鍵性技術問題。想要解決這個問題首先要研究其產生的根本原因。通常而言,數據中心承載著各種類型的業務,包括交易、辦公類等在線服務、大數據、實時計算等,從業務對資源質量要求來看,可
5、對不同類型的應用按優先級分級,業界比較典型的劃分場景為在線和離線。在線作業通常是處理用戶請求的服務,典型的有網頁搜索、即時通信、語音識別、流式計算、電子商務等,通??蔀槠髽I帶來直接的經濟利益,具有如下特點:一是運行時間長。在線作業通常以服務的形態持續運行,以請求為單位觸發計算任務,因此也被稱為長服務。二是資源使用呈現動態變化。在線作業的資源使用量與用戶并發請求量呈正相關,會伴隨用戶并發請求量發生動態變化。三是對性能變化敏感。在線作業的性能通常決定了對外服務質量,而服務質量則直接影響企業的經濟利益和用戶體驗。因2此,在線作業又被稱為延時敏感型作業。為保證應用運行的穩定可靠,往往會為在線應用分配大
6、量的服務器資源。后果就是,雖然能夠很好保障其運行質量,但也造成了在大部分時間服務器處于空閑的狀態,導致數據中心整體資源利用率很低。解決這個問題的最佳方案是“混部”,顧名思義,就是把不同優先級的應用進行混合部署,比如在線應用和離線應用混部,高優先級和低優先級在線應用混部。當在線應用的資源使用量處于低谷時,將離線應用或者低優先級的在線作業部署到空閑的節點上,大幅提高整個集群的資源利用率。(二)研究目標通過對業界混部技術的主流方案和技術原理進行研究,結合金融行業應用的實際情況,基于K8S技術基礎,研究適合金融行業的容器混部方案,實現資源利用率的明顯提升,在保證應用服務質量的同時,實現混部節點50%以
7、上部署密度的提升,資源利用率提升至30%以上。對于高優先級應用,相較于混部前,干擾控制在5%的范圍之內。二、國內外應用現狀混部已成為業界提升資源利用率的主流方法,以空閑的在線資源滿足離線作業和低優先級作業的計算需求,來實現資源利用率的提升。Google 在其集群管理系統 Borg 中率先嘗試了大規模在離線混部,國內百度、騰訊、阿里等均在混部集群上也有所實3踐。經對業界實踐調研,精細化的混部調度和嚴格的資源隔離精細化的混部調度和嚴格的資源隔離是亟待解決的技術難點?;觳空{度方面,Google 的 Borg 和騰訊的 YARD 采用了統一調度的架構,即在線作業和離線作業由一個調度器統一調度,而百度
8、Matrix 和阿里 Fuxi 則采用了在離線分離調度的方式,即在離線作業由各自的調度器調度。從調度算法來看,Borg 和 Sigma采用了基于打分規則的調度算法。Fuxi、Matrix、YARD 則是對YARN 調度算法的改進,在調度時考慮了節點空余資源,并使用作業畫像、節點畫像等預測作業的資源需求和節點未來可用資源。資源隔離方面,業界均采用了多種資源隔離技術。容器技術作為輕量級的虛擬化技術被廣泛使用;CPU 作為最重要的計算資源,CPU 隔離和搶占式調度成為所有混部系統的選擇;CAT(cacheallocation technology)技術也被較多地采用。三、技術方案(一)系統總體架構基
9、于金融業應用的情況,本課題設計了一套基于應用高低優先級的混部系統,整體架構如圖 1 所示。4圖 1 整體架構圖系統整體分為兩部分:混部調度框架,混部調度框架,由資源畫像、混部調度以及每個節點上運行的 Agent 等組件構成,基于應用分級和資源超賣實現高低優先級應用的混合部署?;觳抠Y源隔離,混部資源隔離,提供增強型資源隔離特性,面向混部場景,解決容器隔離性不足導致的相互干擾問題,在提升資源使用率的同時,保證應用服務質量不受影響。(二)混部調度框架1.功能視圖1.功能視圖具體功能如圖 2 所示。5圖 2 詳細功能圖(1)資源畫像:(1)資源畫像:基于 CPU、內存等指標數據,通過統計分析、機器學習
10、等手段對應用資源使用進行畫像,為資源調度系統提供混部調度所需的關鍵信息。(2)混部調度:(2)混部調度:基于高優先級應用的空閑資源和應用負載類型,根據調度策略完成高低優先級應用的混部調度;實時判斷高優先級應用的受干擾程度并及時進行規避處理,保證應用服務質量不受影響。2.資源畫像2.資源畫像6圖 3 指標采集如圖3所示,混部系統使用cadvisor、netdata等工具采集CPU、內存、磁盤等資源,基于應用的歷史數據,利用數據分析、機器學習等技術對應用進行周期性地畫像,包括:應用資源密集型分類應用資源密集型分類,對應用歷史CPU、內存、磁盤和網絡IO使用總量分別進行歸一化,計算得到應用每個維度的
11、密集系數,用來衡量該應用在該維度的資源需求量;應用負載趨勢預測應用負載趨勢預測,根據應用歷史CPU和內存使用數據,使用時序預測算法XGBoost預測應用未來的負載情況;應用CPI健康閾值應用CPI健康閾值,基于3-sigma準則計算應用的CPI(cyclesper instruction),將輸出的上限作為應用CPI的健康閾值線。3.混部調度3.混部調度為實現資源復用,混部系統實現了更精細化的調度,根據混部節點上高優先級應用負載情況動態調整節點的可混部資源,通過混部標簽識別低優先級應用,并根據混部調度策略進行節點的7篩選和打分,完成混部應用調度到混部節點的過程,并實時監測應用的干擾情況,根據受
12、干擾程度進行相應的避讓處理。(1)節點資源擴展。對節點空閑資源和高優先級應用的閑置資源進行抽象,基于混部資源標簽,擴展節點的資源屬性,如圖 4 所示。圖 4 節點資源(2)應用屬性擴展。對應用進行優先級劃分并寫入應用屬性,低優先級應用又可按更細粒度劃分 1-5 級,可作為驅逐篩選條件,如圖 5 所示。圖 5 應用屬性(3)混部調度策略。通過擴展 k8s 原生的調度框架,實現8自定義 Scoring 擴展:混部資源均衡調度,混部資源均衡調度,使混部節點在集群內均衡分布,避免混部節點堆積;同質資源均衡調度,同質資源均衡調度,基于應用資源密集型調度,避免多個相同類型的應用調度到同一個節點,如圖 6
13、所示。圖 6 調度器原理(4)混部資源計算。結合節點上應用當前負載情況和未來負載趨勢預測數據周期性并計算混部節點可混部資源,計算流程如圖 7 所示。圖 7 計算流程9(5)水位線評估。如圖 8 所示,設計調度水位線和驅逐水位線:節點壓力達到調度水位線后,設置節點不能繼續調度混部應用;達到驅逐水位線后,驅逐混部應用,使節點壓力穩定在驅逐水位線之下。圖 8 水位線評估(6)干擾驅逐。持續監控節點 CPI 指標,當應用的 CPI 持續超過健康閾值后,向節點發起驅逐請求?;觳空{控模塊監聽混部節點的驅逐事件,根據請求類型執行驅逐操作,獲取主機上所有混部業務的 pod,根據 pod 的優先級、數量、使用率
14、等因素計算最優驅逐節點進行驅逐,CPI 指標正常后則停止驅逐操作。(三)混部資源隔離在混部過程中,由于低優先級應用競爭 CPU、內存、網絡帶寬等共享資源以及由于進程在不同 CPU 頻繁切換及負載流量突發等情況,會導致應用性能受損,為了保障應用服務質量,防范關鍵業務 QoS 受損,引入增強的內核隔離機制,提供多重保障以提升工作負載的運行效率及穩定性,如圖 9 所示。10圖 9 資源隔離架構圖1.隔離引擎1.隔離引擎為保障混部系統以最佳狀態運行,隔離引擎提供了自適應的單機算力調優和服務質量保障服務,以提升工作負載的運行效率和穩定性。優先級配置優先級配置:為應用配置 QoS 等級,當高優先級應用流量
15、上升時,內核層面能為其快速搶占到所需資源,保障其服務質量,當在線業務流量下降時,放寬對低優先級應用資源限制,提高其吞吐率。動態資源配比調優動態資源配比調優:通過監控和預測高優先級應用相關資源的使用情況,結合節點資源的使用情況,提前對資源進行規劃,調整低優先級應用資源配比,降低高優先級應用 QoS 違規風險。自適應性能調優自適應性能調優:在保障整機負載安全穩定前提下,允許臨時突破限制,協調資源進行自適應調整,快速解決或者緩解資源11瓶頸,保障關鍵業務的服務質量。2.隔離特性2.隔離特性內核資源分級管控從物理核、緩存、內存帶寬、網絡帶寬、IO 帶寬五種共享資源入手,提供了一套共享資源隔離復用機制,
16、實現了 CPU、MEM、Disk、Net 等資源的分級搶占能力。CPU 調度分級CPU 調度分級:基于標簽化的搶占技術保障 us 級任務搶占,實現高優先級對低優先級應用的絕對搶占,達到多維任務間 CPU資源干擾隔離效果。內存分級管控內存分級管控:基于 linux 內存分配回收機制,主動探測內存壓力,通過主動管控和策略下發機制,保證高優先級應用的內存分配和使用。網絡帶寬分級管控網絡帶寬分級管控:基于 eBPF 和 EDT 技術實現動態限速分配策略,根據優先級自動調整帶寬,當高優先級應用占用帶寬較低時,空閑帶寬能夠分配給低優先級應用使用,當高優先級容器需要更多帶寬時,能夠迅速(100ms)搶占回來
17、。四、驗證場景搭建混部集群,部署混部組件,配置混部 Node 節點并準備混部應用。如圖 10 所示,集群共 6 個節點,其中 3 個節點作為混部節點。12圖 10 集群節點列表(一)應用混部1.測試條件1.測試條件混部集群就緒,節點混部開關打開,高低優先級應用已完成配置。2.測試步驟2.測試步驟(1)部署高優先級應用,節點分配率約 80%,應用運行一段時間后的 CPU 資源利用率情況如圖 11 所示,平均使用率 15%左右。圖 11 高優先級應用單獨部署運行(2)部署低優先級應用,經混部調度器調度到該節點,運行一段時間后,CPU 資源利用率如圖 12 所示,達到 35%左右,且高優先級應用運行
18、正常。13圖 12 應用混部后資源運行3.測試結論3.測試結論混部后,應用運行正常,節點資源利用率由混部前的 15%左右提升到了 35%左右。(二)干擾檢測與驅逐1.測試條件1.測試條件混部節點上高優先級應用已經正常運行,低優先級應用啟動后被調度器調度到該混部節點上,低優先級應用副本數大于 1。2.測試步驟2.測試步驟(1)部署高優先級應用資源畫像計算得到高優先級應用的CPI健康值為0.48左右。(2)運行低優先級應用低優先級應用 CPU 從 24C 變化,內存從 46G 變化,如圖13 所示,CPI 多個周期超過 0.6,高優先級應用受到影響,達到驅逐條件。14圖 13 混部應用使用 CPU
19、 情況圖 14 高優先級應用 CPI 變化情況從圖 14 紅框中可看出混部應用的 CPI 連續多周期超過應用的健康閾值。標注為為兩副本被驅逐一個副本后高優先級應用CPI 回落的情況。15圖 15 日志顯示 pod 被驅逐3.測試結論3.測試結論高低優先級應用混部時,受低優先級應用影響,高優先級應用 CPI 連續多個周期超過安全水位線,混部節點控制器檢測到高優先級應用性能受到干擾,為保證高優先級應用的 SLA,驅逐了低優先級應用。(三)干擾隔離1.測試條件1.測試條件節點上單獨部署高優先級應用和同時部署高低優先級應用,測試在低優先級應用接近滿負載且與高優先級應用產生競爭的情況下,(1)高優先級應
20、用 QPS1受到的影響情況,(2)高優先級應用資源使用是否受到影響。2.測試步驟2.測試步驟(1)QPS 影響測試:單獨部署單獨部署高優先級應用,requests 設置 2C/4G,limits 設置為 4C/8G,執行并記錄每次執行統計的 QPS和 P992值。同時部署同時部署高優先級應用容器和低優先級應用容器,高1QPS:服務端每秒處理的查詢數量。2P99:查詢執行時間的 99 分位數。16優先級應用容器 requests 設置 2C/4G,limits 設置為 4C/8G,低優先級應用容器 requests 設置 0C/0G,limits 設置為 8C/16G,低優先級應用容器為 CPU
21、 密集型,同樣記錄高優先級應用容器每次執行統計的 QPS 和 P99 值。兩種兩種情形下高優先級應用容器 QPS和 P99 統計對比如圖 16 所示。圖 16 多場景下 QPS 及 P99 值(2)資源競爭測試:首先分別單獨部署高、低優先級應用,運行一段時間后,利用混部調度器將低優先級應用容器調度到混部節點上,實現高低優先級應用混部。兩種情形下 CPU 資源監控對比如圖 17 和圖 18 所示。圖 17 低優先級單獨部署時應用 CPU 可滿載運行17圖 18 高低優先級應用混部時 CPU 變化情況,當高優(橙色)需要資源時,壓制低優(綠色),高優資源使用幾乎無影響3.測試結論3.測試結論(1)
22、從統計數據對比可以看出,低優先級應用的運行對高優先級應用幾乎沒有影響,當高優先級應用需要 CPU 資源時,可以快速壓制搶占低優先級應用的 CPU 資源。(2)低優先級應用可以充分利用空閑資源,用于提升自身效率和節點的資源使用率。五、應用成果通過落地高低優先級應用混部技術,實現了十多個高低優先級應用的混部,單節點部署密度提升 50%以上,對于低優先級應用為 CPU 消耗型的場景,節點的資源利用率可提升到 35%以上,同時通過資源隔離、干擾檢測和驅逐等保障手段,高優先級應用的 QoS 影響可以控制在 5%范圍之內。六、總結和展望當前,云計算已成為數字金融的重要基石,以容器技術為核心構建的云原生基礎設施徹底屏蔽底層基礎設施異構差異,基于分布式和微服務架構大幅提升應用快速迭代能力,推動應用架構中心化向分布式演進。與此同時,隨著業務規模的高速增長,云18化部署和分布式架構也帶來了應用節點規模的快速擴張和大量IT 資源的投產,資源利用效率的提升仍然有著巨大的空間?;觳考夹g作為提升物理資源利用率、降低運營成本的有效手段,受到了業界的一致認可和推薦,建議將混部作為常態化的成本優化手段,實現混部技術在金融行業的落地和實踐,并持續推進混部技術在金融行業的規?;瘧?,進一步拓展混部的應用場景,助力金融行業的降本增效。