Jira Software guardrails

Background

We’re committed to supporting the needs of our largest customers, and this includes continually improving the performance and scalability of our products. The amount of data in your instance can be a factor in performance and stability problems. As your instance grows, so does your risk of performance degradation over time. Often this is a gradual degradation and can go unnoticed until you reach a point where it has a significant impact on your team.

In the table below, we’ve described the performance and stability impacts that we’ve observed and suggested some actions you can take to reduce your risk. The guardrails are based on real-world experiences with some of our largest customers, but won’t necessarily be representative of every organization’s experience.

Ways you can reduce the risk of experiencing serious performance and stability problems may include:

  • application changes, such as upgrading to a newer application version to get the benefit of performance improvements, or changing the way users are managed.

  • infrastructure changes, such as increasing memory, CPU, or running a cluster or mirrors.

  • data cleanup activities to reduce your footprint, such as archiving or breaking up monolith sites.

It’s important to note that these aren’t hard limits, and some of your product instances may already exceed these thresholds. There are a number of factors, including the interplay between different data types, and site load, which will influence whether you experience the potential impacts listed below, and to what degree. As with any type of risk, it’s essential to identify the risk and make a plan, so you can prioritize those actions that will help you reduce the probability of future performance problems.

Definition

Product Guardrails are data type recommendations designed to help you identify potential risks and aid you making decisions about next steps in your instance optimization journey.

Jira Software guardrails

The following guardrails are provided to help you identify and mitigate scale risks, and make decisions about cleaning up your instance.

Projects

Content type

Number of active projects

Guardrail

7000 projects (not archived)

How to find this number

How to identify old projects to clean up

Risks

We've observed these problems when operating above this guardrail:

  • Number of projects makes permission calculation complex and therefore slower.

  • When creating a new project the application 'hangs' for 20-50 seconds per active node in the cluster (observed with 10k projects), and displays a timeout error after 60 seconds, even if the project is created successfully.

  • Reindexing takes a long time.

Mitigation options

Comments

Content type

Number of comments per issue

Guardrail

1000 comments per issue

How to find this number

How to find issues with the most comments in the database

Risks

We've observed these problems when operating above this guardrail:

  • Issue view loads slowly.

  • Out of memory errors, which can lead to application crashes (in extreme cases).

  • Reindexing takes a long time.

Mitigation options

  • Moderate a user group’s activity by setting a global limit on the number of specific items its members can create with Safeguards

  • Remove older comments via REST or using ScriptRunner.

  • Check any automation to make sure you're not adding unnecessary comments. Consider reducing the frequency or batching updates.

  • Implement rate limiting to prevent a misconfigured integration from adding thousands of comments in a short space of time. Learn about rate limiting

Attachments

Content type

Number of attachments per issue

Guardrail

3000 attachments per issue

10MB per single attachment

How to find this number

How to find issues with the most attachments in the database

Risks

We've observed these problems when operating above this guardrail:

  • Issue view loads slowly.

  • Load on shared home filesystem (for example, while loading of thumbnails)

  • Issue operations (such as view, update) or post-processing can trigger serialising the issue with all the issue properties, including all issue attachment properties.

Mitigation options

Content type

Number of issue links or sub-issues

Guardrail

1000 issue links

How to find this number

How to find issues with the most issue links in the database

Risks

We've observed these problems when operating above this guardrail:

  • Issue view loads slowly.

  • Can results in stuck threads, which can affect the whole instance.

Mitigation options

  • Identify issues with many issue links, and remove any unnecessary links

  • Archive issues that are no longer needed. Learn how to archive issues

Text

Content type

Amount of text in a field.

Guardrail

255 characters in single-line fields

100k characters in description and multi-line fields

How to find this number

Configuring advanced settings

Risks

We've observed these problems when operating above this guardrail:

  • Increased index size.

  • Slow search results.

Mitigation options

Custom fields

Content type

Total number of custom fields

Guardrail

1,200 custom fields

How to find this number

Analyze the usage of custom fields

Risks

We've observed these problems when operating above this guardrail:

  • Overall performance degradation.

  • Reindexing takes a long time.

Mitigation options

Epics

Content type

Number of epics

Guardrail

100,000 epics

How to find this number

You can use JQL to identify the number of epics, issuetype = Epic

Risks

We've observed these problems when operating above this guardrail:

  • Epic link menu loads slowly.

Mitigation options

Sprints

Content type

Total number of sprints

Guardrail

60,000 sprints

How to find this number

How to find the total number of sprints in the database

Risks

We've observed these problems when operating above this guardrail:

  • Overall performance degradation due to slow sprint cache population.

  • closedSprints() JQL function does not work (limited to 65,000 sprints).

Mitigation options

Workflow scheme bulk actions

Action

Associating a new issue type to an existing workflow scheme

Guardrail

1000 issues per bulk action

How to find this number


Risks

We've observed these problems when operating above this guardrail:

  • Bulk action can take a very long time to complete (several days)

  • Can’t view progress of a workflow scheme modification without shortening the URL

Mitigation options

  • Copy the original workflow scheme, make the change, then associate the workflow scheme project by project.

  • Do nothing. The background process will take a long time to complete, but it’s not resource-intensive and won’t cause performance issues. Make sure you don’t restart Jira until it has finished.

Change history

Content type

Number of changeitems or changegroups associated with an issue

Guardrail

20,000 changeitems or changegroups

How to find this number

Retrieve issue change history

Risks

We've observed these problems when operating above this guardrail:

  • Out of memory errors when viewing the History tab.

  • Issue view and other issue actions load slowly.

  • Reindexing takes a long time.

Mitigation options

  • Use a database query to identify issues with large changeitems and changegroups, then clone the issue, as the history is not copied to the new issue.

LDAP users and groups

Content type

Total number of users and groups synchronized between LDAP and Jira

Guardrail

  • 70000 users

  • 20000 groups

How to find this number

How to find the total number of users synchronized between LDAP and Jira

Risks

We've observed these problems when operating above this guardrail:

  • Full sync takes a very long time.

We’ve also observed that instances with a large number of groups and/or complex nested groups, often have a very complicated permission structure, which can also impact performance.

Mitigation options

Last modified on Jun 28, 2022

Was this helpful?

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