The Role of Concurrent Users in Load Testing
While many customers understand the value of a load test as part of their holiday preparation, many might still have questions about specific parameters that factor into testing their websites. This blog post will discuss the concept of concurrent users as it applies to load testing.
What does concurrent users mean? Concurrent users are defined as the total number of people using an online resource in a particular location within predefined period of time. All online resources—websites and other services—are hosted on web and application servers at data centers, hosting companies, or cloud computing centers. These servers will have a certain number of central processing units (CPUs) and CPU cores, which determines the limit of concurrent users.
To simulate real world visitors to a website, load testing platforms will launch a certain number of browsers to replicate the number of users accessing a website or service. Those browsers will be instructed by the load testing platform through scripts to access the website or online resource as a real world customer would. The goal of the load test is to determine the performance of the website or online service when hit by a certain number of concurrent users.
How do you determine how many concurrent users your infrastructure can support? There are a few different approaches. The simplest way is to look at the number of CPU and CPU cores that the web or application servers have available. Through years of experience in working with customers, Neustar has determined that each CPU core can support an estimated 220 to 250 concurrent users at any one time. In theory, if a website is running on a server having one CPU with four CPU cores (a quad-core CPU), nearly 1,000 users could be visiting and viewing the site at any one point in time. In reality, the number will vary to due to many factors such as memory on the servers, available bandwidth, and other factors that are sometimes not in control by the customer. The server CPU and CPU core information can be obtained by contacting the server administrators or other people that maintain the web or application servers. Once the information has been made available, you will be able to estimate how many concurrent users your website or application can support.
While it’s great to have the theoretical estimates, load testing will help you determine how many actual concurrent users your website or application can support. That will in turn inform you of any potential performance breaking points. Having the theoretical estimates will assist companies in planning their load tests appropriately so they don’t accidentally overprovision the number of concurrent users during a load test, which can waste time and effort.
Many companies also misunderstand the difference between concurrent users and sessions (or transactions). As mentioned earlier, if a website or application has four CPU cores, the website can theoretically support up to 1,000 concurrent users at any one time. During any given hour during the business day, there may be thousands of total sessions generated by users. Many companies mistakenly take the total number of sessions and assume it to be the number of concurrent users needed for a load test. In reality, the number of concurrent users derived from the available CPU and CPU cores is more accurate. This is not to say that session information is useless. Session information (total number of sessions, average length of the sessions) is helpful in planning how many potential concurrent users may be needed for a load test.