Flexible Swapping for the Cloud
<|reference_start|>Flexible Swapping for the Cloud: Memory has become the primary cost driver in cloud data centers. Yet, a significant portion of memory allocated to VMs in public clouds remains unused. To optimize this resource, "cold" memory can be reclaimed from VMs and stored on slower storage or compressed, enabling memory overcommit. Current overcommit systems rely on general-purpose OS swap mechanisms, which are not optimized for virtualized workloads, leading to missed memory-saving opportunities and ineffective use of optimizations like prefetchers.   This paper introduces a userspace memory management framework designed for VMs. It enables custom policies that have full control over the virtual machines' memory using a simple userspace API, supports huge page-based swapping to satisfy VM performance requirements, is easy to deploy by leveraging Linux/KVM, and supports zero-copy I/O virtualization with shared VM memory.   Our evaluation demonstrates that an overcommit system based on our framework outperforms the state-of-the-art solutions on both micro-benchmarks and commonly used cloud workloads. Specifically our implementation outperforms the Linux Kernel baseline implementation by up to 25% while saving a similar amount of memory. We also demonstrate the benefits of custom policies by implementing workload-specific reclaimers and prefetchers that save $10\%$ additional memory, improve performance in a limited memory scenario by 30% over the Linux baseline, and recover faster from hard limit releases.<|reference_end|>
@article{pandurov2024flexible,
    title={Flexible Swapping for the Cloud},
    author={Milan Pandurov, Lukas Humbel, Dmitry Sepp, Adamos Ttofari, Leon Thomm,
  Do Le Quoc, Siddharth Chandrasekaran, Sharan Santhanam, Chuan Ye, Shai
  Bergman, Wei Wang, Sven Lundgren, Konstantinos Sagonas, Alberto Ros},
    journal={arXiv preprint arXiv:2409.13327},
    year={2024},
    archivePrefix={arXiv},
    eprint={2409.13327},
    primaryClass={cs.DC cs.OS}
}