パフォーマンス監視およびトラブルシューティングツール[1.8]
- jps
- 指定されたシステム内のすべてのHotSpot仮想マシンプロセスを表示するJVMプロセスステータスツール
- デフォルトでは、実行中の仮想マシンプロセスが表示されます。ローカル仮想マシンの一意のID(LVMID)と実行メインクラス
- jps [-help]
- ヘルプ:ヘルプリストを取得する
- jps [-q] [-mlvV] [<hostid>]
- q:LVMIDのみを出力し、メインクラスを省略
- m:出力の開始時にメインクラスのmain()関数に渡されるパラメーター
- l:メインクラスの完全な名前を出力します。jarが実行されると、jarの絶対パスが出力されます
- v:JVMパラメーター
- V:フラグファイル(.hotspotrcファイルまたは-XXで指定されたファイル)を介してJVMに渡されたパラメーターを出力:Flags =
- <hostid>:<hostname> [:<port>]リモートホストのプロセスを表示します
- jstat
- 仮想マシンのすべての側面の実行データを監視するために使用されるJVM統計監視ツール
- ローカルまたはリモートの仮想マシンの処理中に、クラスロード、メモリ、ガベージコレクション、JITコンパイルなどの実行中のデータを表示できます。
- jstat -help | -options
- ヘルプ:ヘルプを入手する
- オプション:関数パラメーターのリストを取得します
- jstat-<オプション> [-t] [-h <行>] <vmid> [<間隔> [s | ms] [<カウント>]]
- t:最初の列は、jvmスタートアップから始まるタイムスタンプを示します
- h <行>:ヘッダーを表示する行数
- vmid:ローカル仮想マシンの場合は、lvmidリモートホスト、[プロトコル:] [//] vmid [@hostname [:port] / serverName]
- 間隔:指定された時間ごとに1回出力されます。デフォルトの単位はmsで、sとして指定できます。
- count:何回出力するか
- オプション
- クラス:クラスのロード、アンロードの量、合計スペース、およびクラスのロード時間を監視します
- 例
- 解析中
- コンパイラー:JITコンパイル済みメソッド、時間のかかるその他の情報を出力します
- 例
- 解析中
- gc:Javaヒープを監視する
- 例
- gccapacity:監視コンテンツはgcと同じで、各領域で使用される最大および最小スペースに焦点を当てています
- 例
- 解析中
- gcutil:基本的にはgcと互換性があり、総スペースにおける使用済みスペースの割合に焦点を当てています
- gccause:最後のgcの追加出力の理由、gcutilの機能と一致
- gcnew:新世代のGcを監視する
- gcnewcapacity:基本的にはgcnewと同じで、メモリ使用量に焦点を当てています
- gcold:古い世代のGc状況を監視します
- gcoldcapacity:基本的にgcoldと同じで、メモリ使用量に焦点を当てています
- gcmetacapacity:メタデータのメモリ使用量を監視します
- printcompilation:JITコンパイルメソッドの統計
- 例
- 解析中
- クラス:クラスのロード、アンロードの量、合計スペース、およびクラスのロード時間を監視します
- jinfo
- Javaの構成情報、仮想マシンのパラメーターをリアルタイムで表示および調整
- jmap
- Javaのメモリマップ、仮想マシンのメモリダンプスナップショットを生成(ヘッドダンプファイル)
- ダンプファイルを取得するその他の方法
- -XX:OOM例外後に自動的に生成されるHeadDumpOnOutOfMemoryError
- -XX:HeapDumpONCtrlBreak Ctrl + Breakキーを使用して生成を促進します
- Linux環境では、kill -3を送信して生成します
- -dumpおよび-histoパラメーターがプラットフォームに共通であることを除いて、他のパラメーターはLinuxおよびSolarisでのみ使用されます
- ジャット
- ヘッドダンプファイルの分析に使用されるJVMヒープダンプブラウザーは、http / htmlサーバーを確立し、ユーザーがブラウザーで分析構造を表示できるようにします
- 一般に、jhatは直接使用されません。1つ目は、時間とリソースを消費し、2つ目は、関数が比較的粗いことです。
- jstack
- 仮想マシンのスレッドスナップショットを示すJavaのスタックトレース
- スレッドスナップショットは、現在の仮想マシンの各スレッドによって実行されているメソッドスタックのコレクションです。
- スナップショットを生成する目的は、スレッドの長い一時停止の原因を特定することです。
- HSDIS
- JIT生成コード逆アセンブリプラグイン
- -XX:+ PrintAssemblyは、動的に生成されたローカルコードをアセンブリコード出力に復元し、コメントを生成します
- JConsole
- jconsoleコマンドまたはjdk / binのjconsole.exe
- メモリ監視(メモリ):ビジュアルjstatコマンドと同等
- スレッド監視(スレッド):ビジュアルjstackコマンド
- JVisualVM
- 仮想マシンプロセスとプロセス構成、環境情報(jps、jinfo)の表示
- アプリケーションのCPU、GC、ヒープ、メソッド領域、スレッド情報(jstat、jstack)を監視する
- ダンプおよび分析ダンプ(jmap、jhat)
- メソッドレベルのプログラムパフォーマンス分析
- オフラインプログラムのスナップショット
- その他のプラグイン
- BTrace:ターゲットプログラムの動作を停止しないことを前提に、HotSpot仮想マシンのHotSpotテクノロジーでは存在しないデバッグコードを動的に追加します。