Cache Memory Considerations for NDS Version 8

     

Instead of caching the whole NDS object, NDS 8 employed block caching from the beginning. The block (or page ) cache is used to increase the performance of reading a block of data from the DS database. Before accessing a block from the database, NDS/eDirectory searches the block cache stored in memory for the requested block of data. If it is found, a cache hit occurs, and the data can be retrieved from memory rather than from disk. If the data is not found in the block cache, a cache fault occurs, and the record must be retrieved from disk. The record is then added to the block cache to prevent subsequent cache faults on the same block of data.

NOTE

The default database block size is 4KB. However, at times you might find that the block size is 5KB on Windows servers. You can check the block size on your server by selecting Agent Configuration, Database Cache in NDS iMonitor. You can see how to change the database block size in the "Changing Database Block Size" section, later in this chapter.


You can specify an upper block cache limit to regulate the amount of memory that eDirectory uses for the cache. The default block cache limit is 8MB of RAM. Using the SET DSTRACE command on the NetWare server console can change the hard limit of this cache size. For example, the following command permanently increases the database cache limit to 80MB:

 SET DSTRACE=!MB83886080 

WARNING

You can also use SET DSTRACE=!M KB_in_hex to increase the database cache limit. As discussed in the previous section, in NDS 7, the value for the SET DSTRACE command is in megabytes. In NDS 8, however, the expected value is in kilobytes and in hexadecimal notation. Consequently, administrators who are familiar with NDS 7 frequently make the error of entering the wrong value in NDS 8 and higher environments. For example, when trying to specify a cache limit of 64MB, an administrator might wrongly use the command SET DSTRACE=!M64 , which allocates only 100KB of memory for eDirectory caching. (The correct command is SET DSTRACE=!M10000 .) Because of this easy confusion, we suggest that you always use the !MB option instead of the !M one.


Instead of using the DSTRACE command, you can manually create a text file named _NDSDB.INI in the SYS:\_NETWARE directory and put in a line like the following:

 cache=83886080 

WARNING

Be careful that you don't put any whitespace around the = sign. Whitespace prevents the value from being set.


To maximize the amount of memory available for DS, Novell suggests using the following formula to calculate the maximum amount of memory needed:

 MemoryForDSDIB = (SizeOfDIBSet + (SizeOfDIBSet x 4)) 

where SizeOfDIBSet equals the number of megabytes for all NDS.* files found in the DIB directory; this excludes any of the stream files, such as login scripts.

You should check the calculated amount of memory the database might need to see whether it exceeds the Novell-recommended 40% limit (for an application server; 80% for a dedicated DS server) by dividing MemoryForDSDIB by the total server memory and multiplying that amount by 100. If the result does exceed the limit, you might want to adjust the multiplier of 4 down to 2 (do not go below 2 on this multiplier ). If you still exceed the limit, you should either get more memory or you can expect some performance degradation to occur.



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