Don't use heap sizes between 32 GB and 47 GB in Confluence - Java Compressed OOPS
プラットフォームについて: Data Center - この記事は、Data Center プラットフォームのアトラシアン製品に適用されます。
このナレッジベース記事は製品の Data Center バージョン用に作成されています。Data Center 固有ではない機能の Data Center ナレッジベースは、製品のサーバー バージョンでも動作する可能性はありますが、テストは行われていません。サーバー*製品のサポートは 2024 年 2 月 15 日に終了しました。サーバー製品を利用している場合は、アトラシアンのサーバー製品のサポート終了のお知らせページにて移行オプションをご確認ください。
*Fisheye および Crucible は除く
要約
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
.
環境
Confluence DC
診断
Confluence heap size value between 32GB and 47GB.
ソリューション
If you need to increase the Confluence 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:
- CompressedOops
- Baeldung - Compressed OOPs in the JVM
- Java Performance Enhancements
- Java GC Tuning Guide
- Additional details about compressed OOPs from the Elastic Search documentation