Understanding Internet Information Services - Part 2
page 4 of 6
by Uday Denduluri
Average Rating: This article has not yet been rated.
Views (Total / Last 10 Days): 26818/ 84

Worker Process Isolation Mode and Application Pools

Before we understand Application Pools we need to understand the HTTP Protocol Stack (HTTP.sys). HTTP protocol stack is between the operating system kernel and the HTTP requests. It receives the HTTP requests and routes them to the appropriate HTTP request queue. Apart from doing this it also caches the responses and does the Quality of Service functionalities (QoS) like maintaining bandwidth, connection timeouts and connection limits.

When IIS 6.0 runs in worker process isolation mode, we have the option of grouping different Web applications into groups. This concept of grouping applications is known as Application pools. An application pool is a group of one or more Web Sites that are served by a worker process or set of worker processes. We use Application pools to make our applications more robust. By using this approach if a worker process fails it does not affect other worker processes in other application pools. Also, while grouping the application we can apply the configuration settings to the group as a whole.

Before this approach Inetinfo.exe was the central process based on which loading the execution of the application was done. Now, with Worker process isolation mode it enables us o completely separate an application in its own process without the dependency of InetInfo.exe.

More about Application Pools

1.    Multiple Application Pools – We can have multiple application pools configured. All these application pools can run in parallel. We can assign an application to multiple application pools. Thus, if once application pool is busy processing a request the other application pool can take the incoming request.

2.    Application Pool Health Monitoring – As discussed above, it is the job of WWW service to monitor the health of the worker process. The WWW service pings the worker process and waits for the response. If the worker process fails to respond to the pings then WWW service terminates the worker process and creates a new worker process. The time interval for the pinging can is configurable. Figure 1 below shows the same.

Figure 1

If an application fails repeatedly for a specified number of times while responding to the requests, we can configure to safe guard the application. This feature is known as Rapid fail protection. If this feature is set to on and an application misbehaves, then worker process will be forcefully shut down and restarted. Figure 1 shows the same settings. Health monitoring also applies for the application pools. Rapid fail protection also stops the application pools in case of an emergency. These are the different ways by which we can have the Application pools stopped by the health monitoring.

·         When the Rapid fail protection action occurs

·         If the application Pool reaches the maximum CPU usage limit. The maximum CPU percentage can be configured. Figure 2 shows the same.

·         When a configuration error occurs

·         When the windows administrator performs the graceful shutdown of the application pools

Figure 2

3.    Orphaning Worker Process – Orphaning worker process is a special mode of worker process. When this mode is on and if a worker process has some errors, WWW service does not restart or shut down the worker process, rather it removes the worker process from the Application pool. By using this mode the other worker processes in the Application pool can be safe guarded in case of any problem with one worker process.

4.    Web Gardens – It is to be noted that by default an application pool has only one worker process. Web gardens are application pools that are configured to run multiple worker processes. By using Web Garden mode it can handle more loads and reduce the response time. If one worker process is busy, the other worker process can attend to the new incoming requests.

5.    Processor Affinity – In a multi processor environment we can use this setting to see that the application pool runs on the specific Processor or CPU.

6.    Application Pool Identity – Figure 3 shows the Application pool identity settings. For any process to run under Windows NT system it needs to have a process identity to access the resources. Process identity is mandatory for a process under operating system control. Application pool identity is the user account that the worker processes running in the application pool use as their process identity. It is always recommended that the Application Pool identity is given the minimum permissions. This is for the security perspective.

Figure 3




7.    Idle Timeout- Using this setting for an Application pools, the worker process can request for a shutdown. This enables freeing up the unused resources. Figure 4 shows the same.

Figure 4




View Entire Article

User Comments

Title: IIS   
Date: 2010-11-09 6:39:51 AM
Hi Uday ,
It was nice article,i just needed basic understanding over IIS that u explained well enough.
Title: IIS   
Date: 2009-09-20 1:56:52 PM
Hi Uday,

i have go through ur article as u have requested. The article is quite good but not perfect its looks like an article by novice be some technical it is totally incomplete missing some major issues like inetinfo, ddlhost, w3wp etc flow is not complete. it should beeeeee...if u want to contact me, mail me in makftp[at]gmail[dot]com

Product Spotlight
Product Spotlight 

Community Advice: ASP | SQL | XML | Regular Expressions | Windows

©Copyright 1998-2020 ASPAlliance.com  |  Page Processed at 2020-01-26 3:48:07 AM  AspAlliance Recent Articles RSS Feed
About ASPAlliance | Newsgroups | Advertise | Authors | Email Lists | Feedback | Link To Us | Privacy | Search