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 の機能を実現した。

書き出したデータを解析することにより、 次のような情報を可視化できる。 無論、 このような分析のできる Java プロファイラはいくつもあったのだが、 プロファイルを行う際に非常に速度が低下し、 しかもプログラムを最初から通して実行する必要があった。
JRockit の JRA が面白いのは そのため (安定性さえ損なわれなければ) 実運用を行うシステムでも 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 のドキュメント

コメント

トラックバック   [Trackback URL: http://www.nminoru.jp/cgi-bin/tb.cgi/java__jra__index]
コメントを書き込む

TOP    戻る
Written by NAKAMURA Minoru, Email: nminoru atmark nminoru dot jp, Twitter:@nminoru_jp