第11章 Huge Page の設定
物理メモリーは、ページと呼ばれる固定サイズのブロックで管理されます。Red Hat Enterprise Linux でサポートされている x86_64 アーキテクチャーでは、メモリーページのデフォルトサイズは 4 KB です。このデフォルトのページサイズは、さまざまなワークロードをサポートする Red Hat Enterprise Linux などの汎用オペレーティングシステムに適しています。
ただし、特定のアプリケーションは、特定のケースで大きなページサイズを使用する利点を得られます。たとえば、数百メガバイトまたは数千ギガバイトの大規模で比較的固定されたデータセットで動作するアプリケーションでは、4 KB ページを使用するとパフォーマンスの問題が発生する可能性があります。このようなデータセットには大量の 4 KB ページが必要になる場合があるため、オペレーティングシステムと CPU のリソース使用量が増加する可能性があります。
このセクションでは、RHEL 10 で利用可能な huge page とその設定方法を説明します。
11.1. 利用可能な Huge Page の機能 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat Enterprise Linux では、大規模なデータセットを扱うアプリケーションに huge page を使用し、そのアプリケーションのパフォーマンスを向上できます。
以下は、RHEL でサポートされている huge page の方式です。
HugeTLB pagesHugeTLB ページは、静的 huge page とも呼ばれます。HugeTLB ページを予約する方法は 2 つあります。
At boot time(起動時): メモリーがまだ大きく断片化していないため、正常に予約できる可能性が高まります。ただし、NUMA マシンでは、ページ数は NUMA ノード間で自動的に分割されます。起動時の HugeTLB ページの動作に影響を与えるパラメーターの詳細は、起動時に HugeTLB ページを予約するためのパラメーター を参照してください。また、これらのパラメーターを使用して起動時に HugeTLB ページを設定する方法の詳細は、起動時の HugeTLB の設定 を参照してください。
-
At runtime(実行時): NUMA ノードごとに huge page を予約できます。実行時予約をブートプロセスのできるだけ早い段階で行うと、メモリーの断片化の可能性が低くなります。
実行時に HugeTLB ページの動作に影響を与えるパラメーターの詳細は、実行時に HugeTLB ページを予約するためのパラメーター を参照してください。また、これらのパラメーターを使用して実行時に HugeTLB ページを設定する方法の詳細は、実行時の HugeTLB の設定 を参照してください。
transparent huge page (THP)THP を使用すると、カーネルがプロセスに huge page を自動的に割り当てます。そのため、静的な huge page を手動で予約する必要がありません。THP には次の 2 つの動作モードがあります。
-
system-wide: huge page の割り当てが可能であり、大きな連続した仮想メモリー領域をプロセスが使用している場合に、カーネルがプロセスへの huge page の割り当てを試みます。 per-process:madvise() システムコールを使用して指定できる個々のプロセスのメモリー領域にのみ、カーネルが huge page を割り当てます。注記THP 機能でサポートされているのは、
2 MBのページだけです。
-
起動時に HugeTLB ページの動作に影響を与えるパラメーターの詳細は、transparent huge page の管理 を参照してください。