特集
カーネル挙動を追尾する「DTrace」の実力:OS選択の新常識(6/8 ページ)
Solaris 10の強化機能としてクローズアップされることが多い「DTrace」。さまざまなサービスが並列稼働する基幹サーバでは、カーネル挙動によってボトルネックを判断することも多い。DTraceは、解決するための打開策となるのか? 実例サンプルで検証していく。
quantize集計関数で頻度をグラフ表示する
コマンドごとの読み取りに要した時間総計を見るのではなく、「何回の呼び出しがあって、それぞれの所用時間はどの程度の配分になっているのか」を知りたいケースもある。
この目的のためには、quantize集計関数とlquantize集計関数が用意されている。
quantize集計関数は結果を2の累乗で、lquantize関数は指定した数値単位ごとに区切り、それぞれ「どの値がどの頻度で現われるのか」をグラフ化するものだ。ここでは、リスト2のreturnプローブ処理を次のように変更する。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
すると、実行結果は、次のようになる。
*** 一部省略されたコンテンツがあります。PC版でご覧ください。 ***
この出力形式の読み取り方は、例えばcatの部分について見れば、
- 8192ナノ秒〜16384ナノ秒が1回
- 16485ナノ秒〜32768ナノ秒が2回
- 32768ナノ秒〜65536ナノ秒が1回
の計4回の呼び出しがされたという意味になる。
このようにquantize集計関数を使えば、単純な総計を見るのではなく、「どの値がどのような頻度で発生するのか」を調べることができるのだ。
Copyright © ITmedia, Inc. All Rights Reserved.