9.8. キャッシュ設定の管理
Directory Server は以下のキャッシュを使用します。
- 個々のディレクトリーエントリーが含まれるエントリーキャッシュ。
- 識別名 (DN) キャッシュは、DN と相対識別名 (RDN) をエントリーに関連付けるために使用されます。
-
データベースインデックスファイル
*.db
ファイルを含むデータベースキャッシュ。
最高のパフォーマンス向上を実現するには、すべてのキャッシュサイズですべてのレコードを保存できる必要があります。推奨される自動サイズ設定機能を使用せず、使用可能な RAM を十分確保できない場合は、前に示した順序でキャッシュに空きメモリーを割り当てます
9.8.1. cache-autosize および cache-autosize-split パラメーターがデータベースとエントリーのキャッシュサイズに与える影響 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、Directory Server は自動サイズ変更機能を使用して、インスタンスの起動時にサーバーのハードウェアリソース上のデータベースとエントリーキャッシュの両方のサイズを最適化します。
Red Hat は、自動サイズ設定機能を使用し、キャッシュサイズを手動で設定しないことを推奨します。
cn=config,cn=ldbm database,cn=plugins,cn=config
エントリーの以下のパラメーターは自動サイズ設定を制御します。
nsslapd-cache-autosize
これらの設定は、データベースとエントリーキャッシュの自動サイズ設定を有効にするかどうかを制御します。自動サイズ設定は、以下の場合に有効になります。
-
nsslapd-cache-autosize
パラメーターが0
より大きい値に設定されている場合、データベースとエントリーキャッシュの両方で有効になります。 -
nsslapd-cache-autosize
およびnsslapd-dbcachesize
パラメーターが0
に設定されている場合、データベースキャッシュで有効になります。 -
nsslapd-cache-autosize
およびnsslapd-cachememsize
パラメーターが0
に設定されている場合、エントリーキャッシュで有効になります。
-
nsslapd-cache-autosize-split
- この値は、Directory Server がデータベースキャッシュに使用する RAM の割合を設定します。サーバーは残りのパーセンテージをエントリーキャッシュに使用します。
- データベースキャッシュに 1.5 GB を超える RAM を使用しても、パフォーマンスは向上しません。そのため、Directory Server はデータベースキャッシュを 1.5 GB に制限します。
デフォルトでは、Directory Server は次の値を使用します。
-
nsslapd-cache-autosize: 25
-
nsslapd-cache-autosize-split: 25
-
nsslapd-dbcachesize: 1,536 MB
これらの設定を使用すると、システムの空き RAM の 25% が使用されます (nsslapd-cache-autosize
)。このメモリーのうち、サーバーは 25% をデータベースキャッシュ (nsslapd-cache-autosize-split
) に使用し、残りの 75% をエントリーキャッシュに使用します。
空き RAM に応じて、以下のキャッシュサイズになります。
空き RAM (GB 単位) | データベースキャッシュサイズ | エントリーキャッシュサイズ |
---|---|---|
1 GB | 64 MB | 192 MB |
2 GB | 128 MB | 384 MB |
4 GB | 256 MB | 768 MB |
8 GB | 512 MB | 1,536 MB |
16 GB | 1,024 MB | 3,072 MB |
32 GB | 1,536 MB | 6,656 MB |
64 GB | 1,536 MB | 14,848 MB |
128 GB | 1,536 MB | 31,232 MB |
9.8.2. 必要なキャッシュサイズ リンクのコピーリンクがクリップボードにコピーされました!
dsconf monitor dbmon
コマンドを使用すると、実行時にキャッシュ統計を監視できます。統計を表示するには、次のコマンドを実行します。
必要に応じて、-b back_end
または -x
オプションをコマンドに渡して、特定のバックエンドまたはインデックスの統計を表示します。
キャッシュのサイズが十分である場合、DN Cache Count
の数は Cache Count
バックエンドエントリーの値と一致します。さらに、すべてのエントリーと DN がそれぞれのキャッシュ内に収まる場合、Entry Cache Count
カウント値は DN Cache Count
値と一致します。
この例の出力は、以下のようになります。
2.2% の空きデータベースキャッシュのみが残っている場合:
Database Cache: ... - Free Space: 397.31 KB - Free Percentage: 2.2%
Database Cache: ... - Free Space: 397.31 KB - Free Percentage: 2.2%
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ただし、効率的に操作するには 15% 以上の空きデータベースキャッシュが必要です。データベースキャッシュの最適なサイズを決定するには、サブディレクトリーと changelog データベースを含む
/var/lib/dirsrv/slapd-<instance_name>/db/
ディレクトリー内のすべての*.db
ファイルのサイズを計算し、オーバーヘッドとして 12% を追加します。データベースキャッシュを設定するには、コマンドラインを使用したデータベースキャッシュサイズの設定 を参照してください。
userroot
データベースの DN キャッシュは適正です。Copy to Clipboard Copied! Toggle word wrap Toggle overflow データベースの DN キャッシュには 100000 のレコードが含まれ、キャッシュの空き領域の割合は 69.8 % で、メモリーの各 DN には平均 130 バイトが必要です。
DN キャッシュを設定するには、コマンドラインを使用した DN キャッシュサイズの設定 を参照してください。
userroot
データベースのエントリーキャッシュの統計は、パフォーマンスを向上させるためにエントリーキャッシュの値を大きくする必要があることを示しています。Copy to Clipboard Copied! Toggle word wrap Toggle overflow エントリーキャッシュのこのデータベースには 50000 のレコードが含まれており、残りの空き領域は 2 キロバイトのみです。Directory Server がすべての 100000 DN をキャッシュできるようにするには、キャッシュを最小でも 890 MB(100000 DN * 8,9 KB の平均エントリーサイズ) に増やす必要があります。ただし、Red Hat は、必要な最小サイズを次に大きい GB に切り上げし、その結果を 2 倍にすることを推奨します。この例では、エントリーキャッシュを 2 ギガバイトに設定する必要があります。
エントリーキャッシュを設定するには、コマンドラインを使用したエントリーキャッシュサイズの設定 を参照してください。
9.8.3. コマンドラインを使用したデータベースキャッシュサイズの設定 リンクのコピーリンクがクリップボードにコピーされました!
データベースキャッシュには、データベースの Berkeley データベースインデックスファイルが含まれます。つまり、データベースによる属性のインデックス化に使用されるすべての *.db
およびその他のファイルになります。この値は、Berkeley DB API 関数 set_cachesize()
に渡されます。このキャッシュサイズは、エントリーキャッシュサイズに比べて Directory Server のパフォーマンスへの影響は少ないですが、エントリーキャッシュサイズを設定した後に RAM に余裕がある場合は、データベースキャッシュに割り当てるメモリー量を増やします。
手順
Automatic Cache Tuning を無効にします。
dsconf <instance_name> backend config set --cache-autosize=0
# dsconf <instance_name> backend config set --cache-autosize=0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow データベースのキャッシュサイズを手動で設定します。
dsconf <instance_name> backend config set --dbcachesize=268435456
# dsconf <instance_name> backend config set --dbcachesize=268435456
Copy to Clipboard Copied! Toggle word wrap Toggle overflow データベースのキャッシュサイズをバイト単位で指定します。この例では、コマンドはデータベースキャッシュを 256 MB に設定します。
インスタンスを再起動します。
dsctl <instance_name> restart
# dsctl <instance_name> restart
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.8.4. Web コンソールを使用したデータベースキャッシュサイズの設定 リンクのコピーリンクがクリップボードにコピーされました!
データベースキャッシュには、データベースの Berkeley データベースインデックスファイルが含まれます。つまり、データベースによる属性のインデックス化に使用されるすべての *.db
およびその他のファイルになります。この値は、Berkeley DB API 関数 set_cachesize()
に渡されます。このキャッシュサイズは、エントリーキャッシュサイズに比べて Directory Server のパフォーマンスへの影響は少ないですが、エントリーキャッシュサイズを設定した後に RAM に余裕がある場合は、データベースキャッシュに割り当てるメモリー量を増やします。
前提条件
- Web コンソールでインスタンスにログインしている。
手順
-
に移動します。 - Automatic Cache Tuning の選択を解除します。
- をクリックします。
-
256 MB の場合は
268435456
のように、データベースキャッシュサイズをバイト単位で Database Cache Size フィールドに入力します。 - をクリックします。
- 右上隅の Restart Instance を選択します。 をクリックし、
9.8.5. コマンドラインを使用した DN キャッシュサイズの設定 リンクのコピーリンクがクリップボードにコピーされました!
Directory Server は entryrdn
インデックスを使用して、識別名 (DN) および相対識別名 (RDN) をエントリーに関連付けます。これにより、サーバーは効率的にサブツリーの名前を変更し、エントリーを移動し、moddn
操作を実行できます。サーバーは DN キャッシュを使用して entryrdn
インデックスのメモリー内表現をキャッシュし、コストのかかるファイル I/O および変換操作を回避します。
自動チューニング機能を使用しない場合、特にエントリーの名前変更と移動操作で最高のパフォーマンスを得るには、DN キャッシュを、Directory Server がデータベース内のすべての DN をキャッシュできるサイズに設定します。
DN がキャッシュに保存されていない場合、Directory Server は entryrdn.db
インデックスデータベースファイルから DN を読み取り、オンディスクフォーマットからインメモリーフォーマットに DN を変換します。キャッシュに保存されている DN により、サーバーはディスク I/O および変換の手順をスキップできます。
手順
接尾辞とそれに対応するバックエンドを表示します。
dsconf <instance_name> backend suffix list
# dsconf <instance_name> backend suffix list dc=example,dc=com (userroot)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドにより、各接尾辞の横にバックエンドデータベースが表示されます。次の手順で、接尾辞のデータベース名が必要です。
DN キャッシュサイズを設定します。
dsconf <instance_name> backend suffix set --dncache-memsize=20971520 userRoot
# dsconf <instance_name> backend suffix set --dncache-memsize=20971520 userRoot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、
userRoot
データベースの DN キャッシュを 20 メガバイトに設定します。インスタンスを再起動します。
dsctl <instance_name> restart
# dsctl <instance_name> restart
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.8.6. Web コンソールを使用した DN キャッシュサイズの設定 リンクのコピーリンクがクリップボードにコピーされました!
Directory Server は entryrdn
インデックスを使用して、識別名 (DN) および相対識別名 (RDN) をエントリーに関連付けます。これにより、サーバーは効率的にサブツリーの名前を変更し、エントリーを移動し、moddn
操作を実行できます。サーバーは DN キャッシュを使用して entryrdn
インデックスのメモリー内表現をキャッシュし、コストのかかるファイル I/O および変換操作を回避します。
自動チューニング機能を使用しない場合、特にエントリーの名前変更と移動操作で最高のパフォーマンスを得るには、DN キャッシュを、Directory Server がデータベース内のすべての DN をキャッシュできるサイズに設定します。
DN がキャッシュに保存されていない場合、Directory Server は entryrdn.db
インデックスデータベースファイルから DN を読み取り、オンディスクフォーマットからインメモリーフォーマットに DN を変換します。キャッシュに保存されている DN により、サーバーはディスク I/O および変換の手順をスキップできます。
前提条件
- Web コンソールでインスタンスにログインしている。
手順
-
に移動します。 - DN Cache Size フィールドに DN キャッシュサイズをバイト単位で入力します。
- をクリックします。
- 右上隅の Restart Instance を選択します。 をクリックし、
9.8.7. コマンドラインを使用したエントリーキャッシュサイズの設定 リンクのコピーリンクがクリップボードにコピーされました!
Directory Server はエントリーキャッシュを使用して、検索および読み取り操作中に使用されるディレクトリーエントリーを格納します。すべてのレコードを格納できるサイズにエントリーキャッシュを設定すると、検索操作のパフォーマンスに最も大きな影響を与えます。
エントリーのキャッシュが設定されていない場合、Directory Server は id2entry.db
データベースファイルからエントリーを読み取り、識別名 (DN) をディスク上のフォーマットからメモリー内のフォーマットに変換します。キャッシュに保存されているエントリーにより、サーバーはディスク I/O および変換の手順をスキップできます。
手順
自動キャッシュチューニングを無効にします。
dsconf <instance_name> backend config set --cache-autosize=0
# dsconf <instance_name> backend config set --cache-autosize=0 Successfully updated database configuration
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 接尾辞とそれに対応するバックエンドを表示します。
dsconf <instance_name> backend suffix list
# dsconf <instance_name> backend suffix list dc=example,dc=com (userroot)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドにより、各接尾辞の横にバックエンドデータベースが表示されます。次の手順で、接尾辞のデータベース名が必要です。
データベースのエントリーキャッシュサイズをバイト単位で設定します。
dsconf <instance_name> backend suffix set --cache-memsize=2147483648 userRoot
# dsconf <instance_name> backend suffix set --cache-memsize=2147483648 userRoot
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドは、
userRoot
データベースのエントリーキャッシュを 2 GB に設定します。インスタンスを再起動します。
dsctl <instance_name> restart
# dsctl <instance_name> restart
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.8.8. Web コンソールを使用したエントリーキャッシュサイズの設定 リンクのコピーリンクがクリップボードにコピーされました!
Directory Server はエントリーキャッシュを使用して、検索および読み取り操作中に使用されるディレクトリーエントリーを格納します。すべてのレコードを格納できるサイズにエントリーキャッシュを設定すると、検索操作のパフォーマンスに最も大きな影響を与えます。
エントリーのキャッシュが設定されていない場合、Directory Server は id2entry.db
データベースファイルからエントリーを読み取り、識別名 (DN) をディスク上のフォーマットからメモリー内のフォーマットに変換します。キャッシュに保存されているエントリーにより、サーバーはディスク I/O および変換の手順をスキップできます。
前提条件
- Web コンソールでインスタンスにログインしている。
手順
-
に移動します。 - Automatic Cache Tuning 設定を無効にします。
- をクリックします。
- 右上隅の Restart Instance を選択します。 をクリックし、
-
に移動します。 - Entry Cache Size フィールドにデータベースキャッシュのサイズを設定します。
- をクリックします。
- 右上隅の Restart Instance を選択します。 をクリックし、