在近日于捷克布拉格举行的Linux Plumbers Conference 2026(LPC 2026)上,Meta工程师公开了一项名为CRAM(Compressed RAM)的实验性内存压缩方案。该方案于10月5日亮相,其设计目标并非直接取代现有的ZRAM或zswap,而是试图让压缩后的数据继续以“内存”形态参与系统管理,从而绕开传统Swap路径带来的软件开销。
当前Linux生态中,ZRAM和zswap是两种主流内存压缩手段。ZRAM在内存中创建压缩块设备,内核需按Swap路径处理数据;zswap则作为前端压缩缓存。CRAM的差异在于,压缩数据仍可维持页表映射和页缓存状态,并支持Cacheline及Byte级访问。这意味着读取时无需触发缺页异常,也就省去了传统方案中软件解压的流程。LPC官方资料将这一特性视为CRAM与ZRAM、zswap的核心区别。
CRAM的实现思路是将硬件压缩后的内存作为一类特殊的NUMA内存交给Linux内核,而非模拟成块存储设备。具体而言,它使用一个严格控制的私有NUMA节点,使内核能够继续沿用现有的内存管理机制,包括内存迁移、回收、降级、内存气球机制以及空闲页报告等功能。
根据LPC官方披露的信息,CRAM已完成实际测试。在TAOBench和FIO基准测试中,其只读性能可以达到接近原生DRAM的水平。这一结果意味着,在特定工作负载下,压缩内存的访问延迟可能不再成为显著瓶颈,也为Linux内存压缩方案提供了一条区别于ZRAM和zswap的新探索方向。