Using Dtrace to Improve Rails Performance
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.
ok this is getting silly
by
Michael Neale
Educational Content
Building Hypermedia APIs with HTML
Jon Moore Jun 19, 2013
Deleting Code at Nokia
Tom Coupland Jun 19, 2013
Intro to CLP with core.logic
Ryan Senior Jun 18, 2013
Spock: A Highly Logical Way To Test
Howard Lewis Ship Jun 18, 2013
Java Garbage Collection Distilled
Martin Thompson Jun 17, 2013




Hello stranger!
You need to Register an InfoQ account 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