OpenLDAP の DB の設定

さて、ログも見れるようになったところで。

ldap のログを見ると slapd 起動時にこんな warning が出ているはずです。
Aug 29 11:21:48 localhost slapd[1069]: bdb_db_open: warning - no DB_CONFIG file found in directory /var/lib/ldap: (2).#012Expect poor performance for suffix "dc=example,dc=com".

要は、「slapd を快適に動かすためには DB_CONFIG というファイルを作ってね」という内容です。 ほっといてもいいんですが、 warning 出っぱなしは気持ち悪いので対処します。

OpenLDAP に含まれている DB_CONFIG のサンプルファイルを ldap の DB のディレクトリにコピーします。
# cp /usr/share/openldap-servers/DB_CONFIG.example /var/lib/ldap/DB_CONFIG

検証目的での利用であればデフォルトの DB_CONFIG.example のデフォルトの設定に(赤字の行を)一行追記してやれば問題ないかと。
set_cachesize 0 268435456 1
set_lg_regionmax 262144
set_lg_bsize 2097152
set_flags DB_LOG_AUTOREMOVE

DB_LOG_AUTOREMOVE は Berkeley DB のログファイルを自動で削除してくれるようになります。
(例えば slapcat でバックアップを取った時に、不要となったトランザクションログファイル /var/lib/ldap/log.?????????? を自動削除してくれます)

これで DB_CONFIG ファイルもできたんで slapd 再起動後には warning は出なくなります。


さて、メモリ関連のパラメータのチューニングについて。 OpenLDAP が内部で利用している DB は Berkeley DB というものですが、これのステータスを見るコマンドがあります。
# db_stat -m

このコマンドを打つとずらずらっと結果が出るんですが、下のように「Requested pages found in the cache」という文字が出る行がいつくかあります。
472     Requested pages found in the cache (96%)

これの値が低い場合は DB に割り当てているメモリが足りないので set_cachesize を増やしてみるとよいかもです。だいたい 90% 以上であれば問題ないかと。




【関連】

このブログの人気の投稿

zsh 設定 - プロンプト -

運転免許失効〜再取得までの奮闘記 - 期限切れ -

運転免許失効〜再取得までの奮闘記 - 路上練習 -