Issue in AEM Instance showing High CPU Usage | Community
Skip to main content
New Participant
September 23, 2019
Solved

Issue in AEM Instance showing High CPU Usage

  • September 23, 2019
  • 11 replies
  • 12751 views

Hi All,

We are frequently experiencing the High CPU usage Issue with the AEM instances. Please find the Below Description.

1.We have Production Environment where we configured 4 Publish Instances and 2 Author Instances.

2.We configured AEM on App nodes.

3.Frequently ,we are Experiencing High CPU usage Load i.e CPU usage is Hitting 98% on one of the Publish instances and remaining for 10 hours nearly.

Also,at the same time we are not seeing any load on other Publish Instances.

4.We verified the Dispatcher level configurations and logs also,we are seeing normal request processing and there are no errors in Error logs.

5.While Analyzing the Threads Dumps for  that Time Instance we are seeing below threads in blocked state.

Thread dump 6/10
"ApacheSlingdefault_QuartzSchedulerThread" prio=5 tid=0x298 nid=0xffffffff waiting for monitor entry
     java.lang.Thread.State: BLOCKED
     at java.lang.Object.wait(Native Method)
     - waiting to lock <0x39d83e0e> (a java.lang.Object) owned by "null" tid=0x-1
     at org.quartz.core.QuartzSchedulerThread.run(QuartzSchedulerThread.java:311)

Thread dump 9/10

"sling-default-28" prio=5 tid=0x104d nid=0xffffffff waiting for monitor entry
     java.lang.Thread.State: BLOCKED
     at sun.misc.Unsafe.park(Native Method)
     - waiting to lock <
0x2a446ba5> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) owned by "null" tid=0x-1
     at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
     at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)
     at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)
     at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)


Could anyone please Suggest any solution for this issue.

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by joerghoh

Hi,

Short answer: these threads are not blocking anything or are not blocked by anything. This is just the implementation of the Object.wait() method, which manifests itself in this way.

You can essentially ignore these 2.

11 replies

Employee
September 23, 2019

When the CPU usage is high, take atleast 10 thread dumps 3 seconds apart using the script at [1]. This script will take Top output as well which can be used to map threads to CPU usage.

Then, use the fastthread to analyze those dumps. You will see a section about "CPU Consuming Threads" which will provide you more details on the threads consuming more CPU.

[1] jstackSeries.sh/jstackSeries.sh at master · cqsupport/jstackSeries.sh · GitHub

[2] Smart Java thread dump analyzer - thread dump analysis in seconds