据媒体报道,Meta工程师Gregory Price本周在布拉格举行的Linux Plumbers Conference上展示了一项名为“压缩内存”(CRAM)的Linux技术方案。面对内存短缺、价格高企及容量需求攀升的现状,Meta团队致力于开发此项技术以应对挑战。

性能逼近原生DRAM

CRAM采用硬件卸载压缩技术,同时保留了对压缩内存的缓存行及字节级访问能力。测试数据显示,其性能优于现有的ZRAM和Zswap方案,运行速度接近原生DRAM。对于依赖Zswap或ZRAM的用户而言,CRAM在只读数据读取上与原始DRAM性能相当;在写入方面,其速度远超ZRAM、Zswap及传统交换空间(swap)。

报道指出,支持CRAM所需的大部分独立组件已合并到Linux主线内核中。该技术使用私有的NUMA节点(本质上是一个“幽灵CPU”),而非伪装成块设备。这使得Linux能够继续利用迁移和气球机制等内存语义来管理CRAM。

写入性能仍有巨大优势

由于CRAM存储在RAM中并被视作RAM,具备完整的缓存行/字节访问能力,其只读访问几乎无延迟,仅产生硬件卸载压缩的成本。即便在启用写入操作的最坏测试情况下(20%写入比例),CRAM的速度仍比ZRAM提升5.4倍。尽管这一数据与只读情况下452倍的性能提升存在落差,但加速效果依然显著。写入时的性能瓶颈主要归因于页面错误及将folio迁移回原始NUMA域的需求,因为直接写入压缩数据会导致损坏。

尽管CRAM源自Meta,其明显目标受众是大型Linux服务器,但鉴于ZRAM和Zswap在Linux生态系统中的广泛应用——包括Steam Deck等资源受限设备,且许多发行版默认启用这些技术——CRAM有望为这些设备带来显著提速。随着剩余实现问题的解决,该技术预计最终将完整进入内核。