mdb tab completion
Last October, the first illumos hack-a-thon took place. Out of that a lot of interesting things were done and have since been integrated into illumos. Two of the more interesting gems were Adam Leventhal and Matt Ahrens adding dtrace -x temporal and Eric Schrock adding the DTrace print() action. Already print() is in the ranks [...]
Read more...Debugging RangeError from a core dump
Last week, I tweeted: I had just run into this nasty Node.js error: $ node foo.js timers.js:96 if (!process.listeners(‘uncaughtException’).length) throw e; ^ RangeError: Maximum call stack size exceeded What went wrong? It was reasonably obvious from the error message that the program blew its stack, which I assumed was likely the result of some errant [...]
Read more...illumos Hardware Compatibility List
One of the challenges when using any Operating System is answering the question ‘Is my hardware supported?’. To track this down, you often have to scour Internet sites, hoping someone else has already asked the question, or do other, more horrible machinations – or ask someone like me. If you’re running on an illumos-based system [...]
Read more...dtrace.conf 2012 videos
Last month was dtrace.conf 2012, the 2nd DTrace unconference. This is a meetup of DTrace practitioners and developers, where we discuss the latest uses, developments and future directions of the technology. It was great to see old friends of DTrace, and to put new faces to names. See the video list for the sessions, which, [...]
Read more...In: DTrace, video, visualizations
Debugging node.js memory leaks
Part of the value of dynamic and interpreted environments is that they handle the complexities of dynamic memory allocation. In particular, one needn’t explicitly free memory that is no longer in use: objects that are no longer referenceable are found automatically and destroyed via garbage collection. While garbage collection simplifies the program’s relationship with memory, [...]
Read more...Profiling Node.js
(For returning readers, this is basically a “tl;dr” version of my previous post on Node.js performance. The post below also appears on the Node.js blog.) It’s incredibly easy to visualize where your Node program spends its time using DTrace and node-stackvis (a Node port of Brendan Gregg’s FlameGraph tool): Run your Node.js program as usual. [...]
Read more...In: DTrace, joyent, Node.js, Production, smartos
BTrace: DTrace for Java… ish
DTrace first peered into Java in early 2005 thanks to an early prototype by Jarod Jenson that led eventually to the inclusion of USDT probes in the HotSpot JVM. If you want to see where, say, the java.net.SocketOutputStream.write() method is called, you can simply run this DTrace script: hotspot$target:::method-entry /copyinstr(arg1, arg2) == “java/net/SocketOutputStream” && copyinstr(arg3, [...]
Read more...dtrace.conf(12) wrap-up
For the second time in as many quadrennial dtrace.confs, I was impressed at how well the unconference format worked out. Sharing coffee with the DTrace community, it was great to see some of the oldest friends of DTrace — Jarod Jenson, Stephen O’Grady, Jonathan Adams to name a few — and to put faces to [...]
Read more...In: BryanCantrill, DavePacheco, DTrace, dtrace.conf, EricSchrock, GeorgeWilson, KrisvanHees, MattAhrens, OEL
Subsecond Offset Heat Maps
“Wow, that’s weird!”. My subsecond offset visualization type looked great, but others found it weird and unfamiliar. I developed it for inclusion in Joyent’s Cloud Analytics tool for the purposes of workload characterization. Given that it was so unfamiliar, I had some explaining to do. Voxer, a company that makes a walkie-talkie application for smart [...]
Read more...In: cloud analytics, DTrace, performance, subsecond, visualizations
Linux Kernel Performance: Flame Graphs
To get the most out of your systems, you want detailed insight into what the operating system kernel is doing. A typical approach is to sample stack traces; however, the data collected can be time consuming to read or navigate. Flame Graphs are a new way to visualize sampled stack traces, and can be applied [...]
Read more...In: flamegraphs, Linux, performance, perf_events, systemtap, visualizations

