BT

Using Dtrace to Improve Rails Performance

by Sam Aaron on Apr 29, 2007 |

Three companies recently collaborated to use DTrace, a powerful open source process introspection tool to find and fix a substantial Rails latency issue.

Teams from Joyent and Twitter and DTrace developer Bryan Cantrill from Sun joined forces to spend a day looking in detail at how Ruby processes behave within a Rails production environment. The purpose of the collaboration was to use the dynamic tracing framework to fix a latency issue observed in Twitter. DTrace is one of the components of the open source project OpenSolaris. It is designed for forensic investigation of processes, and as such is perfectly suited for the inspection and monitoring of Ruby processes running Rails applications.

During their analysis, the joint team discovered that the raising and catching of particular set of exceptions within Rails caused large amounts of CPU time to be consumed generating back-traces hundreds of frames long. Through the detection and removal of these exceptions, the latency of a particular class of Rails request-response cycles was substantially improved.

Joyent CTO and co-founder Jason Hoffman is vocal about the benefits of DTrace:

We use DTrace all the time in identifying performance issues in our customer's and in our own applications.

However, he believes that there is still room for improvement, and that the introspection into Ruby processes that DTrace offers is still not deep enough. Patches for versions 1.8.5 and 1.8.6 of Ruby are currently being worked on that will afford DTrace with an even greater ability to peer inside Ruby’s internals. Jason also believes that DTrace will continue to generate a tremendous amount of insight into production Rails and Ruby processes. With ports in development for FreeBSD and planned for OS X Leopard, DTrace is no longer an exclusive tool for Solaris users.

Interestingly, not only is this a success story for open source tools being used to improve open source frameworks, it is also a success story for the process of open source software development. Within 11 hours of a ticket being filed, it had been accepted by Rails creator David Heinemeier Hansson himself, and incorporated into the latest version of Rails for immediate use.

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

ok this is getting silly by Michael Neale

Its a complete storm in a teacup. All this hang wringing and reportage over one companies issue, and then people talking about it like its solving cancer. This sort of stuff goes on *all the time* all over the world. I just can't understand what all this unhelpful noise, finger pointing and such is about.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

1 Discuss

Educational Content

General Feedback
Bugs
Advertising
Editorial
InfoQ.com and all content copyright © 2006-2014 C4Media Inc. InfoQ.com hosted at Contegix, the best ISP we've ever worked with.
Privacy policy
BT