ヘッダーをスキップ
Oracle® JRockitフライト・レコーダ・ラン・タイム・ガイド
リリースR28
B61448-03
  目次へ移動
目次

前
 
次
 

4 テンプレートによる記録データの制御

この項では、フライト記録でキャプチャする情報を制御するためのテンプレートの使用方法について説明します。

この章の内容は以下のとおりです。

4.1 制御の対象

様々な設定によりJRockitフライト・レコーダに関するほとんどすべてを制御できます。記録するデータ量を制御するには、次のように各イベント・タイプを構成できます。

JRockitフライト・レコーダのテンプレートを使用すれば、記録を開始するたびにすべての構成オプションを変更する必要がありません。様々なタスクに最も適合するオプションのセットが、Mission Controlおよびサーバー側のテンプレートに保存されています。これらのテンプレートは、そのまま使用することもニーズに応じて変更することもできます。


警告:

フライト記録ファイルのデータ・フォーマットはコンパクトですが(.jfr)、記録での有効なイベント数が多すぎると、特に、スタック・トレースを頻繁に収集し、リソースの多いイベントなどは、膨大なデータになる可能性があります。


4.2 Mission Controlのテンプレート

JRockit Mission Control Clientで記録を開始する際に、記録テンプレートを要求されます(図2-1を参照)。テンプレートは、記録を作成する際に有効となるイベントを制御します。デフォルトでは、次のテンプレートがあります。

4.2.1 通常のプロファイリング

このテンプレートには、ほとんどの必要なプロファイリング・イベントが含まれています。非常にレベルの低いイベントやリソースを多く消費する一部のイベントは、オーバーヘッドを回避するために除外されています。

オーバーヘッド: このテンプレートの記録オーバーヘッドは非常に低いので、本番環境で使用できます。詳細はJRockitフライト・レコーダのオンライン・ヘルプを参照してください。

4.2.2 ロックを含むプロファイリング

このテンプレートは、非常に低レベルのロック・イベントが含まれること以外は、通常のプロファイリング・テンプレートに類似しています。このプロファイルは、ロックに関連する問題を捜索する際に役立ちます。ただし、通常のテンプレートより多くのオーバーヘッドが生じます。このテンプレートを使用する場合は、JVMを起動する際に-XX:+UseLockProfilingを指定する必要があります。

オーバーヘッド: プロファイリングを実行しないときでもオーバーヘッドが生じるフラグを指定してJVMを起動する必要があるため、本番環境ではこのテンプレートを使用しないでください。

4.2.3 例外を含むプロファイリング

このテンプレートは、通常のプロファイリング・テンプレートに類似していますが、スタック・トレースを伴う例外イベントも含まれます。アプリケーションでスローされる例外が多い場合、このプロファイルはかなりコストがかかります。当然ながら、例外が頻繁にスローされると、ほとんどの場合はアプリケーションの動作が通常よりも遅くなります。このプロファイルは、例外に関連する問題を捜索する際に役立ちますが、通常のテンプレートよりもオーバーヘッドが高くなります。

オーバーヘッド: このテンプレートは本番環境で使用できますが、デフォルトよりも高いオーバーヘッドが生じることに注意してください。このオーバーヘッドは、スローされる例外の数に比例します。

4.2.4 リアル・タイム

このテンプレートは、ガベージ・コレクション情報など、メモリー・システム関連の情報に重点を置いています。組込みのデフォルトの記録と同じイベント・タイプが使用されます。

オーバーヘッド: このテンプレートは本番環境で使用できます。デフォルトで有効化され、オーバーヘッドは生じません。詳細は、JRockitフライト・レコーダのオンライン・ヘルプを参照してください。

4.2.5 テンプレートの変更

テンプレートを変更して、記録するイベントおよび方法を正確に指定することができます。変更するには、「詳細」をクリックします。テンプレートはディスクに保存して他のユーザーと共有できます。

4.2.6 サーバー側のテンプレート

コマンドラインまたは診断コマンドを使用して記録を開始する場合、すぐに使用できる様々なテンプレートが多数用意されています。表4-1に、これらのテンプレートを示します。

表4-1 サーバー側のテンプレート

テンプレート名 説明

code

詳細なコンパイラ・ログを有効にするための追加の設定。

default

非常に低いパフォーマンス・オーバーヘッド用にチューニングされた、常時動作している本番の使用で推奨されるデフォルトの設定。

freemem

メモリー不足および断片化の問題をデバッグする追加の設定。

full

すべてのサブシステムのすべてのイベントの収集が有効となります。警告: パフォーマンス・オーバーヘッドが非常に高くなります。

io

Java I/Oの詳細ログを有効にする追加の設定。

leak

メモリー・リークのデバッグ用の追加の設定。

locks

同期の詳細なログを有効にするための追加の設定。

memory

GC/メモリー管理の詳細なログを有効にするための追加の設定。

off

すべてのサブシステムのすべてのイベントを無効にします。

profile

プロファイリング記録の作成に推奨される設定。情報の量とパフォーマンス・オーバーヘッドの最適なバランスを実現。

sample

コードのホットスポット・サンプリングを有効にする追加の設定。

semirefs

java.lang.ref.Reference objectsとそのサブクラスをデバッグするための追加の設定。


記録を開始するときに、settingsパラメータでテンプレートを指定します。例:

jrcmd <pid> start_flightrecording duration=5min settings=io

または

-XX:FlightRecorderOptions=defaultrecording=true,settings=default,settings=freemem

上記の例は、複数のsettingsパラメータを指定してテンプレートの組合せを使用する方法を示しています。

独自のテンプレート・ファイルを作成してカスタム・テンプレートを設計することもできます。テンプレートは、JROCKIT_HOME/jre/lib/jfrディレクトリの.jfsファイルに保存されます。既存のファイルをコピーして変更を加えれば、独自のテンプレートを簡単に作成できます。ファイル形式の詳細は、A.3「ファイル形式」を参照してください。