Archive for the ‘joyent’ Category

OSCON Slides

Thanks to all who attended my talk at OSCON on Node.js in production: postmortem debugging and performance analysis. Just a reminder: all of the technology I described is open source, most of it part of illumos. For more info, check out the links in slide 22. For the curious, there are also some slides on [...]

Posted on July 19, 2012 at 12:32 pm by dap · Permalink · Comments Closed
In: joyent, Node.js, smartos

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 [...]

Posted on May 14, 2012 at 2:43 pm by dap · Permalink · Comments Closed
In: joyent, Node.js

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. [...]

Posted on April 25, 2012 at 10:21 am by dap · Permalink · Comments Closed
In: DTrace, joyent, Node.js, Production, smartos

Managing Node.js dependencies with shrinkwrap

This post also appears on the Node.js blog. Photo by Luc Viatour (flickr) Managing dependencies is a fundamental problem in building complex software. The terrific success of github and npm have made code reuse especially easy in the Node world, where packages don’t exist in isolation but rather as nodes in a large graph. The [...]

Posted on February 27, 2012 at 11:54 am by dap · Permalink · Comments Closed
In: joyent, Node.js, Production

Playing with Node/V8 postmortem debugging

“Post Mortem” by C. MacLaurin Several weeks ago I posted about postmortem debugging for Node.js, a critical technique for understanding fatal software failure (and thereby keeping up software quality). Now that the underlying pieces are freely available[1], you can use the documentation below to start debugging your own Node programs. With these tools you can [...]

Posted on January 13, 2012 at 11:42 am by dap · Permalink · Comments Closed
In: joyent, Node.js, Production, smartos

Where does your Node program spend its time?

Photo by Julian Lim (flickr) Performance analysis is one of the most difficult challenges in building production software. If a slow application isn’t spending much time on CPU, it could be waiting on filesystem (disk) I/O, network traffic, garbage collection, or many other things. We built the Cloud Analytics tool to help administrators and developers quickly [...]

Posted on January 5, 2012 at 3:32 pm by dap · Permalink · Comments Closed
In: DTrace, joyent, Node.js, Production, smartos

USDT Providers Redux

In this post I’m going to review DTrace USDT providers and show a complete working example that I hope will be a useful reference for people interested in building providers for their own applications. First, the prerequisites: DTrace is the comprehensive dynamic tracing framework available on Illumos-based, BSD, and MacOS systems. If you’ve never used [...]

Posted on December 13, 2011 at 11:13 am by dap · Permalink · Comments Closed
In: DTrace, joyent, smartos

Node.js/V8 postmortem debugging

Photo by Auntie P (flickr) I recently wrote an article for ACM Queue discussing postmortem debugging for dynamic environments. I argued that while native environments for years have provided rich tools for understanding software failures postmortem, most popular dynamic environments have not developed similar facilities, and this gap is becoming more important as these environments grow [...]

Posted on October 31, 2011 at 4:42 pm by dap · Permalink · Comments Closed
In: joyent, Node.js, Production, smartos

Visualizing the Cloud

I’ve worked on visualizations for a while, most recently with heatmaps for Joyent’s Cloud Analytics. While we’re using and enhancing these right now, we are also in a great position to continue developing new visualizations for cloud computing, given: Easy observability into all nodes via zones, and deeper analysis using DTrace. JavaScript and node.js to [...]

Posted on October 4, 2011 at 4:11 pm by Brendan Gregg · Permalink · Comments Closed
In: Cloud, joyent, visualizations

Surge 2011

We had a great time last week attending Surge in Baltimore. Highlights for me included Baron Schwartz‘s visualizations of MySQL execution time (not entirely unlike Brendan‘s, but with the addition of modeling), Geir Magnusson‘s discussion of scalability at Gilt, and Raymond Blum‘s discussion of backup/restore at Google (including recovery after the GMail outage from several [...]

Posted on October 3, 2011 at 4:04 pm by dap · Permalink · Comments Closed
In: joyent, Production