Attached to this message you'll find a quick and dirty bash script that should determine the cachesize for an in-production bdb/hdb backend by taking dn2id and id2entry as well as all existing indexes into account.

Internally the script calls the db_stat tool in combination with the formulas found in the 2.4 admin guide under:
http://www.openldap.org/doc/admin24/tuning.html#Caching


Based on our local production database files (run by slapd 2.4.21, bdb 4.5) which contain round about 460.000 (small) entries...

# du -h dn2id.bdb id2entry.bdb
48M     dn2id.bdb
755M    id2entry.bdb

# du -h *.bdb | grep -v dn2id | grep -v id2entry
12M     cn.bdb
20M     entryCSN.bdb
14M     entryUUID.bdb
1.1M    loginDisabled.bdb
8.6M    mail.bdb
5.4M    objectClass.bdb


...the attached script produces the following results:


DB Cachesize Results (dn2id.bdb and id2entry.bdb):
        Overall DB Cachesize: 1871872 bytes

Index Cachesize Results:
        Overall Index Cachesize: 245760 bytes (50% Index HitRatio)
        Overall Index Cachesize: 491520 bytes

Resulting Overall Cachesize (DB and Indexes):
        Overall Cache Size: 2117632 bytes (50% Index HitRatio)
        Overall Cache Size: 2363392 bytes

        Including +15% bytes for growth:
        Overall Cache Size: 2435276.80 bytes (50% Index HitRatio)
        Overall Cache Size: 2717900.80 bytes


Do the above results (2.4 - 2.7 MBytes?!) sound reasonable in comparison to the above bdb file sizes?

As I'm currently unsure whether the result is correct or not I would appreciate your feedback for example whether the script's result makes sense within your environment or not.

Thanks a lot!

Attachment: db_config_calculator.sh
Description: Bourne shell script

Reply via email to