Approximate benchmarks for concurrent connections on IIS 6.0

Does anyone have any rough order-of-magnitude guidelines for the number of connections that IIS 6.0 can sustain, based on available memory, cores, cpus, etc. for both short and long-lived connections?
LVL 12
AGBrownAsked:
Who is Participating?
 
Andrej PirmanConnect With a Mentor Commented:
Unfortunatelly I have no links to those articles, since I was pooling it from my memory.

I suggest you to test your web application with IIS Stress Tool, setting parameters according to your expected load. Here is a link: http://support.microsoft.com/kb/231282

And a story from my testing:
When I was first testing my servers, something went wrong - my anty-hammering and firewall application did their job, and not just stopped the unusuall stressed load, but also reported to many public databases my 2nd server, from which test was made, to be source of attack. So I put my own server to blacklist :))
0
 
Andrej PirmanCommented:
Theoretical limits vary from article to article. I remember reading somewhere in the past that IIS on 32-bit machine can handle no more than 8000 concurent connections, while this limit can be patched using some registry settings and pushed up to 40.000 concurent connections.

But all those are theory.
In praxis things work differently. Most of all it depends on application, which serves web page. It might be HTTP.SYS, might be ASP engine, .NET framework, and also PHP, PERL, JSP and others. Which might run as CGI or ISAPI module. Also, lots of resources are eat by database, which might be Access via ODBC, MSSQL, MySQL or others.
So I think there is no document, which would take into account all those parameters and be able to set some theorethical limits under all different circimstances.

So, by my oppinion, the best is to go from back - list your expectations, what you will host, databases etc, and those with expertise will be able to say if it will run or not.

For example:
on my Intel Core2Duo 2,13 with 2 GB RAM and 143 GB RAID 1 disks,
I run IIS with 200+ web pages, PHP, MSSQL, MySQL, .NET and ASP. Average concurent connections are between 15 and 50, monthly traffic around 1,5 GB, and it runs smoothly, without any problems.
I tested it with IIS Stress Tool and it handled over 176.000 visitors per hour, being from 8 to 32 simultaneously on, wizhout noticeable problems.

While on the other hand, I had some lousy PHP/MySQL programmers pages hosting, which were writing really bad PHP/MySQL code, so hosting their home-made portal slowed down my whole server.
0
 
Andrej PirmanCommented:
Sorry, misstyped:
...I run IIS with 200+ DOMAINS (not web pages)
...monthly traffic around 1,5 TB (not GB)
0
Cloud Class® Course: CompTIA Cloud+

The CompTIA Cloud+ Basic training course will teach you about cloud concepts and models, data storage, networking, and network infrastructure.

 
AGBrownAuthor Commented:
That helps a bit I think - do you have any links to the articles?

Pretty much the situation exactly: long running requests to a web service written in .NET which just sits and waits for an event to fire before returning (rather than polling at intervals - there is a reason, and both techniques are used in this application). The service will be written using async techniques so that the IIS thread is only used during the setup and after the event fires and the background thread returns.

No database connections open during the long part of the request - only during the initial few milliseconds while things are setup for the wait.

Hardware - single HP DL360 G5 server with 4 x 72 GB 10k rpm disks in RAID 5, but with IIS running on a VMWare virtual machine using 2 cores from the dual 2-core CPUs on the host. RAM configurable - up to 2 GB available for the VM. Will later migrated to it's own server but this is what it uses at the moment - so if possible I'm looking for rough benchmarks for connections (concurrent, for long running requests, and per second for instant requests) for a similar setup.

Andy
0
 
AGBrownAuthor Commented:
If this provokes any more discussion; I'm hoping to be able to handle about of the order of 1000 concurrent connections - approx 50 % of which will be taken up with these long-running requests to the web service.
0
 
AGBrownAuthor Commented:
I have to write the app in order to get to the testing stage; at the moment I'm trying to get some rough orders of magnitude (do I need one server or 100 to get this to work).

I have only just picked myself up off the floor from laughing so hard - I thought I was the only person who did things like that.

Andy
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.