Many of the solutions we build here at Segue are web-based. Some of the sites we build are for niche markets that may not generate lots of traffic. Some of our other sites get hundreds or thousands of hits per day. One question that’s often on our customers’ minds is “How many users can my site support?”
This type of question is usually answered with another question. Most commonly, a series of them. We’ll ask things like:
- Do you currently have any analytics on your site? Can we monitor current traffic patterns?
- What does your hosting environment look like? Can you quickly scale up to support high traffic if necessary?
- How process-intensive is your site? Does it mainly just present content, or is there a large amount of background application processing taking place?
Providing us with the answers to these types of questions helps us estimate how many users you can or will have hitting your site at once. However, an estimate is not always enough. Sometimes, we really need to know what the breaking point is. We need to be sure that our hardware can handle it and that our applications are fully optimized. This is when performance and load testing comes in to the scene.
When the decision to perform load and performance testing is made, one of the first things we’ll do is set up monitoring tools on the back end. One such tool we use here is called AppDynamics. This tool lets us see in real time what’s happening in our applications. We can see EXACTLY how long each process takes, what service calls are being made, what their response times are and the overall health of the hardware all of this is running on. You have a multiple server environment? No problem. Once we have a clear picture of what’s happening inside an application, we can begin to make some tuning adjustments. Are we calling a service we could be caching? Let’s cache it! Lots of small changes can add up to big performance improvements.
Once we’ve done some initial performance tuning, we’ll set our sights on load testing. This is the act of us putting so many users on your system, performing all of the major functions of the site, we intentionally bring the system to its knees. Or get real close, anyway. Not every website we create gets load tested because, frankly, it’s a somewhat expensive process. But in some situations, it’s absolutely necessary. A critical transaction could depend on whether or not a system we built is available. We don’t take these types of things lightly.
One of our partners, Neustar, offers a tool we use (formerly known as Browsermob) that lets us flood the system with hundreds or thousands of users. We usually start off small, watching how the system performs under a relatively light load. The monitoring tools help keep us tuned in to what’s happening on the back end. The load testing tool keeps us apprised of what our virtual end users are experiencing.
By using test scripts (many of which we had already automated previously), we can perform complex site operations at the click of a button. We can have users registering, users logging in and uploading files, other users filling out forms, and yet more users subscribing to your newsletter. If at any time, any one of those virtual users gets an error, blank screen, or any other unexpected result, we’re immediately notified. Using the monitoring tools, we can quickly debug most of these types of issues and can often identify a few more areas for performance tuning.
Once we’re comfortable that your system has been tuned, we’ll unleash the flood gates and hit the system with what we expect to be more users than it can realistically handle. Think of it as running a remote controlled car at hundreds of miles per hour around a track. We slowly start ramping up the users until we start seeing cracks. We’ll note at how many users this starts happening, keep monitoring, and turn the dial even further.
The results of these tests can allow us to either definitively answer or easily extrapolate the answer to your initial question: How many users can my site support? We can make hardware recommendations and provide details around what the current hardware configuration can currently support. Expecting a rush around the holidays? No sweat. Now you’ll know what you can support and when you’ll need to add some web servers.
Data throughput chart (from Neustar Web Performance Management)
User load chart (from Neustar Web Performance Management)