This page applies to an earlier version of the AppDynamics App IQ Platform.
For documentation on the latest version, see the 4.4 Documentation.

On this page:

Related Pages:

Your Rating:
48 rates

This topic describes how to prepare your Linux operating system for running the AppDynamics Controller. 

Install libaio on Linux

Before it begins Controller installation, the installer checks whether the target Linux system has the libaio library installed. This library provides for asynchronous I/O operations on the system. 

This topic provides instructions on how to install libaio for some common flavors of Linux operating system.

Red Hat and CentOS

Use the following command to install the libaio package:

yum install libaio


Use the following command to install the libaio package:

sudo apt-get install libaio1


Install the RPM for the libaio package from the Fedora website.


For Debian, you can use a package manager such as APT to install libaio (as described for the Ubuntu instructions above). 

It is possible, although not generally advisable, to install libaio manually, as illustrated in the following steps.

The wget command shown below retrieves the current software package for libaio. Before performing the installation manually, get the URL of the latest version of libaio as hosted at a software download mirror location convenient to you, as described here: https://www.debian.org/distrib/packages

mkdir /usr/libaio
cd /usr/libaio
wget http://ftp.us.debian.org/debian/pool/main/liba/libaio/libaio1_0.3.109-3_i386.deb 
ar -x libaio1*.deb
tar zxvf data.tar.gz
sudo cp lib/* /emul/ia32-linux/lib/

Install netstat

Verify that your distribution of Linux includes the netstat network utility. If it does not, install the utility.  The Controller installation uses netstat to determine whether MySQL processes are running.

For example, you can install the package that includes netstat with the following command on CentOS: 

yum install net-tools

Install the Reporting Service Requirements


To use Reports, you must have Fontconfig and FreeType installed as well as at least one sans-serif font.

For example, run the following command if the Controller host runs CentOS:

yum install fontconfig freetype freetype-devel fontconfig-devel libstdc++ urw-fonts

GNU C Libraries 

The Reporting Service requires GLIBCXX_3.4.9 or later and GLIBC_2.7 or later to run.  

For more information and download instructions, see https://www.gnu.org/software/libc/.  

Configure User Limits in Linux

AppDynamics recommends 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 not have a /etc/security/limits.d directory:
      1. As the root user, open the limits.conf file for editing:

      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 do have 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: 

      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: 
    1. Open the following file for editing:

    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.


  • No labels