I have a particular eDirectory server that is one beefy sucker. This server is running Windows Server 2008 64bit with a whopping 32GB of memory. It's running 64bit eDirectory and the DIBFiles directory is about 1.2GB in size. I was looking at this box, which was only using about 500MB of memory. While the box is not struggling whatsoever, I was thinking, with 32GB of memory, why not start using some of that to jack up the performance as much as possible.
The first thing I did was max out the Java Heap Size for IDM (see yesterdays blog post) to 2GB (maximum for 32bit java). If, for whatever reason, the box actually uses all of this memory in the heap, I'll still have at least 28GB of memory left over. Why not just throw the entire directory into cache so that it performs wicked fast. I searched around on the Google debugger until I found an article by Novell on performance tuning with eDirectory. In this article I found some information on how to change the cache settings. There is a file (C:\Novell\NDS\DIBFiles\_ndsdb.ini on windows) that has memory settings. I made a quick change, then bounced eDirectory, and now my box will use up to 75% available memory for eDirectory cache.
The file before changes looked like this:
After my changes:
cache=HARD, %:75, MIN:200000000
It took a while for it to use the cache, but after about 24 hours, dhost.exe is using up just over 3GB of memory instead of the 500MB it had accumulated over the period of a couple months.
For reference, the eDirectory performance tuning article was located here: http://www.novell.com/documentation/edir88/pdfdoc/edir88tuning/edir88tuning.pdf