40.3. 起動時の HugeTLB の設定
HugeTLB は、起動時に huge page を予約することで huge page の使用を可能にし、それによってメモリーの断片化を最小限に抑え、より大きなメモリーページのメリットを得られるワークロード用に十分なリソースを確保します。
40.3.1. カーネルコマンドラインパラメーターを使用した HugeTLB の設定 リンクのコピーリンクがクリップボードにコピーされました!
カーネルコマンドラインパラメーターを使用して、起動プロセスの最も早い段階で HugeTLB ページを予約できます。この方法では、カーネルの起動時にメモリーが割り当てられるため、必要な数とサイズの huge page を正常に予約できる可能性が最も高くなります。
カーネルブートパラメーターを使用して HugeTLB ページを予約することを推奨します。この方法では、systemd ユニットを使用する場合と比較して、より大きな連続したメモリー領域が割り当てられるためです。
この手順の例では、コマンドラインオプションを使用して HugeTLB ページを設定する方法を示します。この例は、必ずしもお使いのシステム設定に当てはまるとは限りません。この設定を環境に適用する前に、お使いのシステムの要件と目的を確認してください。
前提条件
- システムの root 特権がある。
手順
カーネルコマンドラインを更新して、HugeLTB オプションを含めます。
アーキテクチャーのデフォルトサイズの HugeTLB ページを予約するには、次のように入力します。
# grubby --update-kernel=ALL --args="hugepages=10"このコマンドは、デフォルトのプールサイズの HugeTLB ページを 10 個予約します。たとえば、
x86_64では、デフォルトのプールサイズは2 MBです。Non-Uniform Memory Access (NUMA) を使用するシステムでは、割り当てが複数の NUMA ノードに均等に分散されます。システムに 2 つの NUMA ノードがある場合、各ノードに 5 個のページが予約されます。異なるサイズの HugeTLB ページを予約するには、カーネルコマンドラインで
hugepageszおよびhugepagesオプションを指定して、次のように入力します。# grubby --update-kernel=ALL --args="hugepagesz=2M hugepages=10 hugepagesz=1G hugepages=1"このコマンドは、
2 MBのページを 10 個、1 GBのページを 1 個予約します。システムは指定された数とサイズの HugeTLB ページを起動時に予約し、オペレーティングシステムが通常の操作を開始する前にメモリーが割り当てられるようにします。
重要オプションの順序は重要です。各
hugepagesz=オプションの直後に、対応するhugepages=オプションを指定する必要があります。