こんちゃ(´・ω・)ノ
今回はJavaの監視ツールについて。
Javaでは標準でJavaの監視ツールが入ってたり入ってなかったりする。
sunからJDKを落としてきて入れている人は、
たぶん監視ツールが[JAVA_HOME]/bin/配下にあるだろう。
その中から監視に使えるツールを紹介します。
基本的にヒープ使用量などの監視ができます。
◆java VisualVM
グラフィカルなJavaのヒープ監視ができるツール。
コマンドプロンプトから「jvisualvm」を実行する。
すると以下のような画面が開きます。

この画面でヒープ使用量などを監視することができます。
◆jconsole
jconsoleもグラフィカルにヒープ使用量を監視することができるツールです。
コマンドプロンプトから「jconsole」を実行します。
そして、監視したいプロセスを選択し、起動します。
すると、以下のような画面が表示されます。
◆jps
JavaのプロセスIDを確認するコマンド。
コマンドプロンプトから「jps」を実行する。
C:\>jps
4424 Jps
◆jvmstat
1.jpsコマンドで、監視したいJVMのプロセスIDを確認。
※-vオプションで詳細表示
2.jstat <出力オプション> <プロセスID> <データ取得間隔(ms)>でjstat開始
(例) jstat -gcutil -t 12829 3000(3秒)
3.まずは -gcutil でざっくり見てから、-gc で詳細を見ていくような感じか。
(例)
C:\>jstat -gcutil -t 2792 3000
Timestamp S0 S1 E O P YGC YGCT FGC FGCT GCT
49.1 0.00 55.60 5.09 87.55 47.91 17 0.085 1 0.05 2 0.137
52.2 0.00 55.60 66.49 87.55 47.97 17 0.085 1 0.05 2 0.137
55.2 0.00 55.60 100.00 87.55 47.97 17 0.085 1 0.05 2 0.137
◆java gcログ
javaではJVMの起動オプションに、
gcログ出力のオプションを指定することができる。
gcとはガベージコレクションのことで、
javaシステムのパフォーマンスには
このGCが関係する。
ヒープサイズの設定によっては、
FullGCが起きると、Javaシステムのパフォーマンスが落ちるため、
GCログなどを出力して、
適切なヒープサイズのチューニングをしていく必要がある。
◆まとめ
今回はWindowsで行っているが、
JavaはOSを選ばないため、
環境があればLinuxで普通に動きます。
アプリケーションの作りで、
Javaシステムのパフォーマンスが悪くなったりしますが、
監視をすることで、
設定ミスなどによるボトルネックの検出ができるかもしれません。
単純にJavaアプリの作りが悪いのではなく、
javaの基本的なチューニングや監視も覚えておきましょう。
[1回]
PR
COMMENT