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++ アプリケーションをプローブするのに使用できます。

probevue コマンドおよび vue スクリプトへの引数は、コマンド・ラインの代わりにスクリプトで指定できます。このスクリプトを使用することで、同じ引数を使用してスクリプトを繰り返し実行できます。vue 言語構成要素 #VUE_CMD_ARGS は、ファイルで probevue コマンドへの引数を指定するために使用できます。また、言語構成要素 #VUE_SCRIPT_ARGS は、vue スクリプトへの引数を指定するために使用できます。
注:
  • 引数がスクリプトで指定される場合、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 トレース・データをフォーマットする方法を指定します。 このオプションの引数はそれぞれ引用符で囲み、引数をスペースで区切る必要があります。 オプションは次のとおりです。
timestamp={0|1|2}
トレース・レポート内の 1 つのイベントに関連付けられたタイム・スタンプの報告を制御します。 次の値のいずれかを指定します。
0
各メッセージについて、トレース開始時に相対的なタイム・スタンプ (秒およびマイクロ秒) を表示します。 トレース出力の最初の行には、個別タイム・スタンプを測る起点となる基本時刻が示されます。
1
各メッセージについて、メッセージの作成にかかる実際の時間を表示します。
2
各メッセージについて、メッセージの作成にかかる実際の時間を printf's %A フォーマットで表示します。
注: 両方のオプションが必要な場合は、0,1 と入力してください。 0,1 の途中にスペースは入れません。
thread={on|off}
各メッセージを生成したスレッド ID を、そのメッセージと共に表示します。 デフォルト値は off です。
pid={p1,..}
指定されたプロセスによって生成されたメッセージのみを表示します。
注: スレッドが属するプロセスをトレース・コンシューマーが識別しようとする前にそのスレッドが停止した場合、または指定したプロセスが既に存在しない場合は、メッセージをプロセス ID でフィルタリングしても、コンシューマーはそのプロセス内のスレッドによって生成されたメッセージを表示できません。
tid={t1,..}
指定されたスレッドによって生成されたメッセージのみを表示します。
abs_mem_for_dvars=memory_in_KB
動的型変数に割り当てられる固定メモリーをキロバイト (KB) 単位で指定します。 このオプションは –e オプションと相互に排他的です。
num_threads_traced=number_of_thread_to_trace
セッションにスレッド・ローカル変数がある場合に、現行の ProbeVue セッションがサポートできるスレッドの最大数を指定します。この値は、対応するグローバル ProbeVue チューナブル値をオーバーライドします。
-d セッションについて使用可能にするプローブのリストを表示します。
-e Pinned_memory_dvar_percent 動的型変数に割り振られる動的データ構造メモリーのパーセンテージを指定します。パーセンテージとして最小 10、最大 100 の値を指定できます。
-f プローブ・アクションにかかった時間を表示するフォーマットを指定します。サポートされるフォーマットは、次のとおりです。
milli
時間をミリ秒単位で表示します。
micro
時間をマイクロ秒単位で表示します。
デフォルトのフォーマットは milli です。
-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 フラグに対して intervalsyscallsyscallxsystraceiosysproc、および net プローブをサポートしています。-l オプションと一緒に誤った引数や不適当なプローブ・マネージャーを指定すると、使用法のエラーが表示されます。

  • probevue -l syscall: システム上でトレースできるすべての可能なシステム・コールをリストします。
  • probevue -l syscallx: システム上でトレースできるすべての基本システム・コールを表示します。このオプションは、32 ビットおよび 64 ビット・システムについて、別々にシステム・コールをリストします。
  • probevue -l syscallx32: システム上でトレースできる 32 ビット基本システム・コールを表示します。
  • probevue -l syscallx64: システム上でトレースできる 64 ビット基本システム・コールを表示します。
  • probevue -l interval: interval プローブで通常のユーザーおよび root ユーザーについてサポートされている、最小および最大間隔の所要時間を指定します。
  • probevue -l systrace: systrace プローブに関する記述を表示します。
    注: syscallx プローブ・マネージャーの場合、-l syscallx プローブが使用されると、32 ビットと 64 ビットの両方の基本システム・コールを表示します。32 ビット・コールのみを表示するには syscallx32 プローブを使用し、64 ビット・コールのみを表示するには syscallx64 プローブを使用します。
-L "Lib path"

指定されたパスでのライブラリー検索に優先順位を付けます。 指定されたパスにライブラリーが見つからない場合、eXtended COFF (XCOFF) ファイルの loader セクションのヘッダーに保存されたデフォルト・ライブラリー・パスでライブラリーを検索します。

-L フラグは、実行可能ファイルの名前を使用するユーザー関数トレース (uft) および C++ プローブ・マネージャーに適用可能です。 他のプローブ・マネージャーでは、-L フラグは無視されます。

-o Output_file 標準出力ではなくファイルにレポートを書き込みます。
-P C++ header file C++ ヘッダー・ファイルをプリプロセスし、入力された C++ ヘッダー・ファイルごとに出力されたプリプロセス済みファイルを作成します。プリプロセスされた出力ファイルの名前は、入力された C++ ヘッダー・ファイルと同じもので、.Vue 接尾部が付いています。
注: 他のフラグは、-P オプションと一緒に使用できません。-P フラグは、.Vue 接尾部の付いたファイル名以外のすべてのファイル名を受け入れます。
-q info=level vue スクリプトの構文解析中の情報メッセージの報告レベルを指定します。有効な値は次のとおりです。
none
情報メッセージは表示されません。
normal
重要な情報メッセージのみが表示されます。
detail
誤った実行結果になる可能性があるすべての情報メッセージが報告されます。
-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 サブコマンドの項を参照してください。

  1. スクリプト syscall.e を指定して probeVue セッションを開始するには、次のように入力します。
    probevue syscall.e
  2. トレース・レポートを /tmp/trace_report ファイルに送るには、次のように入力します。
    probevue -o /tmp/trace_report syscall.e
  3. スレッド ID 12345,4567 のトレース・レポートおよびトレースの開始時刻に相対的なタイム・スタンプを表示するには、次のように入力します。
    probevue -c "timestamp=0 tid=12345,4567" syscall.e
  4. ヘッダー・ファイル stat.i を組み込み、4K の CPU 別バッファーを割り当てるには、次のように入力します。
    probevue –I stat.i –s 4 syscall.e
  5. C++ ヘッダー・ファイル myheader.h をプリプロセスするには、以下のように入力します。
      probevue –P myheader.h
    probevue コマンドは、myheader.Vue ファイルを生成します。このファイルは暗号化 C++ ヘッダー・ファイルであり、-I オプションを使用することによりトレース・セッションに組み込まれます。
  6. 動的データ構造 (スタック・トレースおよび結合配列) の現行セッションについて pinned (滞留) されたメモリーのパーセンテージを、ASO.e スクリプト用のデフォルトの 50 -75 から増やすには、以下のように入力します。
    probevue -e 75  ASO.e
  7. 以下のスクリプトは、スクリプト内で引数を提供する例です。
    !#/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 コマンドが入っています。