Java Runtime監視
Java Runtime監視――概要
Java Runtime監視には、JavaプラットフォームとJavaで動くアプリケーションを、リモートで監視・管理する機能が標準で備わっています。Applications Managerは、Sun JVM、IBM JVM、Oracle JRockit JVMをサポートします。
新規監視を追加するには
Java Runtime監視の要件:JVM引数の設定が必要です。
- 新規監視をクリックし、Java Runtimeを選択します。
- 監視が稼働しているホストのIPアドレスか名前を入力してください。
- サブネット マスクを入力してください。
- JDKを実行するポート番号を指定します(デフォルト:1099)。複数ポートをカンマ区切りで指定することも可能です。
- 認証情報は自身での入力も、認証情報マネージャーに用意した設定の選択も可能です。ご自身の認証情報を入力する場合は、当該監視のユーザー名とパスワードを指定します。
- JNDI名を入力してください。例:/jmxrmi
- カスタムJMX URLを利用するには、JMX URLの有効化チェック ボックスを選択し、URLを入力してください。URLの形式は、service:jmx:rmi:///jndi/rmi://HOST:PORT/jmxrmiとします。たとえば、JBossのカスタムURLは、service:jmx:remoting-jmx://HOST:PORTなどであり、WebSphereではservice:jmx:wsrmi://HOST:PORTなどとなります。
- 認証を有効にする場合、ユーザー名とパスワードを入力します。
- ポーリング間隔を入力してください(分)。
- Enterprise EditionのAdminサーバーから新規監視を追加するには、Managedサーバーを選択します。
- 監視を関連付ける監視グループを選びます(任意項目)。監視は複数グループに関連付け可能です。
- 監視の追加をクリックします。これによって、ネットワークから監視を検出し、監視を始めます。
Java Runtime監視には、JavaプラットフォームとJavaで動くアプリケーションを、リモートで監視・管理する機能が標準で備わっています。この機能では、JVMメモリ、ガベージ コレクション(GC)、スレッド統計などのメトリックを監視します。関連付けたしきい値に応じたアラート発生も可能です。さらには、自動スレッド ダンプ、ヒープ ダンプ、GC実行もサポートしています。Applications Managerは、Sun JVM、IBM JVM、Oracle JRockit JVMをサポートします。
- 本機能は、JRE1.5以上でサポートしています。ヒープ ダンプの操作を行うには、JVMにHotSpotDiagnostic MBeanが必要です。
- JDK 1.8では、Applications Managerは以前の永続世代(非ヒープ)に替えて、新しくメタスペースと圧縮クラス スペースを監視します。
監視対象のパラメーター
可用性タブでは、過去24時間か30日の可用性履歴がわかります。パフォーマンス タブでは、過去24時間か30日のステータスとイベントがわかります。リスト ビューでは、一括管理設定が可能です。Java Runtime監視はリソースの可用性、応答時間、接続時間(Applications ManagerがリモートJVMのJMXエージェントを参照するのにかかる時間)を、その他下記パラメーターとあわせて監視します。
パラメーター | 説明 |
---|---|
監視情報 | |
名前 | Java Rumtime監視の名前です。 |
ステータス | Java Rumtime監視のステータスを示します(クリア、警告、重大)。 |
タイプ | 監視しているリソースのタイプを示します。 |
ホスト名 | Java仮想マシンを実行しているホストを示します。 |
ポート | Java仮想マシンを実行しているポート番号を示します。 |
ホストOS | Java Rumtime監視を実行しているホストのOSを示します。 |
JVM | Java仮想マシンの名前とバージョンを示します。 |
ベンダー | Java仮想マシン ベンダーの名前を示します。 |
プロセッサー数 | Java仮想マシンで利用できるプロセッサーの数を示します。 |
最新ポーリング時刻 | 最新のポーリングを実行した日次を表します。 |
次回ポーリング時刻 | 次回のポーリングをスケジュールした日次を表します。 |
可用性 | Java Rumtime監視の現在のステータスをしまします(利用可能、利用不可)。 |
接続時間 | Java仮想マシンへの接続にかかる時間を指します。 |
メモリ プール | |
エデン領域(ヒープ メモリ) | はじめに多くのオブジェクトへの割り当てに使うメモリのプールを指します。 |
生存者領域[Survivor Space](ヒープ メモリ) | エデン領域でのガベージ コレクション後も、残留しているオブジェクトを含んだプールです。 |
長寿命世代[Tenured Generation](ヒープ メモリ) | かつて生存者領域にあったオブジェクトを含むプールです。 |
Javaヒープ | JVMがオブジェクト保存に使うスペースです。 |
永続世代(非ヒープ) :JDK 1.8より前 | クラスやメソッドのオブジェクトなど、仮想マシン本来のリフレクション データをすべて記憶しています。クラスデータ共有を使うJVMでは、この世代は読み込み専用と読み書き両用のエリアに分かれます。 |
メタスペース :JDK 1.8 | クラス メタデータの占めるネイティブ メモリ スペースです。メタスペースはネイティブ メモリでメタデータを保存し、自動拡張します。 |
圧縮クラス スペース :JDK 1.8 | 圧縮クラス スペースには、クラス メタデータのみが保存されます。 |
コード キャッシュ(非ヒープ) | ネイティブ コードのコンパイルと保存に使うメモリを指します。 |
JITコード キャッシュ | 高速実行のためアセンブラーへの変換と保存に使うメモリを指します。 |
ナーサリ | 新規割り当てオブジェクトに使う分離スペースを指します。 |
スレッド パラメーター | |
スレッド起動総数 | Java仮想マシンの起動以来、作成・実行されたスレッドの総数です。 |
ピーク スレッド | Java仮想マシンの起動か、ピークのリセットが発生して以来の、ライブ スレッドのピーク数を表します。 |
ライブ スレッド | 実行中のライブ スレッドの数です。 |
デーモン スレッド | 実行中のデーモン スレッドの数です。 |
実行可能スレッド | Java仮想マシンで実行中のスレッドを示します。 |
ブロックされたスレッド | ブロックされ、モニター ロックを待期しているスレッドを指します。 |
待期スレッド | 他のスレッドがアクションを起こすまで無制限に待機しているスレッドを指します。 |
指定された待機時間、待機中のスレッド(TIMED_WAITING) | 指定時間まで、他のスレッドがアクションを起こすのを待期しているスレッドの数です。 |
デッドロック | オブジェクト モニターの取得を待期しているデッドロックのスレッド数を指します。 |
クラス ローディング | |
ロードされたクラス | ロードされたクラスの数です。 |
アンロードされたクラス | アンロードされたクラスの数です。 |
JVM統計 | |
CPU負荷 | JVMによるマシンへの負荷を表します(%)。 0はJVMによる負荷は存在しないことを、100はすべての負荷がJVMによるものであることを示します。 |
CPU利用率 | サーバーにあるJVMのCPU利用率を示します。 |
最大ファイル デスクリプター | ファイル デスクリプターを最多でいくつ開けるかを示します。Unixでのみ利用できます。 |
ホスト メモリ | |
総物理メモリ | 物理メモリの総量を表します(MB)。 |
空き物理メモリ | 空き物理メモリの量です(MB)。 |
総スワップ スペース | スワップ スペースの総量を表します(MB)。 |
コミット済み仮想メモリ | 実行中のプロセスに保証された仮想メモリの量を指します(MB)。 |
ガベージ コレクター | |
消費時間(分ごと) | ガベージ コレクションに費やしたおよその経過時間を指します(ミリ秒)。 |
コレクション数/分 | ガベージ コレクションの発生速度を表します。 |
スレッド数 | ガベージ コレクターが利用しているスレッドの数を示します。 |
最新起動時刻 | GCの起動時刻です。 |
最新終了時刻 | GCの終了時刻です。 |
GC前のメモリ利用率 | GC開始時点での全メモリ プールのメモリ利用率を表します。 |
GC後のメモリ利用率 | GC終了時点での全メモリ プールのメモリ利用率を表します。 |
GC時間 | ガベージ コレクションにかかる時間を指します。 |
コンパイル時間 | JITコンパイルにかかる時間を指します(Just in Time)。 |
設定 | |
アップタイム | Java仮想マシンのアップタイムです。 |
Java仮想マシン | Java仮想マシンのインプリメンテーション名を表します。 |
ベンダー | Java仮想マシンのインプリメンテーション ベンダーを表します。 |
プロセスID | OSカーネルによっては、プロセスを一意に特定するのに、プロセスIDを識別子として利用します。 |
名前 | 実行中のJava仮想マシンの名前を表します。 |
VM引数 | mainメソッドへの引数が無いJava仮想マシンへ渡す、入力引数を表します。 |
クラス パス | システム クラス ローダーがクラス ファイルの検索に使うJavaクラス パスを示します。 |
ライブラリ パス | Javaライブラリ パスを指します。 |
ブート クラス パス | ブート ストラップ クラス ローダーが、クラス ファイルの検索に使うパスを示します。 |
JITコンパイラー | JITコンパイラーの名前です(Just in Time)。 |
ファイナライズ保留オブジェクト | ファイナライズ保留中のオブジェクトの、およその数を表します。 |
OS | OSの名前です。 |
アーキテクチャ | OSのアーキテクチャを指します。 |
プロセッサー | Java仮想マシンで利用できるプロセッサーの数を表します。 |
最大メタスペース | 最大メタスペースには、メソッド、バイトコード、定数プールなど、大きなクラス メタデータが記憶されています。 |
最大非ヒープ | 最大非ヒープ=コミット非ヒープ+空き物理メモリで計算します。 メモ:仮想メモリの場合は、空き物理メモリのみを最大メタスペース算出に計上します。 |
下の表では、Applications ManagerがサポートするJVMベンダーと、監視する主要パラメーターを記載します。
監視対象のパラメーター |
Sun JVM | IBM JVM | JRockit JVM |
---|---|---|---|
接続時間 | |||
メモリ利用率 | |||
CPU利用率 | |||
CPU負荷 | |||
システム メモリ | |||
プロセス メモリ | |||
ヒープ メモリ | |||
非ヒープ メモリ | |||
VM統計 | |||
総物理メモリ | |||
空き物理メモリ | |||
総スワップ スペース | |||
空きスワップ スペース | |||
コミット済み仮想メモリ | |||
ガベージ コレクター:サマリ | |||
ガベージ コレクター(コレクターごとの影響確認) | |||
スレッド起動総数 | |||
ピーク スレッド | |||
ライブ スレッド | |||
実行可能スレッド | |||
ブロックされたスレッド | |||
待機スレッド | |||
指定された待機時間、待機中のスレッド(TIMED_WAITING) | |||
デーモン スレッド | |||
デッドロック | |||
設定詳細 | |||
JVMアクション |
スレッド ダンプの表示
「スレッド」タブではダンプ履歴の表示ができます。タブ内で「スレッド ダンプの表示」リンクをクリックしてください。スレッド ダンプ画面が新規ウィンドウで開き、現在のスレッド ダンプ詳細を表示可能です。ウィンドウを閉じると、ダンプ詳細はスレッド履歴セクションに移動します。こちらのセクションからは、いつでもスレッド ダンプを確認可能です。
レポート
設定タブの「設定情報」セクションでは、存在するあらゆる属性について、リアルタイム データと履歴データの双方を確認できます。設定タブで属性をどれかクリックしてください。「履歴データ」という新規ウィンドウが開き、属性の追加情報が提示されます。
履歴データ ウィンドウには、履歴レポートとグローバル ビューの2つのタブがあります。
履歴レポート:このタブでは、選択した属性の履歴レポートを、期間を決めて表示します。属性の選択ドロップダウンで、他の属性を表示することも可能です。
グローバル ビュー:このタブでは選択した属性の現在の値を、複数の監視にわたってを表示します。監視に存在するその他の属性を確認するには、属性の選択ドロップダウンで属性を変更してください。
複数属性のデータを表示するには、ウィンドウ左上からカラムのカスタマイズ リンクをクリックします。グローバル ビューの編集画面が開き、監視タイプでフィルター ドロップダウンによる監視タイプの変更、表示するメトリックの選択、監視ごと・監視グループごとの表示を実行できます。どれを選ぶか決めたうえでレポートの表示ボタンをクリックすると、グローバル ビュー タブで情報を確認可能です。
メモ
Applications Managerインストール先マシンでJMX接続が確立されない場合、こちらのキーでお客さまアプリケーションを再起動してください。
-Djava.rmi.server.hostname=YOUR_IP