Phoenix——一种面向 NUMA 系统中线程与页表放置的性能感知编排新技术
操作系统
2025-02-19 v2
摘要
具有非统一内存访问(NUMA)的对称多处理(SMP)系统的出现,促使了大量关于进程和数据放置的研究,以缓解 NUMA 对应用程序的性能影响。然而,现有解决方案通常忽略了 CPU 调度器与内存管理器之间的协调,导致线程和页表放置效率低下。此外,为提高局部性而采用的复制技术存在冗余副本、可扩展性瓶颈以及由于内存带宽和核间干扰导致的性能下降。在本文中,我们提出了 Phoenix,一种集成的 CPU 调度器与内存管理器,具备按需页表复制机制。Phoenix 将 CPU 调度和内存管理子系统集成在一起,实现了线程和页表放置的协调。通过区分数据页和页表页,Phoenix 可以根据应用程序行为直接迁移或复制页表。此外,Phoenix 采用内存带宽管理机制,在缓解一致性维护开销的同时维持服务质量(QoS)。我们将 Phoenix 实现为 Linux 的可加载内核模块,确保与遗留应用程序的兼容性和部署的便捷性。我们在真实硬件上的评估表明,与最先进的解决方案相比,Phoenix 将 CPU 周期减少了 2.09 倍,将页表遍历周期减少了 1.58 倍。
引用
@article{arxiv.2502.10923,
title = {Phoenix -- A Novel Technique for Performance-Aware Orchestration of Thread and Page Table Placement in NUMA Systems},
author = {Mohammad Siavashi and Alireza Sanaee and Mohsen Sharifi and Gianni Antichi},
journal= {arXiv preprint arXiv:2502.10923},
year = {2025}
}