[Date Prev][Date Next] [Chronological] [Thread] [Top]

bdb/hdb cachesize calculation

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:

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