DTrace ユーザーガイド

DTrace 集積体の構文

DTrace 集積体の一般構文は、次のとおりです。

@name[ keys ] = aggfunc( args );

この一般構文では、変数は次のように定義されています。

name

集積体の名前。先頭に @ 文字が付きます。

keys

D 式をコンマで区切って指定します。

aggfunc

DTrace 集積関数のいずれか。

args

その集積関数に対応する引数をコンマで区切って指定します。

表 2–1 DTrace の集積関数

関数名 

引数 

結果 

count

なし 

count 関数が呼び出される回数。

sum

スカラー式 

指定された式の合計値。 

avg

スカラー式 

指定された式の算術平均。 

min

スカラー式 

指定された式のうちもっとも小さい値。 

max

スカラー式 

指定された式のうちもっとも大きい値。 

lquantize

スカラー式、下限値、上限値、ステップ値 

指定された式の値から成る、指定された範囲の線形度数分布。この集積関数は、指定された式より小さい、最大バケット内の値を増分します。

quantize

スカラー式 

指定された式の値の二乗度数分布。この集積関数は、指定された式より小さい、2 のべき乗の最大バケット内の値を増分します。


例 2–14 集積関数の使用法

次に示すのは、count 集積関数を使って、プロセスごとに write(2) システムコールの数をカウントする例です。この集積体は、dtrace コマンドが終了するまで、一切のデータを出力しません。出力される内容は、dtrace コマンドがアクティブであったときに収集されたデータの概要です。


# cat writes.d
#!/usr/sbin/dtrace -s
syscall::write:entry]
{   @numWrites[execname] = count();
}

# ./writes.d
dtrace: script 'writes.d' matched 1 probe
^C
  dtrace                           1
  date                             1
  bash                             3
  grep                            20
  file                           197
  ls                             201