Concurrent Users: A Loosely Defined Term

Concurrent Users: A Loosely Defined Term

How many concurrent users can my site support? This question is the one most often posed to our team in any performance planning discussion. Although the question is quite common, the term concurrent user is an often misunderstood, loosely defined industry-wide term. The answer to the question depends on how the word concurrent is defined and interpreted. The HTTP protocol is inherently stateless, getting and posting information as requested, but often remaining idle between user requests. For example, some people define a concurrent user through the Performance Monitor counter Current Anonymous Users. This can be misleading because one user could simply establish a connection by making one request and dropping off, where another user could make many requests that count as one connection.

In another scenario, imagine a thousand users browsing the IBuySpy .NET sample Web application. However, probably only a portion of the user requests are being concurrently processed on the Web server. The remaining user population is engaged in what is commonly called think time, meaning they are filling out a form or reading data before generating additional server activity by getting or posting data to the server. In this particular situation, there are a thousand IBuySpy users interacting with the site in the same general timeframe, but only a subset of one thousand client requests are concurrently processing on the server.

Concurrent Server Request Processing

When we use the term concurrent users, we assume that client requests are being processed on the server simultaneously. Effective capacity estimation requires a close analysis of the number of requests concurrently processed by the server relative to your user population, not just the finite number of people simultaneously using your Web application. The point is that you need to consider both concurrent server request processing and your user population, because users of your Web application are not necessarily making requests that concurrently generate server processing.

To further illustrate this important distinction, imagine 50 clients simultaneously requesting server data. The probability of those requests arriving at the server simultaneously in the real world can vary greatly. Variables affecting the arrival of those requests include client connection speeds, network latency, internet congestion, and the number of network segments the requests need to travel. If any of these variables change across those 50 client requests, the resulting activity at the server level can change significantly. Users requesting server data simultaneously do not necessarily produce a one-to-one relationship between the number of users and their requests concurrently being processed on the server. Understand the limitations of this term before committing to capital expenditures for capacity planning purposes.

TCA Concurrent Users

We felt it critical to discuss the term concurrent users because the TCA models site capacity by predicting the theoretical maximum level of concurrent users. TCA estimates hardware resource costs for average users concurrently utilizing your Web application. The user profile defines the average user for your site and is the first step in the five step TCA methodology. TCA concurrent users represent the level of average users consuming resources on your servers.



Performance Testing Microsoft  .NET Web Applications
Performance Testing Microsoft .NET Web Applications
ISBN: 596157134
EAN: N/A
Year: 2002
Pages: 67

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net