In 2004 former Reg hack Ashlee Vance brought us news of DTrace, a handy addition to Solaris 10 that “gives administrators thousands upon thousands of ways to check on a system's performance and then tweak ….production boxes with minimal system impact”. Vance was excited about the code because “it can help fix problems from the kernel level on up to the user level.”
Vance's story quoted a chap called Brendan Gregg who enthused about tool after using it and finding “... DTrace has given me a graph of a hundred points that leaves nothing to the imagination. It did more than just help my program, it helped me understand memory allocation so that I can become a better programmer.”
Gregg went on to find fame as the chap "shouting in the data centre" that showed spinning rust did not enjoy a good talking-to.
He's also kept an eye on DTrace, because last week he kindly pointed out that “With the final major capability for [Berkeley Packet Filter] BPF tracing (timed sampling) merging in Linux 4.9-rc1, the Linux kernel now has raw capabilities similar to those provided by DTrace, the advanced tracer from Solaris.”
As Gregg explains on his blog, Linux has had plenty of tracing tools for a long time, but they were miscellaneous kernel capabilities rather than dedicated tools and didn't match DTrace's full list of functions. But over time developers have worked on further tracing tools and Facebook developer Alexei Starovoitov recently offered up some enhancements to the Linux kernel that Gregg feels mean it now matches DTrace.
Gregg reckons Starovoitov's contribution, plus efforts like the bcc project he's worked on will offer Linux users their best ever chance to conduct really detailed tracing of Linux.
He also reckons that DTrace has plenty of life in it yet: he uses it in his day job at Netflix, to monitor its “FreeBSD-based CDN.”
Gregg's post has oodles more detail about DTrace's long history, plus links a-plenty to tools you can use to employ the tool. ®