probevue コマンド
目的
動的トレース・セッションを開始します。このコマンドは、動的トレース・セッションを開始しなくても、ヘッダー・ファイルをプリプロセスして終了することができます。
構文
probevue [ -c "{ timestamp = {
0 | 1| 2} thread = { on | off } tid = { t1,
... } pid = { p1, ... } abs_mem_for_dvars=memory_in_KB
num_threads_traced=number_of_thread_to_trace}" ] [-d] [ -i
Async_Fetch_Interval ] [ -e
Pinned_memory_dvar_percent ] [-f
to_print_time_profile_data_milli_or_micro ] [ -I
Include_file1, ... ] [ -K ] [ -o
Output_file ] [-q
info={none
|normal
|detail
}] [ -s
Buffer_size ][ -t
Interval ][ -T ] [-u] [ -X
Program_name [ -A
"Arguments_to_program" ] [-L
"Lib path"]
[-g] ] [
Script_name [ Arguments_to_script ] ]
probevue [ -P C ++_header_file ]
probevue [ -l "{ syscall | syscallx | syscallx32 | syscallx64 | interval | systrace | sysproc | io | net}"]
説明
probevue コマンドは、オペレーティング・システムおよびユーザー・プログラムを分析するために、ユーザー指定のプローブを動的に使用可能にし、プローブの起動時にプローブに関連付けられたアクションを開始し、収集したトレース・データを表示します。
vue スクリプトで probevue コマンドを指定すると、このコマンドはスクリプトに指定されたトレースを使用可能にし、トレース出力を生成します。
-P オプションが C++ ヘッダー・ファイルと一緒に指定されると、このコマンドはプリプロセスされた暗号化 C ヘッダー・ファイルを生成します。暗号化 C ヘッダー・ファイルはさらに、probevue コマンドの -I オプションを使用することにより、C++ アプリケーションをプローブするのに使用できます。
- 引数がスクリプトで指定される場合、vue 構成体のすべての引数が同じ行になければなりません。
- probevue コマンドへの引数がコマンド・ラインとスクリプトで指定されている場合、コマンド・ラインの引数のみが考慮され、スクリプト内のコマンド引数はすべて無視されます。この処理は、vue スクリプトの引数にも適用されます。
- #VUE_CMD_ARGS 構成体および #VUE_SCRIPT_ARGS 構成体は、標準入力をサポートしません。
probevue
コマンドの動的メモリー所要量は、CPU の製品数と、CPU 当たりのトレース・バッファー・サイズ (probevctrl
コマンドの default_buffer_size チューナブル・パラメーターの値) に比例します。このため、多数の CPU があり、CPU 当たりのバッファー値が高いシステムでは、probevue
コマンドが、ulimit
パラメーターによって設定されたメモリー制限を超える可能性があります。そのようなシナリオでは、その制限を超えるように、probevue
コマンドで -u フラグを設定して実行してください。
フラグ
項目 | 説明 |
---|---|
-A "Arguments_to_program " | -X フラグを使用して指定したプログラムに対する引数を指定します。 アプリケーションの引数が複数ある場合は、各引数を引用符で囲みます。 |
-g | probevue セッションのすべての節からの出力のグループ化をオンにします。つまり、ある節からの出力すべてが、別の CPU で同時に実行されている他の節からの出力によってインターリーブされることなく、一緒に表示されます。
-g フラグは、VUE スクリプトにある
group_output_start() ステートメントまたは group_output_end() ステートメントをオーバーライドします。
すべての節の出力は、group_output_start() ステートメントまたは group_output_end() ステートメントが節にあるかどうかに関係なく、節の開始から節の終了までグループ化されます。
|
-c | トレース・データをフォーマットする方法を指定します。
このオプションの引数はそれぞれ引用符で囲み、引数をスペースで区切る必要があります。
オプションは次のとおりです。
|
-d | セッションについて使用可能にするプローブのリストを表示します。 |
-e Pinned_memory_dvar_percent | 動的型変数に割り振られる動的データ構造メモリーのパーセンテージを指定します。パーセンテージとして最小 10、最大 100 の値を指定できます。 |
-f | プローブ・アクションにかかった時間を表示するフォーマットを指定します。サポートされるフォーマットは、次のとおりです。
|
-i Async_Fetch_Interval | probevue コマンドについて非同期統計がフェッチされる回数を指定します。このオプションは、probevue コマンドのグローバル間隔時間をオーバーライドします。 最小間隔は 100 ミリ秒です。 |
-I Include_file1 | 後処理済みヘッダー・ファイル (つまり C プリプロセッサー演算子のないヘッダー・ファイル) として指定されたファイルを使用します。 これは vue スクリプトのコンパイル時に組み込むように、コマンド行を使用して渡すことができます。 |
-K | probeVue セッションで RAS イベント関連機能を使用可能にします。 |
-l | プローブ・マネージャーによってサポートされているすべてのプローブ・ポイントをリストします。probevue コマンドで -l フラグを指定する場合、使用しなければならないフラグは他にはありません。例えば -l syscall
-l syscallx
-l interval のように、-l フラグと一緒に複数のプローブ・マネージャーを指定することができます。プローブ・マネージャーは -l フラグに対して interval、syscall、syscallx、systrace、io、sysproc、および net プローブをサポートしています。-l オプションと一緒に誤った引数や不適当なプローブ・マネージャーを指定すると、使用法のエラーが表示されます。
|
-L "Lib path" |
指定されたパスでのライブラリー検索に優先順位を付けます。
指定されたパスにライブラリーが見つからない場合、eXtended COFF (XCOFF) ファイルの -L フラグは、実行可能ファイルの名前を使用するユーザー関数トレース (uft) および C++ プローブ・マネージャーに適用可能です。 他のプローブ・マネージャーでは、-L フラグは無視されます。 |
-o Output_file | 標準出力ではなくファイルにレポートを書き込みます。 |
-P C++ header file | C++ ヘッダー・ファイルをプリプロセスし、入力された C++ ヘッダー・ファイルごとに出力されたプリプロセス済みファイルを作成します。プリプロセスされた出力ファイルの名前は、入力された C++ ヘッダー・ファイルと同じもので、.Vue 接尾部が付いています。
注: 他のフラグは、-P オプションと一緒に使用できません。-P フラグは、.Vue 接尾部の付いたファイル名以外のすべてのファイル名を受け入れます。
|
-q info=level | vue スクリプトの構文解析中の情報メッセージの報告レベルを指定します。有効な値は次のとおりです。
|
-s Buffer_size | CPU 別のトレース・バッファー・サイズ (KB) を指定します。 この値は次の 4K ページに繰り上げて丸めます。以下のレベルを使用できます。 |
-t Interval | トレース・バッファーを読み取る頻度を指定します。
指定できる最小間隔は 10 ミリ秒です。
通常のユーザー (aix.ras.probevue.trace 特権のないユーザー) が指定した時間間隔は、次に大きい 10 ミリ秒の倍数に丸められます。
読み取り速度は probeVue 構成から取得されます。
注: 通常のユーザーは最小読み取り速度を指定できますが、probevctrl コマンドはデフォルト読み取り速度を変更することができます。
|
-T | セッションの開始時にプローブ・アクションのプロファイル作成を開始します。-T フラグにより、セッションの開始時にプローブ・アクションのプロファイル作成が確実に行われるようになります。 |
-u | probeVue セッションを開始し、データ・セグメントを無制限の値に設定します。-u フラグは、大規模なバイナリーの複数のプロセスからスタック・トレースを出力するために使用されます。 |
-X Program_name | プログラムを起動し、プログラムが実際に開始される前にプローブを使用可能にします。 vue スクリプトの中で特殊環境変数 $__CPID と $__CTID を使用して、起動されたアプリケーションのプロセス ID とスレッド ID を識別できます。 |
セキュリティー
RBAC ユーザーおよび Trusted AIX® ユーザーへの注意: このコマンドは特権操作を実行できます。特権命令を実行できるのは特権ユーザーのみです。 権限および特権について詳しくは、「セキュリティー」の『特権コマンド・データベース』を参照してください。このコマンドに関連した特権および権限のリストについては、lssecattr コマンドまたは getcmdattr サブコマンドの項を参照してください。
例
- スクリプト syscall.e を指定して probeVue セッションを開始するには、次のように入力します。
probevue syscall.e
- トレース・レポートを /tmp/trace_report ファイルに送るには、次のように入力します。
probevue -o /tmp/trace_report syscall.e
- スレッド ID 12345,4567 のトレース・レポートおよびトレースの開始時刻に相対的なタイム・スタンプを表示するには、次のように入力します。
probevue -c "timestamp=0 tid=12345,4567" syscall.e
- ヘッダー・ファイル stat.i を組み込み、4K の CPU 別バッファーを割り当てるには、次のように入力します。
probevue –I stat.i –s 4 syscall.e
- C++ ヘッダー・ファイル myheader.h をプリプロセスするには、以下のように入力します。
probevue コマンドは、myheader.Vue ファイルを生成します。このファイルは暗号化 C++ ヘッダー・ファイルであり、-I オプションを使用することによりトレース・セッションに組み込まれます。probevue –P myheader.h
- 動的データ構造 (スタック・トレースおよび結合配列) の現行セッションについて pinned (滞留) されたメモリーのパーセンテージを、ASO.e スクリプト用のデフォルトの 50 -75 から増やすには、以下のように入力します。
probevue -e 75 ASO.e
- 以下のスクリプトは、スクリプト内で引数を提供する例です。
スクリプトは、!#/usr/bin/probevue #VUE_CMD_ARGS=-o /tmp/trace_out #VUE_SCRIPT_ARGS=read @@syscall:*:$1:entry { printf("%t¥n", get_stktrace(4)); }
./script.e
として実行されます。
ファイル
項目 | 説明 |
---|---|
/usr/bin/probevue | probevue コマンドが入っています。 |