IBM Support

【重要情報】WebSphere Application Server v9.0.0.3より冗長ガーベッジ・コレクションのデフォルト設定が変更されました

Flashes (Alerts)


Abstract

WebSphere Application Server 9.0.0.3 (Distributed) および 9.0.0.4 (z/OS)より、デプロイメント・マネージャー、ノード・エージェント、および、アプリケーション・サーバーの verboseGC のデフォルト設定が enable になります。

最新の情報については、下記URLの文書(英語)をご参照ください。
Verbose Garbage Collection default setting changes after 9.0.0.3
http://www.ibm.com/support/docview.wss?uid=swg21998741

Content

WebSphere Application Server フィックスパック 9.0.0.3 (Distributed) および 9.0.0.4 (z/OS)にて、冗長ガーベッジ・コレクション(verboseGC)のデフォルト設定が変更されました。

Distributed の場合: v9.0.0.3以降、デプロイメント・マネージャー、ノード・エージェント、およびアプリケーション・サーバーの verboseGC のデフォルト設定が enable になります。enable の場合は、verboseGC は、10個の連続した「verbosegc」ログにローテートされ出力されます。ログのファイル・サイズは、環境によって変わりますが、1サーバープロセスにつき、およそ100Mbyte程度(GCの状況によりそれ以上)になります。

z/OS の場合: v9.0.0.4以降、デプロイメント・マネージャー、ノード・エージェント、およびアプリケーション・サーバーの verboseGC のデフォルト設定が enable になります。enable の場合は、verboseGC 出力は、以前のリリースと同じ方法で、JES ジョブログ内に収集されます。

以前のリリースとの違い:

  • verboseGC は、すべてのサーバータイプでデフォルトで disable になっていました。
  • Distributed プラットフォームにおいてverboseGC が enable の場合、
    ネイティブ・プロセス・ログ(native_stderr.log/native_stdout.log)に出力されます。
    v9.0.0.3以降は、ネイティブ・プロセス・ログとは別のログ・ファイル(verbosegc.***.log)に出力されます。

注: verboseGC を disable にする場合、もしくは、デフォルトの verboseGC ロギング動作を変更する場合は、verboseGC 設定の変更セクションをご参照ください。


冗長ガーベッジ・コレクションについて

冗長ガーベッジ・コレクション(verboseGC)は、指定された方法でガーベッジ・コレクタの診断データをログに記録するかどうかを制御する、デプロイメント・マネージャーやアプリケーション・サーバーなどの WebSphere サーバー・タイプの Java 仮想マシン構成の設定です。

ガーベッジ・コレクタの診断データは、メモリとパフォーマンスの問題をトラブルシューティングする上で重要で、一般的にそれによるオーバーヘッドは、ほとんどありません。フィックスパック 9.0.0.3 (Distributed) および 9.0.0.4 (z/OS) にて、WebSphere Application Serverはデフォルトで verboseGC を enable にし、メモリとパフォーマンスの問題が発生した場合にその診断データを使用できるようにします。9.0.0.3 (Distributed)では、診断データのログをローテートさせることで、ネイティブ・プロセス・ログが使用可能なファイル・スペースを使い果たすリスクを軽減します。

Java ガーベッジ・コレクタ診断は、最終的にガーベッジ・コレクタのコマンドライン・オプションとダンプ・エージェント・トークンによって制御されます:

verboseGC が enable になっているサーバー JVM を起動すると、WebSphere Application Server は次のJava コマンドライン・オプションを提供し、ガーベッジ・コレクタ診断を制御します。

Distributed v9.0.0.3以前の場合:

-verbose:gc

Distributed v9.0.0.3 および、v9.0.0.3以降の場合:


Windows、Linux および AIXの場合:

-verbose:gc
-Xverbosegclog:${SERVER_LOG_ROOT}\verbosegc.%seq.log,10,7000

Solaris および、HP-UXの場合:

-verbose:gc
-Xloggc:${SERVER_LOG_ROOT}/verbosegc.log
-XX:+UseGCLogFileRotation
-XX:NumberOfGCLogFiles=10
-XX:GCLogFileSize=10M
-XX:+PrintGCDateStamps
-XX:+PrintGCDetails

