Configure User Limits in Linux

Splunk AppDynamics requires the following hard and soft per-user limits in Linux:

  • Open file descriptor limit (nofile): 65535
  • Process limit (nproc): 8192

The following log warnings may indicate insufficient limits:

  • Warning in database log: "Could not increase number of max_open_files to more than xxxx".
  • Warning in server log: "Cannot allocate more connections".

To check your existing settings, as the root user, enter the following commands:

ulimit -S -n
ulimit -S -u

The output indicates the soft limits for the open file descriptor and soft limits for processes, respectively. If the values are lower than recommended, you need to modify them.

Where you configure the settings depends upon your Linux distribution:

  • If your system has a /etc/security/limits.d directory, add the settings as the content of a new, appropriately named file under the directory.
  • If it does not have a /etc/security/limits.d directory, add the settings to /etc/security/limits.conf .
  • If your system does not have a /etc/security/limits.conf file, it is possible to put the ulimit command in /etc/profile . However, check the documentation for your Linux distribution for the recommendations specific for your system.

To configure the limits:

  1. Determine whether you have a /etc/security/limits.d directory on your system, and take one of the following steps depending on the result:
    • If you do nothave a /etc/security/limits.d directory:
      1. As the root user, open the limits.conf file for editing:

        /etc/security/limits.conf
      2. Set the open file descriptor limit by adding the following lines, replacing <login_user> with the operating system username under which the Controller runs:

        <login_user> hard nofile 65535
        <login_user> soft nofile 65535
        <login_user> hard nproc 8192
        <login_user> soft nproc 8192
    • If you dohave a /etc/security/limits.d directory:
      1. As the root user, create a new file in the limits.d directory. Give the file a descriptive name, such as the following:

        /etc/security/limits.d/appdynamics.conf
      2. In the file, add the configuration setting for the limits, replacing <login_user> with the operating system username under which the Controller runs:

        <login_user> hard nofile 65535
        <login_user> soft nofile 65535
        <login_user> hard nproc 8192
        <login_user> soft nproc 8192
  2. Enable the file descriptor and process limits as follows:
    Note: This step is not required for RHEL/CentOS version 5 and later. The below file has been combined into /etc/pam.d/system-auth, and already contains the required line.
    1. Open the following file for editing:
      /etc/pam.d/common-session
    2. Add the line:
      session required pam_limits.so
  3. Save your changes to the file.
When you log in again as the user identified by login_user, the limits will take effect.