A heterogeneous memory has a single address space with fast access to some addresses (a fast tier of DRAM) and slow access to other addresses (a capacity tier of CXL-attached memory or NVM). A tiered memory system aims to maximize the number of accesses to the fast tier via page migrations between the fast and capacity tiers. Unfortunately, previous tiered memory systems can perform poorly due to (1) allocating hot and cold objects in the same page and (2) abrupt changes in hotness measurements that lead to thrashing. This paper presents Jenga, a tiered memory system that addresses both problems. Jenga's memory allocator uses a novel context-based page allocation strategy. Jenga's accurate measurements of page hotness enable it to react to memory access behavior changes in a timely manner while avoiding thrashing. Compared to the best previous tiered memory system, Jenga runs memory-intensive applications 28% faster across 10 applications, when the fast tier capacity matches the working set size, at a CPU overhead of <3% of a single core and a memory overhead of <0.3%
翻译:异构内存系统采用单一地址空间,其中部分地址可快速访问(DRAM快速层),而其他地址访问较慢(CXL附加内存或NVM容量层)。分层内存系统旨在通过快速层与容量层之间的页面迁移,最大化快速层访问次数。然而,现有分层内存系统常因以下问题性能受限:(1)热对象与冷对象被分配至同一页面;(2)热度测量的突变导致系统抖动。本文提出Jenga分层内存系统以解决上述问题。Jenga的内存分配器采用创新的基于上下文的页面分配策略,其精确的页面热度测量机制既能及时响应内存访问行为变化,又可避免系统抖动。实验表明:当快速层容量与工作集大小匹配时,相较于现有最优分层内存系统,Jenga在10个内存密集型应用上的运行速度提升28%,CPU开销低于单核的3%,内存开销小于0.3%。