Performance Basics Peak Load Testing (Don’t Suck like Bank of America)
Bank of America “Sucky” Performance Story
Crash! A few weeks ago, Bank of America’s (BOA) website went down. Trouble began the day after BOA announced a $5.00 per month debit card fee. If anyone tried logging on to bankofamerica.com during that time, they were greeted by a message saying that the home page was “temporarily unavailable.”
According to a BOA rep, the trouble was due to “traffic volume during peak use.” So, on top of an outrageous fee, users were also saddled with crappy performance. Nice.
Of course, all of this could have been avoided.
Peak Testing Planning
BOA, like most companies, hadn’t anticipated what the impact of an announcement like theirs could actually have on a company’s website. Similarly, when planning a performance test, I think it makes sense to plan for the possibility of certain events occurring; such as negative publicity that would undoubtedly cause your website’s traffic to spike dramatically. Also — if you are about to launch a new website, you may underestimate how popular it might become.
You estimate 20,000 hits, and a few days later a popular site like Digg mentions your site and you suddenly find yourself getting 100,000 hits. Of course, receiving such a large volume of unplanned hits will most likely crash your site – just like what happened to BOA.
It stands to reason that you wouldn’t want to invest in a monster infrastructure on the off chance that your site would end up drawing only minimal traffic. The real problem is that most people fail to take into account the peak times during which their site is used, and only test for average usage.
What is Peak Load?
Peak load is the maximum amount of concurrent users that are on a website within a certain time period. For example, if you own a retail website, your peak load during any given week is most likely to be on the weekend. It would also follow that the Thanksgiving and Christmas holiday season is your busiest overall.
If you only performance test what your average load is for a normal day, you won’t be testing these types of “peak” conditions. Remember: peak load is not the average load. A good practice is to find the peak load for your website during your performance planning phase, and build your tests to exercise that load. My favorite performance book says it best: “A website unable to support its peak traffic is an unsuccessful web site!”
The Moral of this Performance Testing Post
Don’t suck like BOA! Identify your site’s peak usage and performance test using that usage as one of your performance goals.