HugeTLBページのファイルベースの構成パラメータ
ノート:
実行時に設定にアクセスするだけでなく、起動bashスクリプトの作成や、ローカルのrc initスクリプトでのパラメータの設定によって、ブート・プロセスの初期段階でパラメータを初期化することもできます。nr_hugepages設定が存在することが可能です。 このパラメータは、次のようなプール内のページ数を定義します:
- 2MBページのプール内のページ数を示すファイル
/sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages。 - 1GBページのプール内のページ数を示すファイル
/sys/kernel/mm/hugepages/hugepages-1048576kB/nr_hugepages。
次の表に、一般的に使用されるHugeTLB構成パラメータと、各パラメータに対して検出される複数のファイル・インスタンスを示します。
表2-2 一般的に使用されるファイルベースのHugeTLBパラメータ
nr_hugepages
nr_hugepagesの各インスタンスは、そのインスタンスに関連付けられたプール内の現在のヒュージ・ページ数を定義します。- 実行時に変更できます。
-
コマンド例:
echo 20 | sudo tee /proc/sys/vm/nr_hugepages - デフォルト値は
0です。
nr_hugepagesの異なるインスタンスのファイル・パス形式は次のとおりです。
- ファイルの場所:
/proc/sys/vm/nr_hugepages(すべてのシステムに存在)。 - ファイルの場所:
/sys/kernel/mm/hugepages/hugepages-<SIZE>kB/nr_hugepages(複数のヒュージ・ページ・サイズをサポートするシステム上に存在)。 -
ファイルの場所:
/sys/devices/system/node/node{0,1,2…n}/hugepages/hugepages-<SIZE>kB/nr_hugepages(NUMAシステムのみに存在)。ノート:
特定のNUMAノードでサポートされる様々なサイズのページ数をリクエストする必要がある場合は、NUMAノード固有のパス形式を使用します。 他のパス形式(
/proc/sys/vm/nr_hugepagesなど)を使用する場合は、HugeTLBページをリクエストします。 ページはNUMAノード間で均等に分割されます。
nr_overcommit_hugepages
nr_overcommit_hugepagesの各インスタンスは、nr_hugepagesで指定された数量より多い追加の数のヒュージ・ページを定義します。 これは、メモリーのオーバーコミットを通じて実行時に、システムによって作成されます。- これらの追加のヒュージ・ページは、使用されなくなると、解放されてカーネルの通常のページ・プールに戻されます。
- コマンド例:
echo 20 | sudo tee /proc/sys/vm/nr_overcommit_hugepages
nr_overcommit_hugepagesの異なるインスタンスのファイル・パス形式は次のとおりです。
- ファイルの場所:
/proc/sys/vm/nr_overcommit_hugepages(すべてのシステムに存在)。 - ファイルの場所:
/sys/kernel/mm/hugepages/hugepages-<SIZE>kB/nr_overcommit_hugepages(複数のページ・サイズをサポートするシステムに存在)。
ノート:
nr_overcommit_hugepagesパラメータは個々のノード・レベルでは定義されないため、この設定にはノード固有のファイルが存在しません。
free_hugepages
- 読取り専用パラメータ。
free_hugepagesの各インスタンスは、まだ割り当てられていない関連ページ・プール内のヒュージ・ページ数を返します。
free_hugepagesの異なるインスタンスのファイル・パス形式は次のとおりです。
- ファイルの場所:
/sys/kernel/mm/hugepages/hugepages-<SIZE>kB/free_hugepages(複数のヒュージ・ページ・サイズをサポートするシステム上に存在)。 - ファイルの場所:
/sys/devices/system/node/node{0,1,2…n}/hugepages/hugepages-<SIZE>kB/ free_hugepages(NUMAシステムのみに存在)。
surplus_hugepages
- 読取り専用パラメータ。
surplus_hugepagesの各インスタンスは、関連付けられたページ・プールからオーバーコミットされたヒュージ・ページ数を返します。
surplus_hugepagesの異なるインスタンスのファイル・パス形式は次のとおりです。
- ファイルの場所:
/sys/kernel/mm/hugepages/hugepages-<SIZE>kB/surplus_hugepages(複数のヒュージ・ページ・サイズをサポートするシステムに存在)。 - ファイルの場所:
/sys/devices/system/node/node{0,1,2…n}/hugepages/hugepages-<SIZE>kB/surplus_hugepages(NUMAシステムのみに存在)。
次の項では、HugeTLBパラメータの様々なインスタンスが格納されるファイルのブランチを示します:
/proc/sys/vm
静的ヒュージ・ページをサポートするすべてのシステムには、/proc/sys/vmの下にHugeTLBパラメータ・ファイルが含まれています。
ノート:
多数のOracleデータベース・サーバーを含む多くのシステムでは、procfsファイル・システムが使用される主要なパラメータ・セットです。
sysctlパラメータvm.nr_hugepagesは、通常、ヒュージ・ページをリクエストするスクリプトで初期化され、procfsファイル/proc/sys/vm/nr_hugepagesにも書き込まれます。
ブランチ/proc/sys/vmの下にあるフォルダの例を次に示します:
âââ ...
âââ ...
âââ nr_hugepages
âââ ...
âââ nr_overcommit_hugepages
âââ ...
âââ ...
/sys/kernel/mm/hugepages/
複数のサイズ・プールをサポートするシステムには、/sys/kernel/mm/hugepages/のサイズ固有のフォルダにHugeTLBパラメータ・ファイルが含まれています。
ブランチ/sys/kernel/mm/hugepages/の下にあるフォルダの例を次に示します:
âââ hugepages-2048kB
âââ free_hugepages
âââ nr_hugepages
âââ ...
âââ nr_overcommit_hugepages
âââ ...
âââ surplus_hugepages
âââ hugepages-1048576kB
âââ free_hugepages
âââ nr_hugepages
âââ ...
âââ nr_overcommit_hugepages
âââ ...
âââ surplus_hugepages
/sys/devices/system/node/
NUMAシステムのみに、/sys/devices/system/node/にHugeTLBパラメータ・ファイルが含まれています。
ブランチ/sys/devices/system/nodeの下にあるフォルダの例を次に示します:
ââ ...
âââ node0
â âââ ...
â âââhugepages
â hugepages-2048kB
â âââ free_hugepages
â âââ nr_hugepages
â âââ surplus_hugepages
â
â hugepages-1048576kB
â âââ free_hugepages
â âââ nr_hugepages
â âââ surplus_hugepages
âââ node1
âââ ...
âââhugepages
hugepages-2048kB
âââ free_hugepages
âââ nr_hugepages
âââ surplus_hugepages
hugepages-1048576kB
âââ free_hugepages
âââ nr_hugepages
âââ surplus_hugepages