仮想マシンシリーズ:パフォーマンス監視視覚化ツール-JConsole

jvm-10-jconsole

上記の2つの記事では、jdkに付属するコマンド監視ツールについて説明しています。この記事では、jdkに付属するグラフィカルなパフォーマンス監視ツールである視覚化ツールJConsoleについて説明します。JConsoleツールを使用すると、Javaアプリケーションの実行ステータスを確認したり、ヒープ情報、クラスの読み込み、スレッド情報などを監視したりできます。実際、それは前の記事で述べたコマンドツールを視覚化することです。

Javaプログラムを開いて接続します

JConsoleプログラムは、%JAVA_HOME%/ binのディレクトリにあります。以下に示すように、ダブルクリックしてクライアントを起動します。

ローカルプロセス接続とリモートプロセスの接続の2つの接続方法があります。

ローカルプロセス:マシン上で実行されているJavaプログラムは、ローカルプロセスの下に一覧表示されます。ダブルクリックして、このプロセスの監視ページに入ります。

リモートプロセス:アドレスとポートでリモートJavaプロセスに接続できますが、リモートプロセスの開始時に次のようにいくつかのパラメーターを指定する必要があります。

-Djava.rmi.server.hostname=127.0.0.1   //远程服务器的IP(本地可访问)
-Dcom.sun.management.imxremote      
-Dcom.sun.management.jmxremote.port=5555  // 远程服务器的端口(随便定一个,用于JMX管理该进程)
-Dcom.sun.management.jmxremote.authenticate=false  // 是否验证(true的话需要配置密码,自行百度吧)
-Dcom.sun.management.jmxremote.ssl=false   //ssl控制
复制代码

上記のパラメータを使用してJavaアプリケーションを起動し、リモート接続を入力して[接続]を127.0.0.1:5555クリック。

概要

[接続]をクリックすると、概要インターフェイスに直接入ります。次の図に示すように、4つのリアルタイムの線グラフがあり、ヒープメモリ使用量の変化、アクティブスレッド数の変化、ロードされたクラスの数、およびCPU使用率の割合を表しています。

jvm-10-調査

メモリモニタリング

[メモリ]タブを選択すると、ページ全体がヒープメモリ情報であることがわかります。また、非ヒープメモリ、エデンエリア、サバイバーエリア、老後、メタスペース、その他のメモリ使用量を含むグラフの列を切り替えることもできます。右上隅にある[ GCの実行]をクリックして、FullGCを強制します

jvm-10-メモリ

スレッドの監視

主なことは、デッドロック、ライブロック、無限ループなどのスレッドがあるかどうかに注意を払うことです

スレッドタブを選択すると、スレッド数の変化の線グラフが表示されます。線グラフの下に表示されるプログラムの各スレッドについて、特定のスレッドをクリックすると、右側にこのスレッドの特定の情報が表示されます。

jvm-10-スレッド

下部にデッドロックを検出するボタン(デッドロック機能の実装)があり、デッドロックのあるスレッドを自動的に除外できます。デッドロックの実装コードは次のとおりです。

次の図で検出された2つのスレッドがデッドロックしているという情報

この関数を使用すると、アプリケーションのスレッド情報を簡単に表示でき、デッドロックの問題をすばやく特定できます。

jvm-10-スレッド-デッドロック

jvm-10-thread-deadlock1

前の記事で説明したコマンドツールjstackと同等です

クラスの読み込み

次の図は、システムによってロードされたクラスの数と、アンロードされたクラスの数を示しています。このクラス情報にはあまり注意を払わないでください。

jvm-10-class

仮想マシン情報

主な懸念事項は、次の図のヒープメモリに関連する情報です。

次の図に示すように、VMの概要のタブには、仮想マシンタイプ、バージョン、ヒープ情報、サーバー情報、VMパラメーター、ガベージコレクター、およびその他の情報を含む、現在のアプリケーションの実行環境が表示されます。

jvm-10-vm

要約する

JConsoleを使用した場合の効果は、前の記事で説明したコマンドツールの効果と同じですが、これは直接視覚化であり、表示がより便利ですが、サービスの使用開始時に固定パラメーターを追加する必要があります。サービスのプロセスを監視します。

元の住所


私はジさんです。出力を使用して、入力に学習を継続させます。技術的な一連の記事を共有し続けており、ネットワーク全体で優れた記事を収集する価値があります。パブリックアカウントに注目し、技術者になることを歓迎します。成長し続ける人。

個人のウェブサイト

歴史的な記事のJVM仮想マシンシリーズ

1.仮想マシンシリーズ:JVMの実行中にヒープメモリを生成する方法。

2.仮想マシンシリーズ:jvmのガベージコレクションアルゴリズム。

3.仮想マシンシリーズ:jvmランタイムデータエリア。

4.仮想マシンシリーズ:JVMでのオブジェクトの作成、メモリレイアウト、およびアクセスの配置。

5.仮想マシンシリーズ:JVMのガベージコレクター。

6.仮想マシンシリーズ:JVMでのメモリ割り当て。

7.仮想マシンシリーズ:仮想マシンのログとログパラメータを理解します。

8.仮想マシンシリーズ:仮想マシンのパフォーマンスを監視するための基本的なツール。

9.仮想マシンシリーズ:仮想マシンのパフォーマンスを監視するための基本ツール-jstat;

おすすめ

転載: juejin.im/post/7088492612885151752