전통 가상 메모리 연구는 고정 용량에서 시작합니다. 캐시가 차면 교체 정책이 내보낼 페이지를 고르고 미스 수나 접근 비용이 적을수록 좋습니다. Belady 오프라인 OPT와 미스율 곡선은 최적 상한을 제공하고 캐시 크기에 따라 정책을 비교합니다.
데이터센터 메모리 회수는 변수를 뒤집습니다. 서버에 메모리가 있지만 클러스터는 다른 작업을 배치하려고 실행 중인 작업의 일부를 가져갑니다. 정책은 압력이 생기기 전에 페이지를 선제 퇴거하거나 하위 계층으로 내립니다. 목표는 평균 회수 용량의 최대화이고, 제약은 각 측정 창에서 승격률이나 자원 압력 중단 시간이 SLO 아래에 머무는 것입니다.
기존 도구로는 이 질문에 답할 수 없는데, 전체 수명의 미스 수가 같아도 한 시간 창에 몰리면 SLO를 위반할 수 있기 때문입니다. 고정 캐시 크기는 시간에 따라 바뀌는 메모리를 표현하지 못합니다. MDK(Memory Designer’s Kit)는 선제 가변 용량에 맞춰 오프라인 상한, 곡선, 평가기를 다시 만듭니다.
성능 시간 창이 바꾸는 오프라인 최적값
MDK는 절감량을 회수 바이트와 메모리 밖에 머문 시간의 곱으로 정의합니다. 접근 직후 내보내 10분 동안 다시 읽지 않은 페이지는 다음 접근 직전에 내보낸 페이지보다 더 기여합니다. 승격률은 각 시간 창에서 접근한 고유 페이지 대비 폴트 페이지 비율이며, 회수 데이터를 다시 가져오는 비용을 나타냅니다.
오프라인 선제 최적 정책은 미래 접근을 알고 모든 창의 폴트 예산을 넘지 않으면서 전체 바이트·시간 절감을 최대화하는 퇴거 시점을 고릅니다. Belady OPT와 다릅니다. Belady는 용량 제약 아래 미스를 줄이려고 페이지를 보존하지만, MDK의 최적 정책은 허용된 미래 승격을 사용해 가장 많은 용량을 가장 오래 비웁니다.
이 값은 한 추적과 SLO 정의에서 모든 정책의 상한입니다. 온라인 정책과의 차이는 개선 여지를 보여 주지만 미래 지식을 사용하므로 배포할 수 있는 정책은 아닙니다. 차이가 작다면 해당 작업에 추가 회수 가능 메모리가 거의 없으므로 휴리스틱 튜닝 시간을 줄일 수 있습니다.

