visualvm
JVM プロセスの内部状態を見るためには visualvm が便利です。
インストール
https://visualvm.github.io/ からダウンロードしてインストールします。
起動
VisualVM の起動にはコマンドラインで jvisualvm と打って起動します。
起動すると以下のような画面が出て、ローカルのプロセスが選択できる状態になっています。
Overview タブを選択すると、プロセスの概要がわかります。
CPU やヒープの状態もグラフでわかりやすく見ることができます。 CPU の使用率や GC の頻度などをざっくりと把握するのに便利です。
スレッドの様子もわかります。
CPU/Memory サンプラもあります。 ざっくりとパフォーマンスボトルネックを把握するのに便利です。
MBeans プラグイン
visualvm は素のままでも便利なのですが、MBeans プラグイン便利が極めて便利です。 MBeans プラグインをいれると JMX の MBeans 情報を取得することができて便利です。
Menu から Tools → Plugins を選んで、以下の画面からインストールしましょう。
インストールすると以下のように MBeans にアクセスすることができるようになります。
Remote 接続
JMX のリモート接続を有効にしているサーバーに対して簡単に visualvm で接続できます。
以下のように "File -> Add JMX Connection" を選んで、JMX 接続を追加します。
あとはローカルのサーバーと同様に接続できます。
FAQ
Java Mission Control とどっちがいいの?
Java Mission Control でも同じ事ができます。Flight Recorder なども利用できて便利なので、必要でアレば利用するといいでしょう。
visualvm だとリモート接続に jmx と jstatd が選べるけどどちらを選んだらいいの?
jmx が良いです。
jstatd は experimental だからです。
Monitors Java Virtual Machines (JVMs) and enables remote monitoring tools to attach to JVMs. This command is experimental and unsupported.