Upgrade Your Drupal Skills

We trained 1,000+ Drupal Developers over the last decade.

See Advanced Courses NAH, I know Enough

Tuning Drupal Site Performance with Load Storm and New Relic

Parent Feed: 

Load Testing is an important part of quality assurance that takes place prior to launching a site.

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?

Promet Source_Drupal 8 Migration_Image CTA

The Basics

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. Looking at lengthy periods of time in Analytics will help set accurate expectations and test cases??

Behavior

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..

Execute

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.

Load Storm is the preferred testing tool of Promet Source?

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:

Subscribe to our newsletter to get the latest Drupal news and updates from Promet Source!

Author: 
Original Post: 

About Drupal Sun

Drupal Sun is an Evolving Web project. It allows you to:

  • Do full-text search on all the articles in Drupal Planet (thanks to Apache Solr)
  • Facet based on tags, author, or feed
  • Flip through articles quickly (with j/k or arrow keys) to find what you're interested in
  • View the entire article text inline, or in the context of the site where it was created

See the blog post at Evolving Web

Evolving Web