메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

MDK: Rethinking the data center memory reclamation problem

noriwiki
Ahn9807 (토론 | 기여)님의 2026년 9월 3일 (목) 05:36 판
MDK: Rethinking the data center memory reclamation problem
AuthorShaurya Patel, Suli Yang, Yawen Wang, Kan Wu, Alexandra (Sasha) Fedorova, Margo Seltzer, Kimberly Keeton
Conference20th USENIX Symposium on Operating Systems Design and Implementation (OSDI 2026)
Year2026



개요

이 논문은 데이터 센터의 proactive Memory reclamation을 전통적 Page replacement와 다른 최적화 문제로 재정의한다. 핵심 결과물은 Memory Designer's Kit (MDK, 메모리 설계 도구 모음)로, Service Level Objective (SLO, 서비스 수준 목표)를 지키면서 평균 메모리 절감량을 최대화하는 정책을 설계·평가하는 오프라인 도구다.

핵심 아이디어는 기존에는 Memory cache miss rate를 최소화 하는 문제로 Memory reclamation을 바라보았지만, 데이터 센터에서는 SLO를 지키면서 평균 메모리 절감량을 최대화 하는 방향으로 Memory reclamation을 설계해야 한다는 것이다.

논문은 크게 Datacenter에서의 Memory reclamation을 어떻게 설계해야 하는지 고민하는 부분과, 새로운 Memory reclamation policy를 설계하고 구현할 수 있는 도구인 MDK의 설계 파트로 나뉜다. 저장들은 제안하는 MDK는 논문에서 제시하는 메모리 Reclamation정책만 지원하는 것이 아니라 General하게 데이터 센터의 메모리 Reclamation정책 설계에 사용할 수 있다고 주장한다.

논문의 핵심 내용은 다음 표로 정리할 수 있다.

구분 Page Replacement (Related Works) 데이터 센터 Memory Reclamation (MDK)
목표와 제약 고정된 cache 크기에서 전체 실행의 miss ratio 최소화 SLO 한도를 지키면서 평균 메모리 절감량 최대화
동작 시점 메모리 pressure가 발생한 뒤 새로운 Job을 배치할 여유를 만들기 전
대표 지표 전체 실행에 걸친 cache miss ratio time window별 promotion 비율, 자원 대기로 손실된 시간의 비율, 느린 Secondary-tier 스토리지 접근 비용
설계 도구 Optimal page replacement (OPT)와 Miss Ratio Curve (MRC, miss 비율 곡선) Optimal Performance Proxy (OPP, 최적 성능 proxy)와 Memory Performance Curve (MPC, 메모리 성능 곡선)

이 논문이 주로 사용하는 promotion rate는 한 time window에서 발생한 hot page fault (즉 swap-out된 페이지에서 발생한 page fault) 수를 그 window에서 접근한 unique page 수로 나눈 값이다. 저자들은 이를 trace에서 계산 가능한 SLO proxy로 사용하고, 시간에 따른 평균 메모리 절감량을 최대화한다.

Motivation

Dynamic Random-Access Memory (DRAM) 비용 때문에 서버당 더 많은 job을 수용하는 것은 Total Cost of Ownership (TCO, 총소유비용)과 직결된다. g-swap과 Transparent Memory Offloading (TMO) 같은 시스템은 cold page를 compressed memory, Solid-State Drive (SSD), 또는 Compute Express Link (CXL) 기반의 저렴한 tier로 미리 내보낸다. 이때 절감 공간은 새 job을 배치할 만큼 오래 유지되어야 하고 application SLO도 지켜야 한다.

기존의 Cache miss rate이나 Page fault rate을 최적화 하는 방식은 데이터 센터에서는 다음의 이유로 단점이 있다.

  1. Cache miss rate: 모든 Page access중에서 어느정도가 Cache miss인지를 확인해야 하는데 데이터 센터에서 성능하락 없이 이런 기능을 제공하기가 힘들다.
  2. Page fault rate: TMO에서 보듯, page fault는 hardware heterogeneity를 반영하지 못한다.

Main Idea

핵심 통찰은 miss의 총량이 아니라 미래의 각 time window가 허용하는 promotion budget을 직접 관리해야 한다는 것이다. 같은 수의 page fault라도 한 window에 집중되면 SLO를 위반한다. 반대로 fault를 여러 window에 분산하면서 page를 가능한 한 일찍 reclaim하면, 성능 한도를 지키면서 메모리 절감 시간을 늘릴 수 있다.

