Don't use heap sizes between 32 GB and 47 GB in Bamboo - Java Compressed OOPS
Platform Notice: Data Center - This article applies to Atlassian products on the Data Center platform.
Note that this KB was created for the Data Center version of the product. Data Center KBs for non-Data Center-specific features may also work for Server versions of the product, however they have not been tested. 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
Java disables Compressed Oops for applications heaps larger than 32 GB. This changes the memory allocation size from 4 to 8 bytes, reducing the number of objects it can store in the heap. Therefore, increasing the maximum heap to a value near 32 GB and up to 47 GB will actually decrease the amount of memory available, leading to possible Java OutOfMemoryErrors
.
Solution
If you need to increase the Bamboo memory heap size to near or higher than 32 GB, please set it to a value greater or equal to 48 GB and add further memory from that point. It's also best practice to use the same value for Xms and Xmx. Although setting similar min/max heap sizes may take additional time to initially load the JVM, it will prevent pauses caused by heap expansion and decrease the time the Java Garbage Collection takes to occur, as it will not attempt to resize the heap down at every cycle.
More Information at: