"OutOfMemoryError Java heap space" エラーによって Confluence がクラッシュする
問題
Confluence がハングしたり、予期せぬ挙動をしたりする。
atlassian-confluence.log に次のようなエラー メッセージが記録される。
java.lang.OutOfMemoryError: Java heap space
診断
OutOfMemoryError をスローするときにヒープ ダンプを生成するように Java を構成します。ヒープ ダンプはメモリの内容を確認するために使用できるため、メモリ リークを発見したり、システムのどの部分が大量のメモリを使用しているかを確認したりするのに役立ちます。メモリ不足エラーが発生したときにヒープ ダンプを生成するには、「システム プロパティの設定」ドキュメントに従い、Confluence に次の引数を追加します。
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=<heap_dump_file_path>
ヒープ ダンプを生成すると JVM ヒープと同じサイズのファイルが作成されるため、JVM の最大ヒープ サイズに 2 GB を割り当てていた場合、ヒープ ダンプは 2 GB になります。
このファイルを作成するため、<heap_dump_file_path> で定義されたドライブまたはディレクトリに十分な領域があることを確認します。
また、特定の問題のトラブルシューティングのためにアトラシアン サポートから指定された場合を除き、ヒープを 2 GB よりも大きい値に設定することは推奨されません。
原因
Java ヒープ スペース割り当てが超過されています。これは、アプリケーション内のメモリ リーク、または通常の使用でより多くのメモリが必要になったために発生します。
いくつかの既知の原因があります。
- The XML Backup is one known memory hog. Check Cannot create or restore XML backup due to OutOfMemory errors in Confluence Data Center.
- Office Connector または大規模な Office ファイルを頻繁に使用していると、メモリ不足エラーが発生する場合があります。例: CONF-17113。
- HSQLDB (評価用データベース) の使用はメモリの問題を発生させる可能性があります。
- Confluence を 3.5 よりも前のバージョンからバージョン 3.5 以上にアップグレードし、Confluence がすでに最大ヒープ サイズに近づいていた場合。Confluence のメモリ使用量はバージョン 3.5 で約 250 MB 増加します。
ソリューション
- If you're using the XML backup, disable it and use the Production Backup Strategy. Check Cannot create or restore XML backup due to OutOfMemory errors in Confluence Data Center for more information.
- Confluence をアップグレードします。アトラシアンでは OutOfMemory エラーの根本原因の修正に引き続き取り組んでいます。
- 評価用のデータベースを使用している場合、本番環境用のデータベースに移行します。
- 利用状況のパターンが増加した場合、メモリ設定を調整するだけで十分な場合があります。「利用可能なメモリを増やすことで OutOfMemory エラーを修正する」をご確認ください。ヒープ サイズを増やす場合は Garbage Collection のパフォーマンスにご注意ください。