これらのオプションにより、JVM がガーベッジ・コレクターの診断データを、連続した10個の「verbosegc」ログ・ファイルにローテートするように設定されます。各ログ・ファイルは、環境にもよりますが、およそ10Mbyte(GCの状況によりそれ以上)のファイル・スペースを消費します。verbosegc ログは、サーバーのシステム・ログ、ネイティブ・プロセス・ログ、およびトレース・ログと共に ${SERVER_LOG_ROOT} ディレクトリー配下に作成されます。これらのオプションによって、Windows、Linux、および AIX では、7000回のガーベッジ・コレクション・イベントがログされます。イベントによるログ出力サイズが異なるため、ログによる使用されるファイル・スペースの量も異なります。

z/OS 9.0.0.4以前の場合:

-verbose:gc

z/OS v9.0.0.4 および、v9.0.0.4 以降の場合:

-verbose:gc

このオプションは、デフォルトで JES ジョブ・ログに収集されるネイティブ・プロセス・ストリームに詳細なガーベッジ・コレクション診断データを書き込むように JVM に指示します。


verboseGC 設定の変更

verboseGC の新しいデフォルト設定 enable またはロギング設定は、状況によっては適切ではない場合があります。次のセクションでは、verboseGC を disable にする方法と、デフォルトの verboseGC ロギング動作を変更する方法について説明します。Distributed プラットフォームでのv9.0.0より前の verboseGC ロギング動作に戻す方法も含まれます。


 verboseGC を disable にする方法
 9.0より前の verboseGC ロギングを有効にする方法
 カスタム verboseGC ロギングを有効にする方法


【verboseGC を disableにする方法】
verboseGC を disable にするには、次のタスクを実行します。

  1. 管理コンソールで、構成するターゲットサーバーを選択します。

    アプリケーション・サーバーの場合

    サーバー > サーバー・タイプ > WebSphere Application Server
    作業するサーバーを選択します(例:server1)

    ノード・エージェントの場合

    システム管理 > ノード・エージェント
    作業するノード・エージェントを選択します

    デプロイメント・マネージャーの場合

    システム管理 > デプロイメント・マネージャー

  2. 「構成」タブの「サーバー・インフラストラクチャー」で、「Javaおよびプロセス管理」を展開し、「プロセス定義」をクリックします。

  3. z/OS の場合: 各アプリケーション・サーバー、ノードエージェント、およびデプロイメント・マネージャーに該当する各リージョン(Control、Servant、およびAdjunct)に対して、次のタスクを実行する必要があります。

  4. 「追加プロパティー」セクションで、「Java仮想マシン」をクリックします。

  5. [冗長ガーベッジ・コレクション]チェックボックスのチェックをはずします

  6. 汎用JVM引数フィールドに、ガーベッジ・コレクタ診断を制御する JVM オプションが含まれていないことを確認します。

  7. 「適用」をクリックし、変更を「保存」します。

    ターゲットサーバー構成で verboseGC が disable になりました。

  8. 変更を有効にするには、ターゲットサーバーを再起動します。


【9.0以前の verboseGC ロギングを有効にする方法】
9.0以前の verboseGC ロギングを有効にするには、次のタスクを実行します。

z/OSの場合: 9.0より前の verboseGC ロギング動作を有効にする手順は適用されません。バージョン9.0では、verboseGC ロギング動作に変更はありません

  1. 管理コンソールで、構成するターゲットサーバーを選択します。

    アプリケーション・サーバーの場合

    サーバー > サーバー・タイプ > WebSphere Application Server
    作業するサーバーを選択します(例:server1)

    ノード・エージェントの場合

    システム管理 > ノード・エージェント
    作業するノード・エージェントを選択します

    デプロイメント・マネージャーの場合

    システム管理 > デプロイメント・マネージャー

  2. 「構成」タブの「サーバー・インフラストラクチャー」で、「Javaおよびプロセス管理」を展開し、「プロセス定義」をクリックします。

  3. 「追加プロパティー」セクションで、「Java仮想マシン」をクリックします。

  4. [冗長ガーベッジ・コレクション]チェックボックスのチェックをはずします

  5. 汎用JVM引数フィールドに、標準JVMオプション -verbose:gc を追加します。

  6. 汎用JVM引数フィールドに、ガーベッジ・コレクタ診断を制御する JVM オプションが含まれていないことを確認します。

  7. 「適用」をクリックし、変更を「保存」します。

    デフォルトの verboseGC 設定が上書きされ、9.0.0.3より前のリリースと同じ方法で、ガーベッジ・コレクタ診断データをネイティブ・プロセス・ストリームに書き込むようになりました。

  8. 変更を有効にするには、ターゲット・サーバーを再起動します。


