Pond: CXL-Based Memory Pooling Systems for Cloud Platforms
- Huaicheng Li ,
- Daniel S. Berger ,
- Stanko Novakovic ,
- Lisa Hsu ,
- Dan Ernst ,
- Pantea Zardoshti ,
- Monish Shah ,
- Samir Rajadnya ,
- Scott Lee ,
- Ishwar Agarwal ,
- Mark D. Hill ,
- Marcus Fontoura ,
- Ricardo Bianchini
Proceedings of the International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS) |
Organized by ACM
Distinguished Paper Award
Public cloud providers seek to meet stringent performance requirements and low hardware cost. A key driver of performance and cost is main memory. Memory pooling promises to improve DRAM utilization and thereby reduce costs. However, pooling is challenging under cloud performance requirements. This paper proposes Pond, the first memory pooling system that both meets cloud performance goals and significantly reduces DRAM cost. Pond builds on the Compute Express Link (CXL) standard for load/store access to pool memory and two key insights. First, our analysis of cloud production traces shows that pooling across 8-16 sockets is enough to achieve most of the benefits. This enables a small-pool design with low access latency. Second, it is possible to create machine learning models that can accurately predict how much local and pool memory to allocate to a virtual machine (VM) to resemble same-NUMA-node memory performance. Our evaluation with 158 workloads shows that Pond reduces DRAM costs by 7% with performance within 1-5% of same-NUMA-node VM allocations.