Cache Memory Considerations for NDS 7

     

In versions of directory services (DS) prior to 7.55, any caching done was mainly based on NetWare's caching of the various database files (for example, *.NDS files). However, DS 7.55 and later versions of DS.NLM included the ability of caching DS objects in memory, which increases performance.

Versions 7.55 and greater of DS.NLM will, upon loading, calculate the cache limit based on the amount of free memory (cache buffers) that the server currently has. In these versions, DS determines three values: MaxMemory , which is the amount of free memory at the time; MemoryLimit , which is equal to 20% of MaxMemory ; and BackoffPoint , which is 80% of MemoryLimit . For instance, on a server with 200MB of available memory at DS.NLM load time, MemoryLimit is set to 40MB (20% of 200MB) and BackoffPoint is 32MB (80% of 40MB).

As objects are being referenced, they are cached in memory. When the cache size reaches the BackoffPoint value, DS.NLM replaces the oldest objects in the cache with new objects that are coming in. Also, a cache cleaning service is scheduled to actually free up the memory within the cache that represents the oldest objects. If memory cannot be allocated for the cache, DS.NLM immediately schedules the cache cleaning service.

REAL WORLD: How Much Can DS Cache?

A typical DS object is about 4KB in size. Therefore, with a 32MB cache, DS.NLM can cache around 8,000 objects.


When required, you can manually configure DS.NLM for a lower or higher value for MemoryLimit ; the BackoffPoint value cannot be changed and will always be 20% of whatever value you set MemoryLimit to be. You use the SET DSTRACE command to set the limit, as follows :

 SET DSTRACE=!M  value_in_MB  

NOTE

You do not need to restart the server for the MemoryLimit setting to take effect.


For example, SET DSTRACE=!M64 will permanently configure DS.NLM (the value is stored in the database and so is persistent between server restarts) to set the MemoryLimit to 64MB instead of the 20% of MaxMemory value. Therefore, the value for BackoffPoint will be 80% of 64MB, or 51MB. This will give you enough cache for approximately 13,000 objects.

TIP

Do not be concerned if there are 100,000 objects in the tree but your server can only cache 13,000 objects. Remember that the cached objects represent the number of objects being accessed within the same time period (meaning that Objects A and B are both being used within seconds of each other). A good estimate to target for would be to cache 5% of the total objects in the tree.

Novell recommends that no more than 40% of available memory be used for DS caching if the server is an application server. However, if the server is used for DS exclusively, up to 80% may be used.




Novell's Guide to Troubleshooting eDirectory
Novells Guide to Troubleshooting eDirectory
ISBN: 0789731460
EAN: 2147483647
Year: 2003
Pages: 173

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net