GC ログを使用した Jira Server のパフォーマンスのトラブルシューティング
プラットフォームについて: サーバーと Data Center のみ。この記事は、サーバーおよび Data Center プラットフォームのアトラシアン製品にのみ適用されます。
このページで紹介している手順は Jira 7.3 以前でのみ使用できます。
Jira 7.4 以降ではガベージ コレクション ログを改善し、自動生成されるようにしました。生成されたログは <installation-directory>/logs で確認できます。
また、Java 9 以降で無制限の JVM ログが導入されたことを受け、以降のすべての推奨パラメーターのサポートが終了しています。このため、ご利用の Java バージョンが Java 8 よりも新しい場合は次のページの手順をご利用ください。
ガベージ コレクション
Jira アプリケーションは、詳細なガベージ コレクション (GC) チューニングはあまり必要としない、堅牢なアプリケーションです。ただし、大規模なインストールでは、GC チューニングによって Jira アプリケーションのパフォーマンスを改善できる場合があります。また、GC ログの分析は Jira アプリケーションのパフォーマンスの問題のトラブルシューティングにも役立ちます。Jira 7.4 以降では、GC ログが自動的に生成されるようになりました。これらは <installation-directory>/logs
で見つけることができます。
診断
詳細ガベージコレクションは、Java がガベージを収集している日時、このプロセスの所要時間、解放されたメモリ量を示すログステートメントを生成します。ガベージ コレクションは、以降のプロパティを JVM に渡すことで有効化できます。詳細については「起動時にプロパティおよびオプションを設定する」ドキュメントをご参照ください。
次の例のように、Xloggc
パラメーターは GC ログの場所の完全なパスを使用する必要があります。サポート zip の生成時に含められるよう、これらを $JIRA_HOME/log
に配置することをおすすめします。ご利用のディレクトリが既定のものとは異なる場合はそのディレクトリを使用してください。
パラメーター -XX:+PrintGCCause は Java 1.7.0_45 で導入され、このバージョンよりも前のバージョンを使用している場合は動作しません。このフラグを使用する前に、インスタンスで使用している Java のバージョンをご確認ください。
Linux/Unix (Java 8 まで)
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCTimeStamps -XX:+PrintGCCause -Xloggc:<PATH_TO_GC_LOGS>/atlassian-jira-gc-%t.log -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=20M
Linux/Unix (Java 9 以降)
-Xlog:gc*:file=<PATH_TO_GC_LOGS>/atlassian-jira-gc-%t.log:tags,time,uptime,level:filecount=5,filesize=20M
Windows (Java 8 まで)
-Xlog:gc*:file=<PATH_TO_GC_LOGS>\atlassian-jira-gc-%t.log:tags,time,uptime,level:filecount=5,filesize=20M
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-XX:+PrintGCTimeStamps
-XX:+PrintGCCause
-Xloggc:<PATH_TO_GC_LOGS>\atlassian-jira-gc-%t.log
-XX:+UseGCLogFileRotation
-XX:NumberOfGCLogFiles=5
-XX:GCLogFileSize=20M
Windows (Java 9 以降)
-Xlog:gc*:file=<PATH_TO_GC_LOGS>\atlassian-jira-gc-%t.log:tags,time,uptime,level:filecount=5,filesize=20M
<PATH_TO_GC_LOGS>
は Jira のインストール ディレクトリ (catalina_home
、例: /opt/atlassian/jira/logs
) に設定することをおすすめします。これによって GC ログをサポート zip に含めることができます。
パラメーターの設定箇所
パラメーターの設定方法については「起動時にプロパティおよびオプションを設定する」ガイドをご利用ください。JVM_GC_ARGS
、それが存在しない場合は JVM_SUPPORT_RECOMMENDED_ARGS
に値を設定することをおすすめします。
一部のパラメーターは setenv.sh
/setenv.bat
のほかの部分にすでに存在する可能性がある点にご注意ください。重複や以降のファイル編集での混乱を防ぐため、それらを別の場所から取り除くことをおすすめします。
分析
- これらのオプションを追加して Jira アプリケーションを再起動すると、
-Xloggc
パラメーターで指定したログにメモリの使用状況の情報が記録されます。これを GCViewer などのツールを使用して分析できます。 - GC チューニングのプラクティスや原則についての完全なガイドを「ガベージ コレクション (GC) チューニング ガイド」で確認できます。
- Java の VisualVM をインストールして、Jira アプリケーションを実行しているプロセスをバインドするために使用できます。これを使用して、GC による CPU の使用状況やヒープの使用状況を分析できます。各ヒープ領域の視覚的な情報を提供する visualGC プラグインのインストールが推奨されます。
- GC をより理解するために、Java Garbage Collection Distilled などのサードパーティによるブログを確認することもおすすめします。
GC ログに加えて、ヒープ ダンプを分析に使用できます。詳細については「ヒープ ダンプで Jira サーバーの OutofMemory エラーを分析する」をご確認ください。
推奨事項
あらゆる状況に適用できるような推奨事項はなく、分析ツールを使用した詳細な評価に勝るものはありません。アトラシアンでは、Jira アプリケーションやそれを実行している環境のパフォーマンス分析にアトラシアン パートナーのサービスを活用することをおすすめしています。
パフォーマンスの問題の診断の詳細な情報については「Jira サーバーのパフォーマンスの問題のトラブルシューティング」ドキュメントをご確認ください。