Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I have multiple web sites hosted with IIS 6.0 on Windows Server 2003. Some of them use the .Net 1.1 framework while the others use .Net 2.0. I currently have application pools set up for each framework. Are there any other reasons to add additional application pools?

share|improve this question
add comment

3 Answers

up vote 22 down vote accepted

Yes, many:

  • AppPools can run as different identities, so you can restrict permissions this way.
  • You can assign a different identity to each app pool so that when you run task manager, you know which w3wp.exe is which.
  • You can recycle/restart one app pool without affecting the sites that are running in different app pools.
  • If you have a website that has a memory leak or generally misbehaves, you can place it in an app pool so it doesn't affect the other web sites
  • If you have a website that is very CPU-intensive (like resizing photos, for instance), you can place it in its own app pool and throttle its CPU utilization
  • If you have multiple websites that each have their own SQL database, you can use active directory authentication instead of storing usernames/passwords in web.config.
share|improve this answer
add comment

I create my IIS application pools and separate apps under these aspects:

  • Mission-critical apps get their own app pool: this way I can insulate them from problematic applications. It makes individual configuration possible and I can more easily monitor or troubleshoot, if there are problems.
  • Isolating apps by type: pooling by language/technology or .NET framework version. You could mix ASP.NET with classic ASP in the same pool, but if both ASP and ASP.NET were in the same pool, and if you have a problem with your ASP application which required that you restart the worker process, your ASP.NET applications would also be recycled.
  • Problematic apps (for example apps with memory leaks or high cpu usage, database connections leaking etc) are separated from normal apps. New apps go into an "on probation" pool which is monitored for uptime and performance. If the app proves to be stable over time, it is moved to a pool for normal apps; otherwise, it remains isolated. This helps group the more problem-free apps together.
share|improve this answer
add comment

Also in addition to Portmans answers - for security reasons. restricting Resources access to a pool. See http://blogs.iis.net/tomwoolums/archive/2008/12/17/iis-7-0-application-pools.aspx

share|improve this answer
    
The article is for IIS 7. Does it apply equally as well to IIS 6? –  Jonathon Watney May 1 '09 at 4:22
    
It certainly does –  CPU_BUSY May 1 '09 at 4:32
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.