Cosminexus リファレンス 定義編

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

-XX:[+|-]HitachiThreadDump(拡張スレッドダンプ情報出力オプション)

形式

-XX:+HitachiThreadDump
-Xrsオプションが指定されていない場合,スレッドダンプ出力時に拡張スレッドダンプ情報を出力します。

-XX:-HitachiThreadDump
スレッドダンプ出力時に標準のスレッドダンプ情報を出力します。

説明

拡張スレッドダンプ情報を出力するかどうかを指定します。

スレッドダンプは,標準出力および,次に示すファイルに出力されます。

デフォルト値
  • -XX:+HitachiThreadDump

スレッドダンプ出力先
デフォルトでは,JavaVM実行時のカレントディレクトリです。環境変数JAVACOREDIRを指定することで,出力先を変更することができます。

スレッドダンプ出力ファイル名
javacore<プロセス番号>.<YYMMDDhhmmss>.txt
注※
YY:年(西暦で下2けた),MM:月(2けた),DD:日(2けた)
hh:時間(24時間表記),mm:分(2けた),ss:秒(2けた)

スレッドダンプ情報の構成を,次に示します。

表16-2 スレッドダンプ情報の構成

出力情報 内容
ヘッダ スレッドダンプを開始した日付および時刻,JavaVMバージョン情報,起動コマンドラインを出力します。
システム設定 次の情報を出力します。
  • JDKの実行環境のインストールディレクトリ
  • JDKを構成するライブラリのインストールディレクトリ
  • システムクラスパス
  • Javaコマンドオプション
動作環境 次の情報を出力します。
  • ホスト名
  • OSバージョン
  • CPU情報
  • リソース情報(UNIXの場合だけ)
メモリ情報 Windowsの場合,次の情報を出力します。
  • メモリ使用状況
  • 物理メモリ使用状況
  • 仮想メモリ使用状況
  • ページング使用量
Javaヒープ情報 Javaヒープの各世代のメモリ使用状況を出力します。
JavaVM内部メモリマップ情報 JavaVM自身の確保しているメモリの領域情報を出力します。
JavaVM内部メモリサイズ情報 JavaVM自身の確保しているメモリのサイズ情報を出力します。
アプリケーション情報 次の情報を出力します。
  • シグナルハンドラ
  • 環境変数
  • カレントディレクトリ情報
ライブラリ情報 ローディングされているライブラリの情報を出力します。
スレッド情報
<スレッド1>
:
<スレッドn>
スレッドごとにスレッド情報を出力します。現存する全スレッドのスタックトレースを出力します。
Javaモニタダンプ Javaモニタオブジェクトの一覧を表示します。スレッド間の排他待ちの状況を確認できます。
Rawモニタダンプ Java内部で使われるモニタ情報の一覧を出力します。
フッタ スレッドダンプを終了した日付および時刻を出力します。

出力形式

ヘッダ
EEE MMM dd hh:mm:ss yyyy
 
Full thread dump Java HotSpot(TM) Client VM (1.5.0_05-b05-CDK0700-<ビルド日> mixed mode)
<起動コマンドライン>
…

注※
EEEは曜日,MMMは月,ddは日を表します。また,hhは時間,mmは分,ssは秒,yyyyは年(西暦)を表します。

システム設定
System Properties
-----------------
Java Home Dir  : <JDK実行環境インストールディレクトリ>
Java DLL Dir   : <JDKを構成するライブラリのインストールディレクトリ>
Sys Classpath  : <システムクラスパス>
User Args      :
<Javaコマンドオプション1>
<Javaコマンドオプション2>
…

動作環境(Windowsの場合)
Operating Environment
---------------------
Host    : <ホスト名>:<IPアドレス>
OS      : <OSバージョン>
CPU     : <CPU種別>, <利用可能CPU数/システム全体のCPU数>
 

動作環境(UNIXの場合)
Operating Environment
---------------------
Host    : <ホスト名>:<IPアドレス>
OS      : <OSバージョン>
CPU     : <CPU種別>, <利用可能CPU数/システム全体のCPU数>
 
