9.8. キャッシュ設定の管理


Directory Server は以下のキャッシュを使用します。

  • 個々のディレクトリーエントリーが含まれるエントリーキャッシュ。
  • 識別名 (DN) キャッシュは、DN と相対識別名 (RDN) をエントリーに関連付けるために使用されます。
  • データベースインデックスファイル *.db ファイルを含むデータベースキャッシュ。

最高のパフォーマンス向上を実現するには、すべてのキャッシュサイズですべてのレコードを保存できる必要があります。推奨される自動サイズ設定機能を使用せず、使用可能な RAM を十分確保できない場合は、前に示した順序でキャッシュに空きメモリーを割り当てます

デフォルトでは、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 に応じて、以下のキャッシュサイズになります。

Expand
表9.1 nsslapd-cache-autosize と nsslapd-cache-autosize-split の両方がデフォルト値を使用する場合のキャッシュサイズ
空き 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 コマンドを使用すると、実行時にキャッシュ統計を監視できます。統計を表示するには、次のコマンドを実行します。

# dsconf <instance_name> monitor dbmon

DB Monitor Report: 2022-02-24 10:25:16
--------------------------------------------------------
Database Cache:
 - Cache Hit Ratio:     50%
 - Free Space:          397.31 KB
 - Free Percentage:     2.2%
 - RO Page Drops:       0
 - Pages In:            2934772
 - Pages Out:           219075

Normalized DN Cache:
 - Cache Hit Ratio:     60%
 - Free Space:          19.98 MB
 - Free Percentage:     99.9%
 - DN Count:            100000
 - Evictions:           9282348

Backends:
  - dc=example,dc=com (userroot):
    - Entry Cache Hit Ratio:        66%
    - Entry Cache Count:            50000
    - Entry Cache Free Space:       2.0 KB
    - Entry Cache Free Percentage:  0.8%
    - Entry Cache Average Size:     8.9 KB
    - DN Cache Hit Ratio:           21%
    - DN Cache Count:               100000
    - DN Cache Free Space:          4.29 MB
    - DN Cache Free Percentage:     69.8%
    - DN Cache Average Size:        130.0 B
Copy to Clipboard Toggle word wrap

必要に応じて、-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%
    Copy to Clipboard Toggle word wrap

    ただし、効率的に操作するには 15% 以上の空きデータベースキャッシュが必要です。データベースキャッシュの最適なサイズを決定するには、サブディレクトリーと changelog データベースを含む /var/lib/dirsrv/slapd-<instance_name>/db/ ディレクトリー内のすべての *.db ファイルのサイズを計算し、オーバーヘッドとして 12% を追加します。

    データベースキャッシュを設定するには、コマンドラインを使用したデータベースキャッシュサイズの設定 を参照してください。

  • userroot データベースの DN キャッシュは適正です。

    Backends:
      - dc=example,dc=com (userroot):
        ...
        - DN Cache Count:               100000
        - DN Cache Free Space:          4.29 MB
        - DN Cache Free Percentage:     69.8%
        - DN Cache Average Size:        130.0 B
    Copy to Clipboard Toggle word wrap

    データベースの DN キャッシュには 100000 のレコードが含まれ、キャッシュの空き領域の割合は 69.8 % で、メモリーの各 DN には平均 130 バイトが必要です。

    DN キャッシュを設定するには、コマンドラインを使用した DN キャッシュサイズの設定 を参照してください。

  • userroot データベースのエントリーキャッシュの統計は、パフォーマンスを向上させるためにエントリーキャッシュの値を大きくする必要があることを示しています。

    Backends:
      - dc=example,dc=com (userroot):
      ...
        - Entry Cache Count:            50000
        - Entry Cache Free Space:       2.0 KB
        - Entry Cache Free Percentage:  0.8%
        - Entry Cache Average Size:     8.9 KB
    Copy to Clipboard Toggle word wrap

    エントリーキャッシュのこのデータベースには 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 に余裕がある場合は、データベースキャッシュに割り当てるメモリー量を増やします。

手順

  1. Automatic Cache Tuning を無効にします。

    # dsconf <instance_name> backend config set --cache-autosize=0
    Copy to Clipboard Toggle word wrap
  2. データベースのキャッシュサイズを手動で設定します。

    # dsconf <instance_name> backend config set --dbcachesize=268435456
    Copy to Clipboard Toggle word wrap

    データベースのキャッシュサイズをバイト単位で指定します。この例では、コマンドはデータベースキャッシュを 256 MB に設定します。

  3. インスタンスを再起動します。

    # dsctl <instance_name> restart
    Copy to Clipboard Toggle word wrap

9.8.4. Web コンソールを使用したデータベースキャッシュサイズの設定

