Stranded DRAM at fleet scale: why half your server memory sits idle
TL;DR
Every server is bought with enough DRAM for its worst-case moment, so on average a large fraction of that memory is idle — "stranded" on a CPU that is not using it while a neighbor a rack away is memory-starved. Hyperscale measurements put the waste around a quarter to a half of all DRAM. Because memory is one of the biggest and now fastest-rising lines in a server's cost, stranded DRAM is real capital sitting dark. The fix is the same as for the GPU memory wall: stop welding memory to individual servers and pool it, so idle capacity in one place serves demand in another.
On this page
What "stranded" means
Memory is stranded when it is installed in a server, powered, and paid for, but cannot be used by any workload that needs it — because it is physically bolted to a CPU (or a VM) that happens not to need it right now. It is not broken and it is not free; it is simply unreachable by the job one rack over that is short on memory. Multiply that across thousands of servers and a large fraction of a fleet's most expensive component is doing nothing.
Why over-provisioning is structural, not sloppy
Stranding is not a procurement mistake; it falls out of how servers are sized. You buy each machine with enough DRAM for its peak — the worst-case working set — because a job that runs out of memory fails, and you cannot add DRAM to a running server. But workloads rarely sit at peak. The gap between peak-provisioned and average-used is idle by construction, and it exists on every machine at once.
Two forces widen the gap:
- Fixed ratios. Servers ship with a fixed DRAM-per-core ratio chosen for the hungriest tenant, so memory-light workloads over-provision massively.
- Isolation. In a virtualized fleet, memory rented to one VM cannot be lent to another even when idle — it is stranded inside the rental boundary.
What the hyperscale research actually measured
This is measured, not hand-waved. Microsoft Azure's Pond study (ASPLOS 2023) instrumented production cloud traces and found:
- 50% of VMs never touch 50% of the memory they rent — that memory is stranded inside the rental.
- Up to about 25% of total DRAM is stranded at any given moment.
- DRAM is more than 50% of server cost — so stranded memory is stranded capital, not a rounding error.
- Pooling across just 8–16 CPU sockets captures most of the achievable benefit; you do not need a giant pool.
Industry restatements land in the same band: most enterprise DRAM sits locked to CPUs at roughly 50–60% utilization. The precise number varies by fleet and workload; the direction does not.
Why this got expensive in the AI era
Stranded DRAM was always wasteful, but two things turned it from a footnote into a capital problem:
- Memory prices surged. DRAM and HBM prices rose sharply through 2025 in the AI memory supercycle, with high-bandwidth memory effectively sold out into 2026. Idle memory you already own is worth more, and replacing it costs more.
- AI made memory the dominant line. As the GPU memory wall pushes teams to buy capacity they do not compute against, the share of spend going to memory rises — and so does the absolute cost of leaving it stranded.
Put together: a fleet is paying premium prices for its most expensive component and using a fraction of it. That is the economic case for changing how memory is attached to servers.
Pooling: reclaim the idle instead of buying more
The fix mirrors the GPU-side answer: disaggregate the memory. Instead of each server owning a fixed, over-provisioned DRAM allotment, capacity moves into a shared pool that many servers draw from on demand. Idle memory in one place serves a shortfall in another, so the fleet is sized closer to its aggregate need rather than the sum of every server's individual peak — which is where the stranding lived.
Two fabrics carry the pool, and their status differs (the full comparison is in the hub): CXL memory pooling is the low-latency, load/store approach, real and advancing, but multi-host pooling across servers is still maturing toward fleet-scale deployment. RDMA / RoCEv2 disaggregation is a pool of DDR5 shared to many servers over standard lossless Ethernet, deployable today with the network you already run.
For a fleet that wants to reclaim stranded DRAM now, the Ethernet-based pool is the deployable path. A disaggregated-memory appliance — a rack of high-capacity DDR5 shared over RDMA/RoCEv2 — lets servers expand memory capacity and utilization without over-provisioning DRAM per server, which is precisely the stranding it is meant to end. The TORmem M1000 is that appliance: powered by AMD EPYC and high-capacity DDR5, serving a shared pool to multiple servers over RDMA over RoCEv2 so remote memory behaves close to local. It rides a low-latency Ethernet fabric of the kind built from the TORswitch and pluggable optics.
If your utilization dashboards show memory provisioned but idle across the fleet, tell us the server shapes, the workloads, and the fabric you run — we can help plan a pooled-memory configuration and source the appliance. Start with the GPU memory wall, or browse the hardware overview.
Frequently asked questions
What does "stranded DRAM" mean?
Memory that is installed, powered, and paid for but cannot be used by a workload that needs it, because it is physically tied to a CPU or VM that is not using it. It is idle capacity you already own but cannot reach from where the demand is.
How much server memory is actually idle?
Hyperscale research puts it high: Microsoft's Pond study found half of VMs never touch half their rented memory and up to about 25% of DRAM is stranded at any moment; industry restatements cite 50–60% CPU-locked utilization. The exact figure depends on the fleet and workload, but the direction is consistent.
Why not just buy less memory per server?
Because each server must cover its own worst-case moment or its jobs fail, and you cannot add DRAM to a running machine. Sizing every server for peak, independently, guarantees idle memory in aggregate. Pooling lets you size for the fleet's combined need instead of the sum of individual peaks.
How does memory pooling reclaim stranded DRAM?
It moves capacity into a shared pool that many servers draw from on demand, so idle memory in one place serves a shortfall in another. CXL is the low-latency version still maturing for multi-host use; an RDMA/RoCEv2 disaggregated-memory appliance does it over standard Ethernet today.
Last updated