Meta 在 Linux Plumbers 大会提出 CRAM 内存压缩模型
Meta 的 Gregory Price 团队提出的 CRAM 将压缩数据留在内存中,不再依赖交换层,据称读取性能最高可达 ZRAM 的 452 倍。
据 tomshardware.com 报道,Meta 的 Gregory Price 及其团队在 Linux Plumbers' Conference 上提出了一种新的 Linux 内存压缩模型 CRAM。该模型把压缩后的数据保留在内存中,而不是作为交换层(swap-layer)的一项功能来运行。
据称,在只读场景下,CRAM 的性能最高可达 ZRAM 的 452 倍。在最差的只读测试用例中,CRAM 每秒可执行 4.89 亿次操作,而 ZRAM 为每秒 110 万次。当写入比例达到 20% 时,在测试中最差的情况下,CRAM 仍比 ZRAM 快 5.4 倍。
与现有方案不同,CRAM 使用一个私有的 NUMA 节点,而不是把自己伪装成一个块设备。此外,它还包含一个“Chicken Bit”机制:当 Linux 正在管理内存分配时,该机制会阻止系统使用 CRAM,以避免出现级联故障。
背景
Zswap 和 ZRAM 是 Linux 中最流行的内存压缩方案,二者本质上都属于交换层功能。它们被广泛应用于整个 Linux 生态,包括 Steam Deck 这类设备,许多发行版默认启用其中之一。
快速问答
CRAM 与 ZRAM 的主要区别是什么?
CRAM 将压缩数据保留在内存中,并采用私有的 NUMA 节点,而不是像 ZRAM 那样把自己伪装成块设备。
CRAM 的性能提升有多大?
据称在只读场景下性能最高可达 ZRAM 的 452 倍;在写入比例为 20% 时,测试中最差情况下仍比 ZRAM 快 5.4 倍。