データベースキャッシュには、データベースの Berkeley データベースインデックスファイルが含まれます。つまり、データベースによる属性のインデックス化に使用されるすべての *.db およびその他のファイルになります。この値は、Berkeley DB API 関数 set_cachesize() に渡されます。このキャッシュサイズは、エントリーキャッシュサイズに比べて Directory Server のパフォーマンスへの影響は少ないですが、エントリーキャッシュサイズを設定した後に RAM に余裕がある場合は、データベースキャッシュに割り当てるメモリー量を増やします。

前提条件

  • Web コンソールでインスタンスにログインしている。

手順

  1. Database Global Database Configuration に移動します。
  2. Automatic Cache Tuning の選択を解除します。
  3. Save Config をクリックします。
  4. 256 MB の場合は 268435456 のように、データベースキャッシュサイズをバイト単位で Database Cache Size フィールドに入力します。
  5. Save Config をクリックします。
  6. 右上隅の Actions をクリックし、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 および変換の手順をスキップできます。

手順

  1. 接尾辞とそれに対応するバックエンドを表示します。

    # dsconf <instance_name> backend suffix list
    dc=example,dc=com (userroot)
    Copy to Clipboard Toggle word wrap

    このコマンドにより、各接尾辞の横にバックエンドデータベースが表示されます。次の手順で、接尾辞のデータベース名が必要です。

  2. DN キャッシュサイズを設定します。

    # dsconf <instance_name> backend suffix set --dncache-memsize=20971520 userRoot
    Copy to Clipboard Toggle word wrap

    このコマンドは、userRoot データベースの DN キャッシュを 20 メガバイトに設定します。

  3. インスタンスを再起動します。

    # dsctl <instance_name> restart
    Copy to Clipboard Toggle word wrap

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 コンソールでインスタンスにログインしている。

手順

  1. Database Suffixes suffix_name に移動します。
  2. DN Cache Size フィールドに DN キャッシュサイズをバイト単位で入力します。
  3. Save Configuration をクリックします。
  4. 右上隅の Actions をクリックし、Restart Instance を選択します。

9.8.7. コマンドラインを使用したエントリーキャッシュサイズの設定

Directory Server はエントリーキャッシュを使用して、検索および読み取り操作中に使用されるディレクトリーエントリーを格納します。すべてのレコードを格納できるサイズにエントリーキャッシュを設定すると、検索操作のパフォーマンスに最も大きな影響を与えます。

エントリーのキャッシュが設定されていない場合、Directory Server は id2entry.db データベースファイルからエントリーを読み取り、識別名 (DN) をディスク上のフォーマットからメモリー内のフォーマットに変換します。キャッシュに保存されているエントリーにより、サーバーはディスク I/O および変換の手順をスキップできます。

手順

  1. 自動キャッシュチューニングを無効にします。

    # dsconf <instance_name> backend config set --cache-autosize=0
    Successfully updated database configuration
    Copy to Clipboard Toggle word wrap
  2. 接尾辞とそれに対応するバックエンドを表示します。

    # dsconf <instance_name> backend suffix list
    dc=example,dc=com (userroot)
    Copy to Clipboard Toggle word wrap

    このコマンドにより、各接尾辞の横にバックエンドデータベースが表示されます。次の手順で、接尾辞のデータベース名が必要です。

  3. データベースのエントリーキャッシュサイズをバイト単位で設定します。

    # dsconf <instance_name> backend suffix set --cache-memsize=2147483648 userRoot
    Copy to Clipboard Toggle word wrap

    このコマンドは、userRoot データベースのエントリーキャッシュを 2 GB に設定します。

  4. インスタンスを再起動します。

    # dsctl <instance_name> restart
    Copy to Clipboard Toggle word wrap

9.8.8. Web コンソールを使用したエントリーキャッシュサイズの設定

Directory Server はエントリーキャッシュを使用して、検索および読み取り操作中に使用されるディレクトリーエントリーを格納します。すべてのレコードを格納できるサイズにエントリーキャッシュを設定すると、検索操作のパフォーマンスに最も大きな影響を与えます。

エントリーのキャッシュが設定されていない場合、Directory Server は id2entry.db データベースファイルからエントリーを読み取り、識別名 (DN) をディスク上のフォーマットからメモリー内のフォーマットに変換します。キャッシュに保存されているエントリーにより、サーバーはディスク I/O および変換の手順をスキップできます。

前提条件

  • Web コンソールでインスタンスにログインしている。

手順

  1. Database Suffixes suffix_name Settings に移動します。
  2. Automatic Cache Tuning 設定を無効にします。
  3. Save Configuration をクリックします。
  4. 右上隅の Actions をクリックし、Restart Instance を選択します。
  5. Database Suffixes suffix_name Settings に移動します。
  6. Entry Cache Size フィールドにデータベースキャッシュのサイズを設定します。
  7. Save Configuration をクリックします。
  8. 右上隅の Actions をクリックし、Restart Instance を選択します。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat