Set a hard limit on the amount of RAM that DS.NLM uses (simplified)

  • 7004268
  • 20-Aug-2009
  • 27-Apr-2012

Environment

Open Enterprise Server (NetWare Kernel)
NetWare 6.5
NetWare 6

Situation

Cache Memory Allocator errors
Set a hard limit on the amount of RAM that DS.NLM uses (simplified)

Resolution

Method #1 - Through iMonitor

1.  Open Novell Remote Manager -- http://aaa.bbb.ccc.ddd:8008/

2.  Under "Manage eDirectory", select "NDS iMonitor".  This brings you to iMonitor.

3.  Under Links, select "Agent Configuration", then "Database Cache".  This is where we will make the adjustments.

4.  At the top of the screen, note the "DIB Size (KB)" setting.  This is how much memory DS is using for the DIB.

5.  Scroll down to Database Cache Configuration.   There are three sections here.  To hard limit DS, click the "Hard Limit" radio button.  In the text field, put in the limit you want.  For most environments, you will want to double the number obtained from the previous step and use that.   If your DIB size is 300MB or larger, rather than double the DIB size, just add roughly 200MB.  You need to use a number greater than the current DIB Size.  Increasing that number allows for growth.

6.  Towards the bottom of the page, check the box marked "Cache Settings Permanent", then click "Submit".  You can verify this by using the verification steps in the next method.

Method #2 - At the Console

1.  Open a shell.  You can use BASH, but for this example we will use NSNSHELL.  To get a shell, type NSNINIT followed by NSNSHELL.

2.  Change to the hidden _NETWARE directory.  Type CD _NETWARE .

3.  List all files beginning with NDS.  ( DIR NDS*.* ).  Make note of the size of the largest file. 

4.  Toggle back to the server console, and type SET DSTRACE = !MBnnnnnnnnnnn (replace nnnnnnnnnn with the limit you want, in bytes.  For the same reasons outlined in Method #1, we typically want this to be double the number noted from the previous step.  Please be sure to make sure the number you enter has the correct number of digits - it is easy to add an extra or leave off a digit!  Also, the digits go immediately after the !MB, with no spaces).

5.  VERIFICATION.  From the shell, look for _NDSDB.INI ( DIR _NDSDB.INI ).  It should exist and have a non-zero file size.  View the contents by typing TYPE _NDSDB.INI at the shell, from the _NETWARE directory.  It should have an entry in it showing the hard limit you set.  If you used method #1, it will show the number you entered multiplied by 1024, because Method #1 uses KB rather than bytes.

Additional Information

eDirectory 8.7.3.3 is required on NetWare 6.5.  Previous versions may not save changes permanently.
This TID's primary purpose is to simplify what is needed for Step #3 of KB 10091980 (Memory Fragmentation)
There are two ways to accomplish this easily:
Formerly known as TID# 10096642