AEM - Java Performance troubleshooting using built in CPU profiler

High CPU utilization by a Java process can slow down server operations. This article will guide you through troubleshooting Java performance issues using the built-in CPU profiler.

Description description


Adobe Experience Manager (versions 6.4 and 6.5)


Some server processes are really slow, but are not blocking.

The server OS shows high CPU utilization from the AEM java process.

Resolution resolution

Steps to Resolve:

A simple CPU profiling tool is included in AEM 6.x.

  1. Open this URL: https://aem-host:port/system/console/profiler
  2. Expand Options.
  3. Set the Sample Interval (ms) or use the default.
  4. Set the Stack trace depth  (recommended value: at least 50).
  5. Click Start Collecting.
  6. Wait 3-10 minutes to collect data while CPU utilization is high.
  7. Click Stop  to collect the data (output is shown on the same page).

The profiler collects stack traces of running threads (threads actively taking CPU time). While collecting the stacks, it finds duplicate traces and sorts them from most common to least common.
There are many possible causes for high CPU utilization. Here are a few:

  • Inefficient application code
  • Traversal of large content structures
  • High application memory utilization causing a lot of time spent in JVM Garbage Collection