マニュアルページ er_kernel.1
名前
er_kernel - Solaris カーネルに対するアナライザの実験の生成
形式
er_kernel args [load-command]
使用条件
DTrace をサポートする Solaris システム
機能説明
er_kernel コマンドは、一部 Solaris リリースで 提 供 さ れ る
DTrace 機 能 を使用して、Solaris カーネルから実験を生成しま
す。データは、GUI プログラムの analyzer あるいはコマンド行の
er_print を使って見ることができます。
er_kernel コマンドは、スーパーユーザー権限を持つユーザーのみ
使用できます。
負荷を与えるコマンド (load-command) が指 定 さ れ た 場 合、
er_kernel は フォークし、子を休止期間の長さだけ休眠させた後
に、コマンドを実行して負荷を与えます。子 が 終 了 す る と、
er_kernel は休止期間の長さだけ動作を継続してから終了します。
休止期間の長さは、-q 引数で指定できます。
引数
引数なしで呼び出された場合は、使用法のメッセージを出力 し ま
す。
-p option
時間ベースのプロファイルを収集します。option には、次の
いずれかの値を指定できます。
値 意味
off 時間ベースのプロファイルを無効にします。
on デフォルトのプロファイル間隔 (約 10 ミリ 秒 )
で時間ベースのプロファイルを有効にします。
lo[w] 低分解能のプロファイル間隔 (約 100 ミリ秒) で
時間ベースのプロファイルを有効にします。
hi[gh] 高分解能のプロファイル間隔 (約 1 ミリ秒) で時
間ベースのプロファイルを有効にします。
n n のプロファイル間隔で時間ベースのプロファ イ
ルを有効にします。
値は、 u (マイクロ秒) または m (ミリ秒) い ず
れ かの接頭辞を付けて整数か浮動小数点数を指定
できます。接尾辞がない場合、値はミリ秒単位 と
見なされます。
値がシステムクロックプロファイルの最小値よ り
小 さい場合は最小値に設定されます。クロックプ
ロファイルの分解能の複数倍でない場 合 は、 ク
ロッ クプロファイルの分解能のもっとも近い倍数
に切り下げられます。値がクロックプロファイ ル
の 最大値より大きい場合は、エラーが報告されま
す。負数の場合も、エラーが報告されます。ゼ ロ
の 場合、時間ベースのプロファイルは無効になり
ます。
引数として -p off 引数が明示的に指定されていない場 合、
時間ベースのプロファイルは有効になります。
-T { pid/tid | 0/did }
指定プロセス (pid) の指定スレッド (tid) に関す る プ ロ
ファイルか、指定内部カーネルスレッド ID ((did) に関する
プロファイル。-p が省略された場合、プロファイルが有効に
なり、-p off が指定された場合、データは記録されません。
-t duration
指定の時間の間、データを収集します。duration には、1 つ
の 数 値に続けて、分を意味する m か、秒を意味する s (デ
フォルト) を指定するか、- 符号で区切って 2 つの数値を指
定します。数値が 1 つ指定された場合は、実行開始からその
時間が経過するまでデータ収集されます。2 つの数値が指 定
された場合は、1 つ目の時間から 2 つ目の時間までデータ収
集されます。2 つ目の時間がゼロの場合は、実行終 了 ま で
デー タ 収集されます。ゼロ以外の 2 つの数値を指定する場
合、最初の数値は 2 つ目の数値より小さい値にします。
-q duration
指定された負荷の実行の前後に duration (秒単位) の長さの
休止期間を挿入します。デフォルトの時間は 3 秒です。負荷
が指定されなかった場合、休止期間は無視されます。
-S interval
指定された間隔 (秒単位) で定期標本を収集します。 inter-
val がゼロの場合、定期標本は収集されません。デフォルト
では、1 秒おきに定期標本収集が有効になります。標本に 記
録 されるデータは、er_kernel プロセスに関するデータで、
タイムスタンプやカーネルからの実行統計データなどが含 ま
れ ます。標本はデータ内のマーカーで、フィルタ処理に利用
できます。
-C comment
実験にコメント (単一トークンか引用符付き文字列) を挿 入
します。最高 10 個のコメントを指定できます。
-o experiment_name
記録する実験の名前として、experiment_name を使 用 し ま
す。experiment_name 文字列の最後は .er である必要があり
ます。.er で終えていない場合は、エラーが報告され、実 験
は実行されません。
-o が指定されなかった場合は、stem.n.er の形式の名前が選
択されます。stem は文字列、n は数値です。 -g 引数が指定
された場合は、グループ名内の .erg 接尾辞の前に現れる 文
字 列が stem 接頭辞として使用されます。 -g 引数が指定さ
れなかった場合、stem 接頭辞には、文字列 ktest が設定 さ
れます。
指定された名前が stem.n.er の形式でなく、その名前が使用
中 の場合は、エラーメッセージが出力され、実験は実行され
ません。名前が上記の形式で、使用中の場合、実験は、使 用
されていない n で最初に使用可能な値に対応する名前で記録
されます。名前が変更された場合は、警告が発行されます。
-l signal
指定シグナルが er_kernel プロセスに供給されるたびに標本
ポイントを記録します。
-y signal[,r]
signal でデータの記録を制御します。指 定 シ グ ナ ル が
er_kernel プロセスに供給されるたびに、一時停止 (データ
を記録しない) と再開 (データを記録) の状態が切り替わ り
ます。オプションの ,r フラグが指定された場合、er_kernel
は再開状態で開始されます。それ以外の場合は、休止状態 で
開 始されます。このオプションは、標本ポイントの記録には
影響しません。
-d directory_name
directory_name ディレクトリに実験を記録します。ディレク
ト リが指定されなかった場合は、現在の作業用ディレクトリ
に記録されます。
-g group_name
実験を実験グループ group_name の実験と 見 な し ま す。
group_name 文 字列の最後は .erg である必要があります。
.erg で終わっていない場合は、エラーが報告され、実験は実
行されません。
-L size
記録するプロファイルおよびトレースデータのサイズを size
メ ガバイトに制限します。この制限は、すべてのプロファイ
ルおよびトレースデータの合計に適用されるだけで、標本 ポ
イ ントには適用されません。この限界値は概数にすぎず、こ
の値を超えることがあります。この上限に達すると、実験 は
終了します。size には、次のいずれかの値を指定できます。
値 意味
unlimited or none
実験のサイズ制限をしません。
n n MB の制限を課します。n は、ゼロより大きな整
数である必要があります。
記録データ量のデフォルト限界値は、2000M バイトです。
-A option
実行中に使用されるカーネルモジュールを、記録されてい る
実験にコピーするかどうかを制御します。option には、次の
いずれかの値を指定できます。
値 意味
on カーネルモジュールを実験にアーカイブします。
off カーネルモジュールを実験にアーカイブ し ま せ
ん。
copy カーネルモジュールを実験にコピーして、アー カ
イブします。
別のマシンに実験をコピーするか、別のマシンから実験を 読
み取る場合は、 -A copy を指定します。
-A のデフォルトの設定は copy です。
-n ドライランを行います。データは収集せず、実験を実行し た
場合の詳細情報を出力します。-v を有効にします。
-V バージョン情報を出力します。これ以降に指定された引数 は
検査されず、これ以外の処理は行われません。
-v バージョンとともに、実行する実験に関する詳細情報を出 力
します。
記録されるデータ
時間プロファイル
時間プロファイル実験は、「KCPU サイクル」というラベルの
メ トリックを 1 つサポートします。データは CPU 別に記録
され、CPU として CPU 番号、LWPID として、カーネルが代わ
り に実行しているプロセスの PID、raw データ内のスレッド
としてカーネルのスレッド ID が示されます。
-T が 1 つ以上指定された場合は、「Kthr Time」というラベ
ルの追加のメトリックが生成されます。「Kthr Time」は、時
計のチックのたびに各スレッドに関するカーネルのマイク ロ
ス テー トを記録し、CPU 以外のステート (CPU 待ちの場合)
は、疑似関数 <SLEEPING> または <STALLED> に費やされた時
間として示されます。
プロファイル統計
カーネルのプロファイルが終了すると、ドライバに関する数行の統
計データを書き込みます。ただし、この統計はまだ実装されていま
せん。
DTrace 用のシステム設定
通常、DTrace ドライバの使用はユーザーroot に限定されます。通
常 のユーザー(username) として使用するには、使用できる権限を
割り当てて貰い、かつ sys グループに所属する必要があります。
ユーザーに権限を付与するには、/etc/user_attr に次の行を追 加
します。
username::::defaultpriv=basic,dtrace_kernel,dtrace_proc
ユーザーを sys グループに登録するには、/etc/group ファイル内
の sys の行に username を追加します。
関連項目
dtrace(1M) (Solaris 10 以降 )、 analyzer(1)、 collect(1)、
er_archive(1)、 er_cp(1)、 er_export(1)、 er_mv(1)、
er_print(1)、 er_rm(1)、 er_src(1)、マニュアル 『プログラ ム
のパフォーマンス解析』