Drupal Site Performance with Load Storm and New Relic
When load testing, we simulate user interaction with a website, increase the frequency or the number of interactions and collect the results of system usage, then analyze them to aid system improvement towards desired results. The data will prove useful for creating benchmarks of site performance, which can be compared with earlier site's performance if a site is undergoing a migration.
Interested in Website Migrations?
There are three phases of performing load testing.
1. Analysis & Acceptance: Obtain a prediction of potential load and agree on Acceptance Criteria
2. Behavior: Plan and design the test cases and test steps that represent typical usage and prepare the target environment
3. Execute, Modify & Repeat: Execute the test and measure the results. If necessary, implement improvements and repeat.
Analysis and Acceptance
Typically we analyze previous site’s traffic by looking at google analytics during site migrations. We look for traffic patterns and interaction patterns. Looking for highest pageviews days over a period of a year or more gives us an idea of typical peak load. Sometimes the trends are seasonal, as in eCommerce sites, so it’s important to look at a longer period of time.
Interaction patterns give us an idea on how the users use the site; whether they are logging in, which pages are most popular, how many pageviews are typically generated by the user, what actions are performed, etc.. From this data we will create target load numbers and use cases. We agree on the acceptance criteria of site performance. Those may be the number of error-free requests a minute, Apex scores or average response times.
Build test cases and test steps that will be run by the load test. Sites that provide information typically have scripts that simulate several users consuming information on some of its popular pages. Applications will have scripts which run the user through achieving a goal, such as signing up for an email, creating an account, searching for specific content, etc..
We prefer to use Load Storm for test execution along with New Relic on the server. Load Storm spins up cloud servers which simulate user behavior through browser requests and collects the data on each request while providing a graphical representation of the results.
Using Load Storm in conjunction with New Relic, we are able to see performance patterns. We look for average response times, peak response times, slow responding requests, error rates and try to find a point of failure.
New Relic gives us the ability to tune the site by giving us insights into database performance, which modules or transactions take the most time to complete and which parts of the application have the heaviest usage. This gives us visibility into where the limitations are and where to focus our efforts.
At the conclusion of load testing the application performs better and everyone has peace of mind that, once the site goes live, it will be a pleasant experience for the users and the technical staff supporting the site.
Video of Load Storm Demo on Drupal Commerce sites: