本文授权转载自公众号SDNLAB
数据中心里有一个长期被低估的矛盾:服务器的CPU利用率还远未饱和,网络带宽也绰绰有余,但内存已经告急,新的任务再也塞不进去了。据Meta统计,在其数百万台服务器构成的超算集群里,有高达43.7%的服务器内存容量受限。
内存已成为拖垮业务、拉高成本、增加碳排放的核心瓶颈,核心问题集中三点:
- 近半数服务器被内存容量锁死性能
Meta 有 43.7% 服务器受内存容量制约。推荐、大数据、AI 推理业务冷热数据分明,对大内存需求高,但单路 CPU 自带 DDR5 容量不足,常会算力、存储、网络闲置而内存耗尽。像大模型、推荐参数服务器,模型无法全放本地内存只能拆分多分片,带来大量网络开销、延迟上涨,只能堆更多服务器推高整体成本。
- DRAM 是机房碳排放第一大户
对服务器全生命周期碳排放拆解后,内存条贡献了 69% 的总碳排,远超 CPU、SSD、主板等硬件。DRAM 生产制造能耗极高,每年大批量采购新内存会持续加重环保负担。
- 内存和服务器生命周期错配,硬件严重浪费
服务器使用寿命只有3~5 年,但 DDR4 内存条能用7~10年。服务器淘汰时配套内存状态完好,直接报废会造成巨大资源浪费;如果拆下来直接装新服务器,老旧 DDR4 带宽低、延迟高,又会拖累新机器性能。

那么,有没有一种办法,能把老服务器上退休的DDR4内存条,插到新服务器上当作扩展内存使用呢?
这就是 Compute Express Link(CXL) 这项技术的愿景。它通过专用的协议和接口,将外置的内存池高效地连接到CPU。这个想法听起来很完美,但CXL标准已经推出六年了,为什么很少听说谁真的在超大规模数据中心里把它用起来了?为此,Meta 自研了Vistara整套软硬协同方案,可利用 CXL将旧的 DDR4 内存连接起来,作为服务器的扩展内存。

01
为什么CXL落地这么难?
在Vistara之前,CXL的普及面临着几个看似无解的矛盾:
又慢又贵的刻板印象:学术界和早期原型系统都指出,通过CXL访问的内存,带宽只有本地内存的十分之一,延迟却高出60%以上。加上复杂的软件管理开销,很多人认为它在性能敏感的生产环境中毫无用处。
商业产品不合身:市面上的CXL方案,大多是把新的DRAM芯片和控制器打包卖给你。这不仅贵,而且根本不支持复用老旧的DDR4内存条。对于想变废为宝的玩家来说,这些产品在根本上就不符合要求。
软件生态不成熟:操作系统如何区分“快”的本地内存和“慢”的CXL内存?如何把不常用的数据(冷数据)自动搬到慢速内存,把常用的数据(热数据)留在本地?现有的软件方案要么效率低下,要么太过复杂。

Meta的Vistara项目,正是为了解决这三个核心问题而生的。
02
Vistara 硬件:
自研 CXL 专用 ASIC,主打老旧内存复用
Vistara芯片的设计理念是在功耗和成本可控的前提下,以最高的效率桥接起老旧的DDR4内存和全新的CXL协议栈。

