AppDynamics Application Intelligence Platform
3.9.x Documentation
The AppDynamics Controller is the central management server where the data for an AppDynamics deployment is stored, analyzed, and presented. The Controller serves the user interface (UI) for configuring and monitoring your environment. All AppDynamics Agents connect to the Controller to report data.
The Controller uses an embedded Glassfish application server and an embedded MySQL database. It has a browser-based Administration interface for various system parameters.
The Controller and App Agents provide full internationalization support, with support for double- and triple-byte characters. This support provides the following abilities:
The Controller is supported on the following Operating Systems:
Linux (32 and 64-bit) | Microsoft Windows (32 and 64-bit) |
---|---|
|
|
The AppDynamics UI works best with the latest version of any modern browser along with the latest version of Flash. The Controller UI has been tested with the following browsers and versions:
The Controller UI requires Flash Player 10 or greater; AppDynamics recommends version 11.
You can use an external directory server to authenticate and authorize user access to the Controller UI. The Controller works with directory servers that comply with LDAP (Lightweight Directory Access Protocol) version 3. While the Controller should be able to work with any LDAPv3-compliant server, it has been verified against these LDAP products:
The Controller performs large-scale real-time data analysis and correlation supporting multiple agents at any given time. It constantly persists large amounts of data to the storage system. For the Controller to be responsive, it must have appropriate hardware. Use these recommendations in the performance profiles to determine the hardware needed for your Controller.
These recommendations represent a good starting point only, your requirements may vary depending on the number of metrics per minute generated in your environment.
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. A Controller with more than 250 nodes must run on a dedicated machine.
For information about using a Virtual Machine for the Controller, see Running the Controller on Virtual Machines.
Size the Controller hardware requirements using a performance profile based on the number of nodes in your environment and the number of metrics per minute being reported to the controller. For general information about applications and nodes, see Logical Model.
The Controller performance profiles are based on the number of nodes. When the number of app servers is static, it is easy to determine. However, WebSphere on z/OS, dynamic cloud environments, and .NET environments dynamically spawn new agents. For z/WebSphere and clouds you need to consider historic data to estimate the correct sizing. For .NET see Calculating Performance Profiles for a .NET Environment.
Controller Performance Profile | Number of Nodes* | Number of Business Apps | Recommended for VMs |
---|---|---|---|
Demo | Up to 5 | 1 | OK |
Small | Up to 10 | 1 | OK |
Medium | Up to 50 | 5 | OK |
Large | Up to 250 | 5 | Not supported** |
Extra Large**** | 250-500 | 20 | Not supported** |
Custom - Contact Support or TAM**** | Over 500 | Over 20 | Not supported** |
* In a Java environment there is usually one AppDynamics App Agent for Java per node. In contrast, one AppDynamics App Agent for .NET may support multiple nodes. See Calculating Performance Profiles for a .NET Environment to arrive at the number of nodes for a .NET environment.
** AppDynamics neither recommends nor supports Large or Extra Large deployments in virtual environments.
*** For configuration information applicable to deployments in the Extra Large performance profile and larger (500+ nodes), see Tuning for Large Scale Deployments.
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 5 instances the .NET Agent will create 5 nodes.
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
AppPool-3: AppF
Use the following formula to estimate the number of nodes:
AppPool-1 * number of applications * max number of worker processes + AppPool-2 * number of applications * max number of worker processes + AppPool-3 * number of applications * max number of worker processes = 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:
Also see: http://technet.microsoft.com/en-us/library/cc725601(v=ws.10).aspx.
For larger deployments with hundreds of nodes, sizing the hardware for a Controller depends upon the number of agents and the complexity of your business transactions. The number of metrics can become very large. The following recommendations are a starting point.
Controller | Supported OS platforms | CPU # of cores | RAM | Disk storage | Disk I/O | Agent Count* | Metrics Count/minute |
---|---|---|---|---|---|---|---|
Demo | Linux (32 & 64-bit) | 2 CPU Cores | 2 GB | 50 GB | 50 MB/sec | up to 5 | 5 K max |
Small | Linux (32 & 64-bit) | 4 CPU Cores | 4 GB | 100 GB | 50 MB/sec | 6-10 | 25 K max |
Medium | Linux (64-bit) | 8 CPU Cores | 16 GB | 4,000 GB | 60 MB/sec | 11-50 | 250 K max |
Large | Linux (64-bit) | 24 CPU Cores | 32 GB RAM | 5,000 GB | 100 MB/sec | 51-250 | 512 K max |
Extra Large** | Linux (64-bit) | 24 CPU Cores | 64 GB RAM | 10,000 GB | 125 MB/sec | 251-500 | 1 Million max |
* Also see Controller Performance Profiles. The agent count requirements do not reflect the use of End User Monitoring (EUM). See Additional Sizing Considerations for more information about EUM.
** When sizing in the Extra Large profile range or higher, contact your AppDynamics Technical Account Manager or the AppDynamics Support Team for assistance.
Note that the RAM recommendations shown here leave room for operating system processes. However, the recommendations assume that no other memory intensive applications are running on the same machine. The actual RAM allocated by the installer per profile size for the Controller application server and database in gigabytes are 1.6, 3, 12, 24, and 48, respectively.
Similarly, the disk storage sizes shown in the table indicate the amount of space that must be available on the target machine.
To complete an installation, the Controller installer requires there to be around 200 MB of free space available in the system-defined temporary directory, typically /tmp on Linux or c:\tmp on Windows.
For information on hardware requirements for AppDynamics for Databases, see AppDynamics for Databases, Hardware Requirements.
The Demo profile is only for demonstration and evaluation environments and is not suited for production installations.
The AppDynamics Controller always writes and reads using the following block sizes:
When considering I/O requirements listed in Hardware Requirements per Performance Profile, keep in mind that while onboard disks typically satisfy the I/O 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. For information on I/O and off-board storage, see the next section, Off-Board Storage System Considerations.
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 quality of service issues from the underlying network.
For best performance, if not using on-board disk storage, consider using a robust Fiber Channel, FCoE, or iSCSI over 10Gbit Ethernet SAN. Whatever underlying technology you use, keep in mind that your system must provide disk data read and write speeds over the connection between the CPU and storage that are equivalent to the disk I/O requirements listed in Hardware Requirements per Performance Profile. In all cases, be sure to thoroughly load test the deployment with real-world traffic load before putting the Controller into a live environment.
The Event Store is an Elastic Search-based file store used by the Database Monitoring feature. If you intend to use Database Monitoring, you should provide for an additional 40 GB of disk space to accommodate the Event Store on the Controller machine.
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:
For Linux environments, it is important to set the file descriptor limit to at least 65535. For more details see Configure File Descriptor Limits on Linux.
The Controller can run on virtual machines, but with a few additional considerations:
To ensure that your virtualized storage subsystem is providing the required I/O capacity, run the following disk I/O rate tests.
These tests write 32 GB of data to your disk and may take some time to complete. They produce numbers for write, rewrite, read, reread,random read, and random write.
Execute the following commands:
| For Linux | For Windows |
---|---|---|
Test for WriteSpeed | /opt/iozone/bin/iozone -s 32000m -r 64k -i 0 -i 1 -w -f /<path-to-your-partition>/test1 | <path-to-your-partition>/Benchmarks/Iozone3.353/iozone -s 32000m -r64k -i 0 -i 1 -w -f test1 |
Test for RandomRead | /opt/iozone/bin/iozone -s 32000m -r 16k -i 2 -w -f /<path-to-your-partition>/test1 | <path-to-your-partition>/Benchmarks/Iozone3.353/iozone -s 32000m -r16k -i 2 -w -f test1 |
The results from these tests should match the Disk I/O requirements specified in Hardware Requirements Per Performance Profile.
See Install Agents for information on bandwidth usage in an AppDynamics deployment.
In addition to the correct sizing of the hardware, special tuning of the operating system, the Glassfish application server, the MySQL as well as the Controller itself is required for very large installations, as detailed in Tuning for Large Scale Deployments.