307. 페이지 크기 (Page Size)의 트레이드오프

핵심 인사이트 (3줄 요약)

  1. 본질: 페이지 크기는 가상 메모리를 물리 메모리로 매핑할 때 자르는 기본 단위(4KB 표준)로서, 크기를 키우면内部 단편화は増加するがページテーブル 크기와 TLB 미스率이 감소하는 정반대의 트레이드오프가 발생한다.
  2. 가치: 작은 페이지는 메모리利用率が 높지만 페이지 개수가 증가하여 페이지 테이블이 비대화되고 TLB 미스가 늘어난다. 큰 페이지는その逆の特性を持つ.
  3. 융합: 현대 시스템에서는 기본 4KB 페이지와 Huge Page(2MB, 1GB)를 함께使用하며, OS가 프로그램特性에 따라 적절한 페이지 크기를 선택하는 Multiple Page Sizes 전략을 사용한다.

Ⅰ. 개요 및 필요성 (Context & Necessity)

페이지 크기 선택은 메모리 관리에서 가장 기본적인 트레이드오프 중 하나이다.

문제의 소립: 4KB 페이지와 1GB 페이지 중 어느 것이 "좋은" 것일까? 답은 "상황에 따라 다르다"이다.

고려 요소:

  • 작으면: 메모리 낭비는 적지만 페이지 테이블이 커지고 TLB压力가 증가

  • 크면: 메모리 낭비는 증가하지만 페이지 테이블이 작아지고 TLB 효율이 향상

  • 비유: 짐을 작은 상자에 싸면 빈 공간은 적지만 상자 개수가 많아져 관리가 어렵고, 큰 상자에 싸면 빈 공간이 많지만 상자 개수가 적어 관리가 쉽다.

  • 등장 배경: 1970년대 가상 메모리 도입 시 표준 페이지 크기는 4KB였으며, 이후 프로세서의 발전과 함께 2MB, 1GB의大型ページが導入された。현재 x86-64 아키텍처는 모든 크기를 지원한다.


Ⅱ. 아키텍처 및 핵심 원리 (Deep Dive)

페이지 크기별 비교

  ┌────────────────────────────────────────────────────────────────────────────┐
  │              페이지 크기에 따른 Trade-off 비교                                     │
  ├────────────────────────────────────────────────────────────────────────────┤
  │
  │  [작은 페이지 (예: 4KB)]                                                    │
  │       장점:                                                                    │
  │       - 내부 단편화 최소화 (평균 2KB 낭비)                                      │
  │       - 메모리利用率 높음                                                     │
  │       단점:                                                                    │
  │       - 페이지 개수 증가 (4GB → 100만 페이지)                                │
  │       - 페이지 테이블 크기 증가                                               │
  │       - TLB 항목 수 부족 → TLB 미스 증가                                      │
  │                                                                            │
  │  [큰 페이지 (예: 2MB, 1GB)]                                                 │
  │       장점:                                                                    │
  │       - 페이지 개수 급감 → 페이지 테이블 축소                                  │
  │       - TLB 히트율大幅 향상                                                  │
  │       - 디스크 I/O 효율 향상 (큰 블록 단위 전송)                              │
  │       단점:                                                                    │
  │       - 내부 단편화 증가 (평균 페이지 크기/2 낭비)                             │
  │       - 메모리 낭비 심화                                                     │
  └────────────────────────────────────────────────────────────────────────────┘

TLB와 페이지 크기의 관계

  ┌────────────────────────────────────────────────────────────────────────────┐
  │              TLB 히트율에 미치는 페이지 크기의 영향                                 │
  ├────────────────────────────────────────────────────────────────────────────┤
  │
  │  [TLB 용량: 64항목 (일반적인 경우)]                                          │
  │                                                                            │
  │  [4KB 페이지 64항목]                                                        │
  │       - 커버 가능한 주소 범위: 64 × 4KB = 256KB                             │
  │       - 큰 프로그램에서는 即座に TLB 미스 발생                               │
  │                                                                            │
  │  [2MB 페이지 64항목]                                                        │
  │       - 커버 가능한 주소 범위: 64 × 2MB = 128MB                             │
  │       - 상당히 큰 프로그램도 TLB 히트 유지                                    │
  │                                                                            │
  │  [1GB 페이지 64항목]                                                        │
  │       - 커버 가능한 주소 범위: 64 × 1GB = 64GB                               │
  │       - 거의 모든 프로그램에서 TLB 히트율 100% 에 가까움                       │
  └────────────────────────────────────────────────────────────────────────────┘

[다이어그램 해설] TLB는 제한된 수의 항목(일반적으로 64~256개)만 保存할 수 있으므로, 페이지 크기가 클수록 커버できるアドレス範囲が広くなる。4KB 페이지에서는 64항목으로도 256KB만 표현 가능하지만, 1GB 페이지에서는 64GB까지 표현 가능하다. 따라서大型データベース나가상マシンでは、Huge Page를 使用하여 TLB 미스를 최소화하는 것이性能向上에 매우 효과적이다.

  • 섹션 요약 비유: 사전(사전)이页 수가 적으면(큰 페이지) 빨리 찾을 수 있지만 낱말 하나에whole page를 낭비하고, 页 수가 많으면(작은 페이지) 효율적이지만 찾는 시간이 오래 걸린다.

Ⅲ. 융합 비교 및 다각도 분석

다양한 페이지 크기의 실용적 비교

