As you move to 100,000 entries, you have more directory data to fit into database and entry caches. Initially, import 100,000 entries and examine the size required on disk for this volume of directory data.
$ dsadm import -i /local/ds /var/tmp/100k.ldif dc=example,dc=com … $ du -hs /local/ds 196M /local/ds |
Directory data contained in the database for our example suffix, dc=example,dc=com, now occupy about 142 megabytes.
$ du -hs /local/ds/db/example/ 142M /local/ds/db/example |
You can increase the size of the database cache to hold this content. If you expect the volume of directory data to grow over time, you can set the database cache larger than currently necessary. You can also set the entry cache size larger than necessary. Entry cache grows as the server responds to client requests, unlike the database cache, which is allocated at startup.
$ dsconf set-server-prop db-cache-size:200M $ dsconf set-suffix-prop dc=example,dc=com entry-cache-size:2G $ dsadm stop /local/ds Server stopped $ dsadm start /local/ds Server started: pid=8640 $ pmap -x 8640 … Address Kbytes RSS Anon Locked Mode Mapped File … 0000000000437000 61348 55404 55148 - rw--- [ heap ] … ---------------- ---------- ---------- ---------- ---------- total Kb 491984 485736 174620 - |
This shows the server instance has a relatively small heap at startup, but that the database cache memory has been allocated. Process size is nearing half a gigabyte.
$ ldapsearch -D cn=Directory\ Manager -w - -p 1389 -b dc=example,dc=com \ objectclass=\* > /dev/null Enter bind password: $ pmap -x 8640 … Address Kbytes RSS Anon Locked Mode Mapped File … 0000000000437000 610212 604064 603840 - rw--- [ heap ] … ---------------- ---------- ---------- ---------- ---------- total Kb 1040880 1034428 723360 - |
Heap size now reflects the entry cache being filled. It has increased by roughly 550 megabytes for 100,000 small directory entries, whose LDIF occupied 57 megabytes on disk.
With five extra indexes, the process size is about the same. The database cache size has not changed.
$ dsconf create-index dc=example,dc=com employeeNumber street st \ postalCode description $ dsadm stop /local/ds Server stopped $ dsadm import -i /local/ds /var/tmp/100k.ldif dc=example,dc=com … $ dsadm start /local/ds Server started: pid=8762 $ ldapsearch -D cn=Directory\ Manager -w - -p 1389 -b dc=example,dc=com \ objectclass=\* > /dev/null Enter bind password: $ pmap -x 8762 … Address Kbytes RSS Anon Locked Mode Mapped File … 0000000000437000 610212 603832 603612 - rw--- [ heap ] … ---------------- ---------- ---------- ---------- ---------- total Kb 1040876 1034192 723128 - |
The database is somewhat larger, however. The additional indexes increased the size of the database from 142 megabytes to 163 megabytes.
$ du -hs /local/ds/db/example/ 163M /local/ds/db/example |