How to Load Test for the Euro 2016 Final
Those are some heavy loads, and not only UEFA has to deal with them. If you are:
- Live broadcasting the game
- Providing services and merchandise to football (soccer) fans
- Targeting your products at football goers
- Marketing to audiences who don’t necessarily watch the game but are affected by it, like people who go online shopping during the games
you might also experience heavy loads during peak times.
Unless they are dealt with correctly, they can cause crashes which result in lost sales and frustrated customers. But with proper performance and load testing, you can easily avoid any bloopers and inconveniences.
Here are 5 things you can do to ensure your performance testing won’t let you down:
1. Run Load Tests from the Production Environment
Testing your network infrastructure is critical for ensuring you test and monitor all chains of delivery.
To get a clear and accurate picture of your performance, we recommend you run the test on your live production site. Preferably, at a time when the traffic is low.
To test your production environment, you can either:
- Take your existing processes and enlist real people sitting at physical machines and devices from around the world.
- Use an open source load testing tool like JMeter and buy several Virtual Private Servers (VPS) in different geo-locations to test your web or app servers under heavy, concurrent and geographically distributed load.
- Take a cloud performance testing tool like BlazeMeter to simulate the load from multiple geo-locations and various devices with just a few clicks in the User Interface (UI).
2. Go to the Limit. Try to Bring Your System into Failure
You never know how many visitors your website will have. A special offer, a change in market or a competitor’s website crashing might increase your traffic beyond expectations.
Therefore, test until you fail. That is, until you know your capacity and why that is your capacity.
3. Find the Critical Resource
After finding when you hit a bottleneck, now it’s time to identify what it is. The problem is that there are thousands of metrics that can be measured, but no team has enough resources to monitor them all.
Performance engineers need to focus on the critical issues. We recommend you identify 5 – 7 metrics that reflect the system’s critical usage, and give them to the operations team for tracking. Automated alerts for pre-defined thresholds can monitor 20-50 metrics. Developers can even optimize some of the critical resources and eliminate problems before they occur, if they have enough time.
But load testing isn’t always enough for identifying problems. To get a full picture of when and why problems occur, we recommend Application Performance Management (APM) tools for observing application logs. BlazeMeter alongside log aggregation tools like Logentries and Splunk can read your logs and create reports for you.
4. Divide Your System and Stress Each Section Individually
Load isn’t distributed evenly across websites.
To avoid unprecedented traffic on a particular page, divide your system into logical sections, and stress each one separately. This can also help in identifying problems and ensuring your “weakest link” won’t break the entire chain.
5. Set Up Back-Servers and Locations
Though there is no way to avoid power outages and technical crashes, but there are ways to deal with them.
We recommend you have back-up servers and locations ready so you can recover quickly. If you set up a database replication, database failover cluster or application failover cluster, you can switch to the failover location as soon as there’s a problem, enabling you to resolving the problems that the crash caused.
These tips can make sure you are more ready and prepared for any heavy load, be it a special sale, a good marketing campaign or the Champions League final.
For more details and tips, see our Whitepaper “How to Ensure Your Website or App Won't Fail at Peak Times”.
Infographic data sources: