Dear Community,
We are using JIRA Data Center. Recently, we are facing an issue which decreases the JIRA performance for about two days of usage after a service restart.
The CPU usage goes up (~30%) and down (~5%) regularly during the usage of JIRA like Sine model. This model of CPU usage takes about two days. After that, every thing gets normal and CPU usage remains below 10%.
We generated two thread dumps. The first one is generated when CPU usage is ~30%, and the second one when it is ~5%.
We compared two dumps, and it realized that the following thread has different statuses.
High CPU usage:
"NodeReindexServiceThread:thread-1" #183 prio=5 os_prio=0 tid=0x00007f231e230000 nid=0x5d34 runnable [0x00007f23d085e000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000005c484ee78> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Low CPU usage:
"NodeReindexServiceThread:thread-1" #183 prio=5 os_prio=0 tid=0x00007f231e230000 nid=0x5d34 waiting on condition [0x00007f23d085e000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x00000005c484ee78> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
The thread is runnable when the CPU usage is high, on the other side, the thread is waiting on condition when the CPU usage is low.
Have you faced the similar issue?
Many Thanks,
Ali
Hi @Ali Narenji ,
Have you checked if the instance enabled the automated daily backup? In my experience high CPU is caused by taking an XML backup.
Try to resort to other alternatives, like snapshot and DB backups instead of the the instance doing the job.
Hi @brbojorque ,
Yes, we have checked all the scheduled services, but we haven't found the problem yet!
Thanks,
Ali
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.