Click here to Skip to main content
15,879,535 members
Articles / Web Development / IIS

Application Pools on IIS 6.0

Rate me:
Please Sign up or sign in to vote.
4.36/5 (8 votes)
12 Jul 2009CPOL3 min read 54.6K   17   5
Improve your web application performance using Application Pools.

Introduction

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.

Fundamentals

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.

Precautions

  • 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.

References

License

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


Written By
Web Developer Bank of America
India India
This member has not yet provided a Biography. Assume it's interesting and varied, and probably something to do with programming.

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
professionalMubi | www.mrmubi.com3-Aug-11 22:40 
good work!
Mubshir Raza Ali
^^^^^^^^^^^^^^^^^^^^
http://www.mrmubi.com

GeneralGood for start... but Pin
Dinesh Mani13-Jul-09 19:45
Dinesh Mani13-Jul-09 19:45 
GeneralRe: Good for start... but [modified] Pin
Kishore Nandagiri14-Jul-09 6:43
Kishore Nandagiri14-Jul-09 6:43 
GeneralRe: Good for start... but Pin
Dinesh Mani14-Jul-09 17:39
Dinesh 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.