このドキュメントで説明するソフトウェアは、Extended SupportまたはSustaining Supportのいずれかにあります。 詳細は、https://www.oracle.com/us/support/library/enterprise-linux-support-policies-069172.pdfを参照してください。
Oracleでは、このドキュメントに記載されているソフトウェアをできるだけ早くアップグレードすることをお薦めします。

機械翻訳について

11.6.10 集計

DTraceには、個々のプローブが収集したデータを集積するための次の組込み関数があります。

集積関数

説明

avg(scalar_expression)

引数として指定された式の算術平均を返します。

count()

関数がコールされた回数を返します。

lquantize(scalar_expression, lower_bound, upper_bound, step_interval)

指定された下限、上限およびステップ間隔にスケール調整された、引数として指定された式の線形度数分布を返します。 指定された式より小さい最大バケット内の値を増分します。

max(scalar_expression)

引数として指定された式の最大値を返します。

min(scalar_expression)

引数として指定された式の最小値を返します。

quantize(scalar_expression)

引数として指定された式の二乗度数分布を返します。 指定された式より小さい2のべき乗の最大バケット内の値を増分します。

stddev(scalar_expression)

引数として指定された式の標準偏差を返します。

sum(scalar_expression)

引数として指定された式の合計を返します。

DTraceは、連想配列で使用されるものと同様のタプル式を使用して集積体の結果に索引を設定します。

@name[list_of_keys] = aggregating_function(args);

集積体の名前には、接頭辞として@文字が付けられます。 すべての集積体はグローバルです。 名前を指定しない場合、集積体は匿名になります。 キーは、集積関数で収集しているデータを示します。

たとえば、次のコマンドでは、ユーザーが[Ctrl]+[C]を入力するまで、プロセスによって起動されたwrite()システム・コールの数をカウントします。

# dtrace -n syscall::write:entry'{ @["write() calls"] = count(); }'
dtrace: description 'syscall:::' matched 1 probe
^C

  write() calls                                              9

次の例では、read()write()両方のシステム・コールの数をカウントします。

# dtrace -n syscall::write:entry,syscall::read:entry\
'{ @[strjoin(probefunc,"() calls")] = count(); }'
dtrace: description 'syscall::write:entry,syscall::read:entry' matched 2 probes
^C

  write() calls                                            150
  read() calls                                            1555

ノート

dtrace-qオプションを指定するか、Dプログラムで#pragma D option quietを指定すると、DTraceによって集積体の自動出力が抑制されます。 この場合、情報を表示するには、printa()文を使用する必要があります。