Improving the performance of ActiveMQ

Still need help?

The Atlassian Community is here for you.

Ask the community

Platform notice: Server and Data Center only. This article only applies to Atlassian products on the Server and Data Center platforms.

Support for Server* products ended on February 15th 2024. If you are running a Server product, you can visit the Atlassian Server end of support announcement to review your migration options.

*Except Fisheye and Crucible

Summary

In Bamboo, the ActiveMQ broker is responsible for server-agent communication. If you are experiencing performance issues with the ActiveMQ, these may be due to the disk being synced at every journal write, which increases the load on the disk itself. To resolve this, you can configure a different disk synchronization policy in ActiveMQ.

Diagnosis

Performance issues observed empirically or with third-party monitoring tools.

Cause

Bamboo persists messages on the disk and syncs the disk after every journal write to guarantee the most seamless restart possible.

Solution

To improve the performance of ActiveMQ, try experimenting with a periodic synchronization policy. That way, if a write occurs, the disk will be synced based on the set intervals instead of after every journal write. This should reduce the load on the disk and improve throughput. The disk will also be synced when rolling over to a new journal file.

To do this, set the following system property on your Bamboo server:

bamboo.broker.kaha.journalDiskSyncStrategy=periodic

Learn how to set system properties

In some rare cases, this solution may lead to a message missing between restarts, causing some builds to fail. However, we found this to be a safe trade-off. The set interval is equal to 1 second. As a result, possible data loss is limited to a maximum of 1 second’s worth of data.

For more information, go to the official ActiveMQ documentation.


Last modified on Feb 5, 2024

Was this helpful?

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