Java VisualVM - アプリケーション・スレッドのモニタリング

Java VisualVMでは、ローカル・アプリケーションやリモート・アプリケーションのデータは、そのアプリケーションに固有のタブ内に表示されます。アプリケーション・タブは、「Applications」ウィンドウの右側にあるメイン・ウィンドウ内に表示されます。アプリケーション・タブは一度に複数個開くことができます。各アプリケーション・タブに含まれるサブタブには、アプリケーションに関するさまざまな種類の情報が表示されます。

スレッド・アクティビティのモニタリング

Java VisualVMの「Threads」タブには、スレッド・アクティビティに関するハイレベルのデータがリアルタイムで表示されます。
注: 「Threads」タブに表示される情報は、Java Management Extensions (JMX)に基づいています。「Threads」タブが表示されるのは、Java VisualVMがターゲット・アプリケーションとの間でJMXテクノロジベースの接続(JMX接続)を確立でき、かつそのJava Virtual Machine (JVM)からJMXインストゥルメンテーションを取得できる場合です。ターゲット・アプリケーションがJava Development Kit (JDK) Version 1.6上で実行されているローカル・アプリケーションである場合、JMX接続は自動的に確立されます。ターゲット・アプリケーションがJDK Version 1.6上で実行されていない場合には、JVMソフトウェアとのJMX接続を明示的に確立する必要がある場合があります。JMX接続の確立方法の詳細については、次のドキュメントを参照してください。

「Threads」タブにはデフォルトで、現在のスレッド・アクティビティのタイムラインが表示されます。タイムライン内のスレッドをダブルクリックして、そのスレッドに関する詳細情報を「Details」タブ内に表示できます。

「Timeline」タブ

このタブには、リアルタイムのスレッド状態を含むタイムラインが表示されます。現在の表示のズーム・イン/アウトを行なったり、Scale to Fitモードに切り替えたりするには、タイムライン・ツールバーのボタンを使用します。ドロップ・ダウン・リストを使えば、表示されるスレッドを選択できます。すべてのスレッド、ライブ・スレッド、終了スレッドのいずれかを表示することを選択できます。また、単一のスレッドや複数のスレッドを選択してスレッドのサブセットを表示させることもできます。あるスレッドのタイムラインをダブルクリックすれば、そのスレッドを「Details」タブ内で開くことができます。

各スレッドのタイムラインを見れば、そのスレッドのアクティビティの概要をすばやくつかむことができます。

「Threads」タブのタイムラインのスクリーン・ショット

「Details」タブ

「Details」タブには、個々のスレッドに関するより詳細な情報が表示されます。ドロップ・ダウン・リストを使えば、すべてのスレッド、すべてのライブ・スレッド、すべての終了スレッドのいずれかを表示することを選択できます。また、「Timeline」ビューで選択されたスレッドの詳細だけを表示することを選択することもできます。スレッドごとに、名前、クラス名、および現在のステータス(ライブ/終了)が表示されます。スレッドの短い説明も表示されます。

「Details」タブに表示される各スレッドには次のタブが含まれます。

各スレッドのタイムラインを見れば、そのスレッドのアクティビティの概要をすばやくつかむことができます。

「Threads」タブのタイムラインのスクリーン・ショット

スレッド・ダンプの取得

Java VisualVMでは、ローカル・アプリケーションの実行中にスレッド・ダンプ(スタック・トレース)を取ることができます。スレッド・ダンプを取ってもアプリケーションが停止されることはありません。スレッド・ダンプを出力すると、Javaスレッドのスレッド状態を含むスレッド・スタックの出力が得られます。

Java VisualVMでスレッド・ダンプを出力すると、アプリケーションのアクティブ・スレッドのスタック・トレースが出力されます。Java VisualVMを使ってスレッド・ダンプを取ることは、アプリケーションのコマンド行コンソールが存在しない場合に非常に役立つ場合があります。スタック・トレースを使えば、デッドロックやアプリケーションがどのタイミングでハング・アップしたかなど、さまざまな問題の診断が容易になります。

スレッド・ダンプ・サブタブ内のスレッド・ダンプ(スタック・トレース)のスクリーン・ショット。

「Threads」タブのタイムラインのスクリーン・ショット

Copyright © 1993, 2020, Oracle and/or its affiliates. All rights reserved.