How do I troubleshoot slow performance when navigating my AppDynamics Controller UI from a browser?
This article provides a starting point for self-service troubleshooting of slow Controller performance. A controller is deemed slow when navigating its UI from a browser there is a tangible slowness for the pages or dashboards etc. to load.
NOTE: The scope of this article extends to demo, small, medium and large profile Controllers. For extra-large Controllers, we recommend that customers start by contacting the AppDynamics Professional Services team who set up their extra-large Controller first. AppD Support can also provide assistance in such matters.
Table of Contents
How are your Controller’s specs configured?
How is your memory allocated?
Optimum recommendations for Glassfish appserver and MySQL dB for ideal performance
How are your Controller’s specs configured?
We encourage customers to abide by the published Controller server hardware specs, irrespective of the Controller’s profile. Be sure to maintain a swap space of 10-20 Gb configured on your server. See Controller System Requirements documentation.
How is your memory allocated to Glassfish, MySQL and OS?
It’s quite possible that the GlassFish application server is starving for memory. Be sure to give it its adequate share. However, also be sure that MySQL has its own share of system resources. Last but not least, the server itself is the third contender for system resources. The GlassFish heap and MySQL buffer pool should all start at around 1/3 of total memory to permit growth. MySQL will occupy more when it’s busy, and GlassFish’s total RAM can grow to over double its heap allocation.
Optimum recommendations for Glassfish appserver and MySQL dB for ideal performance
The following tables show optimum recommendations for different Controller profiles in both on-premises and EC2-RDS Aurora environments.
Demo Controller profile memory recommendations
Small Controller profile memory recommendations
Medium Controller profile memory recommendations
Large Controller profile memory recommendations
CONTROLLER PROFILE: Demo
COMPUTE: Cores, RAM
CHANGES: JVM, HTTP-Thread-Pool, MySQL
SUPPORTS AMAZON AuroraDB
2 cores, 8Gb RAM
Changes in domain.xml for JVM parameters
<jvm-options>-Xmx2667m</jvm-options>
<jvm-options>-Xms2667m</jvm-options>
<jvm-options>-Xmn889m</jvm-options>
Changes required in domain.xml for http-thread-pool
<thread-pool max-thread-pool-size="24" min-thread-pool-size="24" max-queue-size="-1" name="http-thread-pool"/>
MySQL changes in db.cnf innodb_buffer_pool_size=2667M
NO
Recommendations Top | Table of Contents | Resources
CONTROLLER PROFILE: Small
COMPUTE: Cores, RAM
CHANGES: JVM, HTTP-Thread-Pool, MySQL
SUPPORTS AMAZON AuroraDB
4 cores, 16Gb RAM
Changes in domain.xml for JVM parameters
<jvm-options>-Xmx5461m</jvm-options>
<jvm-options>-Xms5461m</jvm-options>
<jvm-options>-Xmn1820m</jvm-options>
Changes required in domain.xml for http-thread-pool
<thread-pool max-thread-pool-size="48" min-thread-pool-size="48" max-queue-size="-1" name="http-thread-pool"/>
MySQL changes in db.cnf
innodb_buffer_pool_size=5461M
NO
Recommendations Top | Table of Contents | Resources
CONTROLLER PROFILE: Medium
COMPUTE: Cores, RAM
CHANGES: JVM, HTTP-Thread-Pool, MySQL
SUPPORTS AMAZON AuroraDB
Bare-metal: 8 Cores, 128GB RAM
Changes in domain.xml for JVM parameters <jvm-options>-Xmx43690m</jvm-options>
<jvm-options>-Xms43690m</jvm-options>
<jvm-options>-Xmn14563m</jvm-options>
Changes required in domain.xml for http-thread-pool
<thread-pool max-thread-pool-size="96" min-thread-pool-size="96" max-queue-size="-1" name="http-thread-pool"/>
MySQLchanges in db.cnf innodb_buffer_pool_size=43690M
YES
VM: 16 vCPUs, 128GB RAM
Changes in domain.xml for JVM parameters
<jvm-options>-Xmx43690m</jvm-options>
<jvm-options>-Xms43690m</jvm-options>
<jvm-options>-Xmn14563m</jvm-options>
Changes required in domain.xml for http-thread-pool
<thread-pool max-thread-pool-size="128" min-thread-pool-size="128" max-queue-size="-1" name="http-thread-pool"/>
MySQLchanges in db.cnf
innodb_buffer_pool_size=43690M
YES
Recommendations Top | Table of Contents | Resources
CONTROLLER PROFILE: Large
COMPUTE: Cores, RAM
CHANGES: JVM, HTTP-Thread-Pool, MySQL
SUPPORTS AMAZON AuroraDB
Bare-metal: 28 Cores, 512GB RAM
Changes in domain.xml for JVM parameters
<jvm-options>-Xmx174763m</jvm-options>
<jvm-options>-Xms174763m</jvm-options>
<jvm-options>-Xmn58254m</jvm-options>
Changes required in domain.xml for http-thread-pool
<thread-pool max-thread-pool-size="336" min-thread-pool-size="336" max-queue-size="-1" name="http-thread-pool"/>
Mysql changes in db.cnf innodb_buffer_pool_size=174763M
YES
VM: Not recommended
Changes in domain.xml for JVM parameters
<jvm-options>-Xmx43690m</jvm-options>
<jvm-options>-Xms43690m</jvm-options>
<jvm-options>-Xmn14563m</jvm-options>
Changes required in domain.xml for http-thread-pool
<thread-pool max-thread-pool-size="8 x vCPUs" min-thread-pool-size="8 x vCPUs" max-queue-size="-1" name="http-thread-pool"/>
MySQLchanges in db.cnf
innodb_buffer_pool_size=43690M
YES
Recommendations Top | Table of Contents | Resources
What are my next steps?
If the performance issue persists, please contact AppDynamics Support.
Additional Resources
Learn more in the Oracle Java documentation:
To read about xmx, xms and xmn, refer to: https://docs.oracle.com/javase/8/docs/technotes/tools/windows/java.html
To read about thread pool, refer to: https://docs.oracle.com/cd/E18930_01/html/821-2431/abehk.html
To read about max-queue-size, refer to: https://docs.oracle.com/cd/E19226-01/820-7694/abhfa/index.html
... View more