Red Hat Training

A Red Hat training course is available for RHEL 8

第36章 Huge Page の設定

物理メモリーは、ページと呼ばれる固定サイズのブロックで管理されます。Red Hat Enterprise Linux 8 が対応する x86_64 アーキテクチャーでは、メモリーページのデフォルトサイズは 4 KB です。このデフォルトのページサイズは、さまざまなワークロードをサポートする Red Hat Enterprise Linux などの一般的なオペレーティングシステムに適しています。

ただし、特定のアプリケーションは、特定のケースで大きなページサイズを使用する利点を得られます。たとえば、数百メガバイトまたは数千ギガバイトの大規模で比較的固定されたデータセットで動作するアプリケーションでは、4 KB ページを使用するとパフォーマンスの問題が発生する可能性があります。このようなデータセットには大量の 4 KB ページが必要になるため、オペレーティングシステムや CPU でオーバーヘッドが発生する可能性があります。

本セクションでは、RHEL 8 で利用可能なヒュージページとその設定方法を説明します。

36.1. 利用可能な Huge Page の機能

Red Hat Enterprise Linux 8 では、大規模なデータセットに対応するアプリケーションに Huge Page を使用し、このようなアプリケーションのパフォーマンスを向上できます。

以下は、RHEL 8 でサポートされる Huge Page メソッドです。

HugeTLB pages

HugeTLB ページも静的なヒュージページと呼ばれます。HugeTLB ページを予約する方法は 2 つあります。

  • ブート時: メモリーが大幅に断片化されていないため、成功する可能性が高くなります。ただし、NUMA マシンでは、ページ数は NUMA ノード間で自動的に分割されます。

起動時に HugeTLB ページの動作に影響を与えるパラメーターの詳細は、起動時に HugeTLB ページを確保するためのパラメーター を参照してください。これらのパラメーターを使用して起動時に HugeTLB ページを設定する方法の詳細は、起動時の HugeTLB の設定 を参照してください。

  • ランタイム時に: NUMA ノードごとにヒュージページを予約することができます。ランタイム予約がブートプロセスの早い段階で行われると、メモリーの断片化はより低くなります。

ランタイム時に HugeTLB ページの動作に影響を与えるパラメーターの詳細は、ランタイム時に HugeTLB ページを確保するためのパラメーター を参照し、これらのパラメーターを使用してランタイム時に HugeTLB ページを設定する方法の詳細は、ランタイム時の HugeTLB の設定 を参照してください。

Transparent HugePages (THP)

THP では、カーネルはヒュージページをプロセスに自動的に割り当てるため、静的な Huge Page を手動で予約する必要はありません。以下は、THP における動作の 2 つのモードです。

  • system-wide で、カーネルはヒュージページを割り当て、プロセスが連続している仮想メモリー領域を使用しているたびに Huge Page をプロセスに割り当てようと試みます。
  • プロセスごと: ここでは、カーネルは各プロセスのメモリー領域だけに割り当てるため、madvise() システムコールを使用して指定できるヒュージページを 1 つのみに割り当てます。

    注記

    THP 機能は、2 MB ページのみに対応します。

起動時に HugeTLB ページの動作に影響を与えるパラメーターの詳細は、透過的な HugePage の有効化 および 透過的な HugePage の無効化 を参照してください。