0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CPU共享资源隔离的利器MPAM特性介绍

Linux阅码场 来源:openEuler 作者:汪少博 2021-04-20 11:23 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

MPAM(Memory System Resource Partitioning and Monitoring)[1]特性用于解决混部业务时由于共享资源竞争带来的性能下降问题,MPAM 作为继 x86 RDT[2]技术后的另一个针对 CPU 访存系统资源隔离的全新特性倍受关注,相比其他架构的类似特性,Arm64 架构下的 MPAM 特性采用全新的确定性流控方式,控制手段更加丰富,控制对象覆盖更广,目前在鲲鹏服务器上的应用取得了良好的结果。openEuler kernel 已于 openEuler 21.03 创新版本支持 MPAM,成为首个同时支持 x86 RDT 和 MPAM 的开源平台;MPAM 项目组联合下游各大厂商及研究机构在 POC 场景上做了验证,使能 MPAM 并在云场景下进行了多个测试点的适配和测试,解决了不同虚拟机因为 Cache 和访存干扰带来的性能干扰问题,目前已具备相当的成熟度;为支撑下游厂商使用 MPAM,构建完整端到端基础软件栈,项目组后续还会在 openEuler 推出一系列配套调测工具和部署软件。

特性介绍

如何处理诸如 L3 Cache 等内存系统资源竞争的问题一直是业界研究的焦点,例如 Kpart[3],DICER[4],dcat[5],这些研究为工业界应用共享资源隔离技术打下了基础。MPAM 是 Arm Architecture v8.4 的 Extension 特性,其目的是用于解决服务器系统中,混部不同类型业务时,由于 CPU 访存过程中共享资源的竞争带来的某些关键应用性能下降或者系统整体性能下降的问题。

e81ae754-a100-11eb-8b86-12bb97331649.jpg

MPAM 系统框架参考图 1,相比其他架构的类似特性,MPAM 设计上参考了更多前沿技术,MPAM 最显著的特征是:

提供更多控制手段,针对 Cache 资源以及访存通道,增加了对访存流的优先级控制和完全隔离控制;

按照 Cache way 为粒度,以 bitmap 的形式分配 Cache way,不要求所分配的 Cache way 在 bitmap 中连续;

MPAM 支持在虚拟机内部划分共享资源;

MPAM 增加了对 SMMU 的支持,可以限制 IO 设备对 Cache 和相关内存系统资源的使用;

从体系结构角度优化·最佳配置,在对访存流的限制上,MPAM 流控方式可精确控制访存流百分比,可以确定性地保障访存敏感型业务的性能。

e83288be-a100-11eb-8b86-12bb97331649.jpg

图 2 MPAM 和 RDT L3 Cache 控制方式异同 如图 2,MPAM 规定配置 Cache 主要有两种方式,一种是通过优先级配置,这种情况下,优先级高的业务流将优先使用 Cache 的使用权;第二种是以 Cache way 为粒度,按照 bitmap 形式隔离不同业务对 Cache 的使用,不要求 Cache way 分配连续,这也是目前鲲鹏 920 采取的控制方式。x86 RDT 目前仅支持第二种,且大部分型号要求 Cache way 分配连续[6]。图 3 为鲲鹏 920 和常用 x86 型号 RDT 特性对流量控制的比较,对比其他架构的类似特性,MPAM 在流量控制上的最大特点是参考当前 DDR 通道的传输能力,从而对业务流限制一个明确的上下限,若当前受控流量超过该 DDR 通道设定百分比对应的上限流量时,则限制到该百分比以下,同时在小于下限流量时享有优先访问权。对比 x86 RDT,其限制流量的动作发生在 L2 和 L3 之间,使用给受控流量主动加时延的方式降低目标流量[6]。

e84aa1a6-a100-11eb-8b86-12bb97331649.jpg

