Youβve been doing it wrong. Your entire server rack is a lie.
Let me paint you a picture. Youβre running a hyperscale fleetβsay, 100,000 nodes. Every single one of those boxes has a CPU, some local DRAM, a few NVMe drives, and a NIC. Itβs neat. Itβs tidy. Itβs the way weβve built data centers for 30 years.
Now, ask yourself this simple, gut-wrenching question: How often is that box perfectly balanced?
In production, we all know the answer: almost never.
Youβve got memory-bound databases screaming for 512GB while their CPU sits at 15% utilization. Or compute-heavy ML training jobs maxing out 128 cores while leaving 80% of that precious, expensive HBM memory untouched. We throw entire physical servers at workloads, and we waste 40-60% of the resources inside them. We call this βover-provisioning.β I call it burning money with a side of thermal exhaust.
The industry has been skirting this issue with hypervisors, cgroups, and container orchestrationβsoftware band-aids on a hardware hemorrhage. But a fundamental shift is happening. The future of resource utilization in the hyperscale data center isnβt about better scheduling. Itβs about unbundling the monolith.
Welcome to the era of Disaggregated Compute and Memory (DCM) βwhere the CPU, the RAM, and the storage stop being roommates and start living in separate studios, communicating over ultra-low-latency interconnects.
π§ The End of the βServerβ as We Know It
Letβs get the terminology straight. We arenβt building servers anymore. We are building resource pools.
In a disaggregated architecture, the compute, memory, and storage are no longer physically glued to the same PCB. Instead, they exist as independent, high-performance fabric-attached components. Your job scheduler doesnβt ask βWhich server has 4 free cores and 32GB of RAM?β
It asks: βI need 12 cores from the West Compute Cluster, 64GB of remote memory from the DRAM Pool, and 2TB of NVMe from the Flash Pool. Route them to my container.β
This isnβt science fiction. Itβs happening today in the densest racks at Google, Meta, and Microsoft.
ποΈ The Architecture: What the Hell Actually Changes?
To understand the why, you have to understand the how. Letβs break down the three pillars of disaggregation.
1. Compute Only: The CPU Bricks
Imagine a chassis that is purely compute. No DIMM slots. No local SSDs. Just a processor (AMD EPYC, Intel Xeon, or even an ARM-based Ampere), a small amount of cache, and a high-speed network interface (CXL, Ethernet, or InfiniBand).
These are Compute Blades or Compute Sleds. They do one thing: burn cycles. When a workload needs more CPU, you spin up another blade. No memory constraints. No I/O bottlenecks from a local disk. Itβs a pure, unadulterated compute node.
The tradeoff? Latency. Accessing remote memory takes longer than accessing local DIMMs. The entire game of DCM is reducing that latency tax to near-zero.
2. Memory Only: The Giant RAM Pools
This is the most radical part. Memory Pools (or Memory Disaggregation Units / SmartNICs with memory) are dumb, high-density trays of DRAM. No CPU. No OS. Just silicon, power, and a CXL controller.
These devices expose a massive, shared memory address space. Your compute blade issues a load instruction. It goes over the Compute Express Link (CXL) fabric, hits the memory pool, and returns the data.
Why not just use NUMA? Traditional Non-Uniform Memory Access (NUMA) still keeps memory physically close to a CPU socket (within the same node). DCM removes the physical distance entirely. You can have a pool of 4TB of DRAM shared by 10 compute blades. When one blade finishes its job, the memory is instantly reallocated to another. No rebooting. No moving data.
3. Storage: The NVMe Fabric
Weβve had storage disaggregation for a while (iSCSI, FC, NVMe-oF). But the new twist is composabilityβtreating storage as a logical unit that can be snapped to compute at the speed of the fabric.
- Local flash? Gone.
- Shared NVMe-oF targets? Welcome.
The latency from the compute blade to the storage pool via PCIe Gen 5/6 over 100G/400G Ethernet is now measured in microseconds. This makes un-cacheable, random I/O workloads (like databases) feasible on a fully disaggregated stack.
π§ͺ The Secret Sauce: CXL (Compute Express Link)
If you only remember one acronym from this post, make it CXL. This is the protocol that makes the whole dream possible.
AMD, Intel, Google, Microsoft, and Meta co-created CXL. It runs over the physical PCIe interface (Gen 5 and 6) but uses a coherent memory protocol. In plain English:
- PCIe lets you talk to a device (like a NIC, SSD).
- CXL Type 3 devices (memory expanders) let the CPU talk to memory as if it were local.
The magic is cache coherency. When Compute Blade A writes to a memory address in the pool, Blade B immediately sees the updated value (with some protocol overhead). This isnβt remote DMA (RDMA) where you have to manually synchronize buffers. Itβs hardware-coherent shared memory.
Why this matters for utilization:
- No more memory stranding. Currently, if a server has 1TB of RAM and you only need 300GB, the other 700GB is wasted. With CXL memory pools, you only allocate what you need.
- Memory bandwidth multiplication. You donβt just add capacity. You add channels. A compute blade can access multiple CXL controllers simultaneously, giving you massive memory bandwidth for HPC workloads.
π₯ The Real-World Use Cases (Where the Rubber Meets the Silicon)
Letβs move from theory to murder on the ground.
π Case 1: The Memory-Hungry Database (The βJVM Heapβ Nightmare)
Every SRE has lived this horror: You have a Cassandra or Redis cluster. Data grows. You need to add memory capacity. The only option? Buy a new, more expensive server with more DIMMs.
- Disaggregated approach: Just attach another CXL memory expander to the same compute node. No data migration. No cluster rebalancing. The database sees the new memory as local NUMA node 2. Zero downtime scaling.
π§ Case 2: The Heterogeneous Training Cluster (ML at Scale)
Training a large language model (LLM) is a terrible fit for monolithic servers. You need:
- A lot of GPU compute.
- A lot of CPU memory for data loading/preprocessing.
- A lot of high-bandwidth memory (HBM) on the GPUs.
With DCM, you build a logical server out of:
- 8x GPU compute blades.
- 2x CPU compute blades.
- 1 CPU memory pool (2TB DRAM) for the data pipeline.
- 1 Flash pool (10TB NVMe) for checkpointing.
The GPU blades donβt care where the data comes fromβthey just see a coherent memory space. When training finishes, you return the GPU blades to the pool for inference, but keep the CPU memory pool for a different batch-processing job. Utilization goes from 30% to 85%+.
βοΈ The Hype vs. The Reality Check
Letβs talk about the hype. Over the last 2 years, every hyperscaler and their mother has announced a DCM program.
- Google: Has been running CXL-based memory pooling internally for years (Project Antler).
- Meta: Announced a massive Open Compute Project (OCP) summit on disaggregation.
- Intel: Pushing Sapphire Rapids with CXL 1.1 + CXL memory expanders.
- AMD: EPYC Genoa with CXL 1.1 and Zen 4 memory die disaggregation.
- Rambus, Samsung, Micron: All making the physical CXL memory modules.
Why the hype? Because Mooreβs Law for DRAM density is dead. We canβt cram more gigabytes into a single DIMM without huge costs. The only way to scale memory is to pool it.
The hard reality:
- Latency is king. A local DDR5 access is ~80-100ns. A CXL-attached memory pool over a PCIe fabric is currently ~250-350ns. For latency-sensitive workloads (high-frequency trading), this is death. For 95% of hyperscale workloads (web serving, analytics, batch), itβs perfectly fine.
- Bandwidth contention. If 10 compute blades hammer the same CXL pool, you can saturate the memory controllers. Quality of Service (QoS) at the fabric level is still immature.
- Power overhead. CXL controllers and retimers consume power. The βsavingsβ from better utilization have to outweigh the extra silicon needed for the fabric.
π§ The Engineering Challenge: Making It Work at Hyperscale
This isnβt a βbuy a plug-in cardβ solution. It requires deep, ugly, systems engineering.
The Software Stack Has to Catch Up
Our entire operating system model (Linux, Win) assumes memory is local. The memory controller is on the CPU die. NUMA is a hack. CXL changes the game.
Key engineering problems being solved right now:
- OS/Scheduler Awareness: The Linux kernelβs
numa_balancingandcgroupcode is being rewritten to understand CXL memory tiers.- We need to know: Is this memory local? CXL-attached? Or remote over a network?
- Auto-Tiering: Hot data stays in local DDR. Cold data gets evicted to slow, cheap CXL memory. This is essentially virtual memory 2.0, but at nanosecond granularity.
- Fabric Congestion Control: The CXL fabric needs flow control. A bursty job on one compute blade shouldnβt starve another of memory bandwidth. This requires hardware-level credit-based flow control (similar to InfiniBand, but at the cache line level).
- Failover & Resilience: If a memory pool loses power, every compute blade attached to it loses access. We need redundant paths. Every CXL endpoint needs to be multipathed. This adds insane complexity to the physical wiring.
πΈ The Economic Argument: Why Hyperscalers Are Dropping Billions
Letβs do the math. You own a 1MW data center.
Old way: 1,000 servers, each with 2x 28-core CPUs and 1TB DRAM. Total DRAM: 1PB. Total Cores: 56,000.
Utilization nightmare: Average core utilization: 30%. Average memory utilization: 50%.
New way (DCM): 800 compute blades (no memory), 200 memory blades (4TB each). Total DRAM: still 1PB. Total Cores: 44,800 (slightly less, but you can burst).
The key metric: Throughput per dollar of silicon.
- You donβt buy DRAM for a server that will only run 30% of the time.
- You buy DRAM for the pool, which runs 95% of the time.
- You can now overcommit memory. Just like VMs overcommit CPU, memory pools overcommit DRAM. If you know 90% of jobs donβt use their allocated memory, you can buy 20% less DRAM.
Bottom line: Hyperscalers estimate a 30-40% reduction in total cost of ownership (TCO) for large-scale in-memory workloads. Thatβs billions in CapEx savings.
π§© The Future: Composable Infrastructure or βThe Data Center as a Computerβ
This is where we get meta. If you take disaggregation to its logical conclusion, you get Composable Disaggregated Infrastructure (CDI) .
Imagine a software-defined hardware layer:
- You have a rack (or a pod) with:
- 48 Compute Sleds (CPU only).
- 12 GPU Accelerator Sleds.
- 16 Memory Pool Sleds.
- 8 Storage Pool Sleds (NVMe).
- A high-speed optical fabric (CXL over Photonics).
Your orchestrator (Kubernetes, Slurm, or a new-fangled resource manager) says: βI need a virtual machine for Web Tier 3. Give it 4 cores, 16GB RAM, 200GB SSD.β
The orchestrator talks to a Resource Composer. It selects:
- Compute: Sled #7 (has 6 free cores).
- Memory: Pool #3 (has 64GB free).
- Storage: Pool #5 (has 200TB free).
It programs the fabric. A logical PCIe domain is created. The compute sled sees Pool #3βs memory as a local NUMA node. The OS boots. The workload runs. When it dies, the fabric tears down. Zero leftover waste.
This is the holy grail. And we are only 2-3 product cycles away from it being mainstream in hyperscale.
β‘ Final Thoughts: Get Ready for the Great Unbundling
The monolithic server is a legacy artifact of Mooreβs Law and optical interconnect limitations. Both are crumbling.
- Mooreβs Law is dead for scaling individual core performance. We scale via heterogeneity (CPU, GPU, DPU, TPU) and composition.
- Optical interconnects (CXL over silicon photonics) are finally becoming cost-effective, removing the distance penalty.
If you are an engineer building infrastructure today, start thinking in terms of pools, not nodes. Start thinking about composability, not configuration. Start looking at CXL the same way you looked at NVMe 10 years agoβa protocol that will unseat the legacy architecture.
The future of the data center isnβt a collection of servers. Itβs a single, giant, disaggregated computer.
And it starts now.
P.S. β If you want to get your hands dirty, check out the CXL specification (v3.0) and the Open Compute Project βs βOpen Domain-Specific Architecture (ODSA)β subproject. The hardware is getting ready. The kernel patches are landing. Donβt be left with a rack full of monolithic boxes.
What are you disaggregating first? Memory? Storage? Or your teamβs monorepo? π§