sourCEntral - mobile manpages

pdf

jstat

名前

jstat − Java 仮想マシン統計監視ツール

形式

jstat [ generalOption | outputOptionsvmid [interval[s|ms] [count]] ]

パラメータ

generalOption

単一の汎用コマンド行オプション ( −help−options 、または −version )

outputOptions

1 つ以上の出力オプション。1 つの statOption と −t−h 、および −J オプションのいずれかで構成されます。

vmid

仮想マシン識別子。ターゲットの Java 仮想マシン (JVM) を示す文字列。一般的な構文は、次のとおりです。

[protocol:][//]lvmid[@hostname[:port]/servername]

vmid 文字列の構文は、URI の構文とほぼ同じです。vmid は、ローカル JVM を表す単純な整数から、通信プロトコル、ポート番号、およびその他の実装固有の値を指定する複雑な構造までさまざまです。詳しくは、以下の「仮想マシン識別子」を参照してください。

interval[s|ms]

指定された単位 (秒 (s) またはミリ秒 (ms) ) でのサンプリング間隔。デフォルトの単位はミリ秒です。正の整数でなければなりません。これが指定された場合、 jstatinterval ごとに出力を生成します。

count

表示するサンプル数。デフォルトの値は infinity です。つまり、 jstat はターゲット JVM が終了するか jstat コマンドが終了されるまで統計を表示します。正の整数でなければなりません。

機能説明

jstat ツールは、計測機構付き HotSpot Java 仮想マシン (JVM) のパフォーマンス統計を表示します。ターゲット JVM は、仮想マシン識別子、すなわち、以下の vmid オプションによって識別されます。

注 - このユーティリティはサポートされていないため、JDK の将来のバージョンでは使用できない可能性があります。現時点では、Windows 98 および Windows ME プラットフォームでは使用できません。

仮想マシン識別子
vmid 文字列の構文は、URI の構文とほぼ同じです。

[protocol:][//]lvmid[@hostname][:port][/servername]

protocol

通信プロトコル。 protocol が省かれ、 hostname が指定されなかった場合、デフォルトのプロトコルは、プラットフォームに固有の最適化されたローカルプロトコルです。 protocol が省かれ、 hostname が指定された場合、デフォルトのプロトコルは rmi です。

lvmid

ターゲット JVM のローカル仮想マシン識別子。 lvmid は、プラットフォーム固有の値であり、システム上の JVM を一意に識別します。 lvmid は、仮想マシン識別子の唯一の必須コンポーネントです。 lvmid は、一般に、ターゲット JVM プロセスのオペレーティングシステムのプロセス識別子ですが、必ずしもそうとは限りません。 jps コマンドを使用して、 lvmid を調べることができます。また、UNIX プラットフォームでは ps コマンドで、Windows ではタスクマネージャで lvmid を調べることができます。

hostname

ターゲットホストを示すホスト名または IP アドレス。 hostname が省かれた場合、ターゲットホストはローカルホストです。

port

リモートサーバと通信するためのデフォルトポート。 hostname が省かれるか、 protocol が最適化されたローカルプロトコルを指定している場合、 port は無視されます。そうでない場合、 port パラメータの扱いは、実装に固有です。デフォルトの rmi プロトコルの場合、 port はリモートホスト上の rmiregistry のポート番号を示します。 port が省かれ、 protocol が rmi を示す場合は、デフォルトの rmiregistry ポート (1099) が使用されます。

servername

このパラメータの取り扱いは、実装によって異なります。最適化されたローカルプロトコルの場合、このフィールドは無視されます。rmi プロトコルの場合、このパラメータは、リモートホスト上の RMI リモートオブジェクトの名前を表します。

オプション

jstat コマンドは、汎用オプションと出力オプションの 2 種類のオプションをサポートしています。汎用オプションを指定すると、 jstat は簡単な使用法とバージョン情報を表示します。出力オプションによって、統計出力の内容と形式が決まります。

注 - すべてのオプションとそれらの機能は、将来のリリースで変更または削除されることがあります。

汎用オプション
汎用オプションの 1 つを指定した場合、他のオプションやパラメータを指定することはできません。

−help

ヘルプメッセージを表示します。

−version

バージョン情報を表示します。

−options

統計オプションのリストを表示します。次の「出力オプション」を参照してください。

出力オプション
汎用オプションを指定しなかった場合は、出力オプションを指定することができます。出力オプションは、 jstat の出力の内容と形式を決め、1 つの statOption と他のオプション ( −h−t 、および −J ) のいずれかで構成されます。statOption は最初に指定する必要があります。

出力は、列が空白文字で区切られた表として書式化されます。タイトルの付いた見出し行が列の内容を表します。 −h オプションを使用すると、見出しを表示する頻度を設定できます。列見出しの名前は、一般にオプション間で整合性が取れています。一般に、2 つのオプションで列の名前が同じになる場合、2 つの列のデータソースは同じです。

−t オプションを使用すると、出力の最初の列に Timestamp というラベルの付いたタイムスタンプ列が表示されます。Timestamp 列には、ターゲット JVM の起動からの経過時間が秒単位で表示されます。タイムスタンプの分解能は、さまざまな要因によって異なり、高負荷システムでは、遅延スレッドスケジューリングによって変動が生じることがあります。

interval および count パラメータは、それぞれ jstat が出力を表示する頻度と回数を決めます。

注 - 将来のリリースで形式が変更される可能性があるので、 jstat の出力を解析するスクリプトは書かない方がよいでしょう。 jstat 出力を解析するスクリプトを書く場合は、このツールの将来のリリースでは修正が必要になることを想定しておいてください。

−statOption

jstat が表示する統計情報を決めます。次の表に、使用可能なオプションを示します。−options 汎用オプションを使用すると、特定のプラットフォームインストールでのオプションのリストが表示されます。

img

−h n

n 個のサンプル (出力行 n 行) ごとに列見出しを表示します。 n は正の整数です。デフォルト値は 0 であり、データの最初の行の上に列見出しを表示します。

−t n

出力の最初の列としてタイムスタンプ列を表示します。タイムスタンプは、ターゲット JVM が起動してからの時間です。

−JjavaOption

javaOption を Java アプリケーション起動ツールに渡します。たとえば、 −J−Xms48m は、起動メモリを 48M バイトに設定します。オプションの完全なリストについては、以下のドキュメントを参照してください。

*

java − Java アプリケーション起動ツール (Solaris) @
http://java.sun.com/javase/6/docs/technotes/tools/solaris/java.html

*

java − Java アプリケーション起動ツール(Linux) @

http://java.sun.com/javase/6/docs/technotes/tools/linux/java.html

*

java − Java アプリケーション起動ツール (Windows) @

http://java.sun.com/javase/6/docs/technotes/tools/windows/java.html

statOption と出力
次の表に、各 statOption に対して jstat が出力する列の要約を示します。

−class オプション
クラスローダ統計

img

−compiler
オプション
HotSpot Just-In-Time コンパイラ統計

img

−gc オプション
ガベージコレクトされたヒープの統計

img

−gccapacity オプション
メモリプール世代とスペース容量

img

−gccause
オプション

このオプションは、−gcutil オプションと同じガベージコレクション統計データの概要を表示しますが、最後のガベージコレクションイベントと (適用可能な場合は) 現在のガベージコレクションイベントの原因が含まれます。−gcutil で一覧表示される列の他に、このオプションでは次の列が追加されます。

img

−gcnew オプション
新世代統計

img

−gcnewcapacity オプション
新世代のスペースサイズ統計

img

−gcold オプション
旧および永続世代統計

img

−gcoldcapacity オプション
旧世代統計

img

−gcpermcapacity オプション
永続世代統計

img

−gcutil
オプション
ガベージコレクション統計の要約

img

−printcompilation オプション
HotSpot コンパイラメソッド統計

img

このセクションでは、lvmidが 21891 であるローカルJVMの監視例をいくつか示します。

gcutil オプションの使用
この例では、lvmid 21891 にアタッチして、250 ミリ秒間隔で 7 つのサンプルを採取し、 −gcutil オプションでの指定に従って出力を表示します。

jstat -gcutil 21891 250 7
S0 S1 E O P YGC YGCT FGC FGCT GCT
12.44 0.00 27.20 9.49 96.70 78 0.176 5 0.495 0.672
12.44 0.00 62.16 9.49 96.70 78 0.176 5 0.495 0.672
12.44 0.00 83.97 9.49 96.70 78 0.176 5 0.495 0.672
0.00 7.74 0.00 9.51 96.70 79 0.177 5 0.495 0.673
0.00 7.74 23.37 9.51 96.70 79 0.177 5 0.495 0.673
0.00 7.74 43.82 9.51 96.70 79 0.177 5 0.495 0.673
0.00 7.74 58.11 9.51 96.71 79 0.177 5 0.495 0.673

この例の出力は、3 番目と 4 番目のサンプルの間に若い世代のコレクションが発生したことを示しています。コレクションの所要時間は 0.001 秒であり、オブジェクトがエデンスペース (E) からオールドスペース (O) に昇格されたため、オールドスペースの使用率が 9.49% から 9.51% に増加しています。コレクションの前のサバイバースペースの使用率は 12.44% でしたが、このコレクションの後の使用率は、わずか 7.74% です。

列見出し文字列の繰り返し
この例では、lvmid 21891 にアタッチして、250 ミリ秒間隔でサンプルを採取し、 −gcutil オプションでの指定に従って出力を表示します。また、 −h3 オプションを使用して、3 行のデータごとに列見出しを出力します。

jstat -gcnew -h3 21891 250
S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT
64.0 64.0 0.0 31.7 31 31 32.0 512.0 178.6 249 0.203
64.0 64.0 0.0 31.7 31 31 32.0 512.0 355.5 249 0.203
64.0 64.0 35.4 0.0 2 31 32.0 512.0 21.9 250 0.204
S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT
64.0 64.0 35.4 0.0 2 31 32.0 512.0 245.9 250 0.204
64.0 64.0 35.4 0.0 2 31 32.0 512.0 421.1 250 0.204
64.0 64.0 0.0 19.0 31 31 32.0 512.0 84.4 251 0.204
S0C S1C S0U S1U TT MTT DSS EC EU YGC YGCT
64.0 64.0 0.0 19.0 31 31 32.0 512.0 306.7 251 0.204

見出し文字列の繰り返しを示しているほかに、この例は、2 番目と 3 番目のサンプルの間に若い世代の GC が発生したことを示しています。その所要時間は 0.001 秒でした。コレクションによって、サバイバースペース 0 の使用量 (S0U) が目標サバイバーサイズ (DSS) を超える十分なライブデータが見つかりました。結果として、オブジェクトは旧世代に昇格され (この出力には示されていない)、保有しきい値 (TT) が 31 から 2 に下がっています。

5 番目と 6 番目のサンプルの間にもう 1 つのコレクションが発生しています。このコレクションでは、ごくわずかのサバイバーが見つかり、保有しきい値が 31 に戻っています。

各サンプルのタイムスタンプの表示
この例では、lvmid 21891 にアタッチして、250 ミリ秒間隔で 3 つのサンプルを採取します。 −t オプションを使用して、最初の列に各サンプルのタイムスタンプを生成します。

jstat −gcoldcapacity −t 21891 250 3
Timestamp OGCMN OGCMX OGC OC YGC FGC FGCT GCT
150.1 1408.0 60544.0 11696.0 11696.0 194 80 2.874 3.799
150.4 1408.0 60544.0 13820.0 13820.0 194 81 2.938 3.863
150.7 1408.0 60544.0 13820.0 13820.0 194 81 2.938 3.863

Timestamp 列には、ターゲット JVM の起動時からの経過時間が、秒単位でレポートされています。さらに、−gcoldcapacity 出力では、割り当て要求または昇格要求あるいはその両方を満たすためにヒープが拡張するごとに、Old 世代の容量 (OGC) と Old 領域の容量 (OC) とが増加していることがわかります。Old 世代の容量 (OGC) は、81 番目のフル GC (FGC) 後に、11696 KB から 13820 KB へ増加しています。Old 世代 (および領域) の最大容量は、60544 KB (OGCMX) なので、まだ拡張できる余裕が残されています。

リモート JVM のインストゥルメンテーションの監視
この例は、−gcutil オプションを使用して、remote.domain というシステム上の lvmid 40496 に接続し、サンプルを秒単位で無期限に取得しています。
jstat −gcutil 40496 AT remote DOT domain 1000

lvmid は、リモートホストの名前と結合されて、40496 AT remote DOT domainvmid を構成しています。結果として、この vmid は、rmi プロトコルを使用して、リモートホスト上のデフォルトの jstatd サーバと通信します。jstatd サーバは、rmiregistry を使用して、デフォルトの rmiregistry ポート (ポート 1099) にバインドされた remote.domain に配置されれます。

関連項目

*

java − Java アプリケーション起動ツール

*

jps − Java プロセスステータスツール

*

jstatd − jvmstat デーモン

*

rmiregistry − Java リモートオブジェクトレジストリ

pdf