一句话:提出集成于操作系统的多级内存页管理机制,直接在不同内存层级间迁移页面,并通过四项优化大幅提升迁移吞吐与应用性能。
软件控制的异构内存系统有望提升性能与成本效率,但当前操作系统缺乏高效的分层页管理:依赖昂贵的内存 offlining 或换出到磁盘来识别和迁移冷热数据,且未利用多线程硬件,导致内存带宽利用严重不足。本文提出并实现一种通用、OS 集成的多级内存管理系统,复用现有页跟踪结构,在内存层级之间直接分层页面且不增加监控开销。系统加入四项优化:透明大页迁移、单页多线程迁移、多页并发迁移和页面对称交换。在 Linux 上面向 x86、Power 与 ARM64 实现,并在多级解耦内存上运行真实内存密集型负载。结果表明,内核软件开销显著降低,原始页迁移吞吐提升超过 15 倍,应用性能相比基线 Linux 提升 40%。
Software-controlled heterogeneous memory systems have the potential to increase the performance and cost efficiency of computing systems. However they can only deliver on this promise if supported by efficient page management policies and mechanisms within the operating system (OS). Current OS implementations do not support efficient tiering of data between heterogeneous memories. Instead, they rely on expensive offlining of memory or swapping data to disk as a means of profiling and migrating hot or cold data between memory nodes. They also leave numerous optimizations on the table; for example, multi-threaded hardware is not leveraged to maximize page migration throughput, resulting in up to 95% under-utilization of available memory bandwidth. To remedy these shortcomings, we propose and implement a general purpose OS-integrated multi-level memory management system that reuses current OS page tracking structures to tier pages directly between memories with no additional monitoring overhead. We augment this system with four additional optimizations: native support for transparent huge page migration, multi-threaded migration of a page, concurrent migration of multiple pages, and symmetric exchange of pages. Combined, these optimizations dramatically reduce kernel software overheads and improve raw page migration throughput over 15×. Implemented in Linux and evaluated on x86, Power, and ARM64 systems, our OS support for heterogeneous memories improves application performance 40% over baseline Linux for a suite of real-world memory-intensive workloads utilizing a multi-level disaggregated memory system.