12.11. Configuring the Berkeley DB
Problem
You know that you need to use the /var/lib/ldap/DB_CONFIG file to configure the database backend to your LDAP directory (Berkeley DB) so that it will perform peppily and not get all bogged down. How do you know what options and values to use?
Solution
We'll start off with some reasonable values for starters, and then learn how to make some calculations to fine-tune them.
Be sure to check your slapd.conf for duplicate BDB entries and get rid of them. They can go in either file, but it's best to keep them all in DB_CONFIG. You don't want duplicates or conflicting entries.
First, make sure there is a cachesize entry in
slapd.conf:
cachesize 5000
Then, enter these options and values into /var/lib/ldap/DB_CONFIG:
##/var/lib/ldap/DB_CONFIG set_cachesize 0 1048576 0 set_lk_max_objects 1500 set_lk_max_locks 1500 set_lk_max_lockers 1500 # #logging settings set_lg_regionmax 1048576 set_lg_bsize 32768 set_lg_max 131072 set_lg_dir /var/log/openldap
The set_cachesize value is in
bytes, and must be a power of 2, so the example is one megabyte. How
do you know how much to use? Use the db4.2_stat
command on Debian, and the db_stat command on
Fedora to generate statistics from id2entry.bdb
and dn2id.bdb, which are the two main database
files:
# db4.2_stat -d /var/lib/ldap/id2entry.bdb 53162 Btree magic number. 9 Btree version number. Flags: little-endian 2 Minimum keys per-page. 16384 Underlying database page size. 1 Number of levels in the tree. 6 Number of unique ...Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access