在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

關于提升 CPU 資源隔離的混部技術細節

openEuler ? 來源:openEuler ? 作者:openEuler ? 2022-09-22 10:04 ? 次閱讀

「概述」

在數據中心服務器或者各種云集群(后續簡稱集群)的生產環境上,部署著很多日常的在線(LC, Latency-critical service)服務。這類服務具有一定的負載不確定性,集群需要將服務器的平均利用率保持在較低的水平,使得當突發流量帶來請求洪峰時,仍有充足資源用于計算與響應,從而避免了請求堆積造成的服務癱瘓,保證用戶能夠擁有良好的體驗。但是這樣做造成了大批的空閑資源浪費,提高了維護成本。在這種條件下想要提高資源利用率,一種直接的方式是在線服務負載較低時,部署另一種任務,提高資源的利用效率。這類應用不要求有極高的響應速度,但是將耗費較大的計算資源,我們稱之為離線任務(BE, Best-effort batch)。因此各大云服務廠商引入在線離線混合部署方案來提升服務器的資源利用率,以降低云的運營成本。但事物的發展是具有兩面性的,混合部署也不例外,提升資源利用率的同時也會帶來資源隔離的問題。

本文詳細介紹并分享關于提升 CPU 資源隔離的混部技術細節:

-「CPU 搶占」:當一臺服務上同時存在在線服務、離線服務,如果不對離線服務加以限制,離線服務將會盡可能多的占用資源,從而增加在線任務的相應時延。所以本方案在同一個核上的在線(LC)服務能夠搶占壓制離線(BE)服務,最終保證在線服務的 QoS.

-「SMT 隔離控制」:同一個物理 CPU 的超線程共享核心的硬件資源,如 Cache 和計算單元。當在線任務和離線任務同時運行在一對超線程上時,會因為硬件資源爭搶出現相互干擾的情況。此時需要驅離離線任務,該 HT 核進入 idle。

在混部場景 CPU 在離線調度的實現中,存在在線作業時,我們會對離線任務進行 throttle,以確保在線任務的 CPU 資源供應。當開啟 HT 后,我們會驅離同時運行在同一個物理核且運行在不同邏輯核的離線任務。本方案的設計目標是保證在線業務服務質量前提下實現資源利用率最大化提升。因此本方案的設計是圍繞如何提升 CPU 資源利用率和保障在線業務的響應速度展開。主要包括以下兩個子特性的設計:

特性一、CPU 搶占

「(1)在線任務搶占時延保證」

為了保證在線任務能夠快速搶占離線任務,我們默認會將離線任務的調度策略設置為SCHED_IDLE,而在線任務調度策略不做修改(通常情況下在線任務的調度策略為SCHED_OTHER),當在線任務搶占離線任務時,可以快速搶占,不受限于 sched_min_granularity_ns 和sched_wakeup_granularity_ns機制限制。

「(2)在線任務絕對壓制離線任務」

當在線任務在運行時,離線任務需要停止運行,以避免和在線任務搶占 CPU 資源,因此在線任務需要盡可能地壓制離線任務,通過引入 throttle 機制對離線任務進行限制, 在一個 CPU 上同時存在在線和離線任務的場景下,將離線組對應的cfs_rq 添加到一個全局 percpu 鏈表throttle_list,從而將 CPU 資源完全讓給在線任務。具體流程如下:

39d807a6-39b8-11ed-9e49-dac502259ad0.png

圖 1 離線任務 throttle

特性二、SMT 隔離控制

