Lessons Learned Building a Production Memory-Overcommit Solution
summary
A production control plane ties Linux memory management, cgroups and procfs to a hybrid strategy that first tries virtio balloon and only falls back to hypervisor swap, uses a constant-cost host-side page-tracker sampling mapped via cgroup to estimate working sets, keeps a small free buffer to speed up growth, and uses Linux 5.4 madvise/page-out hints to avoid migration-induced zeroing. The system runs in production, meaningfully reduces double-swap thrashing and improves reaction latency while accepting a modest loss in steady-state memory efficiency.
AI-written summary · about
chapters (13)
- 0:00Intro
- 0:22Building a Practical MemoC Solution
- 1:15Basic Reclamation Techniques
- 2:58Double Swapping
- 4:16Hybrid Overcommit
- 5:07Overcommit Memory Buffer
- 6:15Memory Stats
- 8:07A Simple Memory Overcommit Algorithm
- 10:10Working Set Size (WSS)
- 16:20Live Migration (continued)
- 18:04Identify Swapped-out Pages
- 18:56Future Work
- 19:33Lessons Learned
related talks
29mVirtio-(balloon|pmem|mem): Managing Guest Memory
10mExtMem: Enabling Application-Aware Virtual Memory Management for Data-Intensive...
17mBreak On Through to the Other Side: Pooling Memory Elastically with RamRyder
52mChanging shared_buffers on the fly
01h 07mEmerging Embdedded Memories and Storage
16mJohnny Cache: the End of DRAM Cache Conflicts (in Tiered Main Memory Systems)
26mLessons Learned: Optimizing KVM Performance for EHR Systems
12mPageFlex: Flexible and Efficient User-space Delegation of Linux Paging Policies...
