Skip to main content
QUICK REVIEW

[论文解读] Pond: CXL-Based Memory Pooling Systems for Cloud Platforms

Huaicheng Li, Daniel S. Berger|arXiv (Cornell University)|Mar 1, 2022
Cloud Computing and Resource Management被引用 14
一句话总结

Pond 是一种基于 CXL 的内存池化系统,可使云服务提供商将 DRAM 成本降低 7%,同时保持与同一 NUMA 节点性能相差 1%-5% 的水平。它利用机器学习预测虚拟机的内存访问模式,并采用零核心虚拟 NUMA(zNUMA)设计隔离未使用的内存,同时通过运行时监控在预测失败时将延迟敏感型工作负载迁移回本地内存。

ABSTRACT

Public cloud providers seek to meet stringent performance requirements and low hardware cost. A key driver of performance and cost is main memory. Memory pooling promises to improve DRAM utilization and thereby reduce costs. However, pooling is challenging under cloud performance requirements. This paper proposes Pond, the first memory pooling system that both meets cloud performance goals and significantly reduces DRAM cost. Pond builds on the Compute Express Link (CXL) standard for load/store access to pool memory and two key insights. First, our analysis of cloud production traces shows that pooling across 8-16 sockets is enough to achieve most of the benefits. This enables a small-pool design with low access latency. Second, it is possible to create machine learning models that can accurately predict how much local and pool memory to allocate to a virtual machine (VM) to resemble same-NUMA-node memory performance. Our evaluation with 158 workloads shows that Pond reduces DRAM costs by 7% with performance within 1-5% of same-NUMA-node VM allocations.

研究动机与目标

  • 通过减少闲置和未使用内存导致的内存利用率浪费,解决云平台中 DRAM 成本过高的问题。
  • 实现满足严格云性能要求的内存池化,尤其适用于无需客户操作系统修改的黑盒虚拟机。
  • 设计一种系统,在实现跨多台服务器动态、低成本内存共享的同时,达到接近 NUMA 节点的内存性能。
  • 开发一种实用且可部署的解决方案,仅使用通用 CXL 硬件和对现有虚拟化堆栈的最小改动。

提出的方法

  • 利用 Compute Express Link(CXL)标准,实现对池化 DRAM 的缓存可访问读写操作,延迟达到纳秒级。
  • 采用基于硬件遥测数据训练的机器学习模型,根据虚拟机的内存访问模式及其对延迟的敏感度,预测哪些虚拟机可安全使用池化内存。
  • 引入零核心虚拟 NUMA(zNUMA)节点,将未使用的内存暴露给虚拟机,且不影响性能,同时将分配偏向本地内存而非远程内存。
  • 使用运行时 QoS 监控模块检测性能下降,并在预测错误时触发虚拟机向本地内存迁移。
  • 根据跟踪分析将池大小限制在 8–16 个插槽之间,将 CXL 访问延迟最小化至 70–90ns,优于本地 DRAM 延迟。
  • 设计一种系统,保持静态内存预分配以兼容虚拟化加速器,同时实现物理内存池化。

实验结果

研究问题

  • RQ1通过 CXL 实现的内存池化是否能在公共云环境中,为黑盒虚拟机实现接近 NUMA 节点的性能?
  • RQ2多大的池大小足以实现大部分成本节省,同时保持 CXL 访问延迟较低?
  • RQ3机器学习能否准确预测哪些虚拟机可被安全分配至池化内存,而不会导致性能下降?
  • RQ4如何在不损害性能的前提下,将未使用的内存暴露给虚拟机,即使对于延迟敏感型工作负载也是如此?
  • RQ5当预测模型失效时,需要何种机制来确保服务质量?此类缓解措施的成本如何?

主要发现

  • Pond 在 16 个插槽的池中将 DRAM 成本降低 7%,在 158 种工作负载上实现的性能与同一 NUMA 节点内存分配的差距在 1%-5% 之间。
  • 当完全分配至池中时,43% 的工作负载性能与本地内存的差距在 5% 以内,CXL 开销低于 64ns;另有 37% 的工作负载在 CXL 开销低于 140ns 时保持在 5% 以内。
  • zNUMA 设计有效隔离了未使用的内存,确保低内存利用率的虚拟机不会因远程访问而遭受性能惩罚。
  • 运行时监控可检测并缓解误判情况,99.99% 的虚拟机启动时离线速度低于 1GB/s,99.999% 的启动速度低于 10GB/s。
  • 通过保持静态内存预分配,系统维持了与虚拟化加速器的兼容性,避免了页面故障和客户操作系统修改。
  • 尽管 CXL 访问延迟增加了 222%,但整体云服务器成本仍因 7% 的 DRAM 节省而降低 3.5%。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。