Memory tiering provides a cost-effective solution to increase memory capacity, utilization, and even bandwidth. Memory tiering relies on system software for memory profiling, detection of frequently accessed pages, and page migration. Such a system software often comes with system parameters. The configurations of those parameters impact application performance. We comprehensively classify system parameters, and characterize the sensitivity of application performance to them using representative memory tiering solutions. Furthermore, we introduce a lightweight and user-friendly framework PTMT, which automates tuning of parameters at runtime for various memory tiering solutions. We identify major challenges for online tuning of memory tiering. PTMT uses a hybrid "offline + online" tuning method: while the offline phase builds a performance database for online queries and reduces runtime overhead, the online phase uses reinforcement learning (customized to memory tiering) to tune. PTMT improves performance by 30%, 26%, 21%, and 14%, on four memory tiering solutions (TPP, UPM, Colloid, and AutoNUMA), compared to using the default configurations. PTMT outperforms the state-of-the-art by 32% on average.
翻译:内存分层技术通过系统软件实现内存性能分析、频繁访问页面检测及页面迁移等机制,以低成本提升内存容量、利用率乃至带宽。此类系统软件通常包含多个系统参数,其配置直接影响应用性能。本文对系统参数进行了系统分类,并基于代表性内存分层方案,特征化分析了应用性能对参数的敏感度。进一步地,我们提出轻量级且用户友好的框架PTMT,能够自动实现对多种内存分层方案的运行时参数调优。我们识别了内存分层在线调优的主要挑战。PTMT采用"离线+在线"混合调优方法:离线阶段用于构建性能数据库以支持在线查询,并降低运行时开销;在线阶段则使用定制化强化学习(针对内存分层场景)进行调优。实验表明,相较于默认配置,PTMT在四种内存分层方案(TPP、UPM、Colloid、AutoNUMA)上分别实现30%、26%、21%和14%的性能提升,且平均性能优于现有最优方案32%。