Meta推出CRAM内存压缩技术,性能提升452倍

来源:半导纵横发布时间:2026-10-10 16:23
存储
Meta
生成海报
该研究主要面向大型Linux服务器以及数据中心,用于缓解内存成本上涨带来的压力。

一款名为CRAM(Compressed RAM)的全新压缩模型,为内存压缩技术开辟了一条截然不同的道路。它将压缩数据保留在内存中,完全避开swap(交换空间)机制,性能表现最高可达ZRAM的452倍。

内存压缩早已成为大多数操作系统行之多年的功能,在Linux,最热门的选项是zswap与ZRAM,这两种本质上属于swap层级的功能,CRAM则是一套全新做法,宣称能大幅提升性能表现。

zswap是一项Linux内核的虚拟内存压缩功能,可为将要交换的页面提供压缩回写缓存。当内存页将要交换出去时,zswap不将其移动到交换设备,而是对其执行压缩,然后存储到系统RAM内动态分配的内存池中。回写到实际交换设备的动作则会延迟,甚至能完全避免,从而显著减少Linux系统用于交换的I/O;副作用则是压缩所需的额外CPU周期。

ZRAM通过在RAM内的压缩块设备上分页,直到必须使用硬盘上的交换空间,以避免在磁盘上进行分页,从而提高性能。由于zram可以用内存替代硬盘为系统提供交换空间的功能,zram可以在需要交换/分页时让Linux更好利用RAM,在物理内存较少的旧电脑上尤其如此。

CRAM由Gregory Price以及Meta的工程团队提出,相关成果近日在布拉格举办的Linux Plumbers Conference发布。促成CRAM的核心关键,是研究团队意识到压缩内存带来的性能损耗,绝大部分并非来自压缩过程本身,而是缺页异常以及swap的运行行为。Gregory Price的团队思路可以概括为:“如果我们仿照ZRAM的思路,但全部在内存内执行,而不是以swap的形式实现。”

这句话虽然是对一个极度复杂项目的简化概括,但CRAM显然是利用Linux现有机制,实现内存压缩性能的大幅提升,尤其是在读操作方面。它采用一个私有NUMA节点(本质是一颗虚拟CPU),而非伪装成块设备。这样一来,Linux就可以沿用全部内存语义来管理CRAM。

其中一个关键机制是Chicken Bit,用于告知Linux:当系统忙于内存分配管理时,需要停止尝试使用CRAM。Gregory Price的团队目前尚未解决该问题,将其定性为一项待攻克难题,也是持续研究的方向。

由于CRAM数据存储在内存中,具备完整的缓存行/字节级访问能力,因此可以只读方式访问,延迟极低,仅需要承担硬件卸载压缩带来的开销。

即便开启写入功能,CRAM的速度依旧远超ZRAM。在写入占比20%的最差测试场景下,性能依旧领先5.4倍。对比只读场景下452倍的性能优势,虽然降幅明显,但5.4倍的速度提升依旧是相当亮眼的成果。

该研究主要面向大型Linux服务器以及数据中心,用于缓解内存成本上涨带来的压力。不过ZRAM与zswap已经在整个Linux生态中广泛使用,就连Steam Deck这类系统资源有限的设备也在使用。CRAM有望为部分设备带来可观的性能提升。

本文转自媒体报道或网络平台,系作者个人立场或观点。我方转载仅为分享,不代表我方赞成或认同。若来源标注错误或侵犯了您的合法权益,请及时联系客服,我们作为中立的平台服务者将及时更正、删除或依法处理。

评论
暂无用户评论