MDK는 이를 MPC, OPP, 두 가지 eviction property, efficient MPC generator로 구현한다. 이 조합은 달성 가능한 upper bound를 보여 주고, 수많은 parameter를 각각 simulation하지 않고 policy의 성능–메모리 tradeoff를 계산한다.

Design

  1. Memory Performance Curve (MPC, 메모리 성능 곡선): x축은 target promotion rate, y축은 평균 메모리 절감량이다. 동일한 성능 한도에서 policy를 비교하고 원하는 절감량에 필요한 성능 비용을 찾는다. 가능한 지점이 연속적이지 않으므로 선이 아닌 점으로 표시한다.
  2. Optimal Performance Proxy (OPP, 최적 성능 proxy): 첫 pass에서 window별 unique page 수를 센다. 두 번째 pass에서는 page의 다음 접근 window를 미리 보고, 그 page fault를 추가해도 해당 window의 promotion-rate 한도를 넘지 않을 때 현재 접근 직후 reclaim한다. Page를 가장 일찍 내보내 절감 시간을 최대화하지만, 미래 정보가 필요한 오프라인 oracle이다.
  3. Eviction properties와 빠른 MPC 생성:
    • Eviction decisions property는 aggressive한 setting이 덜 aggressive한 setting의 모든 eviction을 포함한다는 뜻이다. Eviction times property는 그 eviction 시각까지 같다는 더 강한 조건이다.
    • 이 포함 관계를 이용하면 eviction을 처음 유발하는 critical parameter만 계산한 뒤 나머지 setting으로 누적할 수 있다. Single-parameter policy는 trace 길이에 대해 linear time에 처리하며, two-parameter policy에는 별도 계산법이 필요하다.
  4. OPP에서 유도한 practical policies:
    • AGE (age-based policy): 마지막 접근 후 일정 시간이 지나야 reclaim하는 기존 방식이다. 안전하지만 늦게 내보내므로 절감 기회를 놓친다.
    • Prior Age with Wait (PAW, 과거 접근 간격을 이용하되 잠시 기다리는 정책): 직전 두 접근의 간격이 threshold보다 크고 마지막 접근 후 1분이 지나면 reclaim한다. 반복 pattern에는 유리하지만 과거가 미래를 잘 예측하지 못하면 AGE보다 나쁘다.
    • Prior Age and Current Elapsed (PACE, 과거 접근 간격과 현재 idle 시간을 결합한 정책): 과거 접근 간격이 길면 즉시 reclaim하고, 그렇지 않으면 AGE처럼 일정 idle 시간을 기다린다. AGE로 되돌아갈 수 있지만 두 parameter를 workload에 맞게 정해야 한다.
    • Learned OPP (L-OPP, 학습형 OPP): OPP의 결정을 정답으로 삼아 미래 정보 없이 reclaim 여부를 예측한다. Model precision이 낮으면 promotion-rate 제약을 지키지 못한다.

Result

  • OPP는 모든 workload와 promotion rate에서 가장 높은 평균 메모리 절감량을 보였다. Cassandra에서는 promotion rate 1% 미만에서 약 40%를 절감한 반면, VMIN은 10%까지 허용해도 같은 절감량에 도달하지 못했다. 이는 window budget을 직접 고려하는 결정의 안전 마진을 보여준다.
  • PAW는 access pattern이 예측 가능한 GraphX, NGINX, TaoBench에서 AGE보다 최대 10% 더 많은 메모리를 절감했지만, Memcached와 FeedSim처럼 과거 pattern이 약한 workload에서는 AGE가 크게 앞섰다.
  • PACE의 best configuration은 대부분의 workload에서 AGE보다 1–4% 더 절감했고 Cassandra와 GraphX에서는 8–10% 개선했다. 단, 같은 trace로 parameter를 고르고 평가한 maximum-potential 결과이다.
  • L-OPP는 DjangoBench와 MediaWiki에서 PAW보다 나았지만, TaoBench와 FeedSim에서는 낮은 예측 정밀도 때문에 promotion rate가 높아졌다. 학습 정책이 성능 제약을 자동으로 지키는 것은 아니다.

Conclusion

연구의 핵심을 한 문장으로 정리한다면 "데이터 센터에서의 Memory Reclamation은 전통적인 시스템의 그것과는 다르다. SLO를 맞춰주는 선에서 메모리 사용량을 최소화하는 것이다." 로 정리할 수 있을 것 같다. 이 핵심 문장이 인상 깊었으며, Optimization이라는 본질적인 시스템의 문제에서 더 크게 메모리 정책을 바라보게 하고, 각 Component설계를 어떻게 할 수 있을지 제시하였다는 점에서 흥미로운 논문이었던 것 같다.

index.php?title=분류:USENIX OSDI