DTrace サンプルを使ってみよう#2(連載2) : やっぱり Sun がスキ! やっぱり Sun がスキ!

やっぱり Sun がスキ!

http://blogs.sun.com/yappri/date/20060623 2006年 6月 23日 金曜日

DTrace サンプルを使ってみよう#2(連載2)

さて、入門編では DTrace の使い方をご紹介しました。
今回はステップアップに役立つ、サンプルをご紹介します。
DTraceの詳細なドキュメント "Solaris Dynamic Tracing Guide" はWeb上に用意されています。
http://docs.sun.com/app/docs/doc/817-6223/
ここで紹介されている80のサンプルが実は/usr/demo/dtraceにあります。
これらを参考にしたり、改良することで、はじめから作成しなくても済みます。
     1  applicat.d
     2  badopen.d
     3  begin.d
     4  callout.d
     5  clause.d
     6  clear.d
     7  countdown.d
     8  counter.d
     9  dateprof.d
    10  delay.d
    11  denorm.d
    12  end.d
    13  error.d
    14  errorpath.d
    15  find.d
    16  firebird.d
    17  hello.d
    18  howlong.d
    19  interp.d
    20  interval.d
    21  intr.d
    22  iocpu.d
    23  iosnoop.d
    24  iothrough.d
    25  iotime.d
    26  iprb.d
    27  kstat.d
    28  ksyms.d
    29  libc.d
    30  lquantize.d
    31  lwptime.d
    32  normalize.d
    33  nscd.d
    34  pri.d
    35  printa.d
    36  pritime.d
    37  prof.d
    38  profpri.d
    39  progtime.d
    40  putnext.d
    41  qlen.d
    42  qtime.d
    43  renormalize.d
    44  restest.d
    45  ring.d
    46  rtime.d
    47  rwinfo.d
    48  rwtime.d
    49  sig.d
    50  soffice.d
    51  spec.d
    52  specopen.d
    53  ssd.d
    54  syscall.d
    55  tick.d
    56  ticktime.d
    57  time.d
    58  tracewrite.d
    59  trunc.d
    60  trussrw.d
    61  userfunc.d
    62  whatfor.d
    63  whatlock.d
    64  where.d
    65  whererun.d
    66  whoexec.d
    67  whofor.d
    68  whoio.d
    69  whopreempt.d
    70  whoqueue.d
    71  whosteal.d
    72  whowrite.d
    73  writes.d
    74  writesbycmd.d
    75  writesbycmdfd.d
    76  writetime.d
    77  writetimeq.d
    78  xioctl.d
    79  xterm.d
    80  xwork.d
いくつか実行してみました。

シグナルを収集するスクリプトです。
 # dtrace -s sig.d
 ^C
              SENDER            RECIPIENT          SIG COUNT
      gnome-terminal               dtrace            2 1
               sched              syslogd           14 1
               sched                 Xorg           14 213
  

 # dtrace -s iotime.d
    DEVICE                                                       FILE RW      MS
     cmdk0                                                       W   0.261
     cmdk0                     /.iiim/le/atokx2/users/root/atokx2.aen  W   0.321
     cmdk0                          /export/DTRACE/.gedit-save-K5ay9b  W   0.072
     cmdk0                     /.iiim/le/atokx2/users/root/atokx2.aen  R  34.949
     cmdk0                     /.iiim/le/atokx2/users/root/atokx2.aen  R   0.270
     cmdk0                     /.iiim/le/atokx2/users/root/atokx2.aen  W   0.548
     cmdk0                     /.iiim/le/atokx2/users/root/atokx2.aen  W   0.546
     cmdk0                     /.iiim/le/atokx2/users/root/atokx2.aen  W   0.541


 # dtrace -s whoio.d
 ^C
    DEVICE                  APP        PID           BYTES
     cmdk0              fsflush          3            3072
     cmdk0                iiimd        621           16384
     cmdk0                gedit       1003           31232
この豊富なサンプルをお手本にすることで、実際にどのように記述したら思い通りの動作をさせることができるのか、
そのヒントになることでしょう。

投稿されたコメント:

コメント
  • HTML文法 不許可