背景
多くの場合、プロジェクトの開発にプロジェクト全体を完了するために人が、チームによって開発された、とプログラマビリティチームのメンバーは、必然的にプロジェクトムラのパフォーマンスに影響を与えます。製品の基本的な形状は、このような応答時間の損失、システムカトンやその他の問題として理想的なプロジェクトではありません後にプロジェクトが必然的に生じてしまうとき。全体的なアプリケーションの詳細な分析が必要で、この時点で。アナリストのすべてのプロジェクトの詳細ではなく、すべての知られているとおり、あなたは、特定のデータを抽出するために、いくつかの補助的なツールを必要とするJVM(例えば、メモリのGCの頻度分布)、そのデータ解析のタイプ。このような状況のアプリケーションを引き起こす主な理由の正確な位置決め。そして、その上のトラブルシューティングやパフォーマンスチューニングの特定との理由から。いくつかのツールは非常に安定して強力であるので、実際には、SunのJDKのトラブルシューティングアプリケーションパフォーマンスの問題を突き止めるに重要な役割を再生することができ、私たちのために早期の準備ができて
JPS
JVMプロセスステータスJPSフルネームは、コマンドラインツールの情報を取得するために使用されるJDK Javaアプリケーション・プロセスを提案する名前です。JavaアプリケーションはJPSことによって得ることができるプロセスID番号、main()関数クラスパスと他の起動情報をコマンド。
JSP形式:
JPS [オプション] [PID]
オプション | 効果 |
---|---|
-q | 出力のみlvmidは(プロセスID)は、メインクラスの名前が省略されています |
-m | 仮想マシンプロセスに渡された出力パラメータは、マスタークラスメインを開始()関数 |
-l | マスタークラスの出力、プロセスが実行された場合ジャーパッケージ、ジャー出力パスのフルネーム |
-v | 仮想マシンプロセスの出力は、JVMパラメータを開始すると |
JSTAT
JVM統計JSTATコマンドラインツールの監視ツールの完全な名前は、そのようなクラスのロード、メモリ情報、ガベージコレクションなど、さまざまなJavaアプリケーションのステータス情報を取得するために使用されます。
JSTATフォーマット:
JSTAT [オプション]
パラメータを省略した場合、これら2つのパラメータの代わりにクエリは一度しか照会し、間隔および代表クエリ間隔の回数をカウントして。
オプション | 効果 |
---|---|
-クラス | 監視クラスのロード、総容量の荷降ろし量、およびそれがクラスをロードするのにかかる時間 |
-gc | 永久世代の容量、使用領域、GCの合計時間情報などのJavaヒープエデン領域を含む状態監視、2つのサバイバー地区、古い時代、 |
-gccapacity | コンテンツを監視し、基本的に同じ-GCが、出力は、主にJavaを使用懸念されている最大値に各領域をヒープ、最小スペース |
-gcutil | コンテンツを監視し、基本的には同じことを-GCが、出力は合計領域の割合の利用が注目されています |
-gccause | 関数-gcutilと一致しますが、最後のGCによって生成された追加の出力を発生します |
-gcnew | GCは、新世代の状態を監視します |
-gcnewcapacity | コンテンツを監視し、基本的には同じことを-gcnew、最大限に大きな懸念の出力を使用して、最小スペース |
-gcold | GC古いの状態監視 |
-gcoldcapacity | コンテンツを監視し、基本的にスペースの最小値と最大値を使用する主要な関心事のと同じ、出力を-gcold |
-gcpermcapacity | 発電出力は恒久的に最大、最小のスペースを使用するには |
-コンパイラ | JITコンパイラの出力コンパイル方法、時間がかかり、他の情報 |
-printcompilation | 出力は、JITコンパイルされたメソッドとなっています |
サンプルを実行JSTAT
jstat -gc 25582
S0C S1C S0U S1U EC EU OC OU MC MU CCSC CCSU YGC YGCT FGC FGCT GCT
5120.0 5120.0 0.0 0.0 32768.0 9736.9 86016.0 0.0 4480.0 873.2 384.0 74.6 0 0.000 0 0.000 0.000
S0C、S1C、S0U、S1U:Survivor 0/1区容量(Capacity)和使用量(Used)
EC、EU:Eden区容量和使用量
OC、OU:年老代容量和使用量
MC、MU:元空间容量和使用量
CCSC、CCSU:[CompressedClassSpaceSize]压缩类空间容量和使用量
YGC、YGT:Young GC次数和Young GC耗时
FGC、FGCT:Full GC次数和Full GC耗时
GCT:GC总耗时即Young GC与Full GC总耗时
jstat -gcutil 25582
S0 S1 E O M CCS YGC YGCT FGC FGCT GCT
0.00 0.00 29.71 0.00 19.49 19.43 0 0.000 0 0.000 0.000
与上述一致分别代表的是使用百分比
jstat -gccapacity 25582
NGCMN NGCMX NGC S0C S1C EC OGCMN OGCMX OGC OC MCMN MCMX MC CCSMN CCSMX CCSC YGC FGC
43008.0 680960.0 43008.0 5120.0 5120.0 32768.0 86016.0 1362944.0 86016.0 86016.0 0.0 1056768.0 4480.0 0.0 1048576.0 384.0 0 0
NGCMN:新生代最小容量
NGCMX:新生代最大容量
NGC:当前新生代容量
Jinfoの
Jinfoの(Java用の構成情報)このコマンドは、ビューに使用し、パラメータのJavaアプリケーション立ち上げ調整される
Jinfoのコマンド形式を:
Jinfoの[オプション] PID
オプション | 効果 |
---|---|
-国旗 | あなたはパラメータを変更したい場合は、アプリケーションの起動を見ながら-flag名によって得られたパラメータ値は、また-flag名前=値によって変更することができます |
-sysprops | アプリケーションプロセスSystem.getPropertis()コンテンツを印刷します |
jmapの
jmapの(Java用のメモリマップ)このコマンドは、主に、スタックなどの中に分散Javaアプリケーション・ヒープ・メモリ、表示メモリ情報を生成するために使用されます。
jmapのフォーマット:
jmapの[オプション] PID
オプション | 効果 |
---|---|
-投げ捨てる | Javaのヒープダンプのスナップショットを生成します。フォーマット:-dump:[ライブ、]フォーマット= B、ファイル=
|
-finalizerinfo | F-キュー内のファイナライズ処理ファイナライザスレッドを実行するために、表示オブジェクトを待ちます。 |
-ヒープ | このような設定、世代状況パラメータ使用の回復などのJavaヒープショーの詳細、。 |
-histo | 表示ヒープ統計は、クラス、インスタンスの数、総容量を含め、オブジェクト。 |
-permstat | クラスローダは、国家を代表して統計的な永久メモリを示すことです。 |
-F | 応答しないの場合は、仮想マシンのプロセス-dumpオプションは、ダンプのスナップショットを強制するために、このオプションを使用することができます。 |
jmapのエクスポート・ダンプ・ファイル
jmap -dump:format=b,file=out.bin 25582
Dumping heap to /root/out.bin ...
Heap dump file created
JT
jhat(JVMヒープ解析ツール)このコマンドは、主にjmapは、ダンプファイルを解析している、とHTTPアプリケーションを起動し、簡単なビジュアルコンテンツファイルダンプビューブラウザ。
jhat /root/out.bin
Reading from /root/out.bin...
Dump file created Sun Jan 19 00:05:08 CST 2020
Snapshot read, resolving...
Resolving 201499 objects...
Chasing references, expect 40 dots........................................
Eliminating duplicate references........................................
Snapshot resolved.
Started HTTP server on port 7000
Server is ready.
このとき、ブラウザを介して7000アクセスポートは、結果を表示します。
jstack
jstack(Java用スタック・トラック)このコマンドは、主に、スタックのスナップショットのJavaアプリケーションスレッドを生成するために使用されます。長い休止の原因を見つけることができるスレッドなどにより、このようなスレッドが長いポーズの一般的な原因であるなどの外部リソースに長い時間のための要求を待っているスレッド、無限ループとの間のデッドロックなどのスレッドのスタックのスナップショットに応じて発生します。
jstack形式:
jstack [オプション] PID
オプション | 効果 |
---|---|
-F | 要求が出力に正常な応答でない場合は、出力スレッドスタックを強制 |
-l | スタックに加えて、ロックに関する追加情報を表示 |
-m | ローカルメソッドの呼び出した場合は、C / C ++のスタックを表示することができます |
()メソッドは、アプリケーションがすべてのスレッドのスタック情報のStackTraceElementことをJavaコードでgetAllStackTracesのjava.lang.Threadの全スレッドオブジェクト得ることができます。