
阅读收获
全文概览
在云计算和虚拟化部署中,一个看似矛盾的现象普遍存在:CPU 利用率长期徘徊在 50% 左右,而内存却捉襟见肘。这背后的本质是什么?当 DRAM 容量成为单节点可承载虚拟机数量的硬限制时,企业的选择往往被迫转向增加物理节点——这在成本结构上意味着额外的服务器投资、数据中心空间占用,以及最致命的:按 CPU 插槽计费的软件许可证成本激增。
在国内服务器价格高企、利旧改造需求旺盛的当下,一些云厂商开始探索一条新路径:通过分层内存技术(Memory Tiering),将冷数据卸载至低成本存储介质,在不改变应用代码的前提下,用 NVMe 或 CXL 等技术延伸内存容量。
这不仅是一个工程优化问题,更是一个架构理念的转变——从"用廉价存储代替 DRAM"的简单思路,升级为"通过智能分类释放 CPU 潜力"的系统方案。本文将通过 VMware 官方的真实场景数据,揭示分层内存技术如何在 VDI、数据库等生产环境中实现 2 倍密度提升,以及这背后的技术权衡与未来方向。
👉 划线高亮 观点批注

PPT 旨在对比两种通过引入 二级内存层(Tier-2 Memory) 来优化虚拟化环境(以 VMware ESXi 为例)总拥有成本(TCO)的不同策略
这让我想起当下国内服务器价格高涨,不少云厂商都在做利旧相关的工作。很多应用场景如虚拟化和云桌面等,实际CPU的利用率并不高,但是通过多租户方式对外提供的资源消耗了大量内存容量。因此当下有不少厂商在基于老旧的服务器DRAM来扩展应用系统的内存容量

图片通过直观的进度条和色块矩阵,展示了 CPU 负载与内存页面状态之间的关系:
内存页面数据的冷热程度是根据访问频次以及语义来做区分的。业界有哪些方案是可以用来实现冷热数据分级?
Cite
在业界,实现内存冷热数据分级(Memory Tiering)的核心挑战在于:如何在不修改应用程序(透明性) 且极低性能开销的前提下,精准识别哪些内存页(Pages)是活跃的(Hot),哪些是基本不访问的(Cold)。
目前,业界主流方案主要分为操作系统内核、商用虚拟化软件、硬件厂商方案以及超大规模互联网公司自研四类:
Linux内核通过NUMA机制演进实现分级存储:AutoNUMA周期性扫描热页面并迁移至本地DRAM;Meta贡献的TPP(v5.18起)优化内存回收,支持主动降级(冷数据挤至慢速层)与快速升级(热数据提升回DRAM),实测DRAM占20%时性能损失仅5%。
商用SDM方案作为中间层插件提供细粒度控制:MemVerge通过驱动虚拟化统一内存池,自动搬运数据并支持快照;VMware在Hypervisor层将CXL/NVMe识别为NUMA节点,透明调度冷热数据。
硬件方案如Intel Flat Memory Mode将DRAM作为CXL/PMem的硬件缓存(Cache Line级),延迟低但对软件透明、灵活性差。
超大规模厂商自研方案:蚂蚁集团结合用户态监控与内核迁移支撑交易系统降本;Google基于内核DAMON框架(区域采样)进行大规模内存监控与调度。
方案类别 | 典型代表 | 分辨率(粒度) | 软件修改 | 性能损耗 |
|---|---|---|---|---|
Linux 内核 | TPP / AutoNUMA | 页面级 (4KB) | 无需修改 | 中等(受扫描频率影响) |
商用软件 | MemVerge | 灵活(页面或对象) | 无需/极少修改 | 较低(算法精细) |
硬件模式 | Intel Flat Mode | 缓存行级 (64B) | 完全透明 | 极低 |
监控工具 | DAMON | 动态区域级 | 需配套策略脚本 | 可调(极低开销) |

图展示了实施分层内存管理后的理想状态,将不同热度的页面分配到了最合适的物理介质中:

图通过对比 CPU 负载和内存填充情况的变化,揭示了分层内存技术对系统容量的“解锁”效应:

图展示了在 VDI(虚拟桌面基础架构) 场景下,使用 Login Enterprise Benchmark 进行压力测试的结果对比:

PPT 展示了在两种主流企业级数据库(SQL Server 和 Oracle)下,使用基于 NVMe 的分层内存方案的性能对比:

图通过三个阶段的架构图,描绘了内存扩展与分层技术的演进过程,顶部的蓝色星形标注特别强调了 “VCF 9x 版本将支持 CXL 平台”(VCF 指 VMware Cloud Foundation):
如何理解 CXL 提供了比传统 NVMe 更低的延迟和更高的带宽?
虽然 CXL (Compute Express Link) 和 NVMe (Non-Volatile Memory express) 底层都物理挂载在 PCIe 总线上,但它们在协议层、数据访问模式以及硬件处理逻辑上有着本质的区别。
特性 | NVMe (基于 PCIe) | CXL (基于 PCIe 物理层) |
|---|---|---|
访问单位 | 块 (4KB 或更大) | 缓存行 (64 字节) |
软件路径 | 内核 I/O 栈、驱动程序 | Load/Store 指令 (硬件直接处理) |
典型延迟 | 10μs ~ 100μs (基于 SSD) | ~200ns (基于 DRAM) |
一致性 | 不支持硬件缓存一致性 | 支持硬件级缓存一致性 |
应用目标 | 长期存储与数据持久化 | 内存池化、容量扩展、算力协同 |
尽管时下火热的模型推理和 Agentic 沙箱应用等这些场景,都将目光放在了Nvidia更极致的片上互联上,决心通过定制化的片上互联协议,如 NVLink、UAlink 来打破数据访问的内存墙。但笔者认为,在生态完全成熟之前,基于 CXL 的互联存储是相对更容易落地的可行方案,尽管其基于 PCIE 的底层协议注定了没有办法做到极致的传输带宽,但在绝大部分通用场景仍能满足存量应用的架构扩展
延伸思考
这次分享的内容就到这里了,或许以下几个问题,能够启发你更多的思考,欢迎留言,说说你的想法~
问题 1:内存分层的精准度瓶颈 文章提及页面分类是分层存储的前提。在实际部署中,如何在不同工作负载切换的场景下(如云桌面用户的日常办公到月末报表分析),保持对热/冷数据的动态识别准确率?这对系统开销和性能损耗会产生怎样的放大效应?
问题 2:CXL 生态的成熟度与替代路线 尽管 CXL 在延迟和一致性上相比 NVMe 有本质优势,但短期内物理硬件生态仍不完善。在等待 CXL 生态成熟的窗口期,国内云厂商是否应该投资基于 NVMe 的分层方案作为过渡?这会如何影响未来向 CXL 的平滑迁移?
问题 3:分层方案对应用架构的长期影响 当分层内存使得单节点容量"近乎无限"后,这是否会改变传统的分布式架构设计理念?换言之,在极端场景下,我们是否需要重新思考"纵向扩展"与"横向扩展"的成本-收益权衡?
原文标题:VMware by Broadcom Memory Vision for Real World Applications
Notice:Human's prompt, Datasets by Gemini-3-Pro
#FMS25 #CXL内存扩展
---【本文完】---