由于同一個物理 CPU 上的超線程共享核心的硬件資源,比如 Cache 和計算單元。當在線任務和離線任務同時運行在一對超線程上時,相互之間會因為硬件資源爭搶,而出現相互干擾的情況。而 CFS 在設計時完全沒有考慮這個問題。其結果是,在混部場景中,在線業務的性能受損。實際測試使用 CPU 密集型 benchmark,因超線程導致的性能干擾可達 40%+。雖然 Linux 5.14 版本已經合入了 Core Scheduing,但該特性本身是為了解決利用 SMT 側信道攻擊的,避免互相不被信任的兩個進程工作在一個核的不同 SMT 上。其有幾點缺陷是我們不用該特性做 SMT 驅離的理由,首先其設計和實現過重,開銷較大(比如 core 級別的 rq lock)。其次其并不支持組調度功能,是以進程為粒度進行隔離,而我們的需求是希望對在線任務和離線任務進行隔離。為了盡可能減輕這種競爭的影響,我們讓一個核執行在線任務的時候,它對應的 MT 上不再運行離線任務;或者當一個核上有離線任務運行的時候,在線任務調度到了其對應的 HT 上時,會由該在線任務發送 IPI 將離線任務驅趕走。保證在線任務運行時不被干擾。如下圖所示:

3a123282-39b8-11ed-9e49-dac502259ad0.png

圖 2 SMT 隔離控制方案設計

方案需要重點解決的問題

(1)離線任務 kill boost

當在線任務 100% 運行時,kill 一個離線任務,此時離線任務需要得到運行以釋放一些系統資源,但是因為當前方案在線任務會對離線任務產生絕對壓制,為此引入 kill boost 解決此問題;

離線任務所在 group 為離線 group,root group 為在線任務,當對一個離線任務進行 kill 時,將對應的離線任務移入到 root group, 從而使離線任務變為在線任務,能夠得到機會運行從而釋放資源。

(2)優先級反轉

如果在線任務和離線任務之間有共享資源(比如內核中的一些公共數據),當離線任務因訪問共享資源而拿到鎖(抽象一下,不一定是鎖)后,如果被“絕對壓制”,一直無法運行,當在線任務也需要訪問該共享資源,而等待相應的鎖時,優先級反轉出現,導致死鎖(長時間阻塞也可能)。優先級反轉是調度模型中需要考慮的一個經典問題。

目前該方案主要分為兩個模塊,優先級反轉檢測和優先級反轉處理:

「優先級反轉檢測」:出現優先級反轉的前提的是,在線任務長時間 100%占用 CPU,導致離線任務被壓制無法釋放資源導致,基于這一特點,我們可以通過檢測離線任務是否長時間沒有得到運行來判斷是否可能存在優先級反轉流程。

「優先級反轉處理」:當檢測到優先級反轉時,對應 CPU 上的離線任務不再被在線任務壓制, 可以正常運行,在返回用戶態之前會進入睡眠流程,其中每次睡眠時間可以根據參數進行設置。當 CPU 處理完隊列中的所有任務時,就會進入 idle, 此時代表當前 CPU 恢復正常情況。代表優先級反轉問題已經解決,進入正常的在離線混跑邏輯。

任務管理

容器混部場景中,在離線任務是以 Cgroup 組的形式進行配置的,所以我們提供了 Cgroup 接口進行任務管理。對應路徑為:

/sys/fs/cgroup/cpu/xxx/cpu.qos_level

其中,cpu.qos_level文件代表當前 group 里任務的在離線屬性,默認值為 0,代表該任務為在線任務組; 若值為-1 則代表為離線任務組

于是,如果想要對任務進行管理,可以在工作節點上創建離線任務組,將離線任務的 pid 寫入到該組的 task 中,再設置對應的cpu.qos_level文件:

# echo  > /sys/fs/cgroup/cpu/xxx/tasks# echo -1 > /sys/fs/cgroup/cpu/xxx/cpu.qos_level

通過混部引擎 rubik 進行管理

在容器混合部署場景下,混部引擎 rubik 可以自動感知用戶配置的業務優先級并配置其 CPU 優先級屬性,rubik 具體的介紹和使用詳見《openEuler 資源利用率提升之道 03:rubik 混部引擎簡介》。

針對本文提到的 CPU 優先級的配置,用戶只需要在部署業務 pod 時,在 yaml 內添加volcano.sh/preemptable的 annotation 標識業務屬性,rubik 就會自動設置 pod 對應 cgroup 組的 cpu.qos_level 值。例如,如下為一個 nginx 在線業務 pod 的 yaml 文件:

