Click here to Skip to main content
12,882,639 members (26,425 online)
Click here to Skip to main content
Add your own
alternative version


16 bookmarked
Posted 12 Jul 2009

Application Pools on IIS 6.0

, 12 Jul 2009 CPOL
Rate this:
Please Sign up or sign in to vote.
Improve your web application performance using Application Pools.


This article describes the concept of application pools and web garden that has been introduced in IIS 6.0 and tuning IIS 6.0 for better performance. I have tried to keep it simple and short, at the same time informative.


What is an Application Pool?

IIS can isolate an individual Web application or multiple sites into a self-contained process (called an application pool) that communicates directly with the Operating System kernel.

What is a Web Garden?

IIS 6.0 worker process isolation modes also enable multiple worker processes to be configured to service requests for a given application pool. This configuration is known as a Web garden.

IIS 6.0 Architecture

The figure below describes the IIS 6.0 architecture in its simplest form. Unlike previous versions of IIS, there are multiple processes (application pools) that run independent of each other. The biggest advantage of this (isolation of processes) is, in a shared hosting environment, when one of the web sites goes down because of a heavy load, that doesn't effect the other websites that are running under a different application pool.

Moreover, the IIS 6.0 manager allows you to limit the max memory that can be used by an application pool. It also allows you to configure parameters related to the performance and health of an application pool.

Advantages of using this feature

  • These self-contained application pools prevent an application or site from disrupting the XML Web Services or other Web applications on the server.
  • OS resource (memory, CPU utilization etc.) allocation.
  • Isolation increases throughput, and increases the capacity of applications.
  • Offers more headroom on servers, which in turn reduces hardware needs.
  • Through web garden and processor affinity, increases throughput and capacity of applications.

Other settings that affect the reliability and availability of a web application on IIS 6.0:

  • Health monitoring
  • Automatic process recycling
  • Rapid fail protection

Case study (out of my experience)

I worked with a Web Service (5 instances for 5 different clients), which when hosted on IIS 5.1 used to handle 90K requests per day and with a peak of 3 requests in a fraction of a millisecond. But as the traffic started increasing slowly and the application slowed down in peak time, it was not able to handle 3 requests in a fraction of a second.

The same Web Service was deployed on IIS 6.0. An application pool was created for each client instance, with different resource settings (based on the load expected from that particular client). To our surprise, the server with the same hardware and the same application was able to handle 300K requests per day with a peak of 12 requests in a fraction of a millisecond without any problem.


  • Too many worker processes could slow down the web application.
  • Improper allocation of the resources could slow down the web application performance.
  • Improper tuning of the health monitoring and recycling parameter could slow down the web application performance.

Points of interest

With the same hardware, you can get an unbelievable improvement in web application/service performance, provided you make use of IIS 6.0 and configure the application pools in a proper manner.



This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

Kishore Nandagiri
Web Developer Bank of America
India India
No Biography provided

You may also be interested in...

Comments and Discussions

QuestionGood Article Pin
ashok rathod19-Mar-14 20:28
professionalashok rathod19-Mar-14 20:28 
Questiongoo work! Pin
Mubi | www.mrmubi.com3-Aug-11 22:40
memberMubi | www.mrmubi.com3-Aug-11 22:40 
GeneralGood for start... but Pin
Dinesh Mani13-Jul-09 19:45
memberDinesh Mani13-Jul-09 19:45 
GeneralRe: Good for start... but [modified] Pin
nankis914-Jul-09 6:43
membernankis914-Jul-09 6:43 
GeneralRe: Good for start... but Pin
Dinesh Mani14-Jul-09 17:39
memberDinesh Mani14-Jul-09 17:39 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

Permalink | Advertise | Privacy | Terms of Use | Mobile
Web02 | 2.8.170422.1 | Last Updated 12 Jul 2009
Article Copyright 2009 by Kishore Nandagiri
Everything else Copyright © CodeProject, 1999-2017
Layout: fixed | fluid