DTrace exists to help you figure out how the system works and why the system is sluggish or acting in an unexpected manner. The name is short for Dynamic Tracing: a powerful idea pioneered by DTrace. Dynamic tracing allows one to peer into all parts of the system -- kernel, device drivers, libraries, services, web servers, applications, databases -- without any restarts, recompilations,or overhead. DTrace is a powerful tool in any programmer's toolkit, and has been included by default with various operating systems including Illumos, Solaris, Mac OS X, FreeBSD, and QNX. A Linux port is in development.
DTrace works by dynamically patching live running instructions with instrumentation code. The DTrace facility also supports Static Tracing: where user-friendly trace points are added to code and compiled-in before deployment.
DTrace provides a language, 'D', for writing DTrace scripts and one-liners. The language is like C and awk, and provides powerful ways to filter and summarize data in-kernel before passing to user-land. This is an important feature that enables DTrace to be used in performance-sensitive production environments, as it can greatly reduce the overhead of gathering and presenting data. ...more
There is also a pony.
- Tutorial: DTrace by Example
- Using DTrace to Analyze Your Webstack (short video)
- Top 10 DTrace scripts for Mac OS X
- Introducción a DTrace (in Spanish)
- DTrace FAQs
- Advanced DTrace Tips, Tricks and Gotchas
- DTrace: printf debugging for seventh-level wizards
- DTrace Guide - now ported and updated for illumos!
- Dynamic Tracing Guide: the original reference manual, freely available as a 408 page PDF (2008)
- Solaris Performance and Tools: takes Solaris perf analysis further with DTrace, 440 pages (2006)
- DTrace: the DTrace book of scripts and strategy, 1100 pages (2011). Read a sample chapter on Brendan's blog
- Bryan Cantrill's Google Tech Talk
- Breaking Down MySQL/Percona Query Latency With DTrace
- Little Shop of Performance Horrors
- DTrace BoF at LISA10
- Brendan Gregg on DTrace at the Kernel Conference Australia, 2009
- How to Build Better Applications with Oracle Solaris DTrace
- Observing Your App and Everything Else it Runs on Using DTrace
- DTracing Your Website
- The Problems Solaris Solves: Diagnosing Live Systems with DTrace
For a good overview and wrap-up, see Adam's blog post on dtrace.conf.
|State of the Union - video||Bryan Cantrill|
|Setting the Agenda - video|
|User-Level CTF - video||Adam Leventhal|
|Dynamic Translators - video||Dave Pacheco|
|Control flow & language enhancements - video||Eric Schrock|
|Clang Parser for DTrace - video||John Thompson|
|Visualizations - video||Brendan Gregg|
|Visualizations, Enabling toolchain for seamless USDT - video||Theo Schlossnagle|
| Visualizations - video
|DTrace in node.js - video||Mark Cavage|
|User-land probes for Erlang virtual machine - video||Scott Lystig Fritchie|
|DTrace on Linux - video||Kris Van Hees|
|ZFS DTrace provider||Matt Ahrens|
|DTrace on FreeBSD - video||Ryan Stone|
|Barriers to Adoption - video||Jarod Jenson|