图 3 鲲鹏 920 MPAM 与 x86 RDT 流量限制上的异同 除此之外,MPAM 协议规定了额外两种流量控制方式,如图 4 所示,一种是采用 bitmap 的方式完全隔离开不同的业务流,被隔离的业务流将会按照 bitmap 划分的时间片分区间轮询使用访存通道;第二种,在第一种方式的基础上,还可使用优先级方式调整业务流的优先级,在发生访存拥挤时,同一时刻高优先级业务流将优先享有该 DDR 通道。

e88eb378-a100-11eb-8b86-12bb97331649.jpg

图 4 MPAM 带宽的完全隔离和优先级控制方式 MPAM 可以在更多维度灵活配置业务对 Cache 和带宽的使用,适应更多的应用场景,易于获得更大的优化空间。

特性使能

硬件支持:鲲鹏 920[7]

BIOS 支持:Taishan 170 及更新版本

内核支持: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 所示:

e8c0ca8e-a100-11eb-8b86-12bb97331649.jpg

图 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 通道的容量,小于最小百分比将享受较高优先级的通过权;

hdl: Memory Bandwidth Hard Limit,开启会使得分区的带宽使用率降至最大带宽控制的范围之内,参考 Max,否则,只有在通道拥挤时才会做适当限制;

Monitoring: Cache/Memory Bandwidth monitoring,对 L3 Cache 占用大小和访存带宽大小进行实时监控。

性能测试

硬件平台:鲲鹏 920 @CORE 96 2.6GHZ

DDR:Configured Memory Speed: 2666 MT/s

OS:openEuler 21.03

BIOS:Taishan 170

基础功能指标

e8cd24e6-a100-11eb-8b86-12bb97331649.jpg

图 6 实验一 MPAM 单 workload L3 Cache 分配和监控实验一

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 容量和理论大小基本一致。

e8d9a342-a100-11eb-8b86-12bb97331649.jpg

图 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 的占用强度有关。

e8e5fea8-a100-11eb-8b86-12bb97331649.jpg

图 8 实验三带宽最大百分比调控实验三

workload: numactl –m 0 bw_mem –P 8 –N 4 128M rd如图 8 所示,在大流量下和中小流量下(当前 DDR 通道最大带宽约为 75MB/S)对带宽做最大百分比调控,通过 MPAM monitor 查看 workload 对应流量大小变化,可见流量控制效果基本与预期相符,鲲鹏 920 上 MPAM 设定的带宽控制有效百分比约在 20%-80%。

spec CPU 2006 测试

选用 spec CPU 2006 omnet 测试套和 spec CPU 2006 milc,分析 Cache 干扰:cpu+内存型业务混合部署场景下,通过 CPBM 隔离 L3 Cache 可以削弱不同业务对 Cache 的竞争,提升性能,如图 9 所示,非隔离时两种业务之的 Cache 实际占用大小波动非常大,这是造成性能下降的主要原因。

e9169932-a100-11eb-8b86-12bb97331649.jpg

图 9 MPAM spec 2006 L3 Cache 隔离测试[9] 通过对两组业务的 Cache 进行完全隔离,可以看到隔离后的业务 Cache 实际占用大小波动明显减少,对比不做隔离的情况,omnet 业务最终获得了 10+%的性能提升,milc 业务性能也略有提升。

DPDK 隔离带宽干扰

裸机场景下,使用 pktgen+DPDK 进行试验,并对 DPDK 施加带宽压力,使用 MPAM 对比隔离前后 DPDK 性能变化:

solo加压加压+MPAM限制带宽20%

每秒平均指令数2E+09 + 5E+071.7E+092E+09 + 4E+07

指令数下降比NA22%0.7%

dpdk性能下降NA≈21%≈0

如表 1 所示,可知加压后导致性能退化 22%左右,加压参数参考[9],使用 MPAM 限制压力程序 20%带宽,DPDK 性能恢复正常。

e926fa16-a100-11eb-8b86-12bb97331649.jpg

图 10 RDT 和 MPAM DPDK 场景测试[10][11]

内存大页+Cache 隔离

如图 11 所示,网络转发业务选用 2G 内存大页,左图不同线程之间存在稳定的 Cache 干扰,右图表示性能下降比例,通过隔离 Cache 可消除该干扰,保证关键业务的性能。

