Skip to content

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 接続を追加します。

https://gyazo.com/235aa0c66cd3db43a9c57433a6778a41

あとはローカルのサーバーと同様に接続できます。

https://gyazo.com/0eedef0f29f56287d3621ea9df76e008

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.