JIRA 4.0 : Is your JIRA Running Slowly
This page last changed on May 28, 2009 by rosie@atlassian.com.
If JIRA is not responding as quickly as a previous version or is taking a while to perform certain tasks, please follow the instructions on this page. Tune JIRAThere are quite a few performance tips that can help JIRA to run quicker and may in fact solve your issues. Gather informationIf tuning JIRA did not help, you will need to find exactly what is slow and what is causing it to run slow. ProfilingLets find out where JIRA is spending its time. [Filter: profiling] Turning filter on [jira_profile=on] [116ms] - /secure/Dashboard.jspa [5ms] - IssueManager.execute() [5ms] - IssueManager.execute() [5ms] - Searching Issues [29ms] - IssueManager.execute() [29ms] - IssueManager.execute() [29ms] - Searching Issues [28ms] - Lucene Query [23ms] - Lucene Search Thread DumpsIf JIRA is taking a long time to execute a specific operation (E.g. Creating an issue), it can be useful to get a complete thread dump of the JVM to find out exactly what is being executed. What is the machine doing?It is usually useful to find out how you machine is coping at the time of the slowness. In particular, the CPU usage and the memory swapping. vmstat 1 > vmstat.log This will put all the results into a file called vmstat.log. On Windows, you can use a third party tool or try and get a rough idea from the System Properties window. It is also possible to generate a log of system resources and their use with the Windows Performance Manager. Garbage CollectionVerbose garbage collection will generate log statements that indicate when java is collecting garbage, how long it takes, and how much memory has been freed. You can enable verbose garbage collection by specifying the -verbose:gc jvm option. To have the garbage collection logs written to a file, use -Xloggc:<filename> Database Connection PoolingIt is possible that your instance of JIRA maybe running low, or out of connections, this can cause JIRA to hang or perform very slowly. The best way to see this type of behaviour is via a thread dump, below is a sample snippet of a thread dump showing this problem: "Thread-4" prio=6 tid=0x16d85988 nid=0xe20 in Object.wait() [0x17d9f000..0x17d9fce8] at java.lang.Object.wait(Native Method) - waiting on <0x04139d18> (a org.apache.tomcat.dbcp.pool.impl.GenericObjectPool) at java.lang.Object.wait(Object.java:474) at org.apache.tomcat.dbcp.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:748) - locked <0x04139d18> (a org.apache.tomcat.dbcp.pool.impl.GenericObjectPool) at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95) at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540) at org.ofbiz.core.entity.transaction.JNDIFactory.getJndiConnection(JNDIFactory.java:168) at org.ofbiz.core.entity.transaction.JNDIFactory.getConnection(JNDIFactory.java:140) at org.ofbiz.core.entity.TransactionFactory.getConnection(TransactionFactory.java:99) at org.ofbiz.core.entity.ConnectionFactory.getConnection(ConnectionFactory.java:53) at com.atlassian.jira.upgrade.ConnectionKeeper.openConnections(ConnectionKeeper.java:106) at com.atlassian.jira.upgrade.ConnectionKeeper.run(ConnectionKeeper.java:87) The lines that indicate this problem are the following: - locked <0x04139d18> (a org.apache.tomcat.dbcp.pool.impl.GenericObjectPool) at org.apache.tomcat.dbcp.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95) To help alleviate this you can increase your connection pool size. Information on performing this is application server specific, but if you are running Apache Tomcat or JIRA standalone (which uses Apache Tomcat), you can follow the following documentation to adjust the connection pool size. Get HelpWe are the first to admit we are not experts in everything and, more often than not, there are other customers who have similar set ups and face similar issues. You should ask about your issues on the user forums as you are more than likely to get a quick and knowledgable response.
|
![]() |
Document generated by Confluence on Oct 06, 2009 00:26 |