A great number of companies worldwide are using Atlassian applications every day. One of the most critical points is performance of Atlassian applications. It is important to keep your Jira, Confluence, or Bitbucket as robust as possible. Low performance and even unpredictable freezes can ruin the user experience and lead to significant decrease in performance of your employees. The growing frustration and dissatisfaction with work results are just additional attributes of this all.
Performance of Atlassian applications depends on the multiple factors, as follows:
- Data amount
- Configuration and settings
A slow application server will cause temporary lags, freezes, and long response time when the application operates under the load.
The version of the application may also impact the overall performance. The Atlassian development team is actively working on performance of applications, and every new release improves the performance of critical user interfaces.
Data amount impacts performance of the Atlassian application too. The more data you have, the slower response of the application you will have. Here you need to understand that larger data amounts require faster hardware components, so a common server will have serious performance issues with processing one million of issues or pages.
Configuration and settings of the Atlassian application and environment where it operates are additional things to keep in mind. Out-of-box settings may be inappropriate, so here you need to run some experiments to find the optimum.
Cloud Atlassian Applications
Unfortunately, you cannot adjust performance of the Cloud Atlassian applications anyhow. If you experience performance issues with your Cloud application, try to contact the Atlassian team.
The other thing to consider is the location where Atlassian hosts the data center with your Cloud application instance. If it is quite far from you, you can ask the Atlassian team to move your Cloud instance to the data center which is closer to you.
Server Atlassian Applications
Performance of the server Atlassian applications depends on different factors, so it is better to adjust issues from different spheres one by one. This allows you to determine what positively impacts the performance, and what does not impact at all.
First of all, install more productive hardware peripherals, more memory, faster CPU, and SSD drives running in a RAID mode.
The SSD drive impacts the I/O operations of your Atlassian application. The traditional HDD drive does not provide the sufficient performance for resource-intensive applications. Use SSD drives to store your data, including the database.
Then you need to separate the database server and the application server from each other. Running them both on the same physical server impacts the performance of the Atlassian application.
When you are using a VPS (in Amazon AWS or anything else) for running the Atlassian application, add more memory and increase the number of CPU cores, and then increase the amount of heap memory for the application. Resources of the start-level VPS instance will be insufficient for operation of the Atlassian application being used by thousands of users.
If after these manipulations the performance remains at the same level, you need to consider additional points. First of all, take a look at the best practices from Atlassian. Use the logging and profiling to identify the bottlenecks and address them.
Adjust the number of HTTP and database connections to the application. The insufficient, as well as the great number of connections, may lead to problems with the request servicing time. You need to determine the optimal number of these connections for your instance as it depends on quite many factors. Enable the HTTP response compression, this option should be enabled in Bitbucket, by default.
Install the latest application updates and upgrades. For example, Jira 8 is much faster than Jira 7, the same also applies to the latest versions of Confluence.
Archive the old Jira projects that your team no longer use. This feature is implemented for Jira Data Center, but you can try to do the same in Jira Server. Get rid of unused custom fields and apply the comprehensive administration policy.
The storing of indexes on the RAM disk can significantly improve the performance of the Atlassian application even on the server with SSD drives. The only disadvantage of this approach is that restart of the server will ruin all indexes and you will have to re-run indexation. It is recommended to have an exact copy of the production server where you can do all these experiments and see whether there is any effect from them. Only then adjust the production server.
If you are using Confluence, you need to remember about Synchrony service which is used for collaborative editing. It also has its own memory settings, so if you notice any issues with it, add some memory.
In case of Bitbucket you need to acknowledge that it creates git-processes on the host. During the peak load these git-processes may require much more memory than Bitbucket itself needs. This mainly depends on the development workflows you use and size of repositories.
You can also limit the load per user through the reverse proxy. This can be used in situations when some user account generates too many requests which slows down the Atlassian application.
Automation, Monitoring, and Antivirus
Adjust the schedule of running all automations, data exports, imports, and backups. Limit their load and execute them during the inactive hours. In case of distributed teams this can become a real challenge.
Use the monitoring with different metrics to identify the existing and possible performance issues. Evaluate metrics on a regular basis and set up notifications for critical load values.
Antivirus checkups can negatively impact performance of the Atlassian application. Run the full system scan during the inactive time or in hours of the lowest load. The full system check can decrease the I/O operations during the check time.
If after all these efforts, the performance of the Atlassian application remains the same, it’s time to move to Data Center.
Data Center operates as a cluster of application nodes. All the requests are processed by the load balancer which further routes requests to the appropriate node.
You can have as many nodes as you need. Their number is not limited anyhow by the Atlassian license. But usually, in some situations there is no sense in adding more nodes. The shared home directory should be single and you need to store it on the fast drive, preferably SSD. The same applies to the database. If nodes operate on the same physical server, the scaling effect will be hardly noticeable.
If you see the positive impact from adding nodes, you can automate this process. This approach can be very efficient when you use VPS for running the Atlassian application. You can automatically start additional nodes on a new VPS machine during the peak load, and suspend them during the inactivity period. This way you will preserve the high level of performance and will save money on VPS usage as you will use it temporarily.
The other thing which you can implement is integration of CDN. It can be integrated with Server and Data Center Atlassian applications. All attachments and media assets can be loaded through CDN. This will decrease the load on the application and will improve its response time.
Not sure what to start from?
As you may notice performance of Atlassian applications depends on quite many things. It can become a real challenge to identify the potential bottlenecks without having sufficient experience and expertise in the Atlassian platform. But you can always contact us and get a free consultation.
Just drop an email at firstname.lastname@example.org and we will contact you shortly.