Jorgen Lundman wrote:
No real reason, tried various different settings but to no real advantage.
Now I have:
Filesystem size used avail capacity Mounted on swap 19G 7.7G 11G 42% /tmp
# grep cache DB_CONFIG set_cachesize 8 0 1
# time /usr/local/BerkeleyDB.4.8/bin/db_stat -d id2entry.bdb real 6m6.099s
# time cp id2entry.bdb /dev/null real 0m0.040s (It's not on disk)
I thought to delete id2entry.bdb, and use slapindex to re-generate it but that appears not to be a supported feature. slapindex can not run without a valid id2entry.bdb. This is why I tried slapcat, rm *, slapadd. But no difference in speed up.
If I truss with -u *:* (All inter-library calls) I get no "single" large system call, just a lot of work somewhere (that does not call read/write etc). Alas, the number of lines in truss file is: 6209933 /var/tmp/db_stat_truss
truss is pretty much useless in this context. Most of BDB's activity is thru memory-mapping, which involves no system calls for truss to trace. You need an actual profile (e.g. using oprofile) to identify where the time is going.