Cosminexus システム運用ガイド

[目次][用語][索引][前へ][次へ]

3.3.8 性能解析トレースファイルとスレッドダンプを対応づけた問題個所の調査

J2EEアプリケーションまたはバッチアプリケーションでスローダウンやハングアップが発生したときに,性能解析トレースファイルとスレッドダンプを対応づけることで,問題が発生した個所を調査できます。

性能解析トレースファイルとスレッドダンプの対応づけには,性能解析トレースファイルに出力されたスレッドIDと,スレッドダンプに出力されたスレッド情報のnativeID(OSレベルのスレッドID)を使用します。ここでは,性能解析トレースファイルから対応するスレッドダンプを特定する方法について説明します。

性能解析トレースファイルから対応するスレッドダンプを特定する手順を次に示します。

  1. 性能解析トレースファイル,およびスレッドダンプを収集します。
    性能解析トレースファイルの収集方法については,「3.2.1 性能解析トレースファイルの収集方法」を参照してください。スレッドダンプの収集方法については,「5.4.5 JavaVMのスレッドダンプの取得」を参照してください。
  2. 使用する性能解析トレースファイル,およびスレッドダンプを選びます。
    性能解析トレースファイルとスレッドダンプが出力された時刻を基に,調査に使用する性能解析トレースファイル,およびスレッドダンプを選びます。出力された時刻は,次の情報を参考にしてください。
    性能解析トレースファイル
    「Time」および「Time(msec/usec/nsec)」
    性能解析トレースファイルの「Time」および「Time(msec/usec/nsec)」を次の図に示します。
    [図データ]
    スレッドダンプ
    ファイル名,およびファイルの末尾に出力される時刻
    ファイルの末尾に出力される時刻の例を次に示します。
     :
     :
    Full thread dump completed.   Fri Jul 21 19:22:47 2006
     
  3. 性能解析トレースファイルの調査したいイベントIDに対応する「Thread(hashcode)」のスレッドID(10進数)を16進数に変換します。

    [図データ]

  4. スレッドダンプの「nid」が手順.3で16進数に変換したスレッドIDと一致するスレッド情報を探して,対応するスレッド情報を特定します。
     :
     :
    "VBJ ThreadPool Worker" daemon prio=5 jid=0x00054f93 tid=0x04cef380 nid=0x1124 in Object.wait() [0x0632f000..0x0632fd18]
      stack=[0x06330000..0x062f5000..0x062f1000..0x062f0000] 
      [user cpu time=0ms, kernel cpu time=15ms] [blocked count=1, waited count=29]
    at java.lang.Object.wait(Native Method)
     :
     :