阅读收获
- 掌握DMI闭环机制:Calibrator动态校准交织比例,Migrator执行页面迁移,帮助存储工程师优化CXL集群带宽利用,避免DDR饱和。
- 洞察性能甜点:高并发下70%-75% DDR占比实现带宽峰值,指导证券分析师评估CXL服务器TCO与扩展性。
- 理解实验验证:120核bwaves/lbm负载中,DMI快速收敛(100s内),抗震荡设计适用于生产环境,研究生可借鉴DAMON-RFC扩展内核。
- 范式转变:从延迟导向转向带宽导向,推动CXL落地“最后一公里”。
全文概览
在CXL内存扩展时代,服务器内存带宽已成为高核心数场景下的核心瓶颈。传统DDR内存容量受限于插槽,而CXL虽提供额外40GB/s带宽,却因150ns延迟高于DDR的100ns,常被闲置,导致总带宽(DDR + CXL)无法叠加。静态交织易致DDR饱和或CXL浪费,现有动态方案如Colloid也难精准捕捉性能甜点。
DMI(Dynamic Memory Interleaving)应运而生:用户态Calibrator实时监控带宽利用率(P90采样,200ms间隔),增量探测最优交织比例(如70% DDR占比);内核态Migrator基于DAMON框架执行热/冷页面迁移,实现带宽最大化。实验在500GB/s DDR + 300GB/s CXL系统下验证:在30-120核高压负载中,DMI性能逼近理想静态交织,远超Colloid,且零负面影响延迟敏感应用。
你是否思考过:在AI推理和大数据时代,如何让CXL真正“喂饱”算力,而非仅作容量补充?DMI的闭环反馈是否能成为异构内存标准?
👉 划线高亮 观点批注
图片展示了在一个计算系统中,CPU 同时连接传统 DDR 内存与 CXL 内存设备的对比架构及性能参数
- CXL 作为内存扩展的有效手段:
CXL 内存设备被定位为 CPU 本地 DDR 内存的补充。虽然单条 CXL 链路的性能(40GB/s)低于本地 DDR(80GB/s),但它的核心价值在于打破了 CPU 插槽对内存插槽数量的限制,实现了系统级的内存容量池化与扩展。
- 带宽的“加法”效应:
尽管 CXL 的单路带宽较窄,但它是与本地 DDR 并行工作的。对于系统而言,总带宽等于 。因此,引入 CXL 能够显著提升服务器在处理大内存带宽负载时的吞吐能力。
我觉得这个观点是值得肯定的。业界通常会批驳CXL的带宽时延比较高,但这是基于串行的逻辑来思考的。如果基于并行的逻辑,多一条内存带宽通道尽管时延更高,但整体的带宽量是增加的。核心要解决的是如何去区分数据:什么数据放在低时延的通道上,什么数据放在相对高时延的通道上。
- 异构内存层级的延迟挑战:
图中明确指出 CXL 的访问延迟(150ns)比本地 DDR(100ns)高出约 50%。这意味着在实际应用中,系统需要具备内存分层 (Memory Tiering) 管理能力,将热数据保留在低延迟的 DDR 中,而将温/冷数据放置在 CXL 扩展内存中,以平衡性能与容量需求。
图表直观地展示了 内存分层 (Memory Tiering) 的动态管理机制,旨在“利用容量并最小化延迟”
- 冷热数据自动生命周期管理: 内存分层的核心逻辑是根据数据的访问频率动态调整存储位置。这种机制确保了性能敏感型任务始终运行在 DDR 上,而容量敏感型任务则由 CXL 承载,实现了资源的优化配置。
- 容量与延迟的平衡策略: 该架构通过软件或硬件机制解决了“性能”与“容量”的矛盾。通过 Demote 机制,系统可以防止 DDR 被不活跃的数据占满,从而在不增加昂贵 DDR 插槽的情况下,通过 CXL 极大地扩展了服务器的可寻址内存上限。
- 对系统透明度的要求: 虽然图中展示了 Promote 和 Demote 的过程,但在技术实现上,这通常需要操作系统内核(如 Linux 的 Memory Tiering 机制)或驱动程序的深度参与,以确保数据迁移过程对上层应用尽可能透明,减少迁移本身带来的性能损耗。
图片展示了在内存分层架构中常见的一个性能瓶颈问题,并引出了名为“交织热页面 (interleave hot pages)”的解决方案
- 带宽不平衡瓶颈: 在朴素的内存分层逻辑中,系统倾向于将所有热数据挤在 DDR 中。这会导致一个严重的副作用:即使 CXL 内存能提供额外的带宽(如第一张图提到的 40GB/s),但在这种模式下,这些额外带宽完全无法被利用,系统性能受限于本地 DDR 的带宽上限。
- “交织 (Interleaving)”的必要性: 为了解决 DDR 带宽溢出的问题,标题提出的方案是“interleave hot pages”。这意味着不再单纯按“冷热”物理隔离,而是将部分热数据页面也分布到 CXL 内存中。通过这种方式,系统可以同时调用 DDR 和 CXL 的带宽来处理热数据,虽然 CXL 延迟稍高,但总体的系统吞吐量(Throughput)会因为总带宽的叠加而获得显著提升。
图片展示了在实施静态交织策略后,系统资源利用率依然失衡的场景
- 静态分配难以应对负载动态性:
静态交织是一种“一劳永逸”的配置方式,它假设数据的访问热度是均匀且恒定的。然而,实际应用中数据热度会随时间剧烈波动。图中反映出,即便开启了交织,如果分配策略不够“聪明”,依然会出现 DDR 忙碌、CXL 闲置 的带宽资源浪费现象。
- 效率瓶颈的转移:
图片暗示了仅仅有交织是不够的。由于 DDR 的响应速度快,系统往往会优先消耗 DDR 带宽。如果缺乏动态调整机制,CXL 内存将仅仅作为一个“昂贵的备份容量”,而无法实现真正的“带宽叠加”初衷。
- 引出对动态管理的需求:
这张图为后续可能出现的“动态交织(Dynamic Interleaving)”或“基于反馈的页面迁移(Feedback-based Migration)”方案做了铺垫。它强调了为了最大化系统总带宽(),必须有一种能够根据实时带宽压力自动调整数据分布的算法。
图片展示了名为 DMI (Dynamic Memory Interleaving) 的技术提案,其核心目标是最大化带宽利用率 (Maximize bandwidth utilization)。方案由两个协同工作的模块组成
- 从“静态分配”向“闭环控制”转变:
DMI 方案引入了反馈机制。Calibrator 负责“看”,Migrator 负责“做”。这种设计允许系统根据实际业务负载的波动(即前图提到的数据热度动态变化)来实时调整数据在本地 DDR 和 CXL 扩展内存之间的分布,解决了静态交织无法应对复杂负载的问题。
- 以“带宽比例”为核心的调度算法:
该方案不再单纯依赖传统的“冷热数据分层”逻辑,而是将带宽平衡作为首要调度指标。通过调整“交织比例”,DMI 可以强制将部分活跃页面推向 CXL,从而缓解 DDR 的总线压力,实现 总带宽的最大化利用。
- 软件定义内存的典型应用:
虽然 CXL 是硬件协议,但 DMI 展现了典型的软件定义内存 (Software-Defined Memory) 思路。通过在操作系统或驱动层实现监控与迁移逻辑,在不改变硬件物理连接的前提下,极大地提升了异构内存系统的运行效率。
DMI 方案中核心组件 Calibrator(校准器) 的具体工作逻辑
- 基于带宽变化的动态反馈循环: 校准器不是盲目设定比例,而是以带宽利用率的变化作为信号(Signal)。当负载特征改变(例如应用开始进行大规模内存读写导致带宽波动)时,校准器会立即介入,打破当前的静态平衡,重新寻找最优比例。
- 增量式探测策略: 图中从 100 下降到 90 的曲线暗示了一种“试错”或“探测”机制。系统会小步快跑地调整比例,观察性能反馈,从而确保在不剧烈抖动系统性能的前提下,尽可能多地利用 CXL 的额外带宽。
- 对工作负载变化的敏锐响应: “Restart process”强调了 DMI 的灵活性。在现代数据中心中,应用负载往往具有突发性(Bursty),这种实时重启动校准的机制确保了内存子系统能够快速适应从“计算密集型”向“内存带宽密集型”任务的转换。
总结一下这里对 DMI 方案的理解:通过主动将数据转移到高时延 CXL 内存上去,在系统波动过程中让应用适应CXL 造成的性能影响。这其实反馈出的是一种不破不立的思路。
从这个逻辑来讲,这个方案应该没有成为一个标准方案。因为在实际应用场景中,业务是绝对不希望有这种性能波动的。厂商为引入 CXL 主动发起的,如何优化和平衡这里的性能毛刺,是这个方案需要具体回答的
图片通过一个性能曲线图回答了“什么是‘好’的步进(good step)”这一问题,即如何通过调整比例找到性能峰值
- “性能甜点位”的存在: 图表有力地证明了在异构内存系统中,存在一个最优交织比例(图中约为 70%-75% 的本地内存占比)。在此比例下,CPU 能够同时填满本地 DDR 通道和 CXL 链路的总线,从而获得比单用 DDR 更高的聚合带宽。
- 克服“本地内存依赖”误区: 传统的认知认为数据离 CPU 越近(在本地 DDR 中)性能越好。但图中 80-100 区间的性能下滑表明:一旦本地 DDR 带宽饱和,它就变成了系统瓶颈。此时,人为地将一部分负载迁移到延迟略高但带宽空闲的 CXL 上,反而能提升整体产出。
- Calibrator 的搜索目标: 校准器的任务就是通过动态步进探测,将系统的运行状态维持在曲线的“顶点”附近。这种“Good Step”不是固定的,而是根据不同应用的带宽需求曲线实时计算出来的。
Calibrator(校准器) 在工程实现层面的技术细节
- 非侵入性的用户态设计: 将 Calibrator 放在用户态运行(利用
perf 等工具),体现了极高的灵活性。这种设计允许开发人员在不重新编译内核的情况下优化调度算法,且即便校准程序异常崩溃,也不会导致整个操作系统的宕机。
- 抗干扰的统计学方法: 方案特别强调了“忽略迁移期间采样”和“采用 P90 值”。这说明在内存分层管理中,数据噪声控制至关重要。使用 P90 而非平均值,能够让系统更好地应对具有突发性特征的真实业务负载,确保系统是为“性能峰值”而优化。
- 性能与开销的平衡: 200ms 的采样间隔和 6s 的决策周期展示了设计者在响应速度与系统开销之间的权衡。过快的校准会消耗过多的 CPU 资源,而过慢则无法应对负载变化。6 秒的周期足以让内存页面完成迁移并进入稳定状态,从而进行下一次精准评估。
DMI 方案中的执行组件——Migrator(迁移器) 在“降级(Demotion)”场景下的工作逻辑
- 打破“冷热隔离”的传统束缚: 在传统的“降级 (Demotion)”中,只有冷数据会被移往 CXL。但在 DMI 的 Migrator 逻辑下,为了实现 Calibrator 设定的带宽目标,热数据也会被“降级”到 CXL。图中 CXL 层出现的火焰图标正是这一策略的体现,其目的是利用 CXL 的闲置带宽来缓解 DDR 总线的压力。
- 容量压力触发的强制流动: 图中 DDR 的 Capacity 进度条变红,暗示了 Migrator 的另一个触发条件:当本地内存容量耗尽时,必须进行页面迁移。Migrator 会根据交织比例,精确决定哪些页面(无论冷热)留在 DDR,哪些去往 CXL。
- DMI 的兼容性与灵活性: 图片底部的文字强调了 DMI 是传统分层技术的“超集”。它既可以像传统方式那样只做冷热分离(比例设为 100%),也可以通过调整比例开启“带宽扩展模式”。这种灵活性使得系统可以根据应用需求,在“延迟敏感型”和“带宽吞吐型”两种模式间无缝切换。
图片展示了该方案如何利用现有的 Linux 内核工具,并对其进行扩展以支持 CXL 内存的动态交织
- 基于成熟内核框架的创新: Migrator 并没有“重复造轮子”,而是选择深度集成到 DAMON 框架中。DAMON 是 Linux 内核近年来用于内存管理优化的主力工具,利用它来处理 CXL 内存迁移,既保证了系统的稳定性,也符合内核开发的演进规律。
- 解耦的控制逻辑与执行逻辑: 通过 sysfs 进行比例传递,实现了“决策”与“执行”的完美解耦。用户态的 Calibrator 负责复杂的数学计算和策略制定,而内核态的 Migrator 只负责高效执行,这种架构设计极大地提升了系统的可维护性和策略的灵活性。
- 推动 CXL 内存管理的标准化: “RFC submitted” 表明这套针对 CXL 的动态内存交织方案具有通用性,旨在解决整个存储和服务器行业面临的内存带宽瓶颈问题。一旦合并入主线内核,将为全球数据中心大规模部署 CXL 内存池化技术扫清软件层面的障碍。
Note
DMI 方案中 Calibrator、Migrator 与 DAMON 框架的定位与价值总结
DMI (Dynamic Memory Interleaving) 方案的核心是通过闭环反馈机制实现 DDR 与 CXL 异构内存的动态交织,以最大化总带宽利用率(DDR + CXL)。以下表格结构化梳理三者在方案中的定位、价值及关键实现细节:
| | | |
|---|
| 用户态(User-space)监控与决策模块负责“观察”(Look)与计算最优交织比例 | - 基于带宽利用率反馈,动态发现“性能甜点位”(如 70%-75% DDR 占比)- 解决静态交织的负载动态性问题,避免 DDR 饱和或 CXL 闲置- 实现“带宽导向”管理范式转变,提升系统吞吐量 | - 使用 perf 工具采样带宽变化(P90 值,忽略迁移噪声)- 增量探测策略(小步调整,如 100% → 90%)- 采样间隔 200ms,决策周期 6s- 通过 sysfs 接口传递比例给 Migrator |
| 内核态(Kernel-space)执行模块负责“行动”(Act),执行页面迁移 | - 强制将热/冷数据按比例分布到 CXL,实现带宽叠加- 兼容传统内存分层(比例 100% 时退化为冷热隔离)- 最小化迁移开销,确保透明性与稳定性 | - 集成 Linux DAMON 框架处理 Demote/Promote- 触发条件:容量压力或带宽目标- 支持热数据“降级”到 CXL,利用闲置带宽 |
| | - 提供成熟的页面监控与迁移基础设施,避免“重复造轮子”- 确保 DMI 的内核级稳定性与标准化,推动 CXL 落地- 解耦决策(用户态)与执行(内核态),提升可维护性 | - 通过 sysfs 接口接收 Calibrator 比例参数- 支持 CXL 扩展(RFC 已提交主线)- 处理大规模页面迁移,兼容多设备 CXL 集群 |
| | | |
整体协同逻辑
- 闭环流程:Calibrator 监控 → 计算比例 → Migrator(基于 DAMON)执行迁移 → 反馈循环重校准。
- 方案价值:从“延迟导向”转向“带宽导向”,实验验证在高并发(如 120 核)下性能接近理想静态交织,同时零负面影响延迟敏感负载。RFC 提交标志其标准化潜力,解决 CXL “最后一公里”软件障碍。
图片引入了一个名为 colloid 的相似系统作为对比,重点探讨了带宽压力下的延迟抖动问题,这是校准算法(Calibrator)必须解决的核心痛点
- 排队论视角下的性能拐点: 图中曲线生动展示了计算机体系结构中的“排队效应”。当带宽利用率超过某个阈值(通常为 70%-80%)后,内存请求在控制器排队的开销会呈指数级增长。DMI 方案之所以需要动态校准,本质上是为了防止系统滑入这个“延迟爆炸”的区域。
- 动态校准的算法复杂性: 图片强调了“校准困难”。因为在性能曲线的平坦区,调整交织比例对延迟影响很小;但一旦靠近拐点,极小的比例误差就可能导致延迟激增。这意味着 Calibrator 需要极高的灵敏度和容错机制,以识别并避开这些高压触发点。
- 异构内存的“错峰访问”价值: 灰色(CXL)与紫色(Local)曲线的对比暗示:当本地内存进入延迟攀升区时,CXL 可能仍处于其平坦区。通过 DMI 将部分负载移至 CXL,实际上是将系统从紫色的攀升区拉回,虽然支付了基础的 CXL 延迟成本,但避免了本地内存过载引发的巨大延迟波动,从而实现了“最小化最大访问延迟”的目标。
图片详细列出了实验环境的各项参数
- 极高带宽能力的异构系统:
该实验系统构建了一个 总带宽的巨量内存池。这种配置旨在模拟未来超大规模数据中心和 AI 推理服务器的典型场景,验证 DMI 方案在面临近 1TB/s 带宽调度时的有效性。
- 全方位的工作负载覆盖:
测试负载的设计非常有针对性。通过对比“带宽密集型”和“延迟敏感型”应用,实验能够全面评估 DMI 方案是否能在提升整体吞吐量的同时,不至于因 CXL 的固有延迟而大幅拖慢图计算等随机访问类应用的性能。
- CZ122 设备的行业代表性:
美光 CZ122 是市场上领先的 CXL 2.0 内存扩展控制器。使用 8 个此类设备进行组网,证明了 DMI 方案支持多设备、大规模的 CXL 内存扩展集群,具有很强的实际落地参考价值。
图表展示了单工作负载在不同核心数(CPU Cores)下的性能表现,基准是“理想静态交织(Ideal Static Interleaving)”
- 在高压带宽负载下的绝对优势: 实验结果证明,当 CPU 核心数增加导致内存带宽成为瓶颈时,DMI 的动态校准机制表现卓越。相比于 Colloid,DMI 能更精准地找到“性能甜点位”,极大地缓解了高并发下的带宽拥塞,使系统性能接近物理极限(理想静态交织)。
- 出色的负载自适应能力: DMI 展示了极强的扩展性。无论是在 30 核还是 120 核配置下,DMI 都能稳定地提供优于 Colloid 的表现。这验证了前述 Calibrator(校准器)在不同压力环境下实时调整交织比例的有效性。
- 对延迟敏感应用的“零负面影响”: 对于 PageRank (PR) 和广度优先搜索 (BFS) 等非带宽密集型应用,DMI 表现出了良好的保底性能。这意味着 DMI 的 Migrator(迁移器)足够聪明,不会盲目为了平衡带宽而将不必要的数据迁移到高延迟的 CXL 层,从而保护了随机访问类应用的执行效率。
图表展示了 DMI 方案在实际运行中的动态性和稳定性,是证明其算法有效性的关键实时监控数据
- 快速收敛与高稳定性: DMI 展示了卓越的校准效率。橙色曲线表明,Calibrator 能够在极短的时间内(约 100 秒内)识别出该负载的最佳带宽平衡点。一旦锁定,Migrator 就能保持稳定的页面分布,这对于减少因频繁迁移数据带来的性能损耗(Overhead) 至关重要。
- 避免系统震荡(Anti-Oscillation): 图中蓝色曲线的剧烈波动是内存管理中的典型负面现象。过度的比例调整会触发大量的内核页面迁移指令,反而抢占正常的业务带宽。DMI 通过前述的 P90 采样和 6s 决策周期,成功过滤了瞬时噪声,实现了“稳健调度”。
- 验证“性能曲线顶点”理论: 橙色曲线最终稳定在 70% 附近,这与之前图片中显示的“峰值带宽出现在 70%-75% 本地内存占比”的实验结论高度吻合。这证明了 DMI 确实能够实现在线实时发现并维持在物理硬件的最佳性能点上。
图表记录了在运行带宽密集型科学计算负载 bwaves 时,内存分配比例随时间变化的情况
- 快速收敛与高稳定性: DMI 展示了卓越的校准效率。橙色曲线表明,Calibrator 能够在极短的时间内(约 100 秒内)识别出该负载的最佳带宽平衡点。一旦锁定,Migrator 就能保持稳定的页面分布,这对于减少因频繁迁移数据带来的性能损耗(Overhead) 至关重要。
- 避免系统震荡(Anti-Oscillation): 图中蓝色曲线的剧烈波动是内存管理中的典型负面现象。过度的比例调整会触发大量的内核页面迁移指令,反而抢占正常的业务带宽。DMI 通过前述的 P90 采样和 6s 决策周期,成功过滤了瞬时噪声,实现了“稳健调度”。
- 验证“性能曲线顶点”理论: 橙色曲线最终稳定在 70% 附近,这与之前图片中显示的“峰值带宽出现在 70%-75% 本地内存占比”的实验结论高度吻合。这证明了 DMI 确实能够实现在线实时发现并维持在物理硬件的最佳性能点上。
图表记录了系统在运行不同阶段、不同压力的 lbm 负载时,交织比例的实时调整情况
- 敏锐的负载切换感知能力: DMI 的 Calibrator 表现出了极佳的灵敏度。在 300 秒和 500 秒左右的负载切换点,系统能够迅速识别带宽需求的变化,并果断调整交织比例。这种动态重校准能力是传统静态交织或简单内存分层技术所不具备的。
- 带宽需求驱动的自动平衡: 当负载压力增大时(300s-500s),系统将比例下调至 60% 左右。这一行为逻辑非常明确:通过牺牲一部分延迟(将更多数据放入 CXL),换取更大的总带宽吞吐,从而防止本地 DDR 通道彻底进入延迟爆炸的饱和区。
- 应对复杂生产环境的实用性: 真实生产环境中的应用很少保持恒定的带宽需求。DMI 能够随负载“起舞”,在需求低时利用低延迟的本地内存,在需求高时利用高带宽的 CXL。虽然在某些极端段落(Second workload)略慢于静态设定的最优值,但其自动化的特性避免了人工干预的成本,实现了全局最优。
上图数据很有意思,在第50秒左右的时候,尝试把DRAM中的内存卸载20%到CXL中,250秒左右尝试继续卸载20%到CXL中,然后稳定运行了100秒左右数据又迁回到DRAM中。从这个波动图来看,DMI方案能在100s内实现相对平衡的数据迁移
对整个 DMI (Dynamic Memory Interleaving) 方案的必要性、局限性解决以及最终价值进行了高度总结
- 从“延迟导向”向“带宽导向”的管理模型进化: 传统的内存管理(如 NUMA 优化)主要关注如何减少访问延迟。而 DMI 标志着一种范式转移——在海量核心和 CXL 扩展内存的时代,“最大化带宽吞吐” 成为同等甚至更重要的优化目标。
- 解决 CXL 落地应用的最后“一公里”: CXL 硬件虽然提供了额外的通道,但如何让现有应用在不修改代码的前提下无感地利用这些带宽?DMI 通过在内核层(DAMON)实现动态交织,提供了一种透明、自动且高效的软件定义内存方案。
- 异构内存系统的未来标准: 随着 RFC 提交给 Linux 内核维护者,DMI 所代表的这种“监控-校准-迁移”闭环控制逻辑,有望成为未来高性能服务器处理异构内存(HBM, DDR, CXL)的通用标准做法。
美光在这个方案中提出的很大的创新点,区别于TPP等内存数据热度识别分层方案:DMI是一种主动从DRAM中卸载热数据到CXL的观测方案。它的核心逻辑是基于主动卸载、观测、动态平衡的逻辑,而不是基于数据分层的感应逻辑,数据热度分层,正如前文所阐述的是一种时延优先的策略。本文 DMI 的核心指标是最大化带宽吞吐,所以相对来讲会更激进地把数据从 DRAM 中卸载到 CXL 中
延伸思考
这次分享的内容就到这里了,或许以下几个问题,能够启发你更多的思考,欢迎留言,说说你的想法~
- DMI主动“降级”热数据到CXL虽最大化带宽,但如何量化迁移开销对突发负载的性能毛刺影响,并在生产环境中最小化?
- 与Colloid等自适应方案相比,DMI的P90采样+6s周期在多租户云场景下是否足够鲁棒?未来如何与HBM等介质融合?
- CXL标准化后,DMI式软件定义内存能否演变为内核默认策略?存储从业者应关注哪些硬件兼容风险?
原文标题:Dynamic memory interleaving for tiered memory Bandwidth is important too
Notice:Human's prompt, Datasets by Gemini-3-Pro
#FMS25 #CXL内存扩展
---【本文完】---
丰子恺-护生画集-好鸟枝头亦朋友