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パラメータ
<table cellpadding="4" cellspacing="0" class="Formal" title="Commonly Used File-Based HugeTLB Parameters" summary='This table outlines commonly used HugeTLB configuration parameters and the multiple file instances that you might find for each parameter. Some folders in the parameter file paths are listed with placeholder names that convey a range of possible values. For example, the folder name “hugepages-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