On this page:
AppDynamics strongly recommends that you install the Controller on a dedicated machine for adequate stability and performance.
This page provides guidelines for the hardware and software requirements for the Controller machine, but keep in mind that each deployment is unique. Application behavior and features such as monitoring asynchronous threads and End User Monitoring increase the number of metrics per minute flowing to the Controller and can affect the requirements.
The Controller is supported on the following operating systems:
Linux (32 and 64 bit)
Microsoft Windows (32 and 64 bit)
You can use the following file systems for Controller machines that run Linux:
A Controller installer is also available for 64-bit Mac OS machines. However, running the Controller on Mac OS is intended for instructional, development or demonstration environments only, and not meant for production use.
The Controller host machine must be able to run the Java version that the Controller uses. The Controller runs Java 1.7 by default. The installer also packages Java 1.8. You can switch to Java 1.8 after you install the Controller. For more information, see Platform Version Information.
The Controller performs large-scale real-time data analysis and correlation for potentially many agents at a time. For best performance, the Controller must be installed on suitable hardware.
To determine the hardware needed for your Controller, first identify the expected performance profile for your deployment based on the following table. Once you've identified a profile, match it to the hardware requirements specified in the following section.
Controller Performance Profile
|Maximum Metric Count/Minute|
Number of Nodes1
Number of Business Apps1
1 to 5
6 to 10
11 to 50
51 to 250
1 The primary consideration in sizing a Controller deployment is the metric ingestion rate per minute, as shown in the second column. While the number of nodes and business apps in your deployment do not bear directly on system capacity, the numbers shown here are indicative of the corresponding profile sizes. The actual number of nodes or business applications the controller can handle vary depending on the node type, features used, and many other factors.
2 Deployments that exceed the Extra Large profile are possible, but you need to work closely with your AppDynamics account representative to determine hardware requirements and configuration and tuning measures needed to accommodate Extra Large or larger deployments.
The following table shows the hardware requirements typically required for a deployment by performance profile.
AppDynamics strongly recommends that you install the Controller on a dedicated machine. The hardware requirements described in this document assume that no other major processes are running on the machine where the Controller is installed, including no other Controllers. For the Extra Large profile and larger, the Controller must run on a dedicated machine.
Controller Performance Profile
Supported OS platforms
2 CPU Cores
4 CPU Cores
8 CPU Cores
24 CPU Cores
24 CPU Cores
To perform the installation, the Controller installer requires around 200 MB of free space to be available in the system's temporary directory. For more information, see Install the Controller.
For information on hardware requirements for Database Monitoring, see Event Store.
The .NET Agent dynamically creates nodes depending on the monitored application's configuration in the IIS server. An IIS server can create multiple instances of each monitored IIS application. For every instance, the .NET Agent creates a node. For example, if an IIS application has five instances, the .NET Agent will create five nodes, one for each instance.
The maximum number of instances of a particular IIS application is determined by the number of worker processes configured for its application pool. Consider the following diagram:
The diagram shows three application pools: AppPool-1, AppPool-2, and AppPool-3 with the following characteristics:
If applications are assigned to application pools as follows:
AppPool-1: AppA and AppB
AppPool-2: AppC, AppD and AppE
Use the following formula to estimate the number of nodes:
In this case, the numbers would be:
AppPool-1 nodes = 4 (2 applications * 2 worker processes)
AppPool-2 nodes = 3 (3 applications * 1 worker process)
AppPool-3 nodes = 2 (1 application * 2 worker processes)
for a total of 9 nodes.
To find the number of CLRs that will be launched for a particular .NET Application / App Pool:
The following guidelines can help you determine additional disk and RAM required for the machine hosting the Controller that is monitoring the Database Agent. For very large installations, you should work with your AppDynamics representative for additional guidelines.
For on-premises installations, the machine running the Controller and Event Service will require (for data retention period of 10 days):
The Event Service is a file-based storage facility used by EUM, Database Monitoring, and Analytics. Database Monitoring uses the Events Service instance embedded in the Controller by default. The disk space required will vary depending upon how active the databases are and how many are being monitored.
For redundancy and optimum performance, the Events Service should run on a separate machine. For details on sizing considerations, see Events Service Sizing and Capacity Planning.
AppDynamics for Databases is an on-premise solution and can be installed on the same server as the AppDynamics Pro Controller, or on a different server. In either case, it requires 1 CPU and 2GB of RAM to monitor a single database instance. If you install it on the Controller server, these resources are in addition to the Controller resources.
Monitoring asynchronous calls and using End User Monitoring (EUM) typically increases the number of metrics collected. As a result:
Specifically, the features affect the workload of the system as follows:
Mobile RUM can increase the number of individual metric data points per minute by as much as 15 to 25K per instrumented application if your applications are heavily accessed. The actual number depends on how many network requests your applications receive.
The number of separate EUM metric names saved in the Controller database can be larger than the kinds of individual data points saved. For example, a metric name for a metric for iOS 5 might still be in the database even if all your users have migrated away from iOS 5. So the metric name would no longer have an impact on resource utilization, but it would count against the default limit in the Controller for metric names per application. The default limit for names is 200,000 for Browser RUM and 100,000 for Mobile RUM.
Medium and smaller profile Controllers can run on virtual machines, but with a few additional considerations:
To test whether your virtualized storage subsystem is providing the required I/O capacity, see information on disk I/O rate tests.
One of the most important indicators of a machine's ability to support the performance requirements of a Controller is the machine's disk I/O performance.
The average write latency for the disk that hosts the Controller should not exceed 3 milliseconds while the Controller is under sustained load. Be sure to test I/O latency on the machine for the Controller under load to best understand the hardware needed for your deployment.
The AppDynamics Controller always writes and reads using the following block sizes:
When considering I/O performance, keep in mind that while onboard disks typically satisfy I/O performance requirements, in a SAN environment the bottleneck in terms of I/O write and read speed becomes the latency between the CPU and the SAN-based storage.
AppDynamics strongly recommends that you avoid installing the Controller or putting the Controller's data directory, db/data, on an NFS-mounted filesystem. NFS adds latency and throughput constraints that can affect Controller performance and even lead to data corruption.
Similarly, you should avoid iSCSI or other SAN technologies that are subject to the quality of service issues from the underlying network.
For best performance, if not using onboard disk storage, consider using a robust Fiber Channel, FCoE, or iSCSI over 10Gbit Ethernet SAN. In all cases, be sure to thoroughly load test the deployment with real-world traffic load before putting the Controller into a live environment.
To measure the disk I/O performance, AppDynamics recommends using the free fio tool. For information on fio, see the documentation for fio.
For Linux environments, it is important to set the file descriptor limit to at least 65535. See information on limiting file descriptors on Linux in Configure Linux for the Controller.
The virtual memory size (swap space on Linux or Pagefile space on Windows) should be at least 10 GB on the target system, and ideally 20 GB.
Be sure to verify the size of virtual memory on your system and modify it if it is less than 10 GB. Refer to the documentation for your operating system for instructions on modifying the swap space or Pagefile size.
See Install and Administer Agents for information on bandwidth usage in an AppDynamics deployment.
The Controller and App Agents provide full internationalization support, with support for double- and triple-byte characters. This support provides the following abilities:
The Reporting Service is a standalone Controller process responsible for generating and transmitting reports.
The Reporting Service relies on certain system libraries and resource that are usually included in standard Linux distributions. However, certain lightweight flavors of Linux may be lacking the requirements, primarily font libraries. In this case, errors in the reporting server log will indicate missing components, such as a missing libfontconfig.so file.
The operating systems in which this type of error has been observed and the steps for resolving the issue by installing the missing component include:
|Operating System||To resolve...|
CentOS 6.1, 6.2; CentOS 6.3, 6.4, and 6.5, Fedora 14
|$ yum install urw-fonts|
|Ubuntu 8, 12, 14|
$ sudo apt-get update
$ sudo apt-get install libfreetype6 libfreetype6-dev libfontconfig
|Ubuntu 13||$ sudo apt-get install libfontconfig|