Recently, one of our Affiliate Program members, Marek de Heus of mWorks, wrote to us to tell us about an experience they had using New Relic RPM to help a customer refine the performance of their Rails application.
mWorks (mworks.nl) is a consulting company located in the Hague in the Netherlands. They specialize in helping customers with system integration, web development and scalability. We started back in 2000 doing Java development. In 2004 we started working with Ruby. Since last year we do 100% Ruby, most of it is Rails.
Here is what Marek had to say:
The customer’s rpm silver account was set up for our customer [The customer requested their name not be mentioned].
The customer’s website allows users to share selfmade ringtones and wallpapers for their mobile phones. With 200.000+ unique visitors last month and growing. Because of the steady growth, their site was getting slower and slower. To improve the performance, they wanted to throw more hardware at the problem.
They contacted us for a second opinion. So we quickly reviewed their code and suggested installing RPM. We already knew that there were some slow queries. What we didn’t know, but what RPM showed us, was that there were tons of very small queries done all over the place.
[New Relic note: We call this “death by a thousand cuts”. It is not always easy to find since both the database and the app may be reporting that calls are very fast. But thousands of very fast calls can make for one very long transaction]
RPM clearly showed us the biggest bottlenecks, making it easy for us to decide which parts to optimize first. So far we have done 2 iterations. The average response time dropped from 1400+ms to 1200ms and then to about 600ms. When we now look at the latest RPM data we see even more room for improvement.
We could not have done this without RPM.
Thanks Marek, and keep up the great work!