eDirectory has an event system where event consumers can register for events and consume them when they occur. An event handler can be registered as Worker, Inline, or Journal. The Journal Event queue is expected to report the events in the same order as they occur. With the current Journal Event system, the journal event queue is maintained in memory. If the consumers of the events are slow, or the rate at which events occur is more than the rate at which they can be processed, the Journal queue starts growing. This results in the memory growth of the ndsd process.
The Journal Event system is modified to allow you to use a combination of memory and disk to maintain events in a queue. This reduces the drastic growth in memory of the ndsd process.
Some instances where the events can cause memory growth are: ndstrace enabled or auditing enabled. You can control memory growth by enabling Event system caching.
You must set the following environment variables for event system caching:
This variable controls the use of new event system. By default, the new event system is disabled. To enable the new event system, export this variable with a value true or 1.
This variable specifies the temporary location where event files are created. Under the specified directory, another sub-directory cdir is created, if it is not already present. At start up, all files inside the sub directory are cleaned up. We recommend that you set the caching directory in a different disk partition, and not in the same partition as that of DIB.
In Linux, if NDSD_EVENT_DISK_CACHE_DIR is not specified or the specified directory is not accessible, ndsd uses vardir as the caching directory. By default, the value of vardir /var/opt/novell/eDirectory/data/.
In Windows, if this variable is not specified or the specified directory is not accessible, dhost uses the DIBFiles directory.
NOTE:Ensure that there is sufficient disk space available in the caching directory because ndsd/dhost can quickly consume several GBs of disk space.