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

    文章

    11216

    浏览量

    222949

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

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    达林顿光耦丨工业控制中的信号放大与隔离利器

    达林顿光耦作为光电器件与达林顿晶体管的结合体,通过内部红外发光二极管与光电达林顿探测器的组合,实现了信号的高效放大与电气隔离。其核心优势在于高电流增益特性——由两级晶体管级联构成的达林顿结构,可将
    的头像 发表于 12-02 15:44 76次阅读
    达林顿光耦丨工业控制中的信号放大与<b class='flag-5'>隔离</b><b class='flag-5'>利器</b>

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

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

    RFID标签在共享经济的应用

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

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

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

    进程、线程、协程傻傻分不清?一文带你彻底扒光它们的\"底裤\"!

    它们就像程序界的「三国演义」: 进程:曹魏政权(独占资源,稳如老狗) 线程:孙刘联军(共享资源,相爱相杀) 协程:诸葛亮北伐(一人带十军,靠的是「空城计」) 第一章:进程——程序界的「独狼」 定义
    发表于 03-26 09:27

    请问init_ipc_shm() 是否只初始化一次?

    通过在 S32G A 核上使用 C(或 C)创建多个项目来开发 IPCF 功能时,是init_ipc_shm()允许初始化已配置的共享资源的函数仅一次在运行时?如果是,系统级别的最佳架构建议是什么?我的想法是实现一个自启动服务程序,该程序在每次器件通电期间执行一次初始化
    发表于 03-25 08:05

    是德科技解析光隔离探头构造与特性隔离探头的典型测试案例

    目录 什么是光隔离探头? 1. 新品探头介绍 2. 高压差分探头 vs 光隔离探头 3. 光隔离探头的应用场景 宽禁带半导体市场前景 光隔离
    发表于 03-19 09:09 1448次阅读
    是德科技解析光<b class='flag-5'>隔离</b>探头构造与<b class='flag-5'>特性</b>  光<b class='flag-5'>隔离</b>探头的典型测试案例

    品致与麦科信光隔离探头的技术特性与应用领域

    在电子测量领域,光隔离探头作为一种高性能的测试工具,因其独特的电气隔离特性和抗干扰能力而备受关注。品致和麦科信作为知名的电子测试测量品牌,各自推出了具有竞争力的光隔离探头产品。 技术
    的头像 发表于 03-07 14:23 638次阅读
    品致与麦科信光<b class='flag-5'>隔离</b>探头的技术<b class='flag-5'>特性</b>与应用领域

    CMT8120N0双向数字隔离器的技术特性及应用解析

    内容概要:本文详细介绍了CMT8120N0系列双向数字隔离器的技术特点和应用案例。该隔离器采用SiO2绝缘栅,支持高达5kVrms隔离电压。文章涵盖了产品
    发表于 02-21 09:34 0次下载

    hyper-v共享,Hyper-V 共享:Hyper-V的资源共享设置

    的解决方案。今天就为大家介绍Hyper-V共享:Hyper-V的资源共享设置。    在Hyper-V虚拟化环境中,资源共享是实现高效管理和灵活部署的关键功能之一。Hyper-V提供了
    的头像 发表于 02-07 10:26 1833次阅读
    hyper-v<b class='flag-5'>共享</b>,Hyper-V <b class='flag-5'>共享</b>:Hyper-V的<b class='flag-5'>资源共享</b>设置

    hyper-v共享,hyper-v共享:实现主机与虚拟机之间高效文件共享的最佳实践

    :实现主机与虚拟机之间高效文件共享的最佳实践。    在企业级虚拟化环境中,实现主机与虚拟机之间的高效文件共享是提升资源利用率和协作效率的关键。Hyper-V提供了多种文件共享方法,能
    的头像 发表于 01-24 14:23 2371次阅读
    hyper-v<b class='flag-5'>共享</b>,hyper-v<b class='flag-5'>共享</b>:实现主机与虚拟机之间高效文件<b class='flag-5'>共享</b>的最佳实践

    N32G401系列芯片关键特性,定货型号及资源,封装尺寸等信息

    电子发烧友网站提供《N32G401系列芯片关键特性,定货型号及资源,封装尺寸等信息.pdf》资料免费下载
    发表于 01-22 15:41 0次下载
    N32G401系列芯片关键<b class='flag-5'>特性</b>,定货型号及<b class='flag-5'>资源</b>,封装尺寸等信息

    N32G4FR系列芯片关键特性,定货型号及资源,封装尺寸等信息

    电子发烧友网站提供《N32G4FR系列芯片关键特性,定货型号及资源,封装尺寸等信息.pdf》资料免费下载
    发表于 01-22 15:15 1次下载
    N32G4FR系列芯片关键<b class='flag-5'>特性</b>,定货型号及<b class='flag-5'>资源</b>,封装尺寸等信息

    上海贝岭数字隔离器产品介绍

    数字隔离器作为二十一世纪新推出的隔离技术,以其更高的可靠性、简化的外围器件,高集成特性,已被广泛用于工业控制、汽车、仪表、医疗等应用。
    的头像 发表于 12-19 17:24 1125次阅读
    上海贝岭数字<b class='flag-5'>隔离</b>器产品<b class='flag-5'>介绍</b>