Home | History | Annotate | Line # | Download | only in Docs
      1 Faq - Frequently Asked Questions
      2 
      3    The following may serve as a guide to the DTraceToolkit.
      4 
      5 16-May-2005, ver 0.30	(first version of the FAQ)
      6 
      7 The DTraceToolkit is new, and as such there hasn't been many questions asked.
      8 This may be better called a "possibly asked questions" :)
      9 
     10 
     11 Questions 
     12 
     13 1. Intro
     14 1.1. What is the DTraceToolkit?
     15 1.2. Who wrote the DTraceToolkit?
     16 1.3. Where do I get support?
     17 1.4. Am I now a performance tuning expert?
     18 1.5. Will this solve all my performance problems?
     19 1.6. So the DTraceToolkit *is* DTrace?
     20 
     21 2. Toolkit
     22 2.1. What is in it?
     23 2.2. What performance effect can the DTraceToolkit cause?
     24 
     25 3. Contributing
     26 3.1. Where do I send bugs?
     27 
     28 
     29 Answers
     30 
     31 1. Intro
     32 
     33 1.1. What is the DTraceToolkit?
     34 
     35    The DTraceToolkit is a collection of tools written using DTrace for
     36    the Solaris 10[tm] OS by Sun Microsystems[tm]. Many of these scripts
     37    will also work on OpenSolaris.
     38 
     39 1.2. Who wrote the DTraceToolkit?
     40 
     41    Volunteers of the DTrace and OpenSolaris community. Check the scripts
     42    themselves, Docs/Contrib, Docs/Who and Docs/History.
     43 
     44 1.3. Where do I get support?
     45 
     46    As the DTraceToolkit is a freeware product, there is no official company 
     47    offering support for this. Sun Microsystems does not support this. If you 
     48    post messages to the DTrace forums found in the Docs/Links file, a 
     49    volunteer may help you out.
     50 
     51 1.4. Am I now a performance tuning expert?
     52 
     53    The DTraceToolkit does not turn people into performance tuning experts in 
     54    the same way that owning a set of golf clubs won't make you a professional
     55    golfer. Experience and understanding are necessary. The toolkit certainly
     56    helps by fetching the data in an easy way, and also by providing some
     57    documentation. So it is valuable, but not magical. 
     58 
     59 1.5. Will this solve all my performance problems?
     60 
     61    This is similar to the previous point; the DTraceToolkit is valuable
     62    for it's scripts and documentation, but it's no magical product. 
     63    Understanding and experience are necessary.
     64 
     65 1.6. So the DTraceToolkit *is* DTrace?
     66 
     67    The DTraceToolkit is one use of DTrace, but there is far more to DTrace
     68    than just the toolkit. DTrace allows people to write their own customised
     69    scripts to solve a wide number of problems. 
     70 
     71    Think of the DTraceToolkit as a starting point. Maybe your problem has
     72    a solution in the kit. Maybe changing one of the toolkit programs slightly
     73    is what you want. Finally you may need to write your script from scratch.
     74 
     75 
     76 2. Toolkit
     77 
     78 2.1. What is in it?
     79 
     80    Read the Guide file for a table of contents, and Docs/Contents for a
     81    list of commands.
     82 
     83 2.2. What performance effect can the DTraceToolkit cause?
     84 
     85    Enabling DTrace to monitor events has little effect on the system, 
     86    especially when compared to the disruptive behaviour of truss (See
     87    http://www.brendangregg.com/DTrace/dtracevstruss.html for a comparison).
     88 
     89    It really boils down to how often the events occur that you are monitoring.
     90    The following numbers have been provided as an approximation:
     91 
     92    1. Fixed rate scripts. For example, dispqlen.d samples at 1000 hz.
     93       The impact will be negligible, close to 0% CPU. (in testing, 0.1% CPU).
     94 
     95    2. Demand rated scripts. For example, iosnoop probes disk I/O events.
     96       The impact depends on the rate of events, for many servers the disk
     97       events would be slow enough for this to be less than 0.2% CPU. 
     98       Scripts such as execsnoop would expect even fewer events, their impact
     99       would be close to 0.0% CPU. However scripts that monitor potentially
    100       very rapid events will have a greater impact, for example running
    101       dapptrace on Xorg (over 6000 lines of output per second) was consuming
    102       around 10% of a CPU to do so.
    103 
    104    3. Heavy voodoo scripts. A few scripts in the toolkit must probe either
    105       a ton of different events, or very rapid events, or both. They are
    106       going to hurt and there is no way around it. Scripts such as cputimes
    107       and cpudists trace very frequent events, and can chew around 5% of
    108       the CPUs; scripts such as dapptrace and dappprof trace extreamly
    109       frequent events, and can chew over 20%.
    110 
    111    There is an emphasis in the DTraceToolkit to write demand rated scripts
    112    that measure the fewest events, such that their impact is close to 0.0%
    113    CPU usage. Some scripts are fixed rate, which are safer as their impact
    114    has a known upper bound, and are most suitable to run in production.
    115 
    116    There are additional notes in Notes/ALLoverhead_notes.txt about the
    117    overheads for running DTrace.
    118 
    119 
    120 3. Contributing
    121 
    122 3.1. Where do I send bugs?
    123 
    124    The DTraceToolkit maintainer. See the Docs/Maintainer file.
    125 
    126 
    127