Resource Limits -
         RLIMIT_CPU     :<プロセスで使用可能な秒数>
         RLIMIT_FSIZE   :<最大ファイルサイズ(単位:バイト)>
         RLIMIT_DATA    :<malloc可能なサイズ(単位:バイト)>
         RLIMIT_STACK   :<スタックの最大サイズ(単位:バイト)>
         RLIMIT_CORE    :<coreの最大サイズ(単位:バイト)>
         RLIMIT_RSS     :<プロセスの常駐サイズ(単位:バイト)>
         RLIMIT_AS      :<プロセストータルの利用可能メモリ(単位:バイト)>
         RLIMIT_NOFILE  :<最大のファイルディスクリプタ値>

メモリ情報(Windowsの場合)
Memory Status
-------------
  Memory in use   : <メモリ使用状況(単位:パーセント)>
  Physical memory : <物理メモリ使用量> free
  Virtual memory  : <仮想メモリ使用量> free
  Paging file     : <ページング使用量> free

注※
<利用可能サイズ>/<総サイズ> の形式で表示されます(単位:バイト)。

Javaヒープ情報
Heap Status
-----------
def new generation   max <最大の容量>, total <現在の容量>, used <使用中メモリ> (<最大の容量に対する使用率>% used/max, <現在の容量に対する使用率>% used/total)
                     [<領域先頭アドレス>, <コミット済み領域の末尾アドレス>, <予約済み領域の末尾アドレス>)
  eden space <現在の容量>,  <使用率>% used [<領域先頭アドレス>, <使用中領域の先頭アドレス>, <予約済み領域の末尾アドレス>)
  from space <現在の容量>,   <使用率>% used [<領域先頭アドレス>, <使用中領域の先頭アドレス>, <予約済み領域の末尾アドレス>)
  to   space <現在の容量>,   <使用率>% used [<領域先頭アドレス>, <使用中領域の先頭アドレス>, <予約済み領域の末尾アドレス>)
tenured generation   max <最大の容量>, total <現在の容量>, used <使用中メモリ> (<最大の容量に対する使用率>% used/max, <現在の容量に対する使用率>% used/total) 
                      [<領域先頭アドレス>, <コミット済み領域の末尾アドレス>, <予約済み領域の末尾アドレス>)
   the space <現在の容量>,  <使用率>% used [<領域先頭アドレス>, <使用中領域の先頭アドレス>, <次の空きブロックの先頭アドレス>, <予約済み領域の末尾アドレス>)
compacting perm gen  max <最大の容量>, total <現在の容量>, used <使用中メモリ> (<最大の容量に対する使用率>% used/max, <現在の容量に対する使用率>% used/total)
                      [<領域先頭アドレス>, <コミット済み領域の末尾アドレス>, <予約済み領域の末尾アドレス>)
   the space <現在の容量>,  <使用率>% used [<領域先頭アドレス>, <使用中領域の先頭アドレス>, <次の空きブロックの先頭アドレス>, <予約済み領域の末尾アドレス>)

容量およびメモリサイズの単位はキロバイトです。

JavaVM内部メモリマップ情報
JVM Internal Memory Map
-----------------------
<メモリ確保関数>:address = <開始アドレス> - <終了アドレス> (size:<サイズ>)

<メモリ確保関数>:mmap()かmalloc()のどちらかが出力されます。
<開始アドレス>:メモリ領域の開始アドレスが16進で出力されます。
<終了アドレス>:メモリ領域の終了アドレスが16進で出力されます。
<サイズ>:確保しているメモリ領域のサイズが出力されます(単位:バイト)。

JavaVM内部メモリサイズ情報
JVM Internal Memory Status
--------------------------
  Heap Size      :<確保しているメモリサイズ>
  Alloc Size     :<使用中のメモリサイズ>
  Free Size      :<未使用のメモリサイズ>

注※
単位:バイト

アプリケーション情報(Windowsの場合)
Application Environment
-----------------------
Signal Handlers -
  SIGINT         :<シグナルハンドラ情報>
  SIGILL         :<シグナルハンドラ情報>
