Using jvmtop to analyze JIRA performance
Platform Notice: Data Center - This article applies to Atlassian products on the Data Center platform.
Note that this knowledge base article was created for the Data Center version of the product. Data Center knowledge base articles for non-Data Center-specific features may also work for Server versions of the product, however they have not been tested. Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.
*Except Fisheye and Crucible
Purpose
This page outlines how to analyze JIRA application performance using Jvmtop.
- Jvmtop provides a overview of all running JVMs on a machine.
- Jvmtop can analyze a JVM process to get an idea of which threads are consuming CPU.
Jvmtop also includes a CPU console profiler.
Jvmtop is currently in alpha state.
See below for other examples on how to understand which threads in JIRA application are consuming a lot of CPU:
- Troubleshooting Jira performance with Thread dumps
- Use Windows Process Explorer to troubleshoot Jira server Performance
Solution
- Get a copy of Jvmtop
Jvmtop requires a JDK to run. If you're getting "<JAVA> seems to be no JDK!" then you would need to install JDK and switch to use the JDK instead of the default JRE.
Example of output from jvmtop:
$ jvmtop JvmTop 0.8.0 alpha - 17:57:33, x86_64, 8 cpus, Mac OS X 10.10., load avg 22.40 http://code.google.com/p/jvmtop PID MAIN-CLASS HPCUR HPMAX NHCUR NHMAX CPU GC VM USERNAME #T DL 366 243m 2031m 152m 446m 63.33% 0.11% A6U65 pkirkeby 76 819 moteMavenServer 55m 505m 31m 130m 14.07% 0.40% A6U65 pkirkeby 19 754 m.jvmtop.JvmTop 3m 235m 10m 130m 1.01% 0.29% O7U25 pkirkeby 16
Example of output from jvmtop monitoring a specific process:
$ jvmtop <pid> JvmTop 0.8.0 alpha - 17:37:55, x86_64, 8 cpus, Mac OS X 10.10., load avg 2.22 http://code.google.com/p/jvmtop PID 17817: org.apache.catalina.startup.Bootstrap ARGS: start VMARGS: -Djava.util.logging.config.file=/Users/pkirkeby/Atlassian/deploym[...] VM: Oracle Corporation Java HotSpot(TM) 64-Bit Server VM 1.8.0_31 UP: 2:49m #THR: 111 #THRPEAK: 111 #THRCREATED: 184 USER: pkirkeby GC-Time: 0: 0m #GC-Runs: 123 #TotalLoadedClasses: 44485 CPU: 11.43% GC: 2.95% HEAP: 281m / 910m NONHEAP: 341m / n/a TID NAME STATE CPU TOTALCPU BLOCKEDBY 192 RMI TCP Connection(2)-172.20.0 RUNNABLE 3.82% 0.05% 87 atlassian-scheduler-quartz1.cl TIMED_WAITING 0.23% 0.39% 193 JMX server connection timeout TIMED_WAITING 0.17% 0.00% 84 atlassian-scheduler-quartz1.cl TIMED_WAITING 0.16% 0.56% 83 atlassian-scheduler-quartz1.cl TIMED_WAITING 0.15% 0.38% 80 jira-monitoring-plugin TIMED_WAITING 0.02% 0.06% 179 Java2D Disposer WAITING 0.01% 0.00% 110 Navlink Plugin Executor:thread WAITING 0.01% 0.02% 59 I/O dispatcher 6 RUNNABLE 0.01% 0.07% 119 http-bio-8080-AsyncTimeout TIMED_WAITING 0.01% 0.12% Note: Only top 10 threads (according cpu load) are shown!