고정 크기 미스 곡선을 대신하는 메모리 성능 곡선
메모리 성능 곡선(MPC)은 정책의 가능한 매개변수 설정을 평균 메모리 절감과 성능 대리 지표에 매핑합니다. 한 지점은 승격률 1%에서 비운 메모리를, 다른 지점은 2%를 허용한 결과를 나타냅니다. 같은 성능 한계에서 더 많은 메모리를 절감하면 한 정책이 다른 정책보다 우월합니다.
미스율 곡선과 달리 정책 평가기가 정의한다면 MPC는 서로 다른 절감 지표와 대리 지표를 쓸 수 있습니다. 승격률은 압축 메모리나 계층화 시스템에 맞습니다. PSI나 지연도 다른 계약을 표현할 수 있지만, 분석 알고리즘은 구조가 필요해 임의 지표는 시뮬레이션이 필요할 수 있습니다.
곡선은 매개변수를 SLO 기준으로 비교하게 합니다. 유휴 임계값 10분 자체가 보수적이거나 공격적인 것은 아니며, 작업 재사용에 따라 승격 결과가 달라집니다. 설계자는 목표 지점을 고르고 두 매개변수 또는 학습 정책이 전선을 개선하는지 확인할 수 있어 한 설정만 고른 보고를 피합니다.
MDK는 분석형 생성을 가능하게 하는 단조 성질을 찾습니다. 공격적인 설정의 퇴거가 보수적인 설정의 모든 퇴거를 포함한다면 각 페이지의 임계 매개변수를 계산해 결과를 누적할 수 있습니다. 모든 지점을 다시 시뮬레이션할 필요가 없습니다. 관련 퇴거 시점 성질은 설정 사이에서 메모리 절감을 재사용하게 합니다.
정책 개발 반복을 바꾸는 분석형 생성
평가는 Cassandra/YCSB, Twitter KV를 사용한 Memcached, GraphX PageRank, NGINX 미디어 스트리밍, TaoBench, DjangoBench, FeedSim, MediaWiki를 포함했습니다. 추적 크기는 820MB에서 160GB, 길이는 11분에서 120분이었습니다.
분석형 곡선 생성은 NGINX에서 시뮬레이션보다 12.5배, FeedSim에서 208배 빨랐습니다. Cassandra는 110배, TaoBench는 82배, Memcached는 55배였습니다. MPC 값의 시뮬레이션 대비 오차는 1% 미만이었고 지표 변경이 아니라 구현 및 이산화 차이에서 나왔습니다.
매개변수 공간에는 1만 개가 넘는 쌍이 있을 수 있어 평가 속도가 중요합니다. 개발자는 전선을 모두 보고 민감도 시험을 수행하며 커널 구현 전에 약한 아이디어를 버릴 수 있습니다. 승격률이 다른 정책을 부정확하게 비교하려는 유혹도 줄어듭니다.
다만 방법은 오프라인이며 추적에 묶입니다. 추적 수집이 작업을 교란하거나 관찰하지 못한 접근을 놓칠 수 있습니다. 분석 속도가 샘플 편향, 미래 작업 변화, 온라인 검증 필요성을 없애지는 않습니다. 장치군 일부를 나타내는 추적이라면 곡선에 신뢰 구간도 포함해야 합니다.
한 직관이 아니라 곡선에서 나온 새 정책
MDK는 고정 메모리 LRU와 OPT, 가변 메모리 VMIN, AGE, PAW, PACE, 오프라인 선제 최적, 학습 정책을 평가합니다. AGE는 고정 유휴 시간이 지난 페이지를 회수합니다. 단순하지만 재사용 이력이 다른 페이지에 하나의 시간 임계값을 적용합니다.
PAW는 이전 재사용 거리를 다음 구간의 예측값으로 사용합니다. 처음 접근하거나 간격이 긴 페이지를 일찍 회수할 수 있지만 이전 거리 하나는 잡음이 많습니다. PACE는 이전 재사용 거리와 현재 연령을 결합합니다. 이전 간격이 임계값을 넘거나 현재 유휴 시간이 연령 임계값을 넘으면 회수해 2차원 전선을 만듭니다.
대부분의 승격률 범위에서 PACE는 AGE보다 메모리를 1%에서 4% 더 절감했습니다. GraphX와 NGINX의 재사용 동작에서는 선택한 설정이 8%에서 10% 개선됐습니다. 이득은 최대 평균 바이트·시간이며 최대 RSS가 10% 줄거나 작업 배치가 10% 늘어난다는 뜻은 아닙니다. 동시에 실행하는 작업 형상과 스케줄러 제약이 후자를 정합니다.
학습 정책은 과거 재사용 거리 여섯 개로 회수 결정을 예측했습니다. MDK 최적 정책이 라벨을 제공해 미래 인식 분석을 온라인 분류기에 연결합니다. 프레임워크는 모델 정확도를 용량과 분리해 보고하지 않고, 학습이 오프라인 전선에 얼마나 가까운지와 어느 창에서 승격이 넘는지 보여 줍니다.
대리 지표와 모델 차이를 드러낸 Linux 검증
저자들은 AGE와 PAW를 Linux에 구현해 30초마다 회수했습니다. 한 비교는 예상 승격 임계값 4%로 설정했습니다. 곡선이 예측한 대로 PAW가 AGE보다 메모리를 4% 더 절감했지만 실제 승격률은 두 정책 모두 약 1.5%로 예상보다 낮았습니다.
접근 비트 관찰, 샘플 입도, 실행 시점, 페이지 결합, 시뮬레이터 가정이 차이를 만들 수 있습니다. 오프라인 MPC가 배포 보증이 아니라 설계 도구인 이유입니다. 같은 정책 코드를 온라인 메모리, 스왑, 승격, 애플리케이션 SLO로 확인해야 합니다.
승격률도 대리 지표입니다. 승격 페이지 하나가 지연 임계 요청을 멈출 수 있고, 선인출 가능한 여러 승격은 무해할 수 있습니다. 같은 승격률인 두 애플리케이션도 p99 지연이 다를 수 있습니다. 운영 제어기는 대리 지표와 실제 서비스 목표의 관계를 보정해야 합니다.
페이지 크기가 섞이면 바이트 절감과 폴트가 더 복잡합니다. 2MB 거대 페이지 승격은 사건 하나지만 4KB보다 훨씬 많은 바이트를 이동합니다. 콘텐츠별 압축률과 하위 계층 지연도 다릅니다. MDK는 다른 정의를 받을 수 있지만 정책 비교 지표가 이러한 차이에 가격을 붙여야 합니다.
작업 종류와 단계별로 필요한 장치군 곡선
한 추적으로 만든 MPC를 보편 임계값으로 사용해서는 안 됩니다. 일일 주기, 릴리스, 캐시 예열, 장애 전환, 테넌트 구성이 재사용을 바꿉니다. 작업 종류와 중요 단계별로 곡선을 만들고 하나의 최적점보다 안정적인 매개변수 구간을 찾아야 합니다.
텔레메트리는 시간 창 분포를 보존해야 합니다. 평균 메모리 절감은 회수할 용량이 전혀 없는 구간을 숨길 수 있고, 평균 승격은 SLO 위반 버스트를 숨길 수 있습니다. p50·p95·최악 창의 절감 및 대리 지표와 애플리케이션 지연, 실제 작업 배치 성공을 함께 보고해야 합니다.
오프라인 상한은 용량 계획도 안내합니다. 배포 가능한 모든 정책이 최적에 가깝지만 절감이 작다면 다른 퇴거 휴리스틱이 아니라 할당 배치 변경, 애플리케이션 힌트, 압축, 추가 DRAM이 필요합니다. 차이가 크면 정책 연구가 이득을 낼 추적과 매개변수 영역을 MDK로 찾을 수 있습니다.
정책 안전에는 이력 현상과 복구도 필요합니다. 더 공격적인 곡선 지점을 선택한 제어기는 실제 대리 지표를 관찰하고 SLO 위반 전에 페이지를 되돌리거나 임계값을 올려야 합니다. 콜드 스타트와 작업 변화는 재사용 이력이 충분히 쌓일 때까지 보수적인 상태에서 시작해야 합니다.
제약 아래 용량으로 정의하는 회수 품질
MDK의 핵심 교정은 개념적입니다. 데이터센터는 상자 안의 캐시를 최적화하는 것이 아니라 실행 중인 서비스 주변 상자의 크기를 바꿔 클러스터가 더 많은 작업을 배치하도록 합니다. 최대화할 값은 시간에 걸쳐 비운 메모리이고, 제약은 모든 SLO 창에 적용됩니다.
평가 속도 12.5배에서 208배는 전체 정책 전선 분석을 실용적으로 만듭니다. 최대 10% 절감 개선은 이전 재사용 같은 두 번째 신호의 가치를 보여 주고, Linux의 차이는 오프라인 예측 보정이 필요함을 보여 줍니다. 오프라인 최적값은 추적의 가능성, 정책 품질, 구현 동작을 분리하기 때문에 유용합니다.
메모리 계층화를 평가하는 운영자는 절감 숫자 하나가 아니라 MPC 또는 같은 절감·SLO 전선을 요구해야 합니다. 승격, 중단, 지연 제약이 없는 지점은 비교할 수 없습니다. MDK는 이 비교를 위한 공통 언어와 새 회수기가 전선을 개선했는지 아니면 위험 수준만 바꿨는지 판단하는 방법을 제공합니다.
출처와 저작권 안내
이 글은 Silicon & Systems의 편집 분석입니다. 프레임워크, 실험, 한계를 자체 문장으로 재구성했습니다. 원문의 문장, 표, 도판을 복제하지 않았으며 본문 도판은 이 글을 위해 새로 만들었습니다. 논문은 USENIX OSDI 2026 발표 페이지에서 확인할 수 있습니다. 저작권은 저자에게 있으며 연도는 2026년입니다.