Vistara 是符合 CXL 2.0/1.1 标准的 Type3 内存扩展 ASIC,核心参数:
主机接口:PCIe 5.0 x16,生产环境降为 x8 使用,足够业务带宽需求;
内存通道:2 路独立 72bit DDR4 通道,单机芯片最大支持 256GB,线上复用 32GB 退役 DDR4,单芯片 128GB;
延迟与功耗:芯片自身空载额外延迟约 50ns,单颗芯片功耗仅 9W;
可靠性:支持 RS 纠错、4 位芯片故障自愈,适配机房 7×24 小时稳定运行;
内置 3 颗 RISC-V 管理核:分别负责安全启动、固件控制、设备初始化,支持远程固件更新、硬件故障实时监控。
每台 MemServer 内存优化服务器搭载 2 颗 Vistara 芯片,外接 8 根 32GB DDR4,合计 256GB CXL 外挂内存;本机自带 768GB DDR5 本地内存,整机总内存达到 1TB。
本地内存(DDR5 6400MT/s)和 CXL 扩展内存(DDR4 2400MT/s)天然存在性能鸿沟:
带宽:本地峰值 497GB/s,CXL 仅 48GB/s,带宽相差 10 倍;
延迟:低负载下本地 169ns,CXL 269ns;60% 带宽负载时本地 234ns,CXL 372ns,多出约 140ns 延迟。
延迟增加来自两部分:一是 Vistara 芯片通路带来 150ns 额外时延,二是为兼容老旧内存、降低功耗,DDR4 运行在 2400 低速档位。但Meta实测推翻了 “CXL 长尾延迟不可控” 的观点,在高并发线程压力下,Vistara 的访问延迟分布曲线和本地 DRAM 几乎重合,不存在严重的长尾延迟抖动。之前测出的异常延迟,是 FPGA 原型设备缓存资源不足导致,并非 CXL 原生缺陷。
整机采用单路 AMD Zen5 Turin 处理器,158 核 316 超线程,本地 12 通道 DDR5-6400;2 块 Vistara 卡通过 PCIe 5.0 x8 直连 CPU。为均衡负载,CPU 侧采用 256 字节粒度交叉访问两块 Vistara 芯片,芯片内部再跨 DIMM、Rank、Bank 并行寻址,最大化 CXL 聚合带宽,避免单条链路拥堵。整机功耗区间 450~560W,其中整套 CXL 内存(2 芯片 + 8 根 DDR4)仅消耗 50W,单位 GB 功耗比全新本地内存更低,采购成本仅原生 DDR5 的 13%。