【カスタム verboseGC ロギングを有効にする方法】
カスタム verboseGC ロギングを有効にするには、次のタスクを実行します。
  1. 管理コンソールで、構成するターゲットサーバーを選択します。

    アプリケーション・サーバーの場合

    サーバー > サーバー・タイプ > WebSphere Application Server
    作業するサーバーを選択します(例:server1)

    ノード・エージェントの場合

    システム管理 > ノード・エージェント
    作業するノード・エージェントを選択します

    デプロイメント・マネージャーの場合

    システム管理 > デプロイメント・マネージャー

  2. 「構成」タブの「サーバー・インフラストラクチャー」で、「Javaおよびプロセス管理」を展開し、「プロセス定義」をクリックします。

  3. z/OS の場合: 各アプリケーション・サーバー、ノードエージェント、およびデプロイメント・マネージャーに該当する各リージョン(Control、Servant、およびAdjunct)に対して、次のタスクを実行する必要があります

  4. 「追加プロパティー」セクションで、「Java仮想マシン」をクリックします。

  5. [冗長ガーベッジ・コレクション]チェックボックスのチェックをはずします

  6. 汎用JVM引数フィールドに、設定したいガーベッジ・コレクタのデータ・ロギング動作を有効にする非標準のJVMコマンド・ライン・オプションを入力します。

    z/OS の場合: たとえば、次の文字列を入力すると、ガーベッジ・コレクターのデータを、連続10個でローテートする verbosegc ログ・ファイルに書き込むことができます。各ログ・ファイルは、環境にもよりますが約10Mbyte(GCの状況によりそれ以上)のファイル・スペースを消費します。

    -Xverbosegclog:${SERVER_LOG_ROOT}/verbosegc.%job.%jobid.%seq.log,10,7000




    ダンプ・エージェント・トークン %jobおよび %jobidに注目してください。これらのトークンは、z/OS のジョブ名とジョブIDで、サーバー・プロセスを識別するために必要なコンテキストをファイル名に追加します。上記のオプションがデプロイメント・マネージャーで設定されている場合のログ名の例を示します。

    WAS_HOME/profiles/default/logs/dmgr/verbosegc.BBODMGRS.STC00114.001.log

  7. 「適用」をクリックし、変更を「保存」します。

    デフォルトのverboseGC設定は、標準以外のJVMオプションに従ってガーベッジ・コレクタ診断をログするように変更されました。

  8. 変更を有効にするには、ターゲットサーバーを再起動します。


リファレンス
  1. Enabling verbose garbage collection (verboseGC) in WebSphere Application Server (Distributed platforms)
  2. Writing Verbose GC to a Specified Log -Xverbosegclog in AIX, Linux and Windows
  3. Writing Verbose GC to a Specified Log in Solaris and HP-UX
  4. IBM SDK Java Technology Edition, Version 8 - Summary of diagnostic information
  5. IBM SDK Java Technology Edition, Version 8 - Garbage Collector diagnostic data
  6. IBM SDK Java Technology Edition, Version 8 - Verbose garbage collection logging
  7. IBM SDK Java Technology Edition, Version 8 – Garbage Collector command-line options
  8. IBM SDK Java Technology Edition, Version 8 - Dump agent tokens
  9. IV74107: Java TDUMPS on z/OS are not uniquely named

[{"Product":{"code":"SSEQTP","label":"WebSphere Application Server"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Component":"Not Applicable","Platform":[{"code":"PF002","label":"AIX"},{"code":"PF010","label":"HP-UX"},{"code":"PF012","label":"IBM i"},{"code":"PF016","label":"Linux"},{"code":"PF027","label":"Solaris"},{"code":"PF033","label":"Windows"},{"code":"PF035","label":"z\/OS"}],"Version":"9.0","Edition":"","Line of Business":{"code":"LOB45","label":"Automation"}}]

Document Information

Modified date:
25 September 2022

UID

swg22003762