Meta's CRAM reads compressed Linux memory up to 452x faster than ZRAM by keeping it out of swap
Meta's Gregory Price showed Linux Plumbers a compressed-memory design, CRAM, that reads up to 452x faster than ZRAM by keeping pages out of swap. His slides still list a compressed host's usable capacity as an open problem for anyone sizing servers around it.
The Engineer · Build desk
What happened
- CRAM presents compressed memory to the kernel as a private NUMA node instead of a block device, so Linux can still migrate and balloon it like ordinary RAM.
- With writes making up 20% of operations, the worst case tested, CRAM's advantage over ZRAM fell to 5.4x.
- A "Chicken Bit" makes Linux stop using CRAM while it is busy managing allocations, so writes that outpace allocation do not set off cascading failures.
- Phoronix reports that most of the individual kernel pieces CRAM depends on are already in mainline.
Why it matters
- What it limits constraint Until the kernel can count logical memory on a compressed node, operators sizing memory-tight hosts have to plan as if CRAM adds no guaranteed capacity.
- Who has to decide decision Whether CRAM pays off on a given host depends on how often its compressed pages get written, so write share has to be profiled before choosing it over ZRAM.
- Who has to decide decision If CRAM is merged, distributions that ship ZRAM or zswap on by default, down to machines like the Steam Deck, would have a non-swap option to weigh for that default.
Next story · Product · 2h ago
Meta says it fixed Ray-Ban glasses that recorded conversations without the wake phraseConfirmed4 publishers
Price's premise can be checked against his own numbers. As Tom's Hardware reads the slides, compression is a small part of the cost. Most of the penalty is the fault and the swap handling around it [10]. zswap and ZRAM are both swap-layer features [11]. Reaching a compressed page in either one goes through the path Price's team found expensive [10][11].
CRAM's read path avoids that path. The compressed data sits in RAM and is treated as RAM, with full cacheline and byte access, so a read costs little beyond hardware-offloaded compression [4]. Price's slide said CRAM "runs at DRAM speed" [5]. Phoronix reports read-only data matching raw DRAM performance [6].
Writes give the premise its best evidence. Compressed data cannot be written in place. A write has to page fault and migrate the folio back to its original NUMA node [3]. If compression were the main cost, the read-only and write-mixed results would sit close together. From the read-only peak to the worst write mix tested, CRAM's lead shrinks by a factor of about 84 [19].
For the headline figure to carry over to another host, the workload has to resemble the test. The 452x number comes from a read-only case [13]. The read path also depends on hardware-offloaded compression [4], and neither report says which hardware the tests ran on. Even the worst read case reported, 489 million operations per second against ZRAM's 1.1 million, works out to about 445x [14][20].
Sizing is the harder question. Compressibility ranges from piles of zeros, which compress perfectly, to data that is already compressed. That leaves no settled way to know how much logical memory a host holds or when it will run out, and the slides list the problem as unsolved and under research [7]. The Chicken Bit acts at the moment writes outrun allocation, a cascade the presentation calls a "poison storm" [15][18]. It is a fair name. Capacity planning needs a number before that moment arrives. I would not count CRAM's compression ratio as headroom on a memory-tight host until the kernel can report what a compressed node actually holds.
Tom's Hardware's account comes secondhand from the slides. "My explanation of CRAM might not be completely correct," Tom's Hardware contributor Zak wrote, adding that he "wasn't at the Linux Plumbers' Conference in Prague to hear the presentation directly" [17]. ZRAM and zswap run across the Linux ecosystem, down to the Steam Deck, and many distributions enable one of them by default [16]. CRAM is not in the kernel yet, and Tom's Hardware expects it to land only once the remaining implementation questions are answered [9].
What to watch
- Whether Price's team proposes a way for the kernel to report usable capacity on a compressed node, the problem the slides list as open.
- CRAM patch postings for the kernel, and which of the pieces they need are still outside mainline.
- Independent benchmarks with write shares above 20%, or on hardware without compression offload.
Clarity's read
What the record supports and how the coverage leans. The claims behind it follow.
Reality
- Evidence40
- Adoption5
- Hype gap+45
- Incentives50
- Confidence45
Claim ledger
Ranked by verification strength, evidence, and original report placement.
- [1]
Gregory Price of Meta presented Compressed RAM (CRAM) for Linux at the Linux Plumbers Conference (LPC 2026) in Prague.
- [2]
With writes enabled, CRAM was still 5.4x faster than ZRAM in the worst tested case of 20% writes.
- [3]
The performance drop with writes comes from the need to page fault and migrate folios back to the original NUMA domain, because compressed data cannot be written directly.
- [4]
Because CRAM is stored in RAM and treated as RAM, with full cacheline/byte access, it can be read with little delay, just the cost of hardware-offloaded compression.
- [5]
"runs at DRAM speed"
- [6]
Read-only data is shown to be as fast as raw DRAM performance, and for writes CRAM is much faster than ZRAM, zswap or plain swap.
- [7]
Compressibility varies from piles of zeroes (perfectly compressible) to already-compressed data, so knowing how much logical RAM a system has and when it will run out is presented in the slides as an unsolved problem and an area of ongoing research.
- [8]
Most of the individual pieces needed to support CRAM are already mainline.
- [9]
CRAM has not yet been merged; Tom's Hardware hopes it finds its way into the kernel once the remaining implementation questions are answered.
- [10]
CRAM was conceptualized by Gregory Price and his team at Meta. The central realization behind it is that the largest portion of compressed memory's performance hit is not the compression, which is tiny, but the fault itself and the swap behavior.
- [11]
In Linux the most popular memory compression options are zswap and ZRAM, and both are swap-layer features.
- [12]
CRAM uses a private NUMA node instead of pretending to be a block device, which lets Linux keep using its memory semantics, including migration and ballooning, to manage CRAM.
- [13]
CRAM offers up to 452x the performance of ZRAM, in the read-only case.
- [14]
In the worst case on reads, CRAM did 489 million operations per second versus ZRAM's 1.1 million.
- [15]
A "Chicken Bit" tells Linux to stop trying to use CRAM while it is busy managing allocations, stopping cascading failures when writes outpace CRAM's ability to allocate them.
- [16]
ZRAM and zswap are used across the Linux ecosystem, even on machines as constrained as the Steam Deck, and many distributions enable one or the other by default.
- [17]
"My explanation of CRAM might not be completely correct; I wasn't at the Linux Plumbers' Conference in Prague to hear the presentation directly"
- [18]
The presentation calls the cascading failure a "poison storm".
- [19]
From the 452x read-only peak to the 5.4x result at 20% writes, CRAM's lead over ZRAM shrinks by a factor of about 84.
- [20]
The worst read case, 489 million operations per second against ZRAM's 1.1 million, is about 445x.
Sources
2 independent publishers whose own reporting we read for this story.
- phoronix.comMeta Developing Compressed RAM "CRAM" For Linux: Better Than ZRAM & Zswap
1 article · October 6, 2026
- tomshardware.comNew Linux tech compresses memory in RAM, as RAM, for 452x speedup
1 article · October 7, 2026
Topics and entities
Topics
- Linux kernel memory management
- Linux memory compression
Entities
- Linux kernel
- Meta
- Linux Plumbers Conference
- CRAM (Compressed RAM)