# cat nginx-online.yamlapiVersion: v1kind: Podmetadata:  name: nginx-online  annotations:    volcano.sh/preemptable: "false"   # volcano.sh/preemptable為true代表業務為離線業務,false代表業務為在線業務,默認為falsespec:  containers:  - name: nginx    image: nginx    resources:      limits:        memory: "200Mi"        cpu: "1"      requests:        memory: "200Mi"        cpu: "1"

執行kubectl apply -f nginx-online.yaml部署 nginx 業務后,進入nginx-onlinePod 對應的 cgroup 路徑下,查看cpu.qos_level是否已設置(在線業務為 0,離線業務為-1):

# cat /sys/fs/cgroup/cpu/kubepods/pod59f1cdfa-a0ad-4208-9e95-efbef3519c00/cpu.qos_level0

「總結」

本文介紹的“CPU 在離線搶占”和“SMT 隔離控制”在在離線混部場景對 CPU 資源進行管控,已經有比較好的效果了,但還有一些不夠完美的地方,如 LLC/MBA 動態調整軟件策略不夠精細,要達到較好的效果依賴硬件優先級算法,我們可以期待新的鯤鵬服務器。同時在公有云場景對鄰居干擾的消減也是很重要的,openEuler 在這方法也做了一些探索,“潮汐 affinity”技術取得了不俗的效果,也會在后續的文章中與大家見面。下一期將會分享資源利用率內存相關的技術。

審核編輯:彭靜
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • cpu
    cpu
    +關注

    關注

    68

    文章

    11028

    瀏覽量

    215755
  • 服務器
    +關注

    關注

    12

    文章

    9663

    瀏覽量

    87169
  • 硬件
    +關注

    關注

    11

    文章

    3453

    瀏覽量

    67132

原文標題:openEuler 資源利用率提升之道 04:CPU 搶占和 SMT 隔離控制