구분4KB (표준)2MB (Huge)1GB (Huge)
내부 단편화최소 (2KB 평균)중간 (1MB 평균)최대 (512GB 평균)
페이지 테이블 항목100만 개 (4GB 기준)2,000 개4 개
TLB 효율낮음높음극도로 높음
디스크 I/O잦은 소규모 전송적은 대규모 전송극단적 대량 전송
적합 상황일반 앱DB, VM특수 목적

Modern OS의 Multiple Page Sizes 전략

  ┌────────────────────────────────────────────────────────────────────────────┐
  │              투 트랙 (Multiple Page Sizes) 메모리 관리                             │
  ├────────────────────────────────────────────────────────────────────────────┤
  │
  │  [표준 4KB 페이지]                                                         │
  │       - 카카오톡, 메모장 등 일반 앱                                           │
  │       - 메모리 利用効率 우선                                                │
  │                                                                            │
  │  [Huge Pages (2MB, 1GB)]                                                  │
  │       - Oracle Database, VMware 등 거대 프로그램                              │
  │       - TLB 효율 및 I/O 성능 우선                                           │
  │                                                                            │
  │  [Linux의 THP (Transparent Huge Pages)]                                    │
  │       - OS가 상황에 따라 자동으로 4KB ↔ 2MB 전환                              │
  │       - 사용자에게 투명하게 최적화                                            │
  └────────────────────────────────────────────────────────────────────────────┘

[다이어그램 해설] Modern OS는固定된 페이지 크기가 아닌, 프로그램의特性에 따라 다양한 페이지 크기를混合使用한다. 일반적인 응용 프로그램은 4KB 페이지로 효율적인 메모리利用を優先하고,大型データベース나가상머신처럼 대규모 메모리를 사용하는 프로그램은 Huge Page를 使用하여 TLB 효율을 극대화한다. Linux의 THP(Transparent Huge Pages)는 이러한 전환을使用자에게 투명하게自动化한다。

  • 섹션 요약 비유: 소형 편의점(4KB)에서는 商品을 작은 진열대에 담아 빈 공간을 최소화하고, 대형 창고(1GB)에서는 파레트 단위로 商品을 보관하여管理リスト를 최소화하는 것과 같다.

Ⅳ. 실무 적용 및 기술사적 판단

실무 시나리오

  1. 데이터베이스의 Huge Pages Oracle Database, PostgreSQL 등의 대규모 DB는 Huge Pages (2MB)를 使用하여 TLB 미스를 최소화하고 성능을 향상시킨다. 메모리密集型 Query에서显著的인效果가 있다.

  2. 가상 머신의 Huge Pages VMware, VirtualBox 등의 가상 머신은 게스트 OS에게 할당되는 메모리가 크므로, 호스트에서 Huge Pages를 使用하면 TLB 오버헤드가 감소하여虚拟机 성능이 향상된다.

도입 체크리스트

  • 기술적: 애플리케이션의 메모리 접근 패턴을 분석하여 적절한 페이지 크기를 선택했는가? Huge Pages 사용 시 내부 단편화로 인한 메모리 낭비를 감수할 수 있는가?

안티패턴

  • 작은 프로그램에 Huge Pages: 카카오톡과 같은 작은 프로그램에 1GB Huge Pages를 주면, 1GB 중 999MB가 낭비되어メモリ効率が极端に低下한다.

  • 섹션 요약 비유: 감기약은 효과적이지만 대용량은 비효율적인 것처럼, 페이지 크기도 프로그램의 규모에 맞게 선택해야 한다.


Ⅴ. 기대효과 및 결론

정량/정성 기대효과

구분4KB2MB1GB
메모리 이용률最高중간最低
TLB 성능最低높음最高
디스크 I/O비효율적효율적極度に効率的
적합 대상일반 앱중형 앱특수 목적

미래 전망

  • 적응형 페이지 크기: 차세대 시스템では、機械学習을活用하여 프로그램의 메모리 접근 패턴을 분석하고 실시간으로 최적의 페이지 크기를 선택하는研究가 진행 중이다.

  • 섹션 요약 비유:ページ 크기 선택은 "상황에 맞는 도구를 선택하는 것"이다. 작은 수리에는 작은 드라이버를, 큰 수리에는 큰 렌치을 사용하듯이, 프로그램의特性에 맞는ページ 크기를 선택하는 것이 最強이다.


📌 관련 개념 맵 (Knowledge Graph)

개념 명칭관계 및 시너지 설명
내부 단편화 (Internal Fragmentation)페이지 크기가 클수록 증가하는 메모리 낭비
페이지 테이블 (Page Table)페이지 크기가 작을수록 기하급수적으로 증가하는 관리 구조
TLB (Translation Lookaside Buffer)대형 페이지 도입의最主要한動機
디스크 I/O페이지 크기가 클수록 효율적인 대량 전송 가능
THP (Transparent Huge Pages)Linux에서 4KB와 2MB 페이지를 자동으로 전환하는 기술

👶 어린이를 위한 3줄 비유 설명

  1. 페이지 크기는 장난감을 담는 '보관함의 크기'를 결정하는 거예요.
  2. 보관함이 아주 작으면(4KB) 빈 공간 없이 꽉꽉 채울 수 있지만, 보관함 개수가 수백만 개가 되어서 어느 상자에 뭐가 있는지(페이지 테이블) 찾기가 너무 힘들어요.
  3. 반대로 보관함이 집채만 하게 크면(Huge Page), 텅 빈 채로 낭비되는 공간은 많겠지만 물건을 찾을 때는 1초 만에 찾을 수 있어서 엄청 빠르답니다!