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:
Log in to Jira as an administrator
Go to Administration > System > Clustering
Review the CPU column for each node
Monitor the status and health of your node
Analyzing CPU Load patterns:
Look for consistent high load on specific nodes
Identify any correlation between high CPU Load and specific times of day or days of the week
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:
Go to Project settings > Automation
Select Performance insights
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:
Go to Administration > System > Scheduler
Review the frequency and timing of resource-intensive jobs
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:
Enable Java Flight Recorder (JFR) if not already active
Generate a support zip file during periods of high CPU Load
Extract thread dumps from the support zip
Analyzing thread dumps:
Use a thread dump analyzer tool like Watson
Identify long-running threads or operations consuming excessive CPU
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:
Assess current CPU and memory allocation for each node
Consider increasing CPU resources on existing nodes if possible
Evaluate adding more nodes to your cluster to distribute workload
Optimizing load balancing:
Review your load balancer configuration
Ensure traffic is effectively distributed across all nodes
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.