MPAM(Memory System Resource Partitioning and Monitoring)[1]特性用于解決混部業(yè)務(wù)時由于共享資源競爭帶來的性能下降問題,MPAM 作為繼 x86 RDT[2]技術(shù)后的另一個針對 CPU 訪存系統(tǒng)資源隔離的全新特性倍受關(guān)注,相比其他架構(gòu)的類似特性,Arm64 架構(gòu)下的 MPAM 特性采用全新的確定性流控方式,控制手段更加豐富,控制對象覆蓋更廣,目前在鯤鵬服務(wù)器上的應(yīng)用取得了良好的結(jié)果。openEuler kernel 已于 openEuler 21.03 創(chuàng)新版本支持 MPAM,成為首個同時支持 x86 RDT 和 MPAM 的開源平臺;MPAM 項目組聯(lián)合下游各大廠商及研究機構(gòu)在 POC 場景上做了驗證,使能 MPAM 并在云場景下進行了多個測試點的適配和測試,解決了不同虛擬機因為 Cache 和訪存干擾帶來的性能干擾問題,目前已具備相當(dāng)?shù)某墒於龋粸橹蜗掠螐S商使用 MPAM,構(gòu)建完整端到端基礎(chǔ)軟件棧,項目組后續(xù)還會在 openEuler 推出一系列配套調(diào)測工具和部署軟件。
特性介紹
如何處理諸如 L3 Cache 等內(nèi)存系統(tǒng)資源競爭的問題一直是業(yè)界研究的焦點,例如 Kpart[3],DICER[4],dcat[5],這些研究為工業(yè)界應(yīng)用共享資源隔離技術(shù)打下了基礎(chǔ)。MPAM 是 Arm Architecture v8.4 的 Extension 特性,其目的是用于解決服務(wù)器系統(tǒng)中,混部不同類型業(yè)務(wù)時,由于 CPU 訪存過程中共享資源的競爭帶來的某些關(guān)鍵應(yīng)用性能下降或者系統(tǒng)整體性能下降的問題。
MPAM 系統(tǒng)框架參考圖 1,相比其他架構(gòu)的類似特性,MPAM 設(shè)計上參考了更多前沿技術(shù),MPAM 最顯著的特征是:
提供更多控制手段,針對 Cache 資源以及訪存通道,增加了對訪存流的優(yōu)先級控制和完全隔離控制;
按照 Cache way 為粒度,以 bitmap 的形式分配 Cache way,不要求所分配的 Cache way 在 bitmap 中連續(xù);
MPAM 支持在虛擬機內(nèi)部劃分共享資源;
MPAM 增加了對 SMMU 的支持,可以限制 IO 設(shè)備對 Cache 和相關(guān)內(nèi)存系統(tǒng)資源的使用;
從體系結(jié)構(gòu)角度優(yōu)化·最佳配置,在對訪存流的限制上,MPAM 流控方式可精確控制訪存流百分比,可以確定性地保障訪存敏感型業(yè)務(wù)的性能。
圖 2 MPAM 和 RDT L3 Cache 控制方式異同 如圖 2,MPAM 規(guī)定配置 Cache 主要有兩種方式,一種是通過優(yōu)先級配置,這種情況下,優(yōu)先級高的業(yè)務(wù)流將優(yōu)先使用 Cache 的使用權(quán);第二種是以 Cache way 為粒度,按照 bitmap 形式隔離不同業(yè)務(wù)對 Cache 的使用,不要求 Cache way 分配連續(xù),這也是目前鯤鵬 920 采取的控制方式。x86 RDT 目前僅支持第二種,且大部分型號要求 Cache way 分配連續(xù)[6]。圖 3 為鯤鵬 920 和常用 x86 型號 RDT 特性對流量控制的比較,對比其他架構(gòu)的類似特性,MPAM 在流量控制上的最大特點是參考當(dāng)前 DDR 通道的傳輸能力,從而對業(yè)務(wù)流限制一個明確的上下限,若當(dāng)前受控流量超過該 DDR 通道設(shè)定百分比對應(yīng)的上限流量時,則限制到該百分比以下,同時在小于下限流量時享有優(yōu)先訪問權(quán)。對比 x86 RDT,其限制流量的動作發(fā)生在 L2 和 L3 之間,使用給受控流量主動加時延的方式降低目標(biāo)流量[6]。
圖 3 鯤鵬 920 MPAM 與 x86 RDT 流量限制上的異同 除此之外,MPAM 協(xié)議規(guī)定了額外兩種流量控制方式,如圖 4 所示,一種是采用 bitmap 的方式完全隔離開不同的業(yè)務(wù)流,被隔離的業(yè)務(wù)流將會按照 bitmap 劃分的時間片分區(qū)間輪詢使用訪存通道;第二種,在第一種方式的基礎(chǔ)上,還可使用優(yōu)先級方式調(diào)整業(yè)務(wù)流的優(yōu)先級,在發(fā)生訪存擁擠時,同一時刻高優(yōu)先級業(yè)務(wù)流將優(yōu)先享有該 DDR 通道。
圖 4 MPAM 帶寬的完全隔離和優(yōu)先級控制方式 MPAM 可以在更多維度靈活配置業(yè)務(wù)對 Cache 和帶寬的使用,適應(yīng)更多的應(yīng)用場景,易于獲得更大的優(yōu)化空間。
特性使能
硬件支持:鯤鵬 920[7]
內(nèi)核支持:openEuler 21.03 或 openEuler 20.03 LTS SP1[8]
用戶手冊:https://gitee.com/openeuler/openRSO/blob/master/docs/manual/arm_mpam_resctrlfs_user_interface.md
鯤鵬 920 已支持 MPAM 特性的部分功能,如圖 5 所示:
圖 5 鯤鵬 920 MPAM 所使能功能
cpbm: Cache Portion Bit Map,按照位圖控制分配特定容量和特定位置的 L3 Cache,其中每個 bit 代表一條 Cache way;
max: Memory Bandwidth Maximum Partition,按照能夠通過受控 DDR 通道最大帶寬的百分比進行訪存流量限制;
min: Memory Bandwidth Minimum Partition,提供最小帶寬百分比表示允許通過受控 DDR 通道的容量,小于最小百分比將享受較高優(yōu)先級的通過權(quán);
hdl: Memory Bandwidth Hard Limit,開啟會使得分區(qū)的帶寬使用率降至最大帶寬控制的范圍之內(nèi),參考 Max,否則,只有在通道擁擠時才會做適當(dāng)限制;
Monitoring: Cache/Memory Bandwidth monitoring,對 L3 Cache 占用大小和訪存帶寬大小進行實時監(jiān)控。
性能測試
硬件平臺:鯤鵬 920 @CORE 96 2.6GHZ
DDR:Configured Memory Speed: 2666 MT/s
OS:openEuler 21.03
BIOS:Taishan 170
基礎(chǔ)功能指標(biāo)
圖 6 實驗一 MPAM 單 workload L3 Cache 分配和監(jiān)控實驗一
workload: numactl –m 0 bw_mem –P 8 –N 4 128M rd如圖 6 所示,啟動一個 workload,workload 也可自行選擇,對 L3 Cache 按 cpbm 分配,通過 MPAM 的 monitor 查看 workload 占用的 L3 Cache 容量變化,可見 workload 真實占用的 Cache 容量和理論大小基本一致。
圖 7 實驗二 MPAM 雙 workload Cache 隔離實驗二
workload1: numactl –m 0 stress-ng –cache 10 --aggressive workload2: numactl –m 0 bw_mem –P 8 –N 4 128M rd如圖 7 所示,啟動兩個 workload,使用 cpbm 方式對兩個 workload 做 Cache 隔離測試,通過 MPAM 的 monitor 查看 workload 占用的 L3 Cache 容量變化,該測試分為兩部分,前四組為 Cache way 完全隔離測試,后兩組為 overlap 測試,可見 Cache 隔離效果與理論值基本一致,后兩組實際效果與 workload 對 Cache 的占用強度有關(guān)。
圖 8 實驗三帶寬最大百分比調(diào)控實驗三
workload: numactl –m 0 bw_mem –P 8 –N 4 128M rd如圖 8 所示,在大流量下和中小流量下(當(dāng)前 DDR 通道最大帶寬約為 75MB/S)對帶寬做最大百分比調(diào)控,通過 MPAM monitor 查看 workload 對應(yīng)流量大小變化,可見流量控制效果基本與預(yù)期相符,鯤鵬 920 上 MPAM 設(shè)定的帶寬控制有效百分比約在 20%-80%。
spec CPU 2006 測試
選用 spec CPU 2006 omnet 測試套和 spec CPU 2006 milc,分析 Cache 干擾:cpu+內(nèi)存型業(yè)務(wù)混合部署場景下,通過 CPBM 隔離 L3 Cache 可以削弱不同業(yè)務(wù)對 Cache 的競爭,提升性能,如圖 9 所示,非隔離時兩種業(yè)務(wù)之的 Cache 實際占用大小波動非常大,這是造成性能下降的主要原因。
圖 9 MPAM spec 2006 L3 Cache 隔離測試[9] 通過對兩組業(yè)務(wù)的 Cache 進行完全隔離,可以看到隔離后的業(yè)務(wù) Cache 實際占用大小波動明顯減少,對比不做隔離的情況,omnet 業(yè)務(wù)最終獲得了 10+%的性能提升,milc 業(yè)務(wù)性能也略有提升。
DPDK 隔離帶寬干擾
裸機場景下,使用 pktgen+DPDK 進行試驗,并對 DPDK 施加帶寬壓力,使用 MPAM 對比隔離前后 DPDK 性能變化:
solo加壓加壓+MPAM限制帶寬20%
每秒平均指令數(shù)2E+09 + 5E+071.7E+092E+09 + 4E+07
指令數(shù)下降比NA22%0.7%
dpdk性能下降NA≈21%≈0
如表 1 所示,可知加壓后導(dǎo)致性能退化 22%左右,加壓參數(shù)參考[9],使用 MPAM 限制壓力程序 20%帶寬,DPDK 性能恢復(fù)正常。
圖 10 RDT 和 MPAM DPDK 場景測試[10][11]
內(nèi)存大頁+Cache 隔離
如圖 11 所示,網(wǎng)絡(luò)轉(zhuǎn)發(fā)業(yè)務(wù)選用 2G 內(nèi)存大頁,左圖不同線程之間存在穩(wěn)定的 Cache 干擾,右圖表示性能下降比例,通過隔離 Cache 可消除該干擾,保證關(guān)鍵業(yè)務(wù)的性能。
圖 11 內(nèi)存大頁和 MPAM Cache 隔離測試網(wǎng)絡(luò)轉(zhuǎn)發(fā)業(yè)務(wù)[9]
開放生態(tài)
資源隔離是 OS 中非常重要的一個組成部分,針對 cpu 核訪存?zhèn)鹊母綦x技術(shù)又是資源隔離中的一個重要組成部分,如何規(guī)劃好未來對內(nèi)存系統(tǒng)資源的高效使用,對保障業(yè)務(wù)在更加復(fù)雜的平臺上穩(wěn)定運轉(zhuǎn)至關(guān)重要。為減少跨平臺成本,豐富調(diào)試手段,提升業(yè)務(wù)部署效率,我們希望歸一化不同架構(gòu)的輸出接口,開放應(yīng)用端到端統(tǒng)一部署框架,針對不同場景定制化通用化的資源隔離調(diào)度引擎,構(gòu)建一整套應(yīng)用資源管理基礎(chǔ)軟件棧。
圖 12 共享資源調(diào)控基礎(chǔ)軟件框架我們計劃在 openEuler 開源一套共享資源調(diào)控基礎(chǔ)軟件框架,用于跨平臺統(tǒng)一管理業(yè)務(wù)使用 Cache 及相關(guān)內(nèi)存系統(tǒng)資源,通過引入豐富、實用的調(diào)試工具幫助用戶排查相關(guān)性能問題,并增加通用資源調(diào)度引擎處理針對不同場景下的資源動態(tài)調(diào)控問題,按照部署業(yè)務(wù)的層級整合和編排共享資源的使用,方便用戶部署業(yè)務(wù)和整合系統(tǒng)資源分配。針對 MPAM 技術(shù),目前已和通信行業(yè)、電商、云服務(wù)商等合作領(lǐng)域企業(yè)進行溝通合作,并已在部分場景上取得成效,歡迎業(yè)界專家建言獻策,共同打造實用,穩(wěn)固,開放的底層資源隔離基礎(chǔ)軟件底座。
原文標(biāo)題:openEuler 21.03 特性解讀 | CPU 共享資源隔離的利器 - MPAM
文章出處:【微信公眾號:Linuxer】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
責(zé)任編輯:haq
-
cpu
+關(guān)注
關(guān)注
68文章
11038瀏覽量
216040
原文標(biāo)題:openEuler 21.03 特性解讀 | CPU 共享資源隔離的利器 - MPAM
文章出處:【微信號:LinuxDev,微信公眾號:Linux閱碼場】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
進程、線程、協(xié)程傻傻分不清?一文帶你徹底扒光它們的\"底褲\"!
請問init_ipc_shm() 是否只初始化一次?
是德科技解析光隔離探頭構(gòu)造與特性 光隔離探頭的典型測試案例

品致與麥科信光隔離探頭的技術(shù)特性與應(yīng)用領(lǐng)域

hyper-v共享,Hyper-V 共享:Hyper-V的資源共享設(shè)置

hyper-v共享,hyper-v共享:實現(xiàn)主機與虛擬機之間高效文件共享的最佳實踐

上海貝嶺數(shù)字隔離器產(chǎn)品介紹

林業(yè)巡檢新利器:頂堅單北斗定位手持終端助力資源保護

RISC-V內(nèi)核是如何與FPGA內(nèi)核進行資源共享的?
標(biāo)準(zhǔn)數(shù)字隔離器主要特性和應(yīng)用---騰恩科技
如何限制容器可以使用的CPU資源

智能駕駛在共享出行中的作用
多倫科技旗下金電科技亮相北京充換電展 引領(lǐng)綠色出行新紀(jì)元

評論