BEA JRockit Runtime Analyzer (JRA)
作成日:2003.07.29
7/18 に BEA から JRockit 8.1 SP1 が公開された。
JRockit には従来から Management Console と呼ばれる
リアルタイムにパフォーマンスをモニタリング機構が備わっていたが、
SP1 でこの機能が内部的に拡張されたようで
JRockit Runtime Analyzer(JRA) と呼ばれる
さらに進んだモニタリング機能を実現した。
JRockit Runtime Analyzer(JRA)
Management Console は、
動作中の JRockit VM の内部情報 (使用メモリ量、現在 GC 中) を随時取得しそれを可視化する
(UNIX コマンドで言うところの) ps / vmstat 的機能だった。
しかし、JRockit Runtime Analyzer は、
JRockit VM が動作中の詳細な内部情報をファイルに書きだし
postmortem な解析を許す prof / gprof 的な機能だ。
# Sun の Hotspot VM は、jvmstat で Management Console の機能を実現した。
書き出したデータを解析することにより、
次のような情報を可視化できる。
- 一般情報
(実行環境・コマンドラインオプション等)
... スクリーンショット(34KB)
- メソッドの実行プロファイル
... スクリーンショット(45KB)
- サンプリングベースのメソッド実行回数
- メソッド呼び出し元情報
- メソッド呼び出し先情報
- GC 情報
...
スクリーンショット(71KB)
スクリーンショット(42KB)
- ヒープ使用量とオブジェクト数
(時間軸に並べてチャート化)
- 計測時間内におこった各 GC の詳細情報
(GC開始・終了相対時刻、前後のヒープ量、参照オブジェクト個数他)
- GC を発生させたメソッドの情報
- 最適化
...
スクリーンショット(40KB)
無論、
このような分析のできる Java プロファイラはいくつもあったのだが、
プロファイルを行う際に非常に速度が低下し、
しかもプログラムを最初から通して実行する必要があった。
JRockit の JRA が面白いのは
- データを採取するタイミング・期間を外部から自由に指定できる(何度でも OK)。
- データを採取している時は少し性能が低下するが、
それ以外のときはほとんど性能低下のペナルティがない。
そのため
(安定性さえ損なわれなければ) 実運用を行うシステムでも JRA をスタンバイな状態で実行し、
必要に応じてモニタリング・プロファイリングが可能である。
使い方
- 0. 準備
- この機能を使うには、
まず JRockit 8.1 SP1を
取得しインストールする。
次に ここ から
JRA ツールを納めた jra81sp1.zip ファイルをダウンロードし展開しておく。
JRockit 1.4.2 用の
ここにある。
- 1. モニタリング実行
- まず、監視の対象となるプログラムを -Xmanagement つきで実行する。
> $JROCKIT/bin/java -Xmanagement ....
-Xmanagement オプションを付けて実行した JRockit は、
デフォルトでは 7090/TCP ポートでモニタコマンドを listen しながら、
Java プログラムを実行を続ける。
モニタコマンドの待ち合わせポートを変更したい場合には、
さらに -Djrockit.managementserver.port=<portnumber>
を付け加る。
- 2. データの採取指示
- 外部から監視対象の JRockit VM にデータを採取するようにコマンドを送信する。
> $JROCKIT/bin/java -jar JraRecordingStarter.jar
<server> <port> <filename> <recording time>
監視対象となる JRockit VM を <server> <port> で指定する。
ソケットを開くことができるのでれば、
データ採取コマンドの送信は 監視対象となる JRockit VM の動くホストと異なっても構わない。
このコマンドを送信すると監視対象となる JRockitVM のあるサーバーのカレントディレクトリに、
<filename> という名前のデータファイル(XML形式)ができる。
データの採取期間は、<recording time> に秒を指定する。
例:
> $JROCKIT/bin/java -jar JraRecordingStarter.jar localhost 7090 jrarecording.xml 300
ファイル名を変えることで、複数箇所のデータも採取できる。
- 3. データの解析
- データの解析は GUI ツールで
以下のコマンドによって起動する。
> $JROCKIT/bin/java -jar RuntimeAnalyzer.jar
あとは 2. で指定したデータファイルを読み込ませれば OK。
参考
Using the JRockit Runtime Analyzer
... BEA のサイトにある JRA のドキュメント
コメント
TOP
戻る
Written by NAKAMURA Minoru, Email: nminoru atmark nminoru dot jp, Twitter:@nminoru_jp