JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
DTrace ユーザーガイド     Oracle Solaris 10 8/11 Information Library (日本語)
search filter icon
search icon

ドキュメントの情報

はじめに

1.  はじめに

2.  DTrace の基本

プローブの一覧を表示する

DTrace でプローブを指定する

プローブを有効にする

DTrace アクションの基本

データ記録アクション

trace() 関数

tracemem() 関数

printf() 関数

printa() 関数

stack() 関数

ustack() 関数

jstack() 関数

破壊アクション

プロセス破壊アクション

stop() 関数

raise() 関数

copyout() 関数

copyoutstr() 関数

system() 関数

カーネル破壊アクション

breakpoint() 関数

panic() 関数

chill() 関数

DTrace 集積体

DTrace 集積体の構文

3.  D 言語を使ったスクリプトの作成

4.  DTrace の使用法

索引

DTrace 集積体

パフォーマンス関連の問題を調査するときは、通常、個々のデータポイントではなく、集積データを調べるほうが効果的です。DTrace には、いくつかの組み込みの集積関数が用意されています。データ集合のサブセットに集積関数を適用し、これらのサブセットの分析結果に再度集積関数を適用すると、データ集合全体に集積関数を適用した場合と同じ結果になります。

DTrace 機能は、集積のため、データ項目のランニングカウントを格納します。集積関数は、現在の中間結果と、関数の適用先の新規要素のみを格納します。中間結果は、CPU 単位で割り当てられます。この割り当て方式では、ロックは必要ありません。したがって、実装は本質的にスケーラブルです。

DTrace 集積体の構文

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

@name[ keys ] = aggfunc( args );

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

name

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

keys

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

aggfunc

DTrace 集積関数のいずれか。

args

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

表 2-1 DTrace の集積関数

関数名
引数
結果
count
none
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