4.2. 診断コマンド (JCMD) を使用した JDK Flight Recorder の設定
Java 診断コマンドを使用して、JDK Flight Recorder (JFR) を設定できます。診断コマンドを実行する最も簡単な方法は、Java インストールディレクトリーにある jcmd ツールを使用する方法です。このコマンドを使用するには、JVM のプロセス識別子またはメインクラスの name と、実際のコマンドを jcmd への引数として渡す必要があります。引数なしで jcmd を実行するか、jps を使用して JVM またはメインクラスの名前を取得できます。jps(Java Process Status) ツールは、アクセス権限のあるターゲットシステムの JVM を一覧表示します。
実行中の Java プロセスの一覧を表示するには、引数を指定せずに jcmd コマンドを使用します。実行中の Java アプリケーションで利用可能なコマンドの完全な一覧を表示するには、プロセス ID またはメインクラスの名前の後に診断コマンドとして help を指定します。
JFR で以下の診断コマンドを使用します。
4.2.1. JFR の起動
JFR.start diagnostic コマンドを使用して、フライトの録画を開始します。以下に例を示します。
jcmd <PID> JFR.start delay=10s duration=10m filename=recording.jfr
表4.1 以下の表には、このコマンドで使用できるパラメーターをまとめています。
| パラメーター | 説明 | データ型 | デフォルト値 |
|---|---|---|---|
| name | 記録の名前 | 文字列 | - |
| settings | サーバー側テンプレート | 文字列 | - |
| duration | 記録期間 | 時間 | 0s |
| filename | 生成される記録ファイル名 | 文字列 | - |
| maxage | バッファーデータの最大期間 | 時間 | 0s |
| maxsize | バッファーの最大サイズ (バイト単位) | ロング | 0 |
| dumponexit | JVM シャットダウン時のダンプ実行の記録 | ブール値 | - |
| path-to-gc-roots | ガベッジコレクタールートへの収集パス | ブール値 | False |
4.2.2. JFR の停止
JFR.stop diagnostic コマンドを使用して、フライトレコーの録画を停止します。以下に例を示します。
jcmd <PID> JFR.stop name=output_file
表4.2 以下の表には、このコマンドで使用できるパラメーターをまとめています。
| パラメーター | 説明 | データ型 | デフォルト値 |
|---|---|---|---|
| name | 記録の名前 | 文字列 | - |
| filename | 録画データをファイルにコピーします。 | 文字列 | - |
4.2.3. JFR のチェック
JFR.check コマンドを使用して、進行中の録画に関する情報を表示します。以下に例を示します。
jcmd <PID> JFR.check
表4.3 以下の表には、このコマンドで使用できるパラメーターをまとめています。
| パラメーター | 説明 | データ型 | デフォルト値 |
|---|---|---|---|
| name | 記録の名前 | 文字列 | - |
| filename | 録画データをファイルにコピーします。 | 文字列 | - |
| maxage | ダンプファイルの最大サイズ | 時間 | 0s |
| maxsize | ダンプする最大バイト数 | ロング | 0 |
| begin | データのダンプ開始 | 文字列 | - |
| end | データをダンプする終了時間 | 文字列 | - |
| path-to-gc-roots | ガベッジコレクタールートへの収集パス | ブール値 | false |
4.2.4. JFR のダンプ
JFR.dump diagnostic コマンドを使用して、フライト録画のコンテンツをファイルにコピーします。以下に例を示します。
jcmd <PID> JFR.dump name=output_file filename=output.jfr
表4.4 以下の表には、このコマンドで使用できるパラメーターをまとめています。
| パラメーター | 説明 | データ型 | デフォルト値 |
|---|---|---|---|
| name | 記録の名前 | 文字列 | - |
| filename | 録画データをファイルにコピーします。 | 文字列 | - |
| maxage | ダンプファイルの最大サイズ | 時間 | 0s |
| maxsize | ダンプする最大バイト数 | ロング | 0 |
| begin | データのダンプ開始 | 文字列 | - |
| end | データをダンプする終了時間 | 文字列 | - |
| path-to-gc-roots | ガベッジコレクタールートへの収集パス | ブール値 | false |
4.2.5. JFR の設定
JFR.configure diagnostic コマンドを使用して、フライトの録画を設定します。以下に例を示します。
jcmd <PID> JFR.configure repositorypath=/home/jfr/recordings
表4.5 以下の表には、このコマンドで使用できるパラメーターをまとめています。
| パラメーター | 説明 | データ型 | デフォルト値 |
|---|---|---|---|
| repositorypath | リポジトリーのパス | 文字列 | - |
| dumppath | ダンプのパス | 文字列 | - |
| stackdepth | スタックの深さ | Jlong | 64 |
| globalbuffercount | グローバルバッファーの数 | Jlong | 32 |
| globalbuffersize | グローバルバッファーのサイズ | Jlong | 524288 |
| thread_buffer_size | スレッドバッファーのサイズ | Jlong | 8192 |
| memorysize | 全体的なメモリーサイズ | Jlong | 16777216 |
| maxchunksize | 個々のディスクチャンクのサイズ | Jlong | 12582912 |
| Samplethreads | スレッドサンプリングの有効化 | ブール値 | true |
改訂日時: 2023-05-11