この章では、JVMでアプリケーションを実行中に発生する問題の特定と解決に使用できる、次のOracle JRockit JDKのツールおよび機能の概要を示します。
冗長ログを有効にして構成するには、-Xverbose
コマンドライン・オプションを使用します。このログでは、JRockit JVMの様々な観点(メモリー管理やコード最適化など)における実行時情報が、低いオーバーヘッドで提供されます。冗長ログの情報は監視、チューニングおよび診断に使用できます。
第2章「冗長出力の概要」では、いくつかの有効な冗長モジュールとその出力の解釈方法を説明します。
スレッド・ダンプ(第3章「スレッド・ダンプの使用」を参照)は、プロセスの一部となっているすべてのスレッドの状態のスナップショットです。スレッド・ダンプは、アプリケーションのスレッド・アクティビティに関する情報を示します。この情報は、問題を診断し、アプリケーションおよびJVMのパフォーマンスを最適化するのに役立ちます。
診断コマンドを使用すると、実行中のOracle JRockit JVMプロセスとのやり取りができます。第4章「診断コマンドの実行」で説明するように、これらのコマンドでは、ヒープ・レポートやガベージ・コレクションの活動レポートの出力などのタスクの実行や、特定の冗長モジュールの有効化を行うように、JRockit JVMが指示されます。
TZUpdaterツールを使用すると、米国の2005年エネルギ政策法(U.S. Energy Policy Act of 2005)で設立された2007年の夏時間の変更(US2007DST)に対応するために、インストール済みのJDK/JREイメージが最新のタイムゾーン・データで更新されます。
タイムゾーン・データの更新と、製品の他の改良点(セキュリティに関する修正など)の両方が提供されるため、最新のOracle JRockit JDKリリースを優先的に使用することをお薦めします。最新のJRockit JDKリリースを使用できない場合は、他のシステム構成は変更しないまま、このツールでタイムゾーン・データを更新することもできます。
TZUpdater (バージョン1.3.33以上)では、Oracle JRockit JDKがサポートされています。TZUpdaterの詳細は、Oracle Technology NetworkのTZUpdaterのドキュメント(http://www.oracle.com/technetwork/java/javase/tzupdater-readme-136440.html
)を参照してください。
TZUpdaterツールは次の場所からダウンロードできます。http://www.oracle.com/technetwork/java/javase/downloads/index-jsp-138363.html#timezone
JDKで提供されるツールに加えて、Oracle JRockitにはJRockit Mission Control Clientと呼ばれる監視、管理および分析用の一連のツールが備わっています。
この一連のツールを利用すると、適切なパフォーマンス・オーバーヘッドを維持しながら、Javaアプリケーションの監視、管理、プロファイリング、およびメモリー・リークの排除を行うことができます。JRockit Mission Control Clientのパフォーマンス・オーバーヘッドが低いのは、JRockit JVMの適応性のある動的な最適化の一部として収集されるデータを使用するためです。これにより、バイト・コード・インストゥルメンテーションを使用するツールがシステムの実行特性を変えるときに発生する可能性のあるHeisenberg異常の問題も解消されます。
JRockit Mission Control Client機能はオンデマンドで利用可能で、ツールが実行中の間のみパフォーマンス・オーバーヘッドがわずかに発生します。
JRockit Mission Control Clientは次のツールで構成されます。これらのツールはEclipseのプラグイン・アプリケーションとしても使用できます。
JRockitブラウザを使用すると、システム上で実行しているJRockit JVMのすべてのインスタンスを設定および管理することができます。JRockitブラウザでは、JRockitフライト・レコーダからのFlight記録の開始、管理コンソールへの接続、メモリー・リーク検出の開始などの様々なツールをアクティブにできます。
JRockit管理コンソールは、JRockit JVMインスタンスの監視に使用されます。複数の管理コンソールを同時に実行できます。このコンソールは、メモリー使用量、CPU使用率およびその他の実行時メトリックに関するアクティブ・データをキャプチャし、表示します。
JRockit JVM 5.0および6に接続されたJRockit管理コンソールでは、Oracle JRockit JVMの内部MBeanサーバーにデプロイされたあらゆるJMX MBeanからの情報も表示できます。
Oracle JRockit JVM 1.4に接続されたコンソールでは、RMP機能がJMXプロキシによって公開されます。
JRockitフライト・レコーダは、診断情報を提供するパフォーマンス監視およびプロファイリング用のツールで、システム障害などの突発的な障害であっても同様に対応します。フライト・レコーダは診断およびプロファイリングのデータをローテーションするバッファで、このデータはオンデマンドで利用できます。フライト・レコーダはその航空関係を連想させる名前のとおり、システム(またはアプリケーション)障害につながる可能性のあるイベントの記録を提供します。Oracle JRockitで実行中のJavaアプリケーションがフライト・レコーダを有効にして開始するとすぐに、データが常にフライト・レコーダまたはそのバッファに収集されます。システム障害が発生した場合は、この記録の内容をファイルに転送して原因(JVMクラッシュ、予定外のアプリケーションの終了、または電源障害など)の分析に使用できます。
フライト・レコーダGUIで表示されたデータは、Oracle JRockit JVMの構成要素であるフライト・レコーダ・ラン・タイム・コンポーネントによって収集されます。フライト・レコーダ・ラン・タイム・コンポーネントの詳細は、『Oracle JRockitフライト・レコーダ・ラン・タイム・ガイド』を参照してください。
Flight記録は、JRockit Mission Control Clientの構成要素であるフライト・レコーダGUIに表示されます。これにより、Oracle JRockitのフライト・レコーダ対応バージョン(つまり、リリースR28.0以上)を実行中のユーザーは、JVMの記録、現在の記録設定および実行時パラメータを表示できます。GUIは、パフォーマンス・データを論理的編成で集計する一連のタブで構成されています。
フライト・レコーダは、JRockit Mission Control Clientの旧リリースに付属していたJRockit Runtime Analyzer (JRA)の後継機能です。
JRockitメモリー・リーク・ディテクタは、Javaアプリケーションのメモリー・リークを検出し、その原因を特定するのに役立ちます。JRockitメモリー・リーク・ディテクタの傾向分析では、進行の遅いリークが発見されます。詳細なヒープの統計(リークしているオブジェクトを指し示すタイプとインスタンスを含む)および割当てサイトが表示され、メモリー・リークの原因をすばやく絞り込むことができます。メモリー・リーク・ディテクタでは高度なグラフィカル表示手法が使用されているため、複雑な情報のナビゲートおよび把握が簡単になります。