Question & Answer
Question
ガーベッジ・コレクション
Answer
この文書は、WebSphere Application Server環境で、 Java ガーベッジ・コレクション詳細ログ(verbosegcログ)の設定方法を説明しています。
問題調査に必要な資料と取得方法
WebSphere Application Server(以下、WAS) において、パフォーマンスチューニングやトラブルシューティングでJava ガーベッジ・コレクションの詳細ログが必要になります。 このガイドはさまざまなバージョンのアプリケーション・サーバーで異なる、verbosegcログの採取設定方法を解説します。verbosegcのログを有効にすることで、ガーベッジ・コレクション発生時に数行の統計情報が出力されます。この統計情報の計算はログの設定にかかわらず内部で行われているため、verbosegcログの設定によるパフォーマンスインパクトはごくわずかです。 採取されたログの解析によりパフォーマンスの改善も期待できます。
verbosegcの詳細ログは以下の情報を提供します。
- 実行時に発生した Allocation Failure(Java Heapが不足してObjectの生成ができない)事象のシーケンス番号
- 前回のAllocation Failureからの経過時間
- 足りない状態でのフリーエリアのバイト数とその時のJava Heap全体のバイト数
- ガーベッジ・コレクション事象シーケンス番号と開始時間
- ガーベッジ・コレクションでフリーできたバイト数とそれに要した時間
- ガーベッジ・コレクションに要した時間の各コレクションフェーズ毎(Mark, Sweep, Compaction)の経過時間
- Compaction (圧縮)で移動したオブジェクトの数とバイト数
- Java Heapの拡張 (-Xmxに達していない場合)
- ガーベッジ・コレクションに先立ち全てのThreadの 一時停止に要した時間 (200ミリ秒以上の時に記録されます
目次 |
■ WAS V8.5/V8.0/V7.0 アプリケーション・サーバー ■ WAS V6.1アプリケーション・サーバー ■ WAS V8.5/V8.0/V7.0/V6.1デプロイメント・マネージャー ■ WAS V8.5/V8.0/V7.0/V6.1ノード・エージェント ■ ランタイム環境への変更 |
Enabling verbose garbage collection (verbosegc) in WebSphere Application Server
http://www-01.ibm.com/support/docview.wss?uid=swg21114927
■ WAS V8.5/V8.0/V7.0 アプリケーション・サーバー
■ WAS V8.5/V8.0/V7.0 アプリケーション・サーバー
- 管理コンソールで 「サーバー」 > 「サーバー・タイプ」 > 「WebSphere Application Server」 をクリックします。
- サーバー名一覧から該当のアプリケーションサーバー名をクリックします。
- 構成タブで、サーバー・インフラストラクチャーの下に表示されている「Javaおよびプロセス管理」 > 「プロセス定義」の順にクリックします。
- 追加プロパティーの下の「Java仮想マシン」をクリックします。
- 『冗長ガーベッジ・コレクション』 チェック・ボックスに選択します。
- 適用ボタンをクリックします。
- ページの上部に表示された、"ローカル構成が変更されました。『保存』をクリックして、変更をマスター構成に適用します。" の保管をクリックし構成を保管します。
※Solarisシステム or HPシステムでは、下記JVM引数(注釈*1)の設定が必要になります。 - アプリケーション・サーバーを停止し、再起動します。
- ご使用のOS環境でガーベッジ・コレクション詳細ログの出力先が変わります。
- AIX, Microsoft Windows, or Linux:
- Solarisシステム or HPシステムでは、以下のパラメータを Java仮想マシンページの"汎用JVM引数"に追加します。
- native_stderr.log
- native_stdout.log
注釈*1
(必ず1行で入力します。)
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC
※-XX:+PrintHeapAtGC オプションは出力データが多いため、必ずディスクスペースをご確認ください。
汎用JVM引数の設定は、InfoCenterJava 仮想マシン設定をご確認ください。
※InfoCenterリンクは、V8.5となっていますが、V8.0/V7.0も同様の設定手順になります。
■ WAS V6.1アプリケーション・サーバー.
■ WAS V6.1アプリケーション・サーバー
- 管理コンソールで 「サーバー」 > 「アプリケーション・サーバー」をクリックします。
- サーバー名一覧から該当のアプリケーションサーバー名をクリックします。
- 構成タブで、サーバー・インフラストラクチャーの下に表示されている「Javaおよびプロセス管理」 > 「プロセス定義」「の順にクリックします。
- 追加プロパティーの下のJava仮想マシンをクリックします。
- 『冗長ガーベッジ・コレクション』 チェック・ボックスに選択します。
- 適用ボタンをクリックします。
- ページの上部に表示された、"ローカル構成が変更されました。『保管』をクリックして、変更をマスター構成に適用します。" の保管をクリックし構成を保管します。
※Solarisシステム or HPシステムでは、下記JVM引数(注釈*1)の設定が必要になります。 - アプリケーション・サーバーを停止し、再起動します。
- ご使用のOS環境でガーベッジ・コレクション詳細ログの出力先が変わります。
- AIX, Microsoft Windows, or Linux:
- Solarisシステム or HPシステムでは、以下のパラメータを Java仮想マシンページの"汎用JVM引数"に追加します。
- native_stderr.log
- native_stdout.log
注釈*1
(必ず1行で入力します。)
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC
※-XX:+PrintHeapAtGC オプションは出力データが多いため、必ずディスクスペースをご確認ください。
汎用JVM引数の設定は、InfoCenterJava 仮想マシン設定をご確認ください。
■ WAS V8.5/V8.0/V7.0/V6.1デプロイメント・マネージャー
■ WAS V8.5/V8.0/V7.0/V6.1デプロイメント・マネージャー
- 管理コンソールで 「システム管理」 > 「デプロイメント・マネージャー」 をクリックします。
- 構成タブで、サーバー・インフラストラクチャーの下に表示されている「Javaおよびプロセス管理」 > 「プロセス定義」の順にクリックします。
- 追加プロパティーの下の「Java仮想マシン」をクリックします。
- 『冗長ガーベッジ・コレクション』 チェック・ボックスに選択します。
- 適用ボタンをクリックします。
- ページの上部に表示された、"ローカル構成が変更されました。『保存』をクリックして、変更をマスター構成に適用します。" の保管をクリックし構成を保管します。
※Solarisシステム or HPシステムでは、下記JVM引数(注釈*1)の設定が必要になります。 - デプロイメント・マネージャーを停止し、再起動します。
- ご使用のOS環境でガーベッジ・コレクション詳細ログの出力先が変わります。
- AIX, Microsoft Windows, or Linux:
- Solarisシステム or HPシステムでは、以下のパラメータを Java仮想マシンページの"汎用JVM引数"に追加します。
- native_stderr.log
- native_stdout.log
注釈*1
(必ず1行で入力します。お使いのバージョンをご確認ください。)
WAS V8.5/V8.0/V7.0:
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC
WAS V6.1:
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC
※-XX:+PrintHeapAtGC オプションは出力データが多いため、必ずディスクスペースをご確認ください。
汎用JVM引数の設定は、InfoCenterJava 仮想マシン設定をご確認ください。
※InfoCenterリンクは、V8.5となっていますが、V8.0/V7.0/V6.1も同様の設定手順になります。
※デプロイメント・マネージャーの設定は、「システム管理」>「デプロイメント・マネージャー」から行います。
■ WAS V8.5/V8.0/V7.0/V6.1ノード・エージェント
■ WAS V8.5/V8.0/V7.0/V6.1ノード・エージェント
- 管理コンソールで 「システム管理」 > 「ノード・エージェント」 をクリックします。
- ノード・エージェント一覧から該当ノードのノード・エージェントをクリックします。
- 構成タブで、サーバー・インフラストラクチャーの下に表示されている「Javaおよびプロセス管理」 > 「プロセス定義」の順にクリックします。
- 追加プロパティーの下の「Java仮想マシン」をクリックします。
- 『冗長ガーベッジ・コレクション』 チェック・ボックスに選択します。
- 適用ボタンをクリックします。
- ページの上部に表示された、"ローカル構成が変更されました。『保存』をクリックして、変更をマスター構成に適用します。" の保管をクリックし構成を保管します。
※Solarisシステム or HPシステムでは、下記JVM引数(注釈*1)の設定が必要になります。 - ノード・エージェントを停止し、再起動します。
- ご使用のOS環境でガーベッジ・コレクション詳細ログの出力先が変わります。
- AIX, Microsoft Windows, or Linux:
- Solarisシステム or HPシステムでは、以下のパラメータを Java仮想マシンページの"汎用JVM引数"に追加します。
- native_stderr.log
- native_stdout.log
注釈*1
(必ず1行で入力します。)
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintHeapAtGC
汎用JVM引数の設定は、InfoCenterJava 仮想マシン設定をご確認ください。
※InfoCenterリンクは、V8.5となっていますが、V8.0/V7.0/V6.1も同様の設定手順になります。
※ノード・エージェントの設定は、「システム管理」>「ノード・エージェント」>「node_agent_name」から行います。
■ ランタイム環境への変更
※Java仮想マシンまでのステップについては、上記該当項目をご参照ください。
- 追加プロパティーの下の「Java仮想マシン」をクリックします。
- ランタイムタブで、『冗長ガーベッジ・コレクション』 チェック・ボックスに選択します。
- OKボタン(もしくは、適用ボタン)をクリックします。
※OKボタン(もしくは、適用ボタン)をクリックした時点でログが出力されます。
- AIX, Microsoft Windows, or Linux:
native_stderr.log
Was this topic helpful?
Document Information
Modified date:
15 June 2018
UID
swg21621175