Overview
It is important to ensure your application and its hosting platform can handle the traffic you expect. Using load testing, you can evaluate your application’s future performance under controlled circumstances. You may also want to perform load testing if you expect one of your applications to experience a surge in popularity for whatever reason.
For most applications, load and stress testing should be an integral part of development. By sending a predetermined amount of simulated traffic to an application, you can pinpoint slow pages using application monitoring tools, such as New Relic, identify bugs in your code, and determine if your existing infrastructure can withstand normal or elevated traffic levels. Whether you can perform load and stress testing on your application on Cloud Platform depends on your subscription level. For more information, see load testing requirements.
Common use cases and events
You must perform load testing for applications with:
- More than 5% authenticated and non-cacheable traffic
- Large amount of anonymous traffic or a significant number of editorial users
Typically, you must perform load tests before the following events:
- Launching a new infrastructure configuration
- Launching a major change to an application’s code (including a new theme, a mobile version of the application, or a new splash page)
- Initiating a major marketing campaign
Guidelines
To perform a load test in the safest and most effective manner, review the load testing requirements for your Cloud Platform configuration, which are based on the following guidelines:
- Replicate your production environment
- Use only dedicated equipment for a load test
- Provide Acquia with at least five business days’ notice before a load test
- (Optional) Use a dedicated load testing environment
Replicate your production environment
A true load test can be performed only with the infrastructure and configuration that matches your application’s production environment. You must test against either your production environment or a testing environment that duplicates your production environment. You cannot expect to get the same results by running test traffic against a staging environment.
If it is not possible to perform a load test, due to reasons of cost or other resources, an application stress test that runs a significant load of test traffic on a staging environment can still help identify bottlenecks and other performance issues.
While load testing on standard non-production environments may help identify general bottlenecks and issues, it is important to note that non-production infrastructure does not usually match the infrastructure in place for your production environment, which can significantly skew your results.
Use only dedicated equipment for a load test
Cloud Platform Enterprise subscribers can purchase a dedicated load testing environment with dedicated equipment for testing. This includes the web stack, search farms, and load balancers. This prevents the extreme resource use generated by a load test from affecting other subscribers. Create a Support ticket both to provision load test equipment and to schedule a load test. A load test is meaningful only if the test is run on a clone of the production stack. If there are no live applications on the production environment, you can run tests directly on production. For more information on purchasing a dedicated load testing environment, contact your Acquia account manager.
Provide Acquia with at least five business days’ notice before a load test
If temporary infrastructure is needed, Acquia will need more lead time to place the infrastructure. At a minimum, Acquia needs the date and time of the load test and the list of the individual originating IPs that will generate traffic. These IP addresses must be individual IP addresses, and can’t be IP address ranges or CIDR blocks.
(Optional) Use a dedicated load testing environment
If you are a Cloud Platform Enterprise customer who cannot perform load tests on a production environment without impacting existing live applications, Acquia recommends that you arrange for a dedicated load testing environment that duplicates your production environment.
To achieve the most accurate results possible, Acquia can provision a dedicated load testing environment with infrastructure that is identical to what is running in your production environment for an additional cost. We require five business days’ advance notice, and there will be a charge for the additional infrastructure. For more information on arranging a dedicated load test environment, contact your Acquia account manager.
Recommended tools
You can outline and set up a testing suite on your own using widely available tools. For example, you can use a service like BlazeMeter (which allows up to 40 free tests) to configure your load test plan using JMeter.
You can test the JMeter plan locally (with looping off and only one user per scenario). If everything is working, fill in the desired number of users, enable forever looping, and upload the plan to BlazeMeter for testing.
When load testing with BlazeMeter, you must start one or more BlazeMeter infrastructure depending on how much traffic you intend to receive (which will incur an extra cost from BlazeMeter). A test needs one BlazeMeter large infrastructure per 1 MM (1 million page-views/month) expected traffic.
Additional assistance
Acquia provides the following additional paid resources for assistance with planning and conducting load testing:
- Performance Audit and Load Test engagement: This engagement conducts a code examination, load test, and analysis specifically for performance and scalability.
- Technical Account Manager (TAM): A TAM is a paid add-on resource that provides strategic guidance to address technical needs for customers. You can request suggestions for how to best test your application or for some post-testing analysis.