투명한 메모리 오프로딩: 적은 비용과 전력으로 더 많은 메모리 확보
우리는 DRAM 장치 스케일링의 둔화 및 DRAM 비용의 큰 변동과 함께 머신 러닝과 같은 새로운 애플리케이션의 메모리 요구 사항이 크게 증가하는 것을 목격하고 있습니다. 이로 인해 DRAM은 Meta 규모의 유일한 메모리 용량 솔루션으로서 엄청나게 비싸졌습니다.
그러나 NVMe 연결 SSD(Solid State Drive)와 같은 대체 기술은 적은 비용과 전력으로 DRAM보다 더 높은 용량을 제공합니다. 커널이나 하이퍼바이저 기술을 통해 더 낮은 온도의 메모리를 저렴한 메모리 기술로 투명하게 오프로드하는 것은 DRAM에 대한 선호를 억제할 수 있는 유망한 접근 방식을 제공합니다. 그러나 주요 과제는 강력한 데이터 센터 규모의 솔루션을 개발하는 것입니다. 이러한 솔루션은 다양한 워크로드와 압축 메모리, SSD, NVM 등 다양한 오프로드 장치의 큰 성능 차이를 처리할 수 있어야 합니다.
TMO(Transparent Memory Offloading)는 이기종 데이터센터 환경을 위한 Meta의 솔루션입니다. CPU, 메모리, I/O 전반에서 리소스 부족으로 인해 손실된 작업을 실시간으로 측정하는 새로운 Linux 커널 메커니즘을 도입합니다. 이 정보에 따라 사전 애플리케이션 지식 없이도 TMO는 압축 메모리 또는 SSD와 같은 이기종 장치로 오프로드할 메모리 양을 자동으로 조정합니다. 이는 장치의 성능 특성과 느린 메모리 액세스에 대한 응용 프로그램의 민감도에 따라 수행됩니다. TMO는 애플리케이션 컨테이너뿐만 아니라 인프라 수준 기능을 제공하는 사이드카 컨테이너로부터 오프로딩 기회를 전체적으로 식별합니다.
TMO는 1년 넘게 프로덕션 환경에서 실행되어 왔으며 광범위한 데이터 센터 제품군에 있는 수백만 대의 서버 전체 메모리의 20~32%를 절약했습니다. 우리는 TMO의 OS 구성 요소를 Linux 커널로 성공적으로 업스트림했습니다.
최근 몇 년 동안 NVMe SSD와 같은 저렴한 비 DRAM 메모리 기술이 데이터 센터에 성공적으로 배포되었거나 출시되고 있습니다. 더욱이 CXL(Compute Express Link)과 같은 새로운 비DDR 메모리 버스 기술은 메모리와 유사한 액세스 의미론과 DDR에 가까운 성능을 제공합니다. 그림 1에 표시된 메모리-스토리지 계층 구조는 다양한 기술이 서로 어떻게 결합되어 있는지 보여줍니다. 이러한 추세의 합류는 과거에는 불가능했던 메모리 계층화를 위한 새로운 기회를 제공합니다.
메모리 계층화를 사용하면 자주 액세스하지 않는 데이터가 더 느린 메모리로 마이그레이션됩니다. 애플리케이션 자체, 사용자 공간 라이브러리, 커널 또는 하이퍼바이저가 마이그레이션 프로세스를 주도할 수 있습니다. 우리의 TMO 작업은 커널 중심 마이그레이션 또는 스와핑에 중점을 둡니다. 왜? 애플리케이션을 수정하지 않고도 많은 애플리케이션에 투명하게 적용할 수 있기 때문입니다. 개념적 단순성에도 불구하고 지연 시간에 민감한 데이터 센터 애플리케이션을 위한 커널 기반 스와핑은 하이퍼스케일에서는 어렵습니다. 우리는 컨테이너화된 환경을 위한 투명한 메모리 오프로딩 솔루션인 TMO를 구축했습니다.
TMO는 다음 구성 요소로 구성됩니다.
서버 비용의 일부인 DRAM 비용 증가가 TMO에 대한 우리의 작업에 동기를 부여했습니다. 그림 2는 DRAM, 압축 메모리, SSD 스토리지의 상대적 비용을 보여줍니다. 우리는 생산 작업 부하의 평균을 나타내는 3배의 압축 비율을 기준으로 압축된 DRAM의 비용을 추정합니다. 우리는 DRAM 비용이 증가하여 인프라 지출의 33%에 이를 것으로 예상합니다. 아래에 표시되지는 않았지만 DRAM 전력 소비는 비슷한 추세를 따르며 이는 서버 인프라 전력의 38%에 도달할 것으로 예상됩니다. 따라서 압축된 DRAM은 메모리 오프로드에 적합한 선택입니다.
압축된 DRAM 외에도 우리는 모든 프로덕션 서버에 매우 뛰어난 성능의 NVMe SSD를 장착합니다. 시스템 수준에서 NVMe SSD는 서버 비용의 3% 미만에 기여합니다(현재 세대 서버의 압축 메모리보다 약 3배 낮음). 더욱이 그림 2는 DRAM에 대한 등용량 SSD가 여러 세대에 걸쳐 서버 비용의 1% 미만으로 유지된다는 것을 보여줍니다. 이는 바이트당 비용이 압축 메모리보다 약 10배 더 낮습니다! 이러한 추세로 인해 NVMe SSD는 압축 메모리에 비해 훨씬 더 비용 효율적입니다.