How to Use APM for Capacity Planning
Join the DZone community and get the full member experience.
Join For Free[This article was written by Phil Weber]
A few weeks ago I read an interesting article in Medium about how the engineers behind Paper magazine’s website prepared for an anticipated spike in traffic.
After reading it I thought, “I wonder how Paper could have used New Relic to improve its ability to survive the Web traffic onslaught?” One of my favorite features in New Relic APM is its Scalability Analysis Report:
Unlike most graphs in APM, which show time on the x-axis, the Scalability Report shows throughput (requests per minute) on the x-axis and response time on the y-axis. (The color of each point indicates time of day, helping you identify times of increased load.) If the trend line is relatively flat, that’s good: it means your site does not slow down as more people use it. If, on the other hand, the trend line slopes upward to the right, it means your response time increases as more people access the site.
To use the Scalability Analysis Report for capacity planning, you need to add a tool to generate traffic to your staging environment—the Paper magazine team used the evocatively named Bees with Machine Guns—then view the Scalability Analysis Report to see how your site performed.
To determine how a proposed change such as caching, load balancing, or additional servers will affect your site’s performance, you can use New Relic’s deployment tracking feature. Use our API to notify New Relic when you deploy the change, then generate traffic as described above.
New Relic’s Deployment Dashboard can display key performance indicators, such as response time, throughput, Apdex, CPU, memory, and database usage before and after the change:
The Deployment Change Report shows you at a glance how the change affected the performance of your top 10 most time-consuming transactions:
The Scalability Analysis Report and Deployment Tracking are just two of many New Relic features you can use for capacity planning. You can also use server monitoring to see how your servers react to increased load at the operating system level. Developers of Java and Ruby applications can use the VM dashboard to see how much memory their applications are using and how much CPU time is being spent on garbage collections.
Bookmark this post and refer to it next time your website threatens to “break the Internet”!
Published at DZone with permission of Fredric Paul, DZone MVB. See the original article here.
Opinions expressed by DZone contributors are their own.
Comments