一句话:提出 TMO——Meta 生产环境使用的 Linux 内核透明内存卸载机制,通过实时度量资源短缺导致的丢失工作来自动决策卸载量。
数据中心应用内存需求持续增长,而 DRAM 价格高昂且波动,成为主要基础设施开销。压缩内存、NVMe SSD 与新兴 NVM 设备以更低成本与功耗提供更大容量,因此可将冷内存透明卸载到这些廉价介质;难点在于构建对多样负载与异构卸载设备性能差异都鲁棒的数据中心级方案。本文提出 TMO,即 Meta 面向异构数据中心环境的透明内存卸载方案。TMO 引入一种新的 Linux 内核机制,实时直接测量 CPU、内存与 I/O 资源短缺所造成的“丢失工作”(lost work),在没有应用先验知识的情况下,依据设备性能特征与应用对内存访问变慢的敏感度,自动调整向异构设备(如压缩内存或 SSD)卸载的内存量。它还统一识别应用容器与提供基础设施功能的 sidecar 容器中的卸载机会,并同时针对匿名内存与文件缓存,平衡匿名内存的换入速率与近期被逐出文件页的重载速率。TMO 已在生产环境运行一年以上,在数百万台服务器上节省了 20–32% 的总内存,并已成功合入 Linux 内核主线。
The unrelenting growth of the memory needs of emerging datacenter applications, along with ever increasing cost and volatility of DRAM prices, has led to DRAM being a major infrastructure expense. Alternative technologies, such as NVMe SSDs and upcoming NVM devices, offer higher capacity than DRAM at a fraction of the cost and power. One promising approach is to transparently offload colder memory to cheaper memory technologies via kernel or hypervisor techniques. The key challenge, however, is to develop a datacenter-scale solution that is robust in dealing with diverse workloads and large performance variance of different offload devices such as compressed memory, SSD, and NVM. This paper presents TMO, Meta’s transparent memory offloading solution for heterogeneous datacenter environments. TMO introduces a new Linux kernel mechanism that directly measures in realtime the lost work due to resource shortage across CPU, memory, and I/O. Guided by this information and without any prior application knowledge, TMO automatically adjusts how much memory to offload to heterogeneous devices (e.g., compressed memory or SSD) according to the device’s performance characteristics and the application’s sensitivity to memory-access slowdown. TMO holistically identifies offloading opportunities from not only the application containers but also the sidecar containers that provide infrastructure-level functions. To maximize memory savings, TMO targets both anonymous memory and file cache, and balances the swap-in rate of anonymous memory and the reload rate of file pages that were recently evicted from the file cache. TMO has been running in production for more than a year, and has saved between 20-32% of the total memory across millions of servers in our large datacenter fleet. We have successfully upstreamed TMO into the Linux kernel.
@inproceedings{WeinerASYWSSHJT22,
title = {TMO: transparent memory offloading in datacenters},
author = {Johannes Weiner and Niket Agarwal and Dan Schatzberg and Leon Yang and Hao Wang and Blaise Sanouillet and Bikash Sharma and Tejun Heo and Mayank Jain and Chunqiang Tang and Dimitrios Skarlatos},
booktitle = {ASPLOS},
year = {2022},
doi = {10.1145/3503222.3507731}
}