ストリームデータ処理基盤 uCosminexus Stream Data Platform - Application Framework システム構築・運用ガイド
スレッドダンプとは,Javaのプロセス内で動作しているスレッドの情報が出力されるファイルです。
ここでは,スレッドダンプの採取手順およびjheapprofコマンドについて説明します。
次に示す手順に従って採取してください。
<インストールディレクトリ>\psb\jdk\bin\jps -v
3980 Program -Xms40m -Xmx256m 5216 Jps -Dapplication.home=<インストールディレクトリ>\psb\jdk -Xms8m 4616 SDPManager -Dsdp.home=<運用ディレクトリ> -Dsdp.serverLogging
<インストールディレクトリ>\psb\jdk\jre\bin\jheapprof -f -p 4616
スレッドダンプは,3秒おきに10回程度取得することを推奨しています。複数回スレッドダンプを取得することによって,スローダウンや無応答がどのメソッドの処理で起こっているかを,時系列順に調査できます。
スレッドダンプを取得する際は,前回のスレッドダンプの出力が終了してから取得してください。
jheapprofコマンドの形式や機能,使用例などについて説明します。
jheapprof [-i|-f] [-class <クラス名>] [-explicit|-noexplicit] [-fullgc|-copygc|-nogc] -p <プロセスID>
<インストールディレクトリ>\psb\jdk\jre\bin\
値 | 意味 |
---|---|
0 | コマンドが正常に終了しました。 |
1 | コマンドでエラーが発生しました。 |
2 | 一定時間内に日立クラス別統計情報出力処理終了の応答がありませんでした。 |
エラーメッセージ | 説明 |
---|---|
usage: jheapprof [-f|-i] [-class classname] [-explicit|-noexplicit] [-fullgc|-copygc|-nogc] [-garbage|-nogarbage] [-rootobjectinfo|-norootobjectinfo] [-rootobjectinfost size] -p process-id jheapprof | コマンドへの引数の指定が間違っています。 |
jheapprof: illegal option -- <オプション> | jheapprofコマンドに指定した<オプション>が不正です。 |
<プロセスID>: Now processing previous request, this request canceled | jheapprofコマンドの引数に指定した<プロセスID>に該当するプロセスが,クラス別統計情報の出力中です。 |
0: Not owner | jheapprofコマンドの引数に指定した<プロセスID>に0が指定されています。 |
jheapprof: can't create work file at temporary directory , this request canceled | 一時ファイル用ディレクトリに参照・書き込み権限がない場合,日立クラス別統計情報付き拡張スレッドダンプを出力できません。日立クラス別統計情報付き拡張スレッドダンプの出力要求はキャンセルされます。 |
jheapprof: can't get temporary directory, this request canceled | 一時ファイル用ディレクトリが取り出せない場合,日立クラス別統計情報付き拡張スレッドダンプを出力できません。日立クラス別統計情報付き拡張スレッドダンプの出力要求はキャンセルされます。 |
jheapprof: please delete <削除できなかったファイル名> in <削除できなかったファイルのフルパス> | jheapprofコマンドを終了したときに,内部ファイルを削除できませんでした。削除できなかったファイルのフルパスにある,削除できなかったファイルを削除してください。 |
jheapprof: unexpected error occurred: <エラー原因> | jheapprofコマンド実行中に予期しないエラーが発生しました。 <エラー原因>には,例えば次のような表示がされます。
|
jheapprof: can't communicate with process <プロセスID> | jheapprofコマンドの引数に指定した<プロセスID>に該当するプロセスに問題があり,通信処理でエラーが発生しているため通信できません。または,jheapprofコマンドの引数に指定した<プロセスID>に該当するプロセスがありません。 |
<プロセスID>: Timeout occurred. Java process not responding | jheapprofコマンドの引数に指定した<プロセスID>に該当するプロセスから,一定時間内に日立クラス別統計出力処理終了の応答がありませんでした。 |
jheapprof -p 8662
Force VM to output HitachiJavaHeapProfile: ? (y/n)
Force VM to output HitachiJavaHeapProfile: ? (y/n)y
Writing Java core to javacore8662.030806215140.txt... OK
javacore<プロセスID>.<日時>.txt
All Rights Reserved. Copyright (C) 2010, 2014, Hitachi, Ltd.