…
  SIGBREAK       :<シグナルハンドラ情報>
  SIGABRT        :<シグナルハンドラ情報>
 
Environment Variables -
<環境変数>=<値>
…
Cueeent Directory -
C:\Program Files\Hitachi\Cosminexus\CC\…

アプリケーション環境(UNIXの場合)
Application Environment
-----------------------
Signal Handlers -1
  SIGHUP         :<シグナルハンドラ情報>
  SIGINT         :<シグナルハンドラ情報>
…
  SIGSOUND       :<シグナルハンドラ情報>
  SIGSAK         :<シグナルハンドラ情報>
 
Signal Handlers -
シグナル種別: [シグナルハンドラアドレス], sa_mask[0]=シグナルマスク, sa_flags=特殊フラグ
…
 
Environment Variables -2
<環境変数>=<値>
…
Current Directory -
  /opt/Cosminexus/CC/server/…

注※1
次の情報が表示されます。
・シグナルハンドラがインストールされている場合は,そのアドレス。
・SIG_DFLである場合は,default。
・SIG_IGNである場合は,ignored。

注※2
次の情報が表示されます。
・シグナル種別には,/usr/include/sys/signal.hに定義されているシグナル名。
・シグナルハンドラアドレスには,シグナルハンドラのアドレスが16進数で出力されます。ライブラリ名+オフセットという形式で表示されることもあります。
・シグナルマスクには,sigaction()で取り出せる構造のsa_maskフィールド値が16進数で出力されます。
・特殊フラグには,sigaction()で取り出せる構造のsa_flagsフィールド値が16進数で出力されます。

ライブラリ情報(Windows,Linuxの場合)
Loaded Libraries
----------------
Dynamic libraries :
<開始アドレス>-<終了アドレス>   <コマンド>
<開始アドレス>-<終了アドレス>   <ライブラリ>
…

ライブラリ情報(AIX,HP-UX,Solarisの場合)
Loaded Libraries
----------------
<コマンド>
        text     :<開始アドレス>-<終了アドレス> (サイズ)
        data     :<開始アドレス>-<終了アドレス> (サイズ)
<ライブラリ>
        text     :<開始アドレス>-<終了アドレス> (サイズ)
        data     :<開始アドレス>-<終了アドレス> (サイズ)
…

スレッド情報
----------- 
"<スレッド名>" <daemon> prio=<優先度> jid=<ハッシュ値> tid=<スレッドID> nid=<nativeID> <status> [開始アドレス...終了アドレス]
    stack=[<スタック開始アドレス>..<YellowPageアドレス>..<RedPageアドレス>..<スタック終了アドレス>]
    [user cpu time=<ユーザー時間>ms, kernel cpu time=<カーネル時間>ms] [blocked count=<ブロック回数>, waited count=<待機回数>]
         at <クラス名>.<メソッド名>(<メソッド情報>)
…
出力内容を説明します。
<スレッド名>
Threadクラスのコンストラクタに指定されたスレッド名称が出力されます。
  • <daemon>:デーモンスレッドである場合に,”daemon”と出力されます。
  • <優先度>:Thread#setPriorityで設定された優先度が出力されます。
  • <ハッシュ値>:System.identityHashCode()を呼び出して得られる値と同一の値が8けたの16進数で出力されます。
  • <スレッドID>:スレッドオブジェクトのメモリ上のアドレス。
  • <nativeID>:OSレベルのスレッドID。
  • <status>:スレッドの状態。
    runnable:実行中または実行可能なスレッド
    in Object.wait(),waiting for monitor entryまたはwaiting on condition:モニタロック待ちのスレッド
    sleeping:中断状態のスレッド
  • <開始アドレス>:Javaフレームの最高位スタックアドレスが16進数で出力されます。
  • <終了アドレス>:JavaLockのある最高位スタックアドレスが16進数で出力されます。
  • <ユーザー時間>:スレッド開始からのユーザー時間がミリ秒単位で出力されます。
  • <カーネル時間>:スレッド開始からのカーネル時間がミリ秒単位で出力されます。
  • <ブロック回数>:スレッド開始から,処理がブロックされた回数が出力されます。
  • <待機回数>:スレッド開始から,処理が待ち状態になった回数が出力されます。
