Oracle WebLogic Server で GC ログを出力する方法

Oracleサポート通信

2021.04.22

  

はじめに

コンピュータシステムにおいて使用されるアプリケーションサーバ製品はさまざまなものがありますが、その中で Oracle WebLogic Server (以下、WLS) をご使用の方も多いと思います。
今回は、その WLS において GC ログを出力する方法を紹介致します。

GC とは

GC とは Garbage Collection の略であり、簡単に申しますと JVM (Java仮想マシン) のメモリ内の不要な領域を解放するイベントです。これは WLS 独自のものではなく、JVM のイベントです。GC は JVM にとって無くてはならないものですが、まれに GC によって java アプリケーションの性能問題が発生することがあります。

GC ログとは

GC ログとは GC の記録です。GC の発生日時や所要時間、GC 前後のメモリ使用量等を記録することが可能です。GC によって性能問題が発生したときのために普段から GC ログを出力するようにしておくと良いでしょう。

GC ログを出力する具体的な設定方法

JVM オプションを指定することにより GC ログを出力することができます。GC ログを出力するための JVM オプションはさまざまあり、またベンダーやバージョンによっても異なりますが、今回は一般的なものを紹介致します。

JVM オプション 説明
-XX:+PrintGCDetails GCの詳細な情報を出力します
-XX:+PrintGCDateStamps GCのタイムスタンプを出力します。
-XX:+PrintHeapAtGC GC前後の詳細なヒープ情報を出力します。
-Xloggc:/tmp/gc_%p_%t.log GCログファイル名です。左記は /tmp 配下に出力する例です。
-XX:+UseGCLogFileRotation GCログをローテーションします。
-XX:NumberOfGCLogFiles=20 GCログのファイルを20個でローテーションします。
-XX:GCLogFileSize=50M GCログのファイルサイズを50MBまでにします。

WLS を利用している場合、上記 JVM オプションを設定する一般的な方法は以下の通りとなります。

1. $DOMAIN_HOME/bin/setDomainEnv.sh を vi エディタ等で開きます。

2. JVM オプションを設定する箇所を見つけます。
以下の記載がある箇所を見つけてください。
setDomainEnv.sh の何行目に以下の記載があるかは WLS のバージョンや OS の種類によっても異なりますが Linux 版の WLS 12.2.1.4 の場合 522 行目辺りでした。

JAVA_OPTIONS="${JAVA_OPTIONS}"
export JAVA_OPTIONS
    

3. JVM オプションを記載します。
複数指定する際は以下のように半角スペース区切りで指定してください。

例)

JAVA_OPTIONS="-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/tmp/gc_%p_%t.log ${JAVA_OPTIONS}"
    

4. WLS 再起動
管理サーバや管理対象サーバを再起動します。
-Xloggc オプションで指定したパスに GC ログが出力されていれば成功です。

まとめ

今回は WLS で GC ログを出力する方法を簡単に紹介いたしました。GC による性能問題が発生した後で GC ログを出力する設定を行っても過去の GC の状況はわかりませんので、普段から GC ログが出力される設定にしておくことが重要です。