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

tresstylez picture tresstylez · Feb 7, 2012 · Viewed 14.8k times · Source

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?

Answer

RickNZ picture RickNZ · Feb 22, 2012

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.