03
配套软件栈,让操作系统更聪明地管理内存
硬件只是基础,大规模落地的关键是一套适配 Linux 内核、对业务完全透明的内存分层软件体系,核心围绕 NUMA 异构内存、冷热页自动迁移、灵活业务隔离三大能力。
系统将 CXL 内存识别为无 CPU 的独立 NUMA 节点,和本地 DDR5 节点物理隔离:
通过 Linux 原生 CXL 驱动,将 CXL 内存标记为ZONE_MOVABLE,内核页表、缓存等不可迁移数据禁止分配到 CXL,只有用户业务内存能放慢速内存,避免系统稳定性风险;
依靠 ACPI HMAT 表格向内核上报两类内存的带宽、延迟差异,内核据此做智能内存分配;
启用内核 NUMA 自动均衡、页面降级机制,配合 TPP(透明页面放置)、TMO(透明内存卸载)双机制管理冷热页。
TPP 是这套分层内存的核心调度器,工作逻辑非常简单:
新内存优先分配在高速本地 DDR5;
内核持续扫描页面访问频率,长期少访问的冷页自动迁移到 CXL;
一旦 CXL 上的冷页被频繁读取,立刻晋升回本地高速内存。
行业此前普遍担忧 TPP 会带来巨大 CPU 开销,但线上全业务实测证明,TPP 整机 CPU 开销稳定低于 0.5%,几乎无感;同时仅靠基础 LRU 热度检测就能精准区分冷热页面,不需要复杂 AI、强化学习页面分类算法。从真实业务流量看,绝大多数业务 CXL 带宽占用只有本地内存的 1/10 甚至更低,页面晋升、降级流量极少,靠基础 CPU 迁移即可完成,没必要额外增加 DMA 硬件加速迁移。
不是所有业务都适合 CXL 内存,比如高频读写、热数据占比极高的服务,慢速内存会带来性能损耗。软件栈提供无重启、无硬件改动的隔离方案,基于 Linux cgroup 的cpuset.mems控制器,给不同业务绑定内存节点:
默认策略:所有业务自动使用本地 + CXL 混合内存;
退出策略:延迟敏感业务仅允许分配本地 DDR5,完全隔离 CXL 内存。
集群调度系统会根据业务配置自动下发策略,单台服务器可以混合部署两类业务:后台低优先级服务占用 CXL,核心在线业务独占高速本地内存,大幅提升服务器复用率。
单服务器多容器部署时,原生 TPP 会出现资源抢占:某一个容器占满本地高速内存,其余容器全部被挤到 CXL,出现巨大延迟差距、噪音干扰。Meta 增加了按容器内存分层配额公平调度,限制每个容器本地内存占用上下限,所有容器维持 7:3 左右本地 / CXL 分配比例。实测双缓存容器同机部署时,P99 延迟降低近一半,流量突增时 QPS 下跌幅度从 65% 压缩至 12%,彻底杜绝 OOM 崩溃。
04
全业务线上落地效果
Meta 在缓存、大数据仓库、开发集群、AI 推荐推理四大类业务完成规模化部署,统一采用 A/B 对照测试,同一流量对比开启 / 关闭 CXL 的指标差异,收益明确:
缓存数据冷热分化极强,大量长期不访问的缓存对象,完美适配 CXL 分层:
CacheA:总内存容量提升 33%,单服务器 QPS 上涨 33%,缓存留存时长从 1 分钟拉长至 5~10 分钟;写入压力转移到 CXL,SSD 闪存磨损大幅降低;
CacheB:平均查询延迟下降 29%,闪存缓存命中率转移至内存,减少后端存储请求。
内存是大数据任务最大瓶颈,内存不足会导致任务频繁 OOM 崩溃:
Spark 集群单服务器可多部署 25% 执行器,同等业务量服务器数量减少;
OOM 崩溃概率下降 33%,复杂多阶段查询重启开销大幅降低;
混合存储服务 FtStoreX 整机吞吐量提升 8.6%,后端存储负载下降。
编译、测试任务流量突发、生命周期短,内存占用波动大:开发虚拟机单机可多部署 33% 开发 VM,同等研发规模服务器减少 15%,仅存在 10% 以内轻微性能损耗,不影响开发效率;CI 编译容器并发数量显著提升,编译排队时间缩短。
这是 CXL 价值最突出的场景,模型体量持续膨胀:
5.1TB~20TB 规模推荐模型,部署服务器数量直接减少 25%;
模型分片更少,参数更新跨服务器网络交互减少,推理吞吐量提升 4%~12%;
支撑未来百 TB 级超大模型落地,不用重构底层服务器架构。
05
经验与反思
Meta团队总结了几个宝贵的经验:
复用旧内存不是即插即用:数据中心里DDR4内存的种类繁多(如不同大小、不同制造商),Vistara芯片需要兼容所有这些类型。此外,还需要建立一套完整的旧内存条检测、翻新和供应链管理系统,这本身就是一个巨大的工程。
当前瓶颈不在带宽:生产数据显示,绝大部分应用只用了CXL带宽的很小一部分。因此,目前采用PCIe x8通道是经济且充足的。未来如果出现更吃带宽的应用,再考虑升级到x16或使用DDR5的CXL设备也不迟。
多租户下的公平性很重要:当多个应用共享一台服务器时,要防止一个应用霸占所有快速本地内存,把其他应用挤到慢速CXL内存上。Meta为此开发了Fair Share机制,通过配额管理,确保每个租户都能获得公平的本地内存份额。
寻找拐点:通过压力测试,Meta发现,只要一个应用的热数据占比不超过其总内存需求的75%,CXL内存扩展就几乎不会带来性能损失。只有当热数据占比突破这个阈值时,性能才会急剧下降。这为未来的容量规划和硬件选型提供了一个清晰的指导。
总的来说,CXL 适合容量受限、冷热分层明显的业务,纯高频、全热数据业务不适合使用 CXL 扩展内存。
END

点击下方名片 即刻关注我们