Comments
Transcript
目標 ISAを用いて問題分析のハンズオンを実施します。ここでは、そのための準備を実施します。 ここから
System Technical Service Center | ISA-4 ISA PDハンズオンの準備 1/8 Update on 2009-10-28 目標 ここからISAを用いて問題分析のハンズオンを実施します。ここでは、そのための準備を実施します。 目次 1. はじめに 2. WASに対する事前準備 3. サンプルアプリケーションの準備 4. サンプルアプリケーションの実行 5. 解析用資料の収集 6. ISAアドオンの導入 1. はじめに このハンズオンはIBMが研修として提供しているものではなく、自己学習用のものです。 この章では WebSphere Application Server V7.0上でサンプルアプリケーションを用いて OutOfMemoryErrorを発生させて障害時の資料を取得します。 OutOfMemoryErrorはJVMが使用 するメモリーが消費され尽くした時に発生する例外で、JVMが不安定な状況に陥っていることを示してい ま す。以降の章でISA V4.1でOutOfMemoryError発生時の問題分析のハンズオンを実施しますの で、そのための事前準備となります。 WebSphere Application Server環境はご自身でご用意いただ く必要があります。 環境が用意できない場合は、取得済みの解析用データが「ISATest.zip」として別添 されているので、それを利用してISAのハンズオンを進めることも可能です。その場合は、当資料の 「ISAアドオンの導入」から行ってください。 2. WASに対する事前準備 2-1. 最新FixPackの適用 下記から最新のFixPackをダウンロードして適用します。 "Recommended fixes for WebSphere Application Server" >http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980 System Technical Service Center | ISA-4 ISA PDハンズオンの準備 2/8 2-2. 冗長ガーベッジ・コレクション (verbosegc) の設定 これはOutOfMemoryErrorの問題分析に必要なverbosegcログを取得するための設定です。 WAS V7.0の管理コンソールにログインします。 「サーバー」 > 「サーバー・タイプ」 > 「Websphere アプリケーション・サーバー (WebSphere application servers)」>「server_name」をクリックします。 次に「サーバー・インフラストラクチャー」セクションで、「Java およびプロセス管理」>「プロセス定義」> 「Java 仮想マシン」とクリックします。 「冗長ガーベッジ・コレクション」のチェックボックスにチェックをします。 マスター構成に変更を保管して同期を行い、対象のサーバーを再起動します。 参考: "WAS V7.0 InfoCenter - Java 仮想マシンの設定" >http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.nd.doc/info/ae/ae/urun_rconfproc_jvm.html 3. サンプルアプリケーションの準備 別添のサンプルアプリケーション"Mem04.ear"をインストールします。 WAS V7.0の管理コンソールにログインします。 System Technical Service Center | ISA-4 ISA PDハンズオンの準備 3/8 「アプリケーション」 > 「新規アプリケーション」 > 「新規エンタープライズ・アプリケーション」 とクリックし ます。 コンソールの指示に従ってアプリケーションを導入します。通常はデフォルト値で結構です。 マスター構成に変更を保管して同期を行います。 「アプリケーション」 > 「アプリケーション・タイプ」 > 「WebSphere エンタープライズ・アプリケーション (WebSphere enterprise applications)」とクリックします。 アプリケーション「Mem04」の開始します。 参考: "WAS 7.0 InfoCenter - コンソールを使用したエンタープライズ・アプリケーション・ファイルのイ ンストール" >http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.nd.doc/info/ae/ae/trun_app_instwiz.html 4. サンプルアプリケーションの実行 次にサンプルアプリケーションを利用してOutOfMemoryErrorを発生させます。 1) サンプルアプリケーションにブラウザからアクセスします。 リクエストURL: http://<hostname>:<port>/outofmemoryerror/index.html リクエストURLの例: http://localhost:9080/outofmemoryerror/index.html 2) 「サーブレットを呼び出し」ボタンをクリックします。通常はデフォルト値で構いません。 ここでは1000000Byte(1MB)のオブジェクトを1000回割り当てさせるため、合計1000MBのJava ヒープ・メモリー領域を要求します。 System Technical Service Center | ISA-4 ISA PDハンズオンの準備 4/8 3) 呼び出し後、ブラウザに「OutOfMemoryError!」と表示が返ればOutOfMemoryErrorのテストは 成功です。 もし「Nomal End」表示の場合は、「割り当てるサイズ」や「ループ回数」を増やして再試行してください。 4) WASのログにOutOfMemoryErrorが記録されたことを確認します。 native_stderr.logをエディターで開きます。 ファイルパスの例: E:\IBM\WAS70\profiles\default\logs\server1\native_stderr.log OutOfMemoryErrorのメッセージの後で、Snap、heapdump、javacoreの各種ダンプファイルが出 力されたことを確認します。 JVMDUMP006I ダンプ・イベント "systhrow"、詳細 "java/lang/OutOfMemoryError" を処理 しています - お待ちください。 JVMDUMP032I JVMDUMP010I Snap ダンプは E:\IBM\WAS70\profiles\default \Snap.20090930.114627.13704.0001.trc に書き込まれました System Technical Service Center | ISA-4 ISA PDハンズオンの準備 5/8 JVMDUMP032I JVMDUMP010I Heap ダンプは E:\IBM\WAS70\profiles \defaultheapdump.20090930.114627.13704.0002.phd に書き込まれました JVMDUMP032I JVMDUMP010I Java ダンプは E:\IBM\WAS70\profiles\default \javacore.20090930.114627.13704.0003.txt に書き込まれました JVMDUMP013I ダンプ・イベント "systhrow"、詳細 "java/lang/OutOfMemoryError" を処理 しました。 5. 解析用資料の収集 手動と自動の2つのパターンをご紹介します。 5-A. 手動で解析用資料を収集する場合 次の資料を保管してください。 1) <profile_root>/logs/<server_name>以下の全てのファイル 2) 全てのjavacore*.txt 3) 全てのheapdump*.phd 4) <profile_root>/config/cells/<cell_name>/nodes/<node_name>/servers /<server_name>/server.xmlファイル 5-B. 自動で解析用資料を収集する場合 ISAにはデータ収集機能を提供しています。概要について詳しくは「8.ISA データ収集」をご参照くださ い。 当ハンズオンでは「Out of Memory Problem」用のデータ収集を実施してください。 これは ISA Workbench もしくは ISA Lite のデータ収集メニューで実行可能です。 ISA Lite はISAの簡易版でデータ収集機能のみを提供する軽量ツールです。 参考: "MustGather: Out of Memory errors on AIX, Linux, or Windows" >http://www.ibm.com/support/docview.wss?rs=180&uid=swg21138587 実施項目: WebSphere Application Server > JDK > Out of Memory Problem System Technical Service Center | ISA-4 ISA PDハンズオンの準備 6/8 ※ 補足 ※ 検証した際の資料を「ISATest.zip」として別に添付しています。環境が無い場合は実行結果のサンプル として次章以降のハンズオンで使用して下さい。 6. ISAアドオンの導入 IBM Support Assistant (ISA)は、基本インストールで一部の一般的な機能を提供します。ただし、多 くの製品で追加の機能が提供されています。 ISAのインストール後、追加のツール・アドオンおよび製品アドオンをインストールできます。これにより目 的に応じて ISA ワークベンチをカスタマイズできます。 IBM Support Assistant には、次の 2 つのタイプのアドオンがあります。 1) 製品アドオン - IBM 製品に固有の情報を提供します。 2) ツール・アドオン - 1 つ以上の IBM 製品に関連する問題のデバッグに使用できるツールを提供しま す。 詳しくは「2.ISA 構成と管理」を参照してください。 ここではISAハンズオンで必要となる製品アドオンとツール・アドオンを導入する手順を簡単に紹介しま す。 6-1. ISA製品アドオンの導入 当ISAハンズオンでは次の2つの製品アドオンが必要です。 * 「WebSphere Application Server V7.0」製品アドオン * 「IBM Developer Kit for Java v6.0」製品アドオン もし未導入の場合は次の手順で導入してください。 System Technical Service Center | ISA-4 ISA PDハンズオンの準備 7/8 1) ISAのメニューから「新規作成」 > 「新規検索」 > 「製品アドオン」を選択 2) 「WebSpehre」カテゴリから「WebSphere Application Server V7.0」と「IBM Developer Kit for Java v6.0」を選択 3) プロンプトに従って導入し、ISAを再起動 6-2. ISAツール・アドオンの導入 当ISAハンズオンでは次の2つのツール・アドオンが最低限必要です。 * 「IBM Monitoring and Diagnostic Tools for Java - Garbage Collection and Memory Visualizer (GCMV)」 ツール・アドオン * 「Memory Dump Diagnostic for Java (MDD4J) version 3.0」 ツール・アドオン もし未導入の場合は次の手順で導入してください。 1) ISAのメニューから「更新」 > 「新規作成」 > 「新規検索」 > 「ツール・アドオン」を選択 2) GCMV と MDD4J v3.0 を含む関連するツール・アドオンを選択 (※1, ※2) 3) プロンプトに従って導入し、ISAを再起動 ※1 リストされない場合は前のステップの製品アドオンが導入済みかどうかを確認してください。 ※2 GCMVやMDD4J以外のツール・アドオンも有用です。各ツールの概要は「3.ISA 問題分析の概要」 の「主なツールの用途の紹介」をご参照ください。別段不要でない限り、選択可能なツールは全て導入す ることをお勧めします。 6-3. 導入したISA製品アドオンとツール・アドオンの確認 「更新」 > 「新規作成」 > 「インストール済みアドオンの管理」で確認します。 次のものが含まれていることを確認してください。 1) 製品アドオン: 「WebSphere Application Server V7.0」 2) 製品アドオン: 「IBM Developer Kit for Java v6.0」 3) ツール・アドオン: 「IBM Monitoring and Diagnostic Tools for Java - Garbage Collection and Memory Visualizer」 4) ツール・アドオン: 「Memory Dump Diagnostic for Java (MDD4J) version 3.0」 System Technical Service Center | ISA-4 ISA PDハンズオンの準備 8/8 以上でOutOfMemoryError解析用資料の収集を完了し、ISAを用いたハンズオンの準備が整いまし た。 次節以降でここで収集した資料を用いてISA問題分析ハンズオンを実施します。 まとめ この節では、ISAハンズオンの準備として、サンプルアプリケーションで障害(OutOfMemoryError)を再現さ せて資料を収集しました。次はISAによる問題分析をご紹介します。