Skip to content

DTrace

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

DTrace for Beginners

More DTrace

Books

Videos on DTrace

[al]: http://www.linkedin.com/in/adamleventhal [dk]: http://www.linkedin.com/pub/dan-kimmel/4a/88a/425 [mb]: http://www.linkedin.com/pub/max-bruning/0/337/180 [bg]: http://www.linkedin.com/pub/brendan-gregg/1/3a8/3/

dtrace.conf 2012 Videos

For a good overview and wrap-up, see Adam's blog post on dtrace.conf.

Title Speaker
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
Carousel ride!
Clang Parser for DTrace - video John Thompson
Visualizations - video Brendan Gregg
Visualizations, Enabling toolchain for seamless USDT - video Theo Schlossnagle
Visualizations - video Richard Elling
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