Managing CPU load in Jira Data Center

CPU Load, measured as SystemCpuLoad, represents the overall CPU utilization across your Jira Data Center cluster. It indicates the percentage of CPU resources being used by Jira, the operating system, and other processes running on the server.

Thresholds:

Optimal

Less than 60% CPU load

Requires attention

Between 60% - 80% CPU load

Needs attention

Greater than 80% CPU load


How does high CPU Load affect Jira Data Center performance?

High CPU Load can significantly impact your Jira Data Center instance in several ways:

  • Increased response times for user actions

  • Decreased system throughput, affecting issue creation, updates, and search operations

  • Potential workload imbalance across cluster nodes

  • Reduced capacity to handle concurrent users and requests

  • Possible instability or crashes if sustained for extended periods

Consistently high CPU Load, even on a single node, can degrade performance across the entire cluster due to the interconnected nature of Jira Data Center.

What's the recommendation?

You should aim to keep the CPU Load below 60% on all nodes for optimal performance. If you're consistently exceeding 80% on any node, consider the following actions:

  • Monitor and analyze node-specific CPU load

  • Review and optimize resource-intensive operations

  • Optimize JVM and garbage collection settings

  • Generate and analyze thread dumps

  • Optimize cluster and resource allocation

Monitor and analyze node-specific CPU load

To effectively manage CPU Load in a Jira Data Center environment, it's crucial to understand how the load is distributed across your cluster.

Accessing Jira cluster monitoring:

  1. Log in to Jira as an administrator

  2. Go to Administration > System > Clustering

  3. Review the CPU column for each node

Monitor the status and health of your node

Analyzing CPU Load patterns:

  1. Look for consistent high load on specific nodes

  2. Identify any correlation between high CPU Load and specific times of day or days of the week

  3. Check if high load coincides with scheduled jobs or known peak usage times

To enable trend monitoring and gain deeper insights:

If you notice that certain nodes consistently have higher CPU Load, it may indicate an imbalance in your cluster configuration or resource allocation.

Review and optimize resource-intensive operations

High CPU Load often results from resource-intensive operations within Jira. Identifying and optimizing these operations can significantly reduce overall CPU usage.

Reviewing automation rules:

  1. Go to Project settings > Automation

  2. Select Performance insights

  3. Look for rules marked as THROTTLED, which may be consuming excessive resources

Analyzing recent changes and integrations:

  • Review recently installed or updated apps

  • Check for new integrations or application links

  • Analyze any significant increases in user activity or data volume

Optimizing scheduled jobs:

  1. Go to Administration > System > Scheduler

  2. Review the frequency and timing of resource-intensive jobs

  3. Consider rescheduling jobs to run during off-peak hours

View performance insights for automation rules

Optimize JVM and garbage collection settings

Inefficient memory management can lead to high CPU usage. Optimizing your JVM and garbage collection settings can help alleviate this issue.

Reviewing current JVM settings:

  • Check the current JVM arguments for each node

  • Ensure consistency across all nodes in the cluster

Analyzing garbage collection:

  • Enable garbage collection logging if not already active

  • Review GC logs for frequency and duration of collection events

  • Consider implementing the G1 garbage collector for large heaps (>4GB)

Adjusting heap size:

  • Review current heap usage across nodes

  • Adjust heap size if necessary, ensuring it's consistent across all nodes

  • Avoid heap sizes between 32GB and 47GB due to compressed oops limitations

Monitor the impact of any changes on CPU Load and overall application performance.

Garbage Collection (GC) Tuning Guide

Generate and analyze thread dumps

Generating thread dumps:

  1. Enable Java Flight Recorder (JFR) if not already active

  2. Generate a support zip file during periods of high CPU Load

  3. Extract thread dumps from the support zip

Analyzing thread dumps:

  1. Use a thread dump analyzer tool like Watson

  2. Identify long-running threads or operations consuming excessive CPU

  3. Correlate findings with Jira operations or third-party app activities

More instructions on using Watson for thread dump analysis

Optimize cluster and resource allocation

If a high CPU Load persists across multiple nodes, consider adjusting your cluster configuration or resources.

Reviewing resource allocation:

  1. Assess current CPU and memory allocation for each node

  2. Consider increasing CPU resources on existing nodes if possible

  3. Evaluate adding more nodes to your cluster to distribute workload

Optimizing load balancing:

  1. Review your load balancer configuration

  2. Ensure traffic is effectively distributed across all nodes

  3. Consider dedicating specific nodes for CPU-intensive operations (e.g., API calls, batch processes)

Remember to test any significant changes in a staging environment before applying them to your production Jira Data Center instance. Also, regularly monitor CPU Load across all nodes to ensure optimal performance and catch any issues early.


Last modified on Jan 23, 2025

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.