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