Blog Home  Home Feed your aggregator (RSS 2.0)  
Venexus DotNetNuke Blog - IIS 6.0 Horticulture and DotNetNuke
DotNetNuke Articles, Code Snippets, Errors, and News
 
 Tuesday, January 24, 2006

Working from IIS 4 days to IIS 5 was a huge improvement, but I am constantly amazed with the new IIS 6. There are so many goodies I keep finding that were not in IIS 5 that help with administration and performance. The latest one I discovered a couple of weeks ago and have been playing with is Web Gardens. I'm not talking about web farms here, but the horticulture of worker processes. From my testing, I conclude a little web gardening in IIS will definitely help DotNetNuke performance. So, the nest time your DotNetNuke website is getting pounded with traffic and you start seeing delays in page load time, a few extra worker processes can handle the extra load...read on :-)

Too help with performance, each domain should be in its own Application pool within IIS.

"IIS versions earlier than 6.0 use the ASP.NET process model (Aspnet_wp.exe). Under the ASP.NET process model, each unique application version automatically runs in a separate process at run time. All applications that target the same version of the runtime share the same process (or processes in Web garden mode). However, IIS 6.0 uses the IIS 6.0 process model (w3wp.exe) and introduces a new isolation feature called application pooling. Application pooling allows applications to run together in one or more processes, as long as they share the same pool designation. Applications that are assigned different application pools never run in the same process." - MSDN

To create a pool designation in IIS 6.0

  1. Open the IIS management console and expand the local computer by clicking the plus sign.
  2. Right-click the Application Pools folder, point to New, and then click Application Pool. The Add New Application Pool dialog box appears.
  3. Enter the new pool designation in the Application pool text box, and then click OK.

To assign a pool designation to an ASP.NET application in IIS 6.0

  1. Open the IIS management console, expand the local computer by clicking the plus sign, and navigate to the folder that contains the ASP.NET application.
  2. Right-click the application and then click Properties. The application's properties dialog box appears.
  3. On the Directory tab, select the desired pool designation from the Application Pool list.

Since IIS is running in worker process isolation mode, Web gardens become an option.

"In IIS 6.0 worker process isolation mode, application pools enhance Web site or application reliability by isolating applications and the worker processes that service those applications. For even greater reliability, you can configure an application pool to be supported by multiple worker processes. An application pool that uses more than one worker process is called a Web garden. The worker processes in a Web garden share the requests that arrive for that particular application pool. If a worker process fails, another worker process can continue to process requests." - MSDN

To configure a Web garden by using IIS Manager

  1. In IIS Manager, expand the local computer, expand Application Pools, right-click the application pool, and then click Properties.
  2. Click the Performance tab, and under Web garden, in the Maximum number of worker processes box, type the number of worker processes that you want to assign to the application pool. (You must type a number greater than 1 for the application pool to become a Web garden.
  3. Click OK.

How does this help for performance?

First and foremost, under heavy load (web traffic), a worker process can get tied up with a request. If this happens, there is another worker process available to take the load. Utilizing this has definitely helped during peak traffic times. Also, when traffic is steady, each new connection is passed to a different worker process in the Web Garden, in a round-robin scheme. This smooths out the load, instead of  fighting for resources bound to a worker process.

All for now...I have a garden to tend.

Tuesday, January 24, 2006 11:03:53 PM (US Eastern Standard Time, UTC-05:00)  #       |  Tracked by:
"Moving DotNetNuke to Production" (Venexus DotNetNuke Blog) [Trackback]
Copyright © 2010 Venexus, Inc.. All rights reserved.