Archive for the ‘DTrace’ Category

From Prometheus to Sisyphus

When Apple announced their new file system, APFS, in June, I hustled to be in the front row of the WWDC presentation, questions with the presenters, and then the open Q&A session. I took a week to write up my notes which turned into as 12 page behemoth of a blog post — longer than my college [...]

Posted on February 12, 2017 at 10:23 am by ahl · Permalink · Comments Closed
In: DTrace

DTrace at Home

I had been procrastinating making the family holiday card. It was a combination of having a lot on my plate and dreading the formulation of our annual note recapping the year; there were some great moments, but I’m glad I don’t have to do 2016 again. It was just before midnight and either I’d make [...]

Posted on December 17, 2016 at 9:32 pm by ahl · Permalink · Comments Closed
In: DTrace

DTrace OEL Dynamic Language Support

We built DTrace to solve problems; at the start, the problems we understood best were our own. In the Solaris Kernel Group we started by instrumenting the kernel and system calls, the user/kernel boundary. Early use required detailed knowledge of kernel internals. As DTrace use grew—within the team, in Sun and then beyond—we extended DTrace [...]

Posted on December 27, 2014 at 1:27 pm by ahl · Permalink · Comments Closed
In: DTrace

Tuning the OpenZFS write throttle

In previous posts I discussed the problems with the legacy ZFS write throttle that cause degraded performance and wildly variable latencies. I then presented the new OpenZFS write throttle and I/O scheduler that Matt Ahrens and I designed. In addition to solving several problems in ZFS, the new approach was designed to be easy to [...]

Posted on August 31, 2014 at 9:16 am by ahl · Permalink · Comments Closed
In: DTrace, MattAhrens, OpenZFS, performance, tuning, ZFS

Understanding DTrace ustack helpers

or, everything you ever wanted to know about stack traces I promised this post over a year ago, and now that someone’s actually working on a new ustack helper, I thought it was finally time to write about what ustack helpers are, how they work, and how I went about building one for Node.js. Only [...]

Posted on November 20, 2013 at 4:50 pm by dap · Permalink · Comments Closed
In: DTrace, joyent, Node.js, smartos

Tracing Node.js add-on latency

Node.js has some built-in DTrace probes for looking at HTTP request start/done and GC start/done, and I wrote nhttpsnoop to report latency based on these probes. There’s also a future project that will make it easy to trace any asynchronous operations. But in the meantime, there’s one category of latency that’s missing, which is latency [...]

Posted on October 18, 2013 at 8:49 am by dap · Permalink · Comments Closed
In: DTrace, joyent, Node.js

Stopping a broken program in its tracks

Last week I debugged a Node issue where under some conditions, fork() failure could result in some file descriptors being closed, leading shortly to bedlam. In the best cases, the program would immediately crash, but often it would just do the wrong thing. This happens a lot, of course, and in many ways it’s worse [...]

Posted on October 14, 2013 at 7:58 am by dap · Permalink · Comments Closed
In: DTrace, smartos

The USE Method: Mac OS X Performance Checklist

This is my example USE Method-based performance checklist for the Apple Mac OS X operating system, for identifying common bottlenecks and errors. This draws upon both command line and graphical tools for coverage, focusing where possible on those that are provided with the OS by default, or by Apple (eg, Instruments). Further notes about tools [...]

Posted on September 18, 2013 at 11:37 pm by Brendan Gregg · Permalink · Comments Closed
In: DTrace, Mac OS X, macosx, performance, usemethod

Virtualization Performance: Zones, KVM, Xen

At Joyent we run a high-performance public cloud based on two different virtualization technologies: Zones and KVM. We have historically run Xen as well, but have phased it out for KVM on SmartOS. My job is to make things go fast, which often means using DTrace to analyze the kernel, applications, and those virtualization technologies. [...]

Posted on January 11, 2013 at 4:58 pm by Brendan Gregg · Permalink · Comments Closed
In: Cloud, DTrace, KVM, performance, xen, zones

Surge 2012: Real-time in the real world

In September, I attended and spoke at the Surge’12 conference in Baltimore. I highly recommend it for anyone interested in performance. The theme with most talks was problems encountered at scale – and as is often the case – you can learn more from failure than success. Bryan and I gave a talk titled “Real-time [...]

Posted on December 6, 2012 at 6:47 pm by Brendan Gregg · Permalink · Comments Closed
In: DTrace, performance, slides, video