资讯中心

  • Home
  • long8唯一官网 - Meta 推出压缩内存技术:读取速度媲美传统 DRAM

long8唯一官网 - Meta 推出压缩内存技术:读取速度媲美传统 DRAM

在当前内存资源短缺、价格持续上涨以及日益增加的内存需求的紧迫形势下,Meta 的工程师们不遗余力地研发了一种革命性的解决方案——压缩内存(Compressed RAM,简写为“CRAM”)。这种技术通过硬件卸载的方式实现内存压缩,使得访问被压缩内存的数据时依然能够保持以缓存行(cacheline)和字节为单位的粒度,这一优势相比于ZRAM和Zswap等传统方案表现得尤为突出。更令人振奋的是,CRAM 的性能已达到了近乎原生 DRAM 的水平。

about image

10月5日,Meta 工程师格雷戈里·普赖斯在布拉格举行的 Linux Plumbers Conference(LPC 2026)上详细介绍了这项创新的 Linux 压缩内存项目。为实现 CRAM 所需的多种组件已经成功集成进主线内核。对那些已经在使用 Zswap 或 ZRAM 的用户而言,CRAM 能够提供几乎与原生 DRAM 相当的读取速度。

在性能测试中,CRAM 的只读速度与原生 DRAM 不相上下,尤其是在内存写入方面,其速度远超 ZRAM、Zswap 以及传统的磁盘交换。考虑到当今 Linux 系统对最大化内存容量的迫切需求,这些结果无疑让人刮目相看。在只读测试场景中,匿名页面占用46 GB,写入比例为零,各方案下可用的物理内存都为36 GB,而对应 DRAM 的上限是54 GB。在偏斜访问模式(Zipf 0.99)下,DRAM 的上限为每秒3.25亿次操作,而 CRAM 则达到了3.21亿次,远超 ZRAM(约970万次)和磁盘交换(约310万次),同时,Zswap(约32万次)也显得力不从心。在均匀随机访问的极端情况下,DRAM 的操作上限为4.98亿次,CRAM 也表现出色,达到了4.89亿次,相比之下,ZRAM 仅为110万次,磁盘交换约36万次,Zswap 约4.3万次,这一组数据令人瞩目。 long8唯一官网

即使在引入写入操作的情况后,CRAM 仍然明显优于 ZRAM、Zswap 以及普通磁盘交换。在可用的36 GB 实体内存条件下,写入 CRAM 会导致缺页并将该页面移回 DRAM,而读取操作则不会遇到缺页问题。CRAM 支持完整的缓存行与字节级访问,基准测试中,在纯读取模式下,即便是最差情况下也能达到每秒4.89亿次的操作,而 ZRAM 仅为每秒110万次,CRAM 的速度领先了整整452倍。即便在加入20%写入负载后,由于压缩数据无法直接原位覆盖,必须通过页面错误将数据移回原生 NUMA 节点,在最差的情况下,CRAM 的速度依然是 ZRAM 的5.4倍。

普赖斯特别强调,CRAM 不应仅仅作为交换分区来处理,单纯依赖硬件进行压缩是毫无意义的。他进一步列举了各项控制机制,包括写控制(先只读,再将页面提升为可写)、分配控制(可能占用超出实际容量)、内存气球技术进行动态扩缩,以及如何合理记账和处理内存不足(OOM)问题。他指出,内核目前已经能够实现大部分这些功能。

about image

随着对 Linux 可用内存容量需求的日益凸显,这项工作未来的发展动向同样值得关注。相关代码预计不久将全面融入上游系统。这一技术的发展具有重要意义,尤其是在全球受限的内存资源情况下,它的应用前景广阔。 long8唯一官网

about image

发表评论