36장. 대규모 페이지 구성
물리적 메모리는 페이지라는 고정된 크기의 청크로 관리됩니다. Red Hat Enterprise Linux 8에서 지원되는 x86_64 아키텍처에서 메모리 페이지의 기본 크기는 4KB
입니다. 이 기본 페이지 크기는 다양한 종류의 워크로드를 지원하는 Red Hat Enterprise Linux와 같은 범용 운영 체제에 적합합니다.
그러나 특정 애플리케이션은 특정 경우에 더 큰 페이지 크기를 사용할 경우 이점을 얻을 수 있습니다. 예를 들어, 수백 메가바이트 또는 수십 기가바이트로 구성된 대규모 데이터 세트와 함께 작동하는 애플리케이션은 4KB 페이지를
사용할 때 성능 문제가 발생할 수 있습니다. 이러한 데이터 세트에는 운영 체제 및 CPU에서 오버헤드가 발생할 수 있는 상당한 양의 4KB 페이지가
필요할 수 있습니다.
이 섹션에서는 RHEL 8에서 사용할 수 있는 대규모 페이지 및 구성 방법에 대한 정보를 제공합니다.
36.1. 사용 가능한 대규모 페이지 기능
Red Hat Enterprise Linux 8을 사용하면 빅 데이터 세트에서 작업하는 애플리케이션에 대규모 페이지를 사용하고 이러한 애플리케이션의 성능을 향상시킬 수 있습니다.
다음은 RHEL 8에서 지원되는 대규모 페이지 방법입니다.
HugeTLB 페이지
HugeTLB 페이지를 정적 대규모 페이지라고도 합니다. HugeTLB 페이지를 예약하는 방법은 다음 두 가지가 있습니다.
- 부팅 시: 메모리가 아직 크게 조각화되지 않았기 때문에 성공 가능성이 높아집니다. 그러나 NUMA 시스템에서 페이지 수는 NUMA 노드 간에 자동으로 분할됩니다.
부팅 시 HugeTLB 페이지 동작에 영향을 미치는 매개변수에 대한 자세한 내용은 부팅 시 HugeTLB 페이지를 예약하는 방법 및 이러한 매개변수를 사용하여 부팅 시 HugeTLB 페이지를 구성하는 방법을 참조하십시오.
- 런타임 시: NUMA 노드당 대규모 페이지를 예약할 수 있습니다. 부팅 과정에서 런타임 예약이 최대한 빨리 수행되면 메모리 조각화 가능성이 낮습니다.
런타임에 HugeTLB 페이지 동작에 영향을 미치는 매개변수에 대한 자세한 내용은 런타임에 HugeTLB 페이지를 예약하는 매개 변수 및 이러한 매개변수를 사용하여 런타임에 HugeTLB 페이지를 구성하는 방법을 참조하십시오.
THP(Transparent HugePages)
THP에서는 커널이 대규모 페이지를 프로세스에 자동으로 할당하므로 정적 대규모 페이지를 수동으로 예약할 필요가 없습니다. 다음은 THP에서 두 가지 작업 모드입니다.
-
system-wide
: 여기에서 커널은 대규모 페이지를 할당할 수 있을 때마다 대규모 페이지를 프로세스에 할당하려고 하며 프로세스에서 대규모 가상 메모리 영역을 사용합니다. 프로세스 별
: 여기에서 커널은 개별 프로세스의 메모리 영역에만 대규모 페이지를 할당합니다. 이 영역에서는시스템
호출()을 사용하여 지정할 수 있습니다.참고THP 기능은
2MB
페이지만 지원합니다.
-
부팅 시 HugeTLB 페이지 동작에 영향을 미치는 매개변수에 대한 자세한 내용은 투명한 hugepage 활성화 및 투명한 hugepages 비활성화를 참조하십시오.