Memory tiering has received wide adoption in recent years as an effective solution to address the increasing memory demands of memory-intensive workloads. However, existing tiered memory systems often fail to meet service-level objectives (SLOs) when multiple applications share the system because they lack Quality-of-Service (QoS) support. Consequently, applications suffer severe performance drops due to local memory contention and memory bandwidth interference. In this paper, we present Mercury, a QoS-aware tiered memory system that ensures predictable performance for coexisting memory-intensive applications with different SLOs. Mercury enables per-tier page reclamation for application-level resource management and uses a proactive admission control algorithm to satisfy SLOs via per-tier memory capacity allocation and intra- and inter-tier bandwidth interference mitigation. It reacts to dynamic requirement changes via real-time adaptation. Extensive evaluations show that Mercury improves application performance by up to 53.4% and 20.3% compared to TPP and Colloid, respectively.
翻译:近年来,层次化内存作为一种应对内存密集型工作负载日益增长内存需求的有效解决方案,已获得广泛应用。然而,现有的层次化内存系统在多个应用共享系统时,由于缺乏服务质量支持,往往无法满足服务等级目标。因此,应用会因本地内存争用和内存带宽干扰而遭受严重的性能下降。本文提出Mercury,一种支持服务质量感知的层次化内存系统,它能够为具有不同服务等级目标且共存的内存密集型应用提供可预测的性能保障。Mercury通过支持按层级进行页面回收以实现应用级资源管理,并采用主动准入控制算法,通过按层级分配内存容量以及缓解层内与层间带宽干扰来满足服务等级目标。系统通过实时自适应机制应对动态需求变化。大量实验评估表明,与TPP和Colloid相比,Mercury分别将应用性能最高提升了53.4%和20.3%。