该方案的目标并非简单替代 ZRAM 或 zswap,而是让压缩后的数据继续以“内存”的形式存在,从而避免传统 Swap 路径中的软件开销。LPC 官方资料显示,CRAM 已经完成实际测试,在 TAOBench 和 FIO 基准测试中可以达到接近原生 DRAM 的性能。
众所周知,目前 Linux 常见的内存压缩方案包括 ZRAM 和 zswap。ZRAM 会在内存中创建压缩块设备,内核需要按照 Swap 路径处理其中的数据;而 CRAM 的设计则不同,压缩数据仍可保持页表映射和页缓存状态,并支持 Cacheline 及 Byte 级访问,因此读取数据时无需像传统方案一样通过缺页异常触发软件解压流程。LPC 官方介绍称,这也是 CRAM 区别于 ZRAM、zswap 的关键特征。
CRAM 的核心思路是将硬件压缩后的内存作为一种特殊的 NUMA 内存提供给 Linux,而不是模拟成块存储设备。
LPC 资料显示,CRAM 会使用一个严格控制的私有 NUMA 节点,让内核能够继续使用现有的内存管理机制,包括内存迁移、回收、降级、内存气球机制、空闲页报告以及 NUMA 内存均衡等。
这一设计针对的是传统内存压缩方案中的软件路径开销。对于只读数据,CRAM 可以直接从压缩内存中读取,而无需先将数据换入普通内存再解压。在这种模式下,CRAM 的表现可以接近原生 DRAM 水平。
根据此次演示披露的测试数据,在纯读取场景下,CRAM 最差情况下可达到每秒约 4.89 亿次操作,而 ZRAM 约为每秒 110 万次操作。按照这组数据计算,两者差距约为 444 倍,并非 452 倍,因此官方“提升 452 倍”的说法可能需要在理想环境中才能实现。
当工作负载包含写入操作时,CRAM 的优势会明显收窄。由于压缩数据无法直接在原位置进行修改,写入时需要通过缺页处理将对应 Folio 迁移回原生 NUMA 节点,再完成修改。
即便如此,素材所述最差情况下 CRAM 仍达到 ZRAM 约 5.4 倍的性能,但这一数字同样应理解为特定基准测试结果,而非通用性能结论。
LPC 官方资料显示,CRAM 目前仍属于经过测试的内核服务原型,并非已经进入 Linux 主线的成熟功能。
Meta 工程师 Gregory Price 介绍称,实现 CRAM 所需的大部分 Linux 内核基础机制已经存在,目前需要进一步解决的是如何让这种“实际容量与物理容量不一致”的内存设备符合 Linux 现有的内存模型。
提醒:目前 CRAM 仍处于研发和社区讨论阶段,尚不能视为即将进入 Linux 主线的正式功能。Meta 此次公开的重点是探索如何利用现有 Linux 内存管理机制支持这种新型压缩内存,而非宣布一项已经完成标准化或商业化部署的产品。
特别
游客反映拉萨跟团游遭强迫购物,买上万元“藏药”;职能部门突击检查过程中,导游弃团而逃,有人翻窗离开……
“遇见你,这辈子都到头了!”苏州电网的清华硕士相亲被嫌弃,女方自制“简历式”表格,阐述自己的优势!
余承东亲自为霍英东集团总裁霍震寰交付新车尊界V800;三台同款车型在懂车帝紧急制动测试中刹车踏板支架均出现物理断裂,尊界汽车暂未回应
贵州印江G352国道山体落石,一载5人私家车被砸中,司机不幸身[*];当地:路段已封闭,会发通报
听粉丝朋友推荐去美国的商场,带安吉拉再挑几件衣服,我们这18线小城,想买到合适衣服着实不容易










