Java VM のスレッドダンプについて書いてみる修行

なんの脈絡もなく、Java VM のスレッドダンプの話。あまり知られていないようだが、Sun が提供している JVM (HotSpot VN) では、その VM 上で動いているスレッドのスナップショットを表示する機能がある。スレッドダンプ機能。

スレッドダンプのさせかた。UNIX 系の OS の場合、JVM のプロセスに SIGQUIT。Windows の場合、JVM が動いているコンソールで Ctrl + Break。

JDK 5.0 以降であれば、JMX を利用することでスレッドの情報だけでなく、各世代のメモリ使用量などもリアルタイムに確認することができる。この場合、監視対象の JVM に対し JMX を有効化するオプションをつけて起動しないといけないが。