出典:周志明前方の「Java仮想マシン、の深い理解」
表1
名前 | 主な役割 |
---|---|
JPS | JVMプロセスステータスツールは、指定されたシステム内のすべてのホットスポットの仮想マシンのプロセスを表示します |
JSTAT | JVMの統計は、HotSpot仮想マシンのすべての側面を収集するためのツールの運転データを監視します |
Jinfoの | Java仮想マシンの構成情報表示のための設定情報 |
jmapの | Java仮想マシンを生成するためのメモリマップ |
JHT | 分析heapdumpファイルのJVMヒープダンプブラウザは、ユーザーがブラウザで結果を見ることができるように、HTTP / HTMLサーバーを作成します。 |
jstack | Javaのスレッドのスタックトレースは、仮想マシンのスナップショットを表示します |
表1は、メインの監視ツールのコマンドラインを説明しています。
ここでは11件の詳細を開始しました:
JPS:VMプロセス・ステータス・ツール
機能:
仮想マシンがメインクラス(実行プロセスやディスプレイを実行している仮想マシンの一覧を表示するにはMain Class
、main
クラスの関数が存在する)名、およびローカルの仮想マシン固有のIDでこれらのプロセスを。そして、ローカル仮想マシンのために、LVMID
オペレーティング・システムのプロセスIDは同じです。
jps
フォーマット:
jps [options] [hostid]
例を適用する:
jps
あなたは、RMIプロトコル経由でリモート仮想マシンプロセスのオープン状態RMIサービスを照会することができるhostid
のRMIレジストリのホスト名で登録され
jps
たオプションの主なツール
表2
オプション(オプション) | 効果 |
---|---|
-q | 出力はlvmidは、朱レイの名が省略されています |
-m | 仮想マシンプロセスに渡された出力パラメータは、マスタークラスメインを開始()関数 |
-l | プロセスは、JARパッケージのjarパッケージパスの出力を行っている場合、マスタークラスの出力のフルネーム、 |
-v | 仮想マシンプロセスのJVMパラメータは、出力を開始します |
jstat
:監視ツールの仮想マシンの統計情報
機能:
コマンドは、クラスのロード、メモリ、ガベージコレクション、JITコンパイラおよびその他の動作データの過程でローカルまたはリモートのVMを表示するために、各種ステータス情報ラインツールを実行している仮想マシンを監視するために使用されます。
jstat
フォーマット:
jstat [option vmid [interval[slms][count]]
ローカルの仮想マシンの場合- > VMID
とLVMID
同じ
他VMID
フォーマット:[protocol:][//]lvmid[@hostname[:port]/servername]
パラメータ間隔とクエリー間隔を表し、あなたは両方のパラメータを省略した場合、回数をカウントし、その一つだけのクエリを示します
仮定すると250ミリ秒ごとのクエリガベージコレクションプロセス2764の場合、クエリ20回に一度:
jstat -gc 2764 250 20
jstat
オプションの主なツール:
オプション | 効果 |
---|---|
-クラス | 監視クラスのロード、総容量の荷降ろし量、およびそれがクラスをロードするのにかかる時間 |
-gc | Javaは、このような永久発電容量、使用領域、GC総時間情報としてエデンエリア、2つのsuvivor地区、古い時代を含め、状況を監視し、ヒープ |
-gccapacity | コンテンツを監視し、基本的に同じ-GCが、出力は、主に最大、最小のスペースを使用して、各領域にJavaヒープ懸念されています |
-gcutil | コンテンツを監視し、基本的には同じことを-GCが、出力は合計領域の割合の利用が注目されています |
-gcnew | GCは、新世代の状態を監視します |
-gcnewcapacity | コンテンツを監視し、基本的には同じことを-gcnew、最大限に大きな懸念の出力を使用して、最小スペース |
-gccause | 関数-gcutilと一致しますが、最後のGCによって生成された追加の出力を発生します |
-gcold | GC古いの状態監視 |
-gcoldcapacity | コンテンツを監視し、基本的には同じことを-gcold、最大限に大きな懸念の出力を使用して、最小スペース |
-gcpermcapacity | 最大と最小の出力空間永久使用を置換 |
-コンパイラ | JITコンパイラの出力コンパイル方法、時間がかかり、他の情報 |
-printcompilation | 出力は、JITコンパイルされたメソッドとなっています |
jinfo
:Java構成ツール
機能:
リアルタイムビューとは、仮想マシンのパラメータを調整します
jinfo
フォーマット:
jinfo [option] pid
jmap
:Javaのメモリイメージツール
機能:
スナップショット・ヒープ・ダンプ(ダンプ・ファイルまたは一般呼ぶheapdump)を生成するため、このような現在コレクタ使用されるスペースの利用、としてクエリ実行キュー、Javaスタックと永久世代の詳細を、確定。
(暴力は取得:-XX:HeapDumpOnOutOfMemoryError
仮想マシンは、異常表示されOOMことができます自動的に生成されたダンプファイル-XX:+HeapDumpOnCtrlBreak
使用して[ctrl]+[break]
生成されたダンプファイルキー)
jmapのコマンド形式:
jmap [option] vmid
jmap
ツールの主なオプション
オプション | 効果 |
---|---|
-投げ捨てる | Javaのヒープダンプのスナップショットを生成します。形式は次のとおりです。-dump:[live,]fomat=b,file=<filename> ライブのみダンプサブパラメータがライブオブジェクトかどうかを示しています |
-finalizerinfo | 。F-キューにファイナライズ方法ファイナライザスレッドを実行するための表示オブジェクトを待ってのLinux、Solarisプラットフォームの下でのみ有効でダウンロード |
-ヒープ | などの使用パラメータ設定、世代状況の回復などのJavaスタックの表示内容は、Linuxの/ Solarisの中にのみ有効です |
-histo | クラス、インスタンス数、総容量を含むヒープ表示統計、 |
-permstat | クラスローダは、国家を代表して統計的な永久メモリを示すことです。Linux / Solarisプラットフォームでのみ有効 |
-F | 応答しないの場合は、仮想マシンのプロセス-dumpオプションは、あなただけのLinux / Solarisでのダンプのスナップショットを強制するために、このオプションを使用することができます |
jhat
:仮想マシンのヒープ・ダンプ解析ツールのスナップショット
機能:
そして、jmap
分析するために組み合わせて、jmap
ヒープが生成されたスナップショットをダンプし、ブラウザで結果を表示することができます。
しかし、一般的に分析するためにそれを使用することはありません。
- サーバー上のダンプファイルの直接分析は、アプリケーションをデプロイしない、分析作業に時間がかかり、ハードウェアリソースを消費します
jhat
解析は比較的簡単です
ので、私はきっぱりと説明していません。
jhat
:仮想マシンのヒープ・ダンプ解析ツールのスナップショット
機能:
そして、jmap
組み合わせて、分析するjmap
ヒープが生成されたスナップショットをダンプします
jstack
:Javaのスタックトレースツール
機能:
(一般的に呼ばれる現在時刻の仮想マシンのスナップショットを生成するためのスレッドthreaddump
またはjavacore
)、スレッドは、スレッドが長いポーズを表示見つけるために、各実行スレッドスタックのスナップショットが生成され、現在の仮想マシン内のスレッドのスナップショット方法のコレクションです。
jstack
フォーマット:
jstack [option] vmid
jstack
ツールの主なオプション
オプション | 効果 |
---|---|
-F | 要求が出力に正常な応答でない場合は、出力スレッドスタックを強制 |
-l | スタックに加えて、ロックに関する追加情報を表示 |
-m | ローカルメソッドの呼び出した場合は、C / C ++のスタックを表示することができます |