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...
Posted on May 15, 2012 at 11:38 am by rm · Permalink · Comments Closed
In: Miscellaneous

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...
Posted on May 14, 2012 at 2:43 pm by dap · Permalink · Comments Closed
In: joyent, Node.js

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...
Posted on May 10, 2012 at 6:00 pm by rm · Permalink · Comments Closed
In: Miscellaneous

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...
Posted on May 8, 2012 at 4:06 pm by Brendan Gregg · Permalink · Comments Closed
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...
Posted on May 5, 2012 at 1:07 pm by bmc · Permalink · Comments Closed
In: Uncategorized

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...
Posted on April 25, 2012 at 10:21 am by dap · Permalink · Comments Closed
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...
Posted on April 24, 2012 at 12:29 am by ahl · Permalink · Comments Closed
In: BTrace, DTrace, Java

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...
Posted on April 9, 2012 at 11:03 am by ahl · Permalink · Comments Closed
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...
Posted on March 26, 2012 at 11:16 am by Brendan Gregg · Permalink · Comments Closed
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...
Posted on March 17, 2012 at 9:24 am by Brendan Gregg · Permalink · Comments Closed
In: flamegraphs, Linux, performance, perf_events, systemtap, visualizations