17. 대형 페이지(Huge Pages)와 TLB 커버리지, THP의 트레이드오프

난이도 중 해설 보기 →
문제

문제 17 — 대형 페이지(Huge Pages)와 TLB 커버리지, THP의 트레이드오프

게임 서버가 수십 GB 규모의 상태(월드 스냅샷, 대형 캐시, 세션 테이블)를 한 프로세스에서 다루면서 랜덤 접근이 잦을 때, TLB 미스가 성능을 갉아먹는 일이 있다. 다음을 설명하라.

  1. 가상 주소 → 물리 주소 변환과 TLB: 페이지 테이블 워크(page table walk)가 무엇이고, TLB가 어떤 문제를 해결하는가? 다단계(예: 4단계) 페이지 테이블에서 TLB 미스 한 번의 비용은 대략 어느 정도이며, 왜 랜덤 접근 워크로드에서 특히 아픈가?

  2. TLB 커버리지(reach): 기본 4KB 페이지에서 TLB 엔트리 수가 제한적일 때(예: 수백~수천 개), TLB가 "덮을 수 있는" 총 메모리 크기를 계산해 보라. 힙이 이 커버리지를 크게 넘어서면 무슨 일이 벌어지는가?

  3. 대형 페이지(2MB/1GB): 대형 페이지가 TLB 커버리지를 어떻게 늘리는가? 같은 수의 TLB 엔트리로 4KB 대비 2MB 페이지가 덮는 메모리는 몇 배인가? 페이지 테이블 단계 수와 워크 비용에는 어떤 영향을 주는가?

  4. THP(Transparent Huge Pages) vs 명시적 HugeTLB: 둘의 차이를 설명하라. THP의 자동 승격/khugepaged, 그리고 THP가 유발할 수 있는 문제(메모리 팽창/내부 단편화, 할당 지연 스파이크, 페이지 폴트 지연, fork 시 COW 비용 증가)는 무엇인가? 지연에 민감한 게임 서버에서 THP를 끄거나(madvise 모드로) 조정하는 이유는?

  5. 실무 판단: 대형 페이지가 이득인 워크로드와 오히려 손해인 워크로드를 각각 예로 들고, NUMA·페이지 폴트 지연·메모리 낭비를 함께 고려해 어떻게 적용할지 권고하라.

답안 작성
내 답안 · 자동 저장

직접 답을 작성한 뒤, 위 해설 보기에서 모범답안과 대조하세요.