When you’re testing new web software on your servers, it’s easy to forget the difference between functional testing and load testing. Functional testing is aimed at the new software. That’s the main purpose. Load testing tests the whole system. We’re looking not only at whether the system can handle the load, but how the load affects performance, both as it increases and as it reaches its peak.
Check under the Hood during Load Testing
This is where things get interesting. A decent production environment is going to have a lot of variables that affect load testing. Some will be pretty obvious, while others are always hidden from view. If you add virtualized servers, there are more layers with not-so-obvious effects on your system performance.
Hidden Problems Are What You’re Looking For
The first thing out the window as we consider the big picture is the “it should just work” concept. Very little is changed, perhaps. This is a standard configuration, right? We have plenty of horsepower and bandwidth, so why bother confirming that it does what we know it will? Testing, of course, does not earn its keep finding problems people already knew existed.
Supporting Resources May Be Bottlenecks
The first place to look as load ramps up and then holds steady is storage systems supporting three things: swap, DLLs (libraries), and virtualization images. For each of these, as the system gets busier it’s going to want to go to disk for these more often.
Check Communication Resources
As traffic increases, networking resources may be taxed. What might catch you off guard, however, is the communication resources that support your storage units. If your servers are virtualized, you may be sending extra traffic over those connections as well.
Operating System Issues
Operating system configuration requires some care, since a load test may push your system beyond the resources that are currently configured. Network ports and other communication data structures will proliferate, as will support for the number of processes that will be responding to the load. This is something that, if you’ve got it covered in theory, too often turns out to have some parameter that needs adjusting that was not known or remembered.
Load Testing is a Reality Check
There’s really no substitute for giving the system periodic load checks as well as one after everything is locked down. Systems are too complex to be fully understood as static configurations. Only once you’ve tested the limits can you truly know what it can or cannot handle in the real world.
Eric Blair writes about load testing tools, mobile application testing tools and other related services offered at SOASTA.None found.