文章出處:【微信號:openEulercommunity,微信公眾號:openEuler】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    應用Bluetooth Smart技術的全套智能騎行設備的技術細節和應用場景,不看肯定后悔

    應用Bluetooth Smart技術的全套智能騎行設備的技術細節和應用場景,不看肯定后悔
    發表于 05-21 06:47

    openEuler 資源利用率提升之道 01:概論

    ;gt;40%)。相關技術資源超賣、資源分級隔離、反饋控制L3: 「泛型」 :混合部署業務
    發表于 07-06 09:54

    openEuler資源利用率提升之道02:典型應用下的效果

    有效利用 Web Serving 空閑時的 CPU 資源,實現資源利用率的提升,但如果只是簡單地混合部署,CPU 密集的離線業務必然會對在線
    發表于 08-10 11:12

    openEuler 資源利用率提升之道 03:rubik 引擎簡介

    /cpu.qos_level0展望在離線混合部署作為提升數據中心資源利用率的重要手段,得到學術界和工業界的關注,成為了研究的熱點領域,但目前也面臨著諸多技術挑戰,尚有許多亟待解決的問題
    發表于 09-01 11:00

    openEuler 資源利用率提升之道 04:CPU 搶占和 SMT 隔離控制

    隔離的問題。本文詳細介紹并分享關于提升 CPU 資源隔離
    發表于 09-22 16:50

    愛奇藝:基于龍蜥與 Koordinator 在離線的實踐解析

    服務質量,愛奇藝引入了龍蜥操作系統(Anolis OS)。Group Identity 功能和 CPU Burst 功能對當前的效果起到了很大的提升作用。Anolis OS 通過配
    發表于 12-22 15:56

    MIT公布“盲動”機器人技術細節

    7月7日美國麻省理工學院近日發布公報稱,該校研究人員最新公布了一種“盲動”機器人的技術細節。這種機器人不需要借助視覺系統,可在崎嶇地形中穿行跳躍,有望在危險工作環境中得到廣泛應用。
    的頭像 發表于 07-11 15:49 ?3212次閱讀

    意法半導體公布ST54J系統芯片(SoC)的技術細節

    意法半導體日前公布了其集成NFC(近場通信)控制器、安全單元和eSIM的高集成度移動安全解決方案ST54J系統芯片(SoC)的技術細節
    的頭像 發表于 10-10 11:01 ?7078次閱讀

    要想電流測得準,一定不能忽視的技術細節(第二講)

    要想電流測得準,一定不能忽視的技術細節(第二講)
    的頭像 發表于 07-02 11:40 ?3092次閱讀

    小米手表e-SIM技術細節揭露,明天發布

    11月4日消息,小米生態鏈總經理屈恒揭秘了小米手表e-SIM技術細節
    的頭像 發表于 11-04 15:31 ?4836次閱讀

    高通全新旗艦芯片驍龍888技術細節揭曉

    高通正式揭曉全新芯片Snapdragon 888(S888)技術細節,預計替Android旗艦手機帶來哪些改變呢?外媒整理五大重點,不僅是性能、手游表現提升,就連拍照都能藉由S888有更好的效果。
    的頭像 發表于 12-03 12:01 ?2337次閱讀

    CPU共享資源隔離的利器MPAM特性介紹

    x86 RDT[2]技術后的另一個針對 CPU 訪存系統資源隔離的全新特性倍受關注,相比其他架構的類似特性,Arm64 架構下的 MPAM 特性采用全新的確定性流控方式,控制手段更加
    的頭像 發表于 04-20 11:23 ?1.6w次閱讀
    <b class='flag-5'>CPU</b>共享<b class='flag-5'>資源</b><b class='flag-5'>隔離</b>的利器MPAM特性介紹

    數據中心的集群資源利用分析綜述

    數據中心的集群資源利用分析綜述
    發表于 06-24 11:47 ?16次下載

    深入解析Zephyr RTOS的技術細節

    ,Zephyr OS在嵌入式開發中的知名度逐漸增加,新的微控制器和開發板都支持Zephyr。本文將深入討論Zephyr RTOS的技術細節。
    的頭像 發表于 10-22 16:47 ?1666次閱讀
    深入解析Zephyr RTOS的<b class='flag-5'>技術細節</b>

    索尼IP編碼板:技術細節與應用探索

    索尼IP編碼板的技術細節,并探討其在不同領域的應用價值。 技術細節:卓越性能與高效傳輸 索尼IP編碼板作為連接硬件與軟件的橋梁,集成了精密的電路設計與先進的芯片技術。它不僅能夠接收并處理來自傳感器、攝像頭等外部設備
    的頭像 發表于 03-20 10:10 ?263次閱讀
    主站蜘蛛池模板: 国产在线播放一区 | 午夜在线免费视频 | 美女免费视频黄 | 欧美黑粗硬 | 国产一级爱c片免费播放 | 亚洲欧洲一区二区三区在线 | 国产日韩精品一区二区在线观看 | 国产成人无精品久久久久国语 | 亚洲最色网 | 国模私拍在线观看 | 日本xxxx18vr69 | 天天插天天操天天干 | 九九热在线免费观看 | 在线视频一区二区 | 黄色一级a毛片 | 人人免费操 | 色01视频| 五月天婷婷在线免费观看 | 免看一级a一片成人123 | 男女做视频网站免费观看 | 全黄毛片 | 久久精品亚洲一级毛片 | 狠狠操狠狠操 | 国内精品久久久久影院薰衣草 | 求毛片网站| 欧美黄色片在线 | 成年网站在线观看 | 99久免费精品视频在线观看2 | 亚洲偷偷| 欧美伦理一区二区三区 | 日本a免费| 久久99精品国产麻豆宅宅 | 性色成人网 | 日日干夜夜欢 | 午夜日韩视频 | 四虎永久免费地ww4hu57 | 免费a级毛片出奶水 | 手机在线看片国产日韩生活片 | 免费一级毛片视频 | 欧美日韩一区二区三区视频在线观看 | 美女福利在线观看 |