Sounds to me like you haven't properly tuned your database then. I suggest you read up on properly tuning a DB_CONFIG file (and possibly using a shared memory key as part of that), and I'm guessing you didn't use the -q flag with slapadd?
That is entirely possible, I'm entirely self-taught on LDAP.
I have the DB_CONFIG lines in slapd.conf so that they are automatically put into DB_CONFIG file. I just assumed that slapadd would do that. (Just tested, and it does).
I did not use -q.
# time slapadd -q -f slapd-import.conf -l ../full-dump.txt bdb_monitor_db_open: monitoring disabled; configure monitor database to enable *## 10.41% eta 49m44s elapsed 05m46s spd 1.5 M/s
That could be done in a maintenance window of 2 hours at very least.
Is then the official OpenLDAP policy is to do that, even though having 2.4 syncrepl from 2.3 would 'mean less than 5 minutes down-time' ? Clearly that part is attractive to me at 3am..
For amusement sake, /tmp import on the x4540:
-## 10.08% eta 10m24s elapsed 01m09s spd 2.0 M/s
And the DB_CONFIG settings:
dbconfig set_lk_detect DB_LOCK_DEFAULT dbconfig set_lg_max 52428800 dbconfig set_cachesize 0 67108864 1 dbconfig set_flags db_log_autoremove dbconfig set_lk_max_objects 1500 dbconfig set_lk_max_locks 1500 dbconfig set_lk_max_lockers 1500