Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
はじめての DTrace(2)“簡単なことからコツコツと”shojih
 本日の学習目標 DTrace とはどのようなもの? DTrace を使うと何が便利? 何から学習するといいだろうか? Dプログラムの紹介 Dプログラムの実例紹介
Dプログラムの紹介
 と、その前に参考本の紹介 ●  タイトル/著者     ● DTrace: Dynamic Tra-       cing in Oracle Solaris,       Mac OSX and FreeBSD     ● Brendan ...
Dプログラムの紹介-特長(1)●   C言語によく似た言語仕様になっています     ● 制御構造のサブセット     ● 拡張されたデータ構造        ● 文字列型、連想配列、集積体        ● 組み込み関数、組み込み変数    ...
Dプログラムの紹介-特長(2)●   バッファー機能    ● トレースアクションがデータを記録       ● trace(式)●   集積関数    ● 集計を行う際に便利です    ● awk(1)やPerlによる後処理が不要になります ...
Dプログラムの紹介-書式●   複数のプローブ節によって構成    ● プローブ節の標準形式    プロバイダ : モジュール : 関数             : 名前    Provider : Module : Function : Na...
書式の詳細、変数、組み込み関数については次回以降に紹介します。今日は雰囲気だけご理解ください。
Dプログラムの紹介-超簡単な例# dtrace -n BEGIN -n ENDdtrace: description BEGIN matched 1 probedtrace: description END matched 1 probeCPU...
Dプログラムの紹介-バッファ使用例/* Hello.d */BEGIN{ trace(“Hello, world”);}# dtrace ­s Hello.ddtrace: script Hello.d matched 1 probeCPU I...
Dプログラムの紹介-書式付き出力(1)/* trussrw.d */syscall::read:entry, syscall::write:entry/pid == $1 /{  printf(“%s(%d, %x, %d)”, probefu...
Dプログラムの紹介-書式付き出力(2) # dtrace -q -s trussrw.d 12345              = 1 write(2,  0x8089e48,          1)   = 1 read(63, 0x8090...
Dプログラムの紹介-集積関数 (さわりだけ。。)@name[keys] = aggfunc(args);● @ keys で集積された結果 ● keys カンマで区切られた D の変数のリスト● aggfunc の例  ●   count() ...
Dプログラムの紹介-集積関数(1)/* quantize.d */syscall::write:entry{  self->ts = timestamp;}syscall::write:return/self->ts/{  @time[exec...
Dプログラムの紹介-集積関数(2)vi           value  ­­­­­­­­­­­­­ Distribution ­­­­­­­­­­­­­ count            8192 |                     ...
Dプログラムの紹介-サンプルツール●   /usr/dtrace/DTT (Oracle Solaris 11 の場合)●   /opt/DTT (OpenIndianaの場合)     ● そのまま解析ツールとして使える便利なツールキット集●...
Dプログラム実例紹介~ DTrace本と DTrace Tool Kit(DTT)のサンプルプログラムからDTrace初心者でも開発未経験者でも、ちょっと使って見ようかなと思われそうなDプログラムを実演します~
次は何を学習しましょうか?    次回にづづく!
Upcoming SlideShare
Loading in …5
×
Upcoming SlideShare
DTrace for biginners part(1)
Next
Download to read offline and view in fullscreen.

1

Share

Download to read offline

DTrace for biginners part(2)

Download to read offline

DTrace for biginners part(2) Japanese lang only

Related Audiobooks

Free with a 30 day trial from Scribd

See all

DTrace for biginners part(2)

  1. 1. はじめての DTrace(2)“簡単なことからコツコツと”shojih
  2. 2.  本日の学習目標 DTrace とはどのようなもの? DTrace を使うと何が便利? 何から学習するといいだろうか? Dプログラムの紹介 Dプログラムの実例紹介
  3. 3. Dプログラムの紹介
  4. 4.  と、その前に参考本の紹介 ● タイトル/著者 ● DTrace: Dynamic Tra- cing in Oracle Solaris, Mac OSX and FreeBSD ● Brendan Gregg/Jim Mauro ● ISBN-10:0132091518 ● 発売日: 2011/4/1 ● 4,579 (参考Amazon) ● dtracebook.com から本で 紹介されているサンプルDプロ グラムを入手可能
  5. 5. Dプログラムの紹介-特長(1)● C言語によく似た言語仕様になっています ● 制御構造のサブセット ● 拡張されたデータ構造 ● 文字列型、連想配列、集積体 ● 組み込み関数、組み込み変数 ● スレッド固有変数、節固有変数 ● 構造体、共用体、多次元配列、ポインタも使用可能です ● 無効なポインタアクセスはDTrace実行環境が検出 ● ANSI C演算子● カーネルCデータ型への完全なアクセスが可能です
  6. 6. Dプログラムの紹介-特長(2)● バッファー機能 ● トレースアクションがデータを記録 ● trace(式)● 集積関数 ● 集計を行う際に便利です ● awk(1)やPerlによる後処理が不要になります ● count, sum, avg, min, max, lquantize, quantize ● 結果は集積体に保存します ● @name[ keys ] = aggfunc( args );
  7. 7. Dプログラムの紹介-書式● 複数のプローブ節によって構成 ● プローブ節の標準形式 プロバイダ : モジュール : 関数 : 名前 Provider : Module : Function : Name プローブ / 述語 / { アクション文 } ● awk(1)やPerlに似た形式
  8. 8. 書式の詳細、変数、組み込み関数については次回以降に紹介します。今日は雰囲気だけご理解ください。
  9. 9. Dプログラムの紹介-超簡単な例# dtrace -n BEGIN -n ENDdtrace: description BEGIN matched 1 probedtrace: description END matched 1 probeCPU ID FUNCTION:NAME 0 1 :BEGIN^C 0 2 :END#
  10. 10. Dプログラムの紹介-バッファ使用例/* Hello.d */BEGIN{ trace(“Hello, world”);}# dtrace ­s Hello.ddtrace: script Hello.d matched 1 probeCPU ID FUNCTION:NAME    0       1                  :BEGIN                Hello, world#
  11. 11. Dプログラムの紹介-書式付き出力(1)/* trussrw.d */syscall::read:entry, syscall::write:entry/pid == $1 /{ printf(“%s(%d, %x, %d)”, probefunc, arg0,arg1, arg2);}syscall::read:return, syscall::write:return/pid == $1 /{ printf(“tt = %dn”, arg1 );}
  12. 12. Dプログラムの紹介-書式付き出力(2) # dtrace -q -s trussrw.d 12345 = 1 write(2, 0x8089e48, 1) = 1 read(63, 0x8090a38, 1024) = 0 read(63, 0x8090a38, 1024) = 0 write(2, 0x8089e48, 52) = 52 read(0, 0x8089878, 1) = 1 write(2, 0x8089e48, 1) = 1 read(63, 0x8090a38, 1024) = 0 read(63, 0x8090a38, 1024)^C #
  13. 13. Dプログラムの紹介-集積関数 (さわりだけ。。)@name[keys] = aggfunc(args);● @ keys で集積された結果 ● keys カンマで区切られた D の変数のリスト● aggfunc の例 ● count() 引数はなく、呼ばれた回数を返す ● sum() 引数で与えられた値の合計値を返す ● avg() 引数で与えられた値の平均値を返す ● min(expr)/max(expr) 引数で与えられた値のうち最小値/最大値を返す ● lquantize() 第1引数で与えられた値を、第2, 3, 4 引数で与えられたリニア(線形)の単位にけて回数を 集計し、結果をグラフで出力 ● quantize() 引数で与えられた値を2の累乗の単位に分けて集計し、結果をグラフで出力
  14. 14. Dプログラムの紹介-集積関数(1)/* quantize.d */syscall::write:entry{ self->ts = timestamp;}syscall::write:return/self->ts/{ @time[execname] = quantize(timestamp - self->ts); self->ts = 0;}
  15. 15. Dプログラムの紹介-集積関数(2)vi           value  ­­­­­­­­­­­­­ Distribution ­­­­­­­­­­­­­ count            8192 |                                         0           16384 |@@@@@@@@@@@@@@@@@@@@                     1           32768 |@@@@@@@@@@@@@@@@@@@@                     1           65536 |                                         0  dtrace           value  ­­­­­­­­­­­­­ Distribution ­­­­­­­­­­­­­ count           32768 |                                         0           65536 |@@@@@@@@@@@@@@@@@@@@@@@@@  1          131072 |                                         0
  16. 16. Dプログラムの紹介-サンプルツール● /usr/dtrace/DTT (Oracle Solaris 11 の場合)● /opt/DTT (OpenIndianaの場合) ● そのまま解析ツールとして使える便利なツールキット集● /usr/demo/dtrace (Solaris 10の場合) ● マニュアルに記載されている約80個のDスクリプト ● 文法の解説 ● 各プロバイダの解説 ● システム調査ツールの例として利用可能 ● ユーザープロセスの追跡例
  17. 17. Dプログラム実例紹介~ DTrace本と DTrace Tool Kit(DTT)のサンプルプログラムからDTrace初心者でも開発未経験者でも、ちょっと使って見ようかなと思われそうなDプログラムを実演します~
  18. 18. 次は何を学習しましょうか? 次回にづづく!
  • KeisukeKadoyama

    Jul. 4, 2012

DTrace for biginners part(2) Japanese lang only

Views

Total views

1,320

On Slideshare

0

From embeds

0

Number of embeds

5

Actions

Downloads

13

Shares

0

Comments

0

Likes

1

×