谷本 心 in せろ部屋

はてなダイアリーから引っ越してきました

JavaのモニタリングとトラブルシューティングのBOF

[BOF-4724]Monitoring and Troubleshooting Java? Platform Applications with JDK Software
一つ前のセッションと同じ内容だけど、BOFだからきっと深い内容に、、、と
期待して入ったら、こっちの方が初心者向けだった。BOFのくせに(><)


とりあえず内容を書いちゃうと、、、

  • SunのJVMが提供しているデッドロック検出機能は、VisualVMとjstackで確認できる。
  • VisualVMの「Enable Heap Dump on OOME」を使えば、OutOfMemory時にヒープダンプが取れる。
  • メモリリークの見つけ方。
    1. メモリ使用量の推移を見る(jstat)
    2. ヒープヒストグラムから怪しい箇所を見つける(jstat)
    3. ヒープダンプを取る(jmap)
    4. もちろんVisualVMでもOK
  • GC走ってないだけなものをリークと勘違いするな。VisualVMかjconsoleでGCさせろ。

という感じ。


ちなみにスピーカーの片方(デモ中心だった人)は、VisualVMの作者だったそうなので、
前々から疑問だった質問をしてみた。


Q : VisualVMのプロセスツリーに出てくるアイコンって、どうやって取ってるの?
A : Mainクラスを解析して判断して、これはTomcatだ、これはNetBeansだって振り分けてるんだ。


次のバージョンからは、-Dオプションでプロセス名ともども指定できるようになるとか。
誰が使うねん、そんな機能。