One of the biggest internet shopping days is approaching.
If your answer is “I don’t know” then Houston, we have a problem.
What if it can’t handle the high load and falls over, rendering potential shoppers unable to even access the website? We are talking serious losses in revenues and consumer confidence, not to mention jeopardizing the overall branding reputation.
So, let’s get to it and answer your question “Can my website handle Cyber Monday?” Here’s what you can do to answer that question in a day.
First, let’s figure out your potential load. Think and plan for wild success. If you are currently using any web statistical analysis or tracking tools, it’s a good time to review this data for things like highest current users (peak load) and hit rates. If you don’t yet use this type of tool, then start doing so now.
Think about all the entries to your website from potential users – search engine hits, marketing ads, link backs, consumer reports, shout out’s from tv/radio, social media…...following the latest celeb and wanting to use the same product as they are….who knows how many different ways people will find and access your website.
Your first job is to plan for success. Huge success. Does that equal to 700 concurrent users actively using your website? Or does is equate to 70 or 7,000? Be reasonable, but envision peak load at your wildest dreams, isn’t this how dreams are achieved?
Now you’ve got a peak target load of users.
Step 2: Identify your user’s behaviors: Create a realistic load.
Now, what are these users actually doing? Are they using your site to learn about a new product? Are they comparing prices? Are they looking to buy at deep discounts? Identify all of your “critical” business transactions or URL’s. In other words, find out the pages which will be hit the hardest during Cyber Monday (and hint, hint, it’s probably not going to be the Careers link;).
Next, create a quick script. A script is an automated business transaction which can be executed over and over again to create load. Create recorded a script for every “type” of user or use explicit pages or URL’s that are expected to be the most popular. If you don’t know how to create a script, you can start with BlazeMeter’s auto-scripting feature.
Hmm….What else should you consider? Well, you could have people accessing your site from many geographical locations. Or if it a website which offers a local service, you might want to just concentrate on your region. Decide where your users are coming from.
Also, remember that these are real users, not robots. These users think and breathe and stay on pages and navigate logically. Make sure your scripts include pauses (sleeps or waits) in between transactions so that they really represent a normal workload.
I can’t stress how important this is – most people don’t take this advice and create the most unrealistic tests of simultaneous users banging away at the transactions – and you don’t get any real sensible data for results.
Make sure you set up the load test to start ramping up users gradually. In other words, don’t slam your website with the peak load, watch it fall over, become unresponsive, and then you have a heart attack and then you yourself fall to the floor. Really, no one wins here.
Instead, think of a realistic rate of users accessing your website. Is that about 30 new users every minute? This would be your ramp up pace. Configure your test to ramp up at this rate until you hit your target peak load. Load testing isn’t for the faint of heart….I can almost guarantee you that you won’t reach your wild success target without experiencing unacceptable response time degradation.
C’mon, the day is not half yet over and you are already creating a solid test case scenario to answer your question: Can my website handle a wildly successful Cyber Monday?
Step 3: Execute the load tests: Understand your current capacity.
You are ready to hit the Start button and execute a realist load test against your web application. Run the test up until the point where the user load begins to cause your response times to exceeds your acceptable expectation and/or your test begins to generate errors instead of successful responses.
For example, an acceptable response time could be 2.5 seconds. That’s your choice. Let’s say that the point of degradation which exceeds 2.5 seconds starts showing its teeth at about 350 concurrent users. Hey, aren’t you glad to now know the load your website can handle? It is great information.
If you look closely you’ll see the response time start to degrade at 16:07 with 541 users and then really go bad from 16:09 with 647 users.
Step 4: Tune your environment for scalability.
Now let’s make your site scale to your target workload. Where is your website hosted? Do you have your own data-center? Is the deployment hosted in a cloud environment? Where ever it is, there are real people supporting the environment. Engage the right people. Finding and alleviating bottlenecks which will allow the website to scale to a higher load is not magic, it’s monitoring.
Call an “All Hands on Deck” meeting with the people with the right monitoring access and skills. Re-run the test (repeat step 3). Identify bottlenecks and tune the environment until your goal (peak load) is achieved.
Congrats! You have taken action to answer your own question….
Now you can sleep better, knowing you have at least prepared for Cyber Monday.
BlazeMeter Guest Blogger Rebecca Clinard has been performance testing web applications since 2000. Her expertise lies in creating and executing load tests. Her passion lies in performance tuning multi-tier deployments for scalability. Hat worns include unix systems administration, performance engineering, presales, marketing, and technical evangelism. Industries span retail, financial services, insurance and manufacturing. She graduated from University of New Hampshire with a BS and also holds a UNIX Certificate from Worcester Polytechnic Institute.