6.5. データベースキャッシュサイズの設定
データベースキャッシュには、データベースの Berkeley データベースインデックスファイルが含まれます。つまり、データベースによる属性のインデックス化に使用されるすべての
*.db
およびその他のファイルになります。この値は、Berkeley DB API 関数 set_cachesize() に渡されます。
このキャッシュサイズは、エントリーキャッシュサイズに比べて Directory Server のパフォーマンスへの影響は少ないですが、エントリーキャッシュサイズを設定した後に RAM に余裕がある場合は、データベースキャッシュに割り当てるメモリー量を増やします。
オペレーティングシステムにはファイルシステムのキャッシュもあり、これがデータベースのキャッシュと RAM 使用で競合することがあります。ファイルシステムキャッシュの設定やファイルシステムキャッシュの監視についての詳細は、オペレーティングシステムのドキュメントを参照してください。
注記
エントリーキャッシュサイズを手動で設定する代わりに、Red Hat は、ハードウェアリソースに基づいて最適化された設定の自動サイズ設定機能を推奨します。詳細は、「データベースおよびエントリーキャッシュの自動サイズ調整を手動で再有効化」 を参照してください。
6.5.1. コマンドラインを使用したデータベースキャッシュサイズの手動設定
コマンドラインを使用してデータベースキャッシュサイズを手動で設定するには、以下を実行します。
- 自動キャッシュチューニングを無効にし、データベースのキャッシュサイズを設定します。
# dsconf -D "cn=Directory Manager" ldap://server.example.com backend config set --cache-autosize=0 --dbcachesize=268435456
このコマンドは、データベースキャッシュを 256 メガバイトに設定します。 - Directory Service インスタンスを再起動します。
# dsctl instance_name restart
6.5.2. Web コンソールを使用したデータベースキャッシュサイズの手動設定
Web コンソールを使用してデータベースキャッシュサイズを手動で設定するには、以下を実行します。
- Web コンソールで Directory Server ユーザーインターフェイスを開きます。詳細は、『Red Hat Directory Server Administration Guide』のLogging Into Directory Server Using the Web Consoleセクションを参照してください。
- インスタンスを選択します。
- Global Database Configuration を選択します。タブで、
- Automatic Cache Tuning を無効にします。
- Database Cache Size (bytes) フィールドをデータベースキャッシュサイズに設定します。
- Restart Instance を選択します。ボタンをクリックし、
6.5.3. RAM ディスクでのデータベースキャッシュの保存
Directory Server インスタンスを実行しているシステムに十分な空き RAM がある場合は、必要に応じてデータベースキャッシュを RAM ディスクに保存し、パフォーマンスをさらに向上させることができます。
- データベースキャッシュやメタデータのディレクトリーを RAM ディスク上に作成します。
# mkdir -p /dev/shm/slapd-instance_name/
- ディレクトリーに以下の権限を設定します。
# chown dirsrv:dirsrv /dev/shm/slapd-instance_name/ # chmod 770 /dev/shm/slapd-instance_name/
- Directory Server インスタンスを停止します。
# systemctl stop dirsrv@instance_name
/etc/dirsrv/slapd-instance_name/dse.ldif
ファイルを編集し、cn=bdb,cn=config,cn=ldbm database,cn=plugins,cn=config エントリーのnsslapd-db-home-directory
パラメーターに新しいパスを設定します。dn: cn=bdb,cn=config,cn=ldbm database,cn=plugins,cn=config ... nsslapd-db-home-directory: /dev/shm/slapd-instance_name/
nsslapd-db-home-directory
属性が存在しない場合は、新しい値で cn=bdb,cn=config,cn=ldbm database,cn=plugins,cn=config エントリーに追加します。- Directory Server インスタンスを起動します。
# systemctl start dirsrv@instance_name
注記
データベースキャッシュが RAM ディスクに保存されている場合は、再起動するたびに Directory Server がこれを再作成する必要があります。そのため、キャッシュが再作成されるまで、サービスの起動と初期操作は遅くなります。