IBM Support

Adjusting user process resource limits for ITDS

Troubleshooting


Problem

Several resource limits might need to be adjusted for the directory server to work correctly on AIX, Linux, Solaris, and HP-UX systems.

Resolving The Problem

There are several resource limits that might need to be adjusted for IBM Tivoli Directory Server.
  • The first resource limit is the data area size. If the data area size is set too low, the directory server might crash after it runs for a while. In a default installation of the AIX operating system, the size of the data area for user processes is usually set to 32 MB, which is too low for IBM Tivoli Directory Server. This problem is most likely to occur on AIX systems, but it can also occur on Linux, Solaris, and HP-UX systems.
  • Change the data area size setting by using the ulimit command with the -d option. The -d option specifies the size of the data area in kilobytes.

    For the most effective resolution to this problem, set the data area size to unlimited. For example, use the following command:
  • ulimit -d unlimited

    However, due to the computer's available resources, it might not be possible to set the data area size to unlimited. At a minimum, set the data area size to 256 MB; for better results, use a size of 512 MB.
  • The second resource limit that might need to be adjusted is the number of file descriptors a process can have (the "nofiles" setting). This setting limits the number of concurrent connections to the server, because each connection requires an open socket descriptor.
  • If your directory clients receive a "DSA Busy" error message from the server, try increasing the nofiles limit. You can reset the limit with the ulimit command using the –n option.

    For example, on AIX, to set the nofiles limit to 32,000 use the following command:

    ulimit -n 32000

    This problem can occur on AIX, Linux, Solaris, and HP-UX systems; however, it is most likely to be seen on Linux systems because the default setting on Linux systems is very low.
  • Another resource limit that might need to be adjusted is the memory limit. This setting limits the ability of the process to use physical memory. Setting this limit higher allows the directory server to allocate more memory to caching data.
  • You can reset the memory limit with the ulimit command using the -m option (-v on Solaris systems). This option specifies the size of physical memory, in kilobytes.

    For example, on AIX to set the limit to 240,000 KB, use the following command:

    ulimit -m 240000
  • On AIX systems only, another consideration involves the performance-enhancing MALLOCTYPE=buckets environment. This requires the ibmslapd (or idsslapd instance_name on IBM Tivoli Directory Server 6.0) command to be started in a login session that has the ulimit for data area size and memory size set to unlimited, as in the following:
  • ulimit -d unlimited
    ulimit -m unlimited

  • Another resource limit that might need to be adjusted is the stack size. For best results with IBM Tivoli Directory Server, leave this value set to the default.
  • In some cases, an administrator might set the stack size to a lower value. To reset the stack size to the default value, see the documentation for the ulimit command with the -s option on your system. The -s option specifies the stack size in kilobytes.

    For example, on AIX, the default is 65536 KB. To reset the stack size on a system to 65536 KB, use the following command:

    ulimit -s 65536

Notes:
  1. V6.1 and newer versions enforces minimum required ulimits via ibmslapd.conf file. ulimits can either be adjusted via ibmslapd.conf or via the methods in this technote. If the environment set ulimits are lesser than the ulimits in conf file the ulimits from the conf file are enforced. If the environment set ulimits are greater than the ulimits in the conf file, the ulimits from environment will be effective.
  2. Because the ulimit command affects the current shell environment only, you must issue the command in the same shell where the directory server is started.
  3. On AIX systems, the limits on system resources can also be defined in the /etc/security/limits file. Refer to existing examples in this file to set the limits. After the limits are defined in this file, you do not need to issue the ulimit command to reset them for your ibmslapd instances.
  4. To view all the current limit settings, use the following command:
  • ulimit -a

[{"Product":{"code":"SSVJJU","label":"IBM Security Directory Server"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"General","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"5.2;6.0;6.1;6.2;6.3;6.3.1;6.4","Edition":"","Line of Business":{"code":"LOB24","label":"Security Software"}}]

Document Information

Modified date:
17 December 2019

UID

swg21206894