Meta发布CRAM内存压缩方案,只读性能接近原生DRAM

存储器 网络 M 2026-10-10 17:12

CRAM让压缩数据继续以内存形式存在,绕开Swap路径

在近日于捷克布拉格举行的Linux Plumbers Conference 2026(LPC 2026)上,Meta工程师展示了一项名为CRAM(Compressed RAM)的实验性内存压缩方案。该方案的目标是让压缩后的数据继续以内存形式存在,以此减少传统Swap路径带来的软件开销,而不是简单地替代ZRAM或zswap。

目前Linux系统普遍采用ZRAM与zswap实现内存容量扩展,二者均依赖Swap交换层逻辑。CRAM则采用了不同的设计,压缩数据仍可保持页表映射和页缓存状态,并支持Cacheline及Byte级访问,读取数据时无需像传统方案那样通过缺页异常触发软件解压。LPC官方资料将这一特征列为CRAM区别于ZRAM和zswap的关键。

复用现有内存管理机制,CRAM只读性能接近原生DRAM

CRAM的核心思路是将硬件压缩后的内存作为一种特殊的NUMA内存提供给Linux,而不是模拟成块存储设备。其实现依托Linux内核原生机制,构建一个专用的私有NUMA节点,其行为类似于一个虚拟化的影子计算单元。该设计使内核无需将其识别为存储设备,从而无缝复用全部现有内存管理功能,包括页迁移、内存气球化等机制。

这一设计针对的是传统内存压缩方案中的软件路径开销。对于只读数据,CRAM可以直接从压缩内存中读取,而无需先将数据换入普通内存再解压。在这种模式下,CRAM的表现可以接近原生DRAM水平。据悉,CRAM已经完成实际测试,在TAOBench和FIO基准测试中可以达到接近原生DRAM的性能。

读取性能达ZRAM的超400倍,写入优势收窄但仍优于ZRAM

此次演示披露的测试数据显示,在纯读取场景下,CRAM最差情况下可达到每秒约4.89亿次操作,ZRAM约为每秒110万次操作。按照该组数据计算,两者差距约为444倍,并非452倍;官方关于提升452倍的说法可能需要在理想环境中才能实现。

然而,当工作负载包含写入操作时,CRAM的优势会明显收窄。不过即便在叠加20%写入负载的严苛场景下——此时因压缩页无法原地覆写,需通过分页错误将Folio回迁至原始NUMA节点——CRAM仍保持ZRAM约5.4倍的运行效率。需注意的是,该数字应理解为特定基准测试结果,而非通用性能结论。

据悉,CRAM目前仍属于经过测试的内核服务原型,并非已经进入Linux主线的成熟功能。Meta此次公开的重点是探索如何利用现有Linux内存管理机制支持这种新型压缩内存,而非宣布一项已经完成标准化或商业化部署的产品。

推荐:电脑用的少,手机扫一扫,资讯快一步!

扫码关注我们

标签:

简讯快报

更多