第6章 データベースキャッシュ設定の管理

Directory Server は以下のキャッシュを使用します。
  • 個々のディレクトリーエントリーが含まれる Entry キャッシュ
  • DN キャッシュは、DN と RDN をエントリーに関連付けるために使用されます。
  • データベースインデックスファイル *.db および *.db4 が含まれるデータベースキャッシュ
最高のパフォーマンス向上を実現するには、すべてのキャッシュサイズですべてのレコードを保存できる必要があります。推奨される自動サイズ設定機能を使用せず、使用可能な RAM を十分確保できない場合は、前に示した順序でキャッシュに空きメモリーを割り当てます

6.1. データベースおよびエントリーキャッシュの自動サイズ設定機能

デフォルトでは、Directory Server は、データベースおよびエントリーキャッシュ向けに最適化されたサイズを自動的に決定します。自動サイズ調整は、インスタンスの起動時にサーバーのハードウェアリソースに基づいて両方のキャッシュのサイズを最適化します。
重要
Red Hat は、自動チューニング設定の使用を推奨します。エントリーキャッシュサイズは手動で設定しないでください。

6.1.1. データベースおよびエントリーキャッシュの自動サイズ調整を手動で再有効化

10.1.1 より前のバージョンからインスタンスをアップグレードしたり、エントリーキャッシュサイズを手動で設定した場合は、エントリーキャッシュの自動チューニングを有効にできます。
cn=config,cn=ldbm database,cn=plugins,cn=config エントリーの以下のパラメーターは自動サイズ設定を制御します。
nsslapd-cache-autosize
この設定では、データベースおよびエントリーキャッシュの自動サイズ設定に割り当てる空き RAM の量を制御します。自動サイズ設定が有効である:
  • データベースおよびエントリーキャッシュの両方で、nsslapd-cache-autosize パラメーターが 0 より大きい値に設定されている場合は、
  • データベースキャッシュの場合は、nsslapd-cache-autosize パラメーターおよび nsslapd-dbcachesize パラメーターが 0 に設定されている場合。
  • エントリーキャッシュの場合は、nsslapd-cache-autosize パラメーターおよび nsslapd-cachememsize パラメーターが 0 に設定されている場合。
nsslapd-cache-autosize-split
この値は、データベースキャッシュに使用される RAM の割合を設定します。残りのメモリーはエントリーキャッシュに使用されます。
データベースキャッシュに 1.5 GB を超える RAM を使用しても、パフォーマンスは向上しません。そのため、Directory Server はデータベースキャッシュを 1.5 GB に制限します。
データベースおよびエントリーキャッシュの自動サイズ設定を有効にするには、以下を実行します。
  1. Directory Server インスタンスを停止します。
    # systemctl stop dirsrv@instance_name
  2. /etc/dirsrv/slapd-instance_name/dse.ldif ファイルをバックアップします。
    # cp /etc/dirsrv/slapd-instance_name/dse.ldif \
         /etc/dirsrv/slapd-instance_name/dse.ldif.bak.$(date "+%F_%H-%M-%S")
  3. /etc/dirsrv/slapd-instance_name/dse.ldif ファイルを編集します:
    1. データベースおよびエントリーキャッシュに使用する空きシステム RAM の割合を設定します。たとえば、10% を設定するには、以下を実行します。
      nsslapd-cache-autosize: 10
      注記
      nsslapd-cache-autosize パラメーターを 0 に設定する場合は、さらに以下を設定する必要があります。
      • cn=config,cn=ldbm database,cn=plugins,cn=config エントリーの nsslapd-dbcachesize0 に設定して、自動サイズ設定のデータベースキャッシュを有効にします。
      • cn=database_name,cn=ldbm database,cn=plugins,cn=config エントリーの nsslapd-cachememsize0 に設定して、データベースの自動サイズ設定エントリーキャッシュを有効にします。
    2. 必要に応じて、空きシステム RAM からデータベースキャッシュに使用する割合を設定します。たとえば、40% を設定します。
      nsslapd-cache-autosize-split: 40
      Directory Server は、エントリーキャッシュに残り 60% の空きメモリーを使用します。
    3. 変更を保存します。
  4. Directory Server インスタンスを起動します。
    # systemctl start dirsrv@instance_name

例6.1 nsslapd-cache-autosize および nsslapd-cache-autosize-split パラメーター

以下の設定は、両方のパラメーターのデフォルトです。
nsslapd-cache-autosize: 10
nsslapd-cache-autosize-split: 40
この設定により、システムの空き RAM の 10% が使用されます (nsslapd-cache-autosize)。このメモリーから、データベースキャッシュ (nsslapd-cache-autosize-split) に 40% が使用され、エントリーキャッシュに残りの 60% が使用されます。
空き RAM に応じて、以下のキャッシュサイズになります。
空き RAM (GB 単位)
データベースキャッシュサイズ
エントリーキャッシュサイズ
1 GB
40 MB
62 MB
2 GB
82 MB
122 MB
4 GB
164 MB
245 MB
8 GB
328 MB
492 MB
16 GB
512 MB[a]
1,126 MB
32 GB
512 MB [a]
2,764 MB
64 GB
512 MB [a]
6,042 MB
128 GB
512 MB [a]
12,596 MB
[a] Directory Server は、nsslapd-dbcachesize パラメーターに 512 MB の制限を適用します。