e93291c8-a100-11eb-8b86-12bb97331649.jpg

图 11 内存大页和 MPAM Cache 隔离测试网络转发业务[9]

开放生态

资源隔离是 OS 中非常重要的一个组成部分,针对 cpu 核访存侧的隔离技术又是资源隔离中的一个重要组成部分,如何规划好未来对内存系统资源的高效使用,对保障业务在更加复杂的平台上稳定运转至关重要。为减少跨平台成本,丰富调试手段,提升业务部署效率,我们希望归一化不同架构的输出接口,开放应用端到端统一部署框架,针对不同场景定制化通用化的资源隔离调度引擎,构建一整套应用资源管理基础软件栈。

e93be6ec-a100-11eb-8b86-12bb97331649.jpg

图 12 共享资源调控基础软件框架我们计划在 openEuler 开源一套共享资源调控基础软件框架,用于跨平台统一管理业务使用 Cache 及相关内存系统资源,通过引入丰富、实用的调试工具帮助用户排查相关性能问题,并增加通用资源调度引擎处理针对不同场景下的资源动态调控问题,按照部署业务的层级整合和编排共享资源的使用,方便用户部署业务和整合系统资源分配。针对 MPAM 技术,目前已和通信行业、电商、云服务商等合作领域企业进行沟通合作,并已在部分场景上取得成效,欢迎业界专家建言献策,共同打造实用,稳固,开放的底层资源隔离基础软件底座。

原文标题:openEuler 21.03 特性解读 | CPU 共享资源隔离的利器 - MPAM

文章出处:【微信公众号:Linuxer】欢迎添加关注!文章转载请注明出处。

责任编辑:haq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11370

    浏览量

    226391

原文标题:openEuler 21.03 特性解读 | CPU 共享资源隔离的利器 - MPAM

文章出处:【微信号:LinuxDev,微信公众号:Linux阅码场】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    探索AD7400A隔离Σ - Δ调制器:特性、应用与设计要点

    探索AD7400A隔离Σ - Δ调制器:特性、应用与设计要点 在电子设计领域,高精度模拟信号处理和隔离性能是许多应用的关键需求。AD7400A隔离Σ - Δ调制器凭借其卓越的性能,成为
    的头像 发表于 03-30 09:45 417次阅读

    ADuM7703 16 位隔离 Σ - Δ ADC 深度解析:特性、应用与设计要点

    ADuM7703 16 位隔离 Σ - Δ ADC 深度解析:特性、应用与设计要点 在电子工程领域,模拟 - 数字转换器(ADC)是实现模拟信号数字化不可或缺的关键组件。今天要为大家详细介绍
    的头像 发表于 03-27 14:55 216次阅读

    隔离、非反射GaAs SPDT开关HMC349AMS8G的特性与应用

    隔离、非反射GaAs SPDT开关HMC349AMS8G的特性与应用 在电子工程领域,开关器件是信号路由和控制的关键组件。今天要给大家介绍一款高性能的开关产品——Analog Devices
    的头像 发表于 03-17 15:30 296次阅读

    LTC6820 isoSPI隔离通信接口:设计、特性与应用详解

    LTC6820 isoSPI隔离通信接口:设计、特性与应用详解 在电子设计领域,隔离通信接口的性能直接影响着系统的稳定性和可靠性。LTC6820作为一款具有独特优势的isoSPI隔离
    的头像 发表于 03-12 17:00 811次阅读

    RK3588 CPU 隔离:AB/非 AB 系统双方案适配实战

    在RK3588嵌入式产品开发中,CPU隔离是提升系统实时性的核心手段,能让关键任务独占核心资源,规避系统调度与中断干扰。本次基于RK3588原厂SDK, 同时实现AB/非AB两种系统架构的CP
    的头像 发表于 02-09 07:12 678次阅读
    RK3588 <b class='flag-5'>CPU</b> <b class='flag-5'>隔离</b>:AB/非 AB 系统双方案适配实战

    Texas Instruments ISO71xx系列数字隔离器:特性、应用与设计指南

    Texas Instruments ISO71xx系列数字隔离器:特性、应用与设计指南 引言 在电子工程领域,数字隔离器是保障系统安全和稳定性的关键组件。Texas Instruments(TI
    的头像 发表于 01-23 15:10 1188次阅读

    ISO734x系列数字隔离器:设计利器,性能卓越

    ISO734x系列数字隔离器:设计利器,性能卓越 在电子工程师的日常设计工作中,数字隔离器是保障系统安全、稳定运行的关键组件。今天,我们就来深入探讨一下德州仪器(TI)的ISO734x系列数字
    的头像 发表于 01-23 14:55 299次阅读

    【喜报】观岩科技获发明专利授权,共享资源信号检测技术再突破!!!

    喜讯来袭!成都观岩科技有限公司自主研发的核心技术——“一种共享资源的突发信号检测方法”,正式获得国家发明专利授权。这一成果不仅是公司技术创新路上的又一重要里程碑,同时彰显了观岩科技在信号处理领域
    的头像 发表于 01-09 17:09 409次阅读
    【喜报】观岩科技获发明专利授权,<b class='flag-5'>共享资源</b>信号检测技术再突破!!!

    UCC5390-Q1单通道隔离栅极驱动器:特性、应用与设计要点

    UCC5390-Q1单通道隔离栅极驱动器:特性、应用与设计要点 在功率半导体器件的驱动领域,一款性能优良的隔离栅极驱动器至关重要。今天我们就来深入探讨德州仪器(TI)的UCC5390-Q1单通道
    的头像 发表于 01-08 14:15 407次阅读

    BA60951CS 隔离反激变压器:特性与应用全解析

    BA60951CS 隔离反激变压器:特性与应用全解析 作为电子工程师,在设计电源电路时,变压器的选择至关重要。今天,我们就来深入了解一下 Bourns 公司的 BA60951CS 隔离反激变
    的头像 发表于 12-23 16:35 459次阅读

    ISO164x热插拔双向I2C隔离器:特性、应用与设计要点

    ISO164x热插拔双向I2C隔离器:特性、应用与设计要点 在电子工程师的日常设计中,可靠的通信隔离器件至关重要。ISO164x热插拔双向I2C隔离器凭借其卓越的性能和丰富的
    的头像 发表于 12-17 14:15 1148次阅读

    飞凌嵌入式ElfBoard-文件I/O的了解探究之竞争冒险

    竞争冒险(Race Condition)指的是在多线程或多进程环境中,多个线程或进程对共享资源进行访问和修改时可能导致的不确定性结果或错误行为。竞争冒险通常发生在多个线程或进程同时访问和修改共享资源
    发表于 11-26 15:38

    RFID标签在共享经济的应用

    二、RFID标签在共享经济中的优势1.高效率:RFID可以快速批量读取信息,大幅缩短操作时间,提高管理效率。2.准确性:RFID减少了人工操作的错误率,提高了共享资源管理的准确性和可靠性。3.实时性
    的头像 发表于 07-07 15:22 679次阅读
    RFID标签在<b class='flag-5'>共享</b>经济的应用

    高性能缓存设计:如何解决缓存伪共享问题

    在多核高并发场景下, 缓存伪共享(False Sharing) 是导致性能骤降的“隐形杀手”。当不同线程频繁修改同一缓存行(Cache Line)中的独立变量时,CPU缓存一致性协议会强制同步整个
    的头像 发表于 07-01 15:01 948次阅读
    高性能缓存设计:如何解决缓存伪<b class='flag-5'>共享</b>问题

    【EASY EAI Orin Nano开发板试用体验】--WiFi连接与nfs共享

    的。 2.挂载服务器sudo mount -t nfs 192.168.3.214:/home/pengsir/nfsroot /home/orin-nano/Desktop/nfs -o nolock 3.查看共享目录挂载情况,发现挂载上共享资源.
    发表于 06-29 21:56