Yes, Web development can get so intense sometimes that you don’t know if you’re up, down or even sideways. But seriously, going both vertical and horizontal is advisable if you want to achieve optimal site performance. In this blog, the second in a series about load testing, we’ll take a look at scaling and stress tests: two ways to learn if your website can handle a busy day -- many visitors and many requests and sometimes all at once -- or an average day that still has its share of quirks, like a small number of visitors making several potentially troublesome demands. As I mentioned in the previous blog, optimal performance means getting the same results whether one person or 100 people check out your site. That’s what effective scalability is all about and it’s why you need to conduct load testing to see how the site responds to various types of requests over different points in time.
Horizontal and Vertical Testing
Now, here’s where we get to the part about going up, down or sideways. There are two components to scaling: horizontal and vertical. Horizontal scaling is simply adding more servers. If you started with two Web servers and double that to four servers, you’re distributing the load by about half on each of those servers. An alternative is to scale vertically: making the servers you’re already using larger. Typically, for a large site launch here at Acquia, we work through a combination of the two. We’ll add more Web servers to spread the load, but if we run into issues, we’ll make them larger, or go horizontal. Understanding the difference defines how you respond to a load test. Adding more servers can make your content system behave differently than adding larger servers would. So there are a lot of load testing principles to consider as you go about the work:
- How many users are created?
- What is the ramp-up time?
- How long does it take you to go from 10 users to 100 users?
- What does peak traffic look like?
- Do you understand what your traffic patterns are?
We’ll talk about all that later in the series.
Load testing is testing for a specific number of visitors, so that number will represent how your site is actually used on a day-by-day basis. Stress testing, on the other hand, is an actual test that will reveal at what point your infrastructure can fall over. This is a best-case scenario test, meaning you’ll see what the site can fully support and not necessarily what you’re actually going to see when you launch. Both are important perspectives, but often times customers will want to see what the server is capable of handling and request a full-on stress test. Just make sure the stress test exceeds actual traffic load. Hopefully your head is still vertical after all that. Check in soon for the next installment on load testing.