I'm planning an upgrade and I want to optimize the reindex portion so that my users experience less downtime. I will run this upgrade at least once in a test environment that is identical to the prod env.
How can I measure the performance of the reindex? What tools should I be using to look at what metrics? Atlassian says that CPU and memory are big factors including disk IO. While I perform the reindex I want to gather data so that I can improve the areas that are hurting, and run it again to measure if it's better/worse than before.
Thanks in advance!
It is really difficult to measure the performance of this task because of the number of environmental variables in play here. However we do have a number of guides and tools that you can use to try to troubleshoot performance problems like this. Most of these guides below are also listed in Troubleshooting Performance Problems.
I would recommend using the Testing disk access speed for Java applications. This guide is helpful because it also provides a view benchmarks to compare your results against to understand if your disk is performing well for Jira, or perhaps not as well as it could be.
The speed at which Jira can access the database is also an important factor to measure. You can do this kind of test with this guide: Testing database access speed.
Another thing you can check is Jira's garbage collection. Since Jira is a Java application it has to do garbage collection in order to free up old memory chunks to be used again. For smaller collections, this can happen seemlessly. However sometimes the JVM has to perform a full 'stop-the-world' collection. When these happen, the JIRA application will completely hang until it is finished. If these only take a second or two, most would not notice. However if these are happening frequently, or getting stuck for longer periods of time, it might be an indication that your heap size for Jira should be adjusted. Newer versions of Jira started collecting these logs automatically, but older versions did not have this on by default, you might have to walk through Using Garbage Collection Logs to Analyze JIRA Application Performance in order to make sure this is enabled when Jira starts up.
Another trick you can try to help performance with indexing is to follow the KB, Tune number of Jira index threads. In some cases this can help performance to allocate more threads to handle the reindexing if your system has a lot of cores and extra CPU that is not getting utilized during this process.
Connect with like-minded Atlassian users at free events near you!Find a group
Connect with like-minded Atlassian users at free events near you!
Unfortunately there are no AUG chapters near you at the moment.Start an AUG
We're bringing product updates and pro tips on teamwork to ten cities around the world.Save your spot