<スタック開始アドレス>
スタック開始アドレスが16進数で出力されます。
<YellowPageアドレス>
スタックYellowガードページ先頭アドレスが16進数で出力されます。
<RedPageアドレス>
スタックRedガードページ先頭アドレスが16進数で出力されます。
<スタック終了アドレス>
スタック終了アドレスが16進数で出力されます。
<クラス名>
クラス名が出力されます。
<メソッド名>
メソッド名が出力されます。
<メソッド情報>
次のメソッド情報が出力されます。
  • Native Method
    ネイティブメソッドの場合に出力されます。
  • ファイル名:行番号
    Javaメソッドで行番号付きでコンパイルされている場合に出力されます。
  • Unknown Source
    Javaメソッドで行番号なしでコンパイルされている場合に出力されます。

Javaモニタダンプ
Java monitor
------------
<ロックオブジェクト>@<ハッシュコード> <オーナー情報>
   <待機状態>:<待機スレッド数>
      <待機スレッド情報>
出力内容を説明します。
<ロックオブジェクト>
ロック対象オブジェクトのクラス名が出力されます。
<ハッシュコード>
Object.hashCodeで得られるハッシュコードが出力されます。
<オーナー情報>
  • owner "<スレッド名>"<スレッドID>
    オーナーがある場合に出力されます。
  • no owner
    オーナーがない場合に出力されます。
<待機状態>
  • ... waiting to enter
    メソッド実行待ちの場合に出力されます。
  • ... waiting to be notified
    通知待ちの場合に出力されます。
<待機スレッド数>
スレッド数が出力されます。
<待機スレッド情報>
「"<スレッド名>" <スレッドID>」の形式で出力されます。

Rawモニタダンプ
Raw monitor dump
----------------
<モニタ名称> <モニタアドレス> owner <オーナー情報>
   <待機状態>:<待機スレッド数>
      <待機スレッド情報>
出力内容を説明します。
<モニタ名称>
ロック対象モニタの名称が出力されます。
<モニタアドレス>
ロック対象モニタのアドレスが出力されます。
<オーナー情報>
  • owner "<スレッド名>"<スレッドID>
    オーナーがある場合に出力されます。
  • no owner
    オーナーがない場合に出力されます。
<待機状態>
  • ... waiting to enter
    synchronizedブロック/メソッド実行待ちの場合に出力されます。
  • ... waiting to be notified
    notify待ちの場合に出力されます。
<待機スレッド数>
スレッド数が出力されます。
<待機スレッド情報>
"<スレッド名>" <スレッドID>

フッタ
Full thread dump completed.   EEE MMM dd hh:mm:ss yyyy

注※
EEEは曜日,MMMは月,ddは日を表します。また,hhは時間,mmは分,ssは秒,yyyyは年(西暦)を表します。

拡張スレッドダンプ情報との比較を,次に示します。

表16-3 標準スレッドダンプと拡張スレッドダンプの出力情報の比較

出力情報 標準スレッドダンプ 拡張スレッドダンプ
ヘッダ ×
システム設定 ×
動作環境 ×
メモリ情報(Windowsの場合だけ) ×
Javaヒープ情報 ×
JavaVM内部メモリマップ情報 ×
JavaVM内部メモリサイズ情報 ×
アプリケーション環境 ×
ライブラリ情報 ×
スレッド情報 ※1
Javaモニタダンプ ×
Rawモニタダンプ × ※2
フッタ ×
スレッドダンプ出力先 標準出力 標準出力※3
日立JavaVMログファイル

(凡例)
○:出力されます。
×:出力されません。

注※1
スタックの開始および終了のアドレス情報などが出力されます。

注※2
Raw monitorが使用された場合に出力されます。

注※3
-XX:+HitachiThreadDumpToStdoutオプションが指定された場合に出力されます。

注意事項