Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How can I find the average number of concurrent users for IIS to simulate during a load/performance test?

I'm using JMeter for load testing. I'm going through and exercise of finding the max number of concurrent threads (users) that our webserver can handle by simply increasing the # of threads in my distributed JMeter test case, and firing off the test.

Then -- it struck me, that while the MAX number may be useful, the REAL number of users that my website actually handles on average is the number I need to make the test fruitful.

Here are a few pieces of information about our setup:

  • This is a mixed .NET/Classic ASP site. Upon login, a browser session (with timeout) is created in both for the users.
  • Each session times out after 60 minutes.

Is there a way using this information, IIS logs, performance counters, and/or some calculation that will help me determine the average # of concurrent users we handle on our production site?

like image 963
tresstylez Avatar asked Feb 07 '12 17:02

tresstylez


People also ask

How do you calculate average concurrent users?

Calculating the Number of Concurrent Users For example, if your peak visits per hour is 200 visitors and the average visit duration is 6 minutes, the number of concurrent users that should be used to create 200 visits per hour is 20 concurrent users.

How do I see concurrent users in IIS?

The easiest way to determine the number of active user sessions on the IIS Web site is to use the performance counters in Windows Performance Monitor. Open the Performance Monitor console by running the perfmon command and go the Performance monitor section (Monitoring Tools — > Performance Monitor).

What is concurrent users in load testing?

Concurrent user load testing sends traffic to a web application, web page, or API (Application Programming Interface) to stress the infrastructure. Specific metrics are observed and recorded during the test, and system response times during periods of sustained heavy load are measured.


1 Answers

You might use logparser with the QUANTIZE function to determine the peak number of requests over a suitable interval.

For a 10 second window, it would be something like:

logparser "select quantize(to_localtime(to_timestamp(date,time)), 10) as Qnt,
    count(*) as Hits from yourLogFile.log group by Qnt order by Hits desc"

The reported counts won't be exactly the same as threads or users, but they should help get you pointed in the right direction.

The best way to do exact counts is probably with performance counters, but I'm not sure any of the standard ones works like you would want -- you'd probably need to create a custom counter.

like image 134
RickNZ Avatar answered Sep 28 '22 05:09

RickNZ