Meta展示CRAM内存压缩原型 读取峰值4.89亿次每秒

IT时代网10月8日消息,Meta工程师在10月5日于捷克布拉格举行的Linux管道技术大会上展示了名为CRAM(Compressed RAM)的实验性内存压缩方案。该方案的目标并非简单替代ZRAM或zswap,而是让压缩后的数据继续以「内存」的形式存在,从而避免传统Swap路径中的软件开销。

在现有方案中,ZRAM会在内存中创建压缩块设备,内核需要按照Swap路径处理其中的数据;CRAM则让压缩数据保持页表映射和页缓存状态,支持缓存行级与字节级访问,读取数据时无需通过缺页异常触发软件解压流程,这也是其区别于ZRAM、zswap的关键特征。

CRAM的核心思路,是将硬件压缩后的内存作为一种特殊的NUMA内存提供给Linux,而不是模拟成块存储设备。它使用一个严格控制的私有NUMA节点,让内核继续沿用现有的内存管理机制,包括内存迁移、回收、降级、内存气球机制、空闲页报告以及NUMA内存均衡等。对于只读数据,CRAM可以直接从压缩内存中读取,无需先换入普通内存再解压。

测试数据方面,在纯读取场景的最差情况下,CRAM达到每秒约4.89亿次操作,而ZRAM约为每秒110万次操作,差距约444倍;当工作负载包含写入操作时,由于压缩数据无法原位修改,优势会明显收窄,最差情况下仍约为ZRAM的5.4倍。这些数字应理解为特定基准测试结果而非通用结论。

需要说明的是,CRAM目前仍属于经过测试的内核服务原型,尚未进入Linux主线。Meta工程师也坦承,实现CRAM所需的大部分基础设施仍需社区继续打磨,距离成为默认内存方案还有相当距离。

注:本文综合自IT之家等,文中包含AI辅助创作的内容。

编辑:林一舟

THE END