Blowfish: Elastic Virtual Machine Memory for Disaggregated Memory

Yulong Zhang, SKLP, Institute of Computing Technology, CAS and University of Chinese Academy of Sciences; Yilong Luo and Diyu Zhou, SCS, Peking University, China; Quan Chen, Shanghai Jiao Tong University; Quanxi Li, SKLP, Institute of Computing Technology, CAS and University of Chinese Academy of Sciences; Mosong Zhou, Lei Zhu, Senbo Fu, and Qian Peng, Huawei Cloud; Huimin Cui and Xiaobing Feng, SKLP, Institute of Computing Technology, CAS and University of Chinese Academy of Sciences; Tao Xie, SCS, Peking University, China; Chenxi Wang, SKLP, Institute of Computing Technology, CAS and University of Chinese Academy of Sciences

Cold memory rebalancing exhibits unique challenges to the existing memory overcommitment mechanisms, such as page tracking under Transparent Huge Pages (THP) and frequent remapping of page tables, leading to a series of throughput and latency issues. In this paper, we propose Blowfish, a memory overcommitment framework built on disaggregated memory, performing cold (and free) memory reclamation and restoration at μs-scale. Based on paravirtualization, Blowfish leverages a lightweight guest-level THP-aware hotness tracker to monitor page access and let the hypervisor directly reclaim and reallocate host physical memory across VMs with a dedicated cross-layer path for cold memory, bypassing the modifications of guest page table and modifications of I/O page table while benefiting from the rich program semantics of guest VM when recognizing the cold memory. As a result, Blowfish significantly speeds up the page reclamation and restoration, 2.48× and 2.14× faster than the state-of-the-art solution, HyperAlloc, respectively, and improves memory reclamation ratios by 1.6×-6.1× within 5% performance degradation.