Solved

Approximate benchmarks for concurrent connections on IIS 6.0

Posted on 2007-11-30
8
2,089 Views
Last Modified: 2008-09-17
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?
0
Comment
Question by:AGBrown
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 3
  • 3
8 Comments
 
LVL 18

Expert Comment

by:Andrej Pirman
ID: 20381704
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
 
LVL 18

Expert Comment

by:Andrej Pirman
ID: 20381730
Sorry, misstyped:
...I run IIS with 200+ DOMAINS (not web pages)
...monthly traffic around 1,5 TB (not GB)
0
 
LVL 12

Author Comment

by:AGBrown
ID: 20381797
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
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
LVL 12

Author Comment

by:AGBrown
ID: 20381890
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
 
LVL 18

Accepted Solution

by:
Andrej Pirman earned 500 total points
ID: 20382307
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
 
LVL 12

Author Comment

by:AGBrown
ID: 20382381
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

Featured Post

What Is Transaction Monitoring and who needs it?

Synthetic Transaction Monitoring that you need for the day to day, which ensures your business website keeps running optimally, and that there is no downtime to impact your customer experience.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

First of all, clustering IIS is something you should rarely consider doing. In almost all cases, Microsoft Network Load Balancing (NLB) (http://technet.microsoft.com/en-us/library/cc758834(WS.10).aspx) is a much better solution when you need to p…
What is an ISAPI filter?   •      It's an assembly (.dll file) that can add or change the way IIS works.   •      They can be enabled globally for your web server or on a site-by-site basis.   When the IIS server receives a request, enabling the ISAPI fi…
If you're a developer or IT admin, you’re probably tasked with managing multiple websites, servers, applications, and levels of security on a daily basis. While this can be extremely time consuming, it can also be frustrating when systems aren't wor…
NetCrunch network monitor is a highly extensive platform for network monitoring and alert generation. In this video you'll see a live demo of NetCrunch with most notable features explained in a walk-through manner. You'll also get to know the philos…

726 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question