Skip to main content
QUICK REVIEW

[논문 리뷰] Pond: CXL-Based Memory Pooling Systems for Cloud Platforms

Huaicheng Li, Daniel S. Berger|arXiv (Cornell University)|2022. 03. 01.
Cloud Computing and Resource Management인용 수 14
한 줄 요약

Pond는 CXL 기반 메모리 풀링 시스템으로, 클라우드 제공자가 DRAM 비용을 7% 절감하면서도 동일한 NUMA 노드 성능의 1-5% 이내를 유지할 수 있도록 한다. 머신러닝을 활용해 VM의 메모리 접근 패턴을 예측하고, 불필요한 메모리를 격리하는 0코어 가상 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 비용을 낮추는 것.
  • 특히 게스트 OS 수정이 없는 투명한 VM을 포함한 엄격한 클라우드 성능 요구사항을 충족하는 메모리 풀링을 가능하게 하는 것.
  • 여러 서버 간 동적으로 비용 효율적인 메모리 공유를 가능하게 하면서도, 동일한 NUMA 노드 메모리 성능에 근접한 성능을 달성하는 시스템을 설계하는 것.
  • 기존 가상화 스택에 최소한의 변경만을 가해 실용적이고 구현 가능한 솔루션을 개발하는 것.

제안 방법

  • CXL 표준을 활용해 풀링된 DRAM에 캐시 가능하고 나노초 수준의 지연 시간을 가지는 로드/스토어 접근을 가능하게 한다.
  • 하드웨어 텔레메트리 데이터를 기반으로 훈련된 머신러닝 모델을 사용해, 메모리 접근 패턴과 지연에 민감한 정도에 따라 안전하게 풀 메모리를 사용할 수 있는 VM을 예측한다.
  • 사용되지 않는 메모리를 VM에 노출시키되 성능에 영향을 주지 않는 0코어 가상 NUMA(zNUMA) 노드를 도입한다. 이로 인해 원격 메모리 할당을 피하는 경향이 생긴다.
  • 런타임 QoS 모니터링을 통해 성능 저하를 감지하고, 예측이 잘못된 경우 VM을 로컬 메모리로 이동시키는 메커니즘을 구현한다.
  • 트레이스 분 析를 기반으로 풀 크기를 8~16 소켓으로 제한하여 CXL 액세스 지연 시간을 로컬 DRAM 대비 70~90ns 수준으로 최소화한다.
  • 가상화 가속기와의 호환성을 유지하기 위해 정적 메모리 프리할당을 유지하면서도 물리적 메모리 풀링을 가능하게 하는 시스템을 설계한다.

실험 결과

연구 질문

  • RQ1공개 클라우드 환경에서 CXL 기반 메모리 풀링이 투명한 VM에 대해 동일한 NUMA 노드 성능에 근접한 성능을 달성할 수 있는가?
  • RQ2CXL 액세스 지연 시간을 낮추면서 대부분의 비용 절감 효과를 얻을 수 있는 최소한의 풀 크기는 얼마인가?
  • RQ3머신러닝이 정확히 예측하여, 성능 저하 없이 안전하게 풀 메모리에 할당될 수 있는 VM을 식별할 수 있는가?
  • RQ4사용되지 않는 메모리를 성능에 영향을 주지 않도록 VM에 노출시킬 수 있는가, 특히 지연 민감도가 높은 워크로드의 경우에도 말이다?
  • RQ5예측 모델이 실패했을 경우 QoS를 보장하기 위해 필요한 메커니즘은 무엇이며, 이를 복구하는 데 드는 비용은 얼마나 되는가?

주요 결과

  • Pond는 16소켓 풀을 사용할 경우 DRAM 비용을 7% 절감하며, 158개의 워크로드에서 동일한 NUMA 노드 할당 성능의 1-5% 이내 성능을 달성한다.
  • 풀에 완전히 할당된 워크로드 중 43%가 CXL 오버헤드 64ns 이하일 때 5% 이내 성능 유지를 유지하며, 37%는 140ns 이하 오버헤드에서 동일한 성능 수준을 확보한다.
  • zNUMA 아키텍처는 사용되지 않는 메모리를 효과적으로 격리하여, 메모리 활용도가 낮은 VM이 원격 액세스로 인한 성능 저하를 경험하지 않도록 한다.
  • 런타임 모니터링은 잘못된 예측를 감지하고 이를 완화하며, 99.99%의 VM 시작 시점에서 오프라인 처리 속도가 1GB/s 이하, 99.999%에서는 10GB/s 이하로 유지된다.
  • 정적 메모리 프리할당을 유지함으로써 가상화 가속기와의 호환성을 유지하여 페이지 포인터나 게스트 OS 변경 없이도 기능한다.
  • CXL 액세스로 인한 지연 시간이 222% 증가하더라도, DRAM 비용 7% 절감으로 전체 클라우드 서버 비용이 3.5% 감소한다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.