Application Pool Definition

Application pools define a set of Web Applications that share one or more worker processes. They provide a convenient way to administer a set of Web Sites and Applications and their corresponding worker processes. An Application Pool is a group of resources mapped in IIS to w3wp.exe process. Application Pools consume an estimated 80-100MB RAM each, and possibly a lot more, depending on design and usage.

So we can say:

  • Application Pool is more related to IIS than SharePoint
  • There is no OOTB way to manage completely an Application Pool trough SharePoint Server.
  • An application pool provides you with a way of isolating Web sites from each other even though they are being hosted on a common server
  • Each application pool is given its own set of server resources. That way, if a Web site crashes, it won’t affect sites in other application pools.

Definitions

First up, Microsoft definitions:

  • Boundary = static limit that cannot be exceeded by design
  • Threshold = configurable limit that can be exceeded to accommodate specific requirements
  • Supported = Configurable limits that have been set by default to a tested value.

Secondly there is also a notes section that not everybody is reading who says:

The maximum number is determined by hardware capabilities. This limit is dependent largely upon:

  • The amount of memory allocated to the web servers
  • The workload that the farm is serving, that is, the user base and the usage characteristics (a single highly active application pool can utilize 10 GB or more)


Application pool limitation and recommended setting

According to TechNet we shouldn’t have more than 10 Application Pools per Web Server (http://technet.microsoft.com/en-us/library/cc262787.aspx).

Supported Limits

That limit is what is known as a “supported” limit. “Supported limits define the tested value for a given parameter. The default values for these limits were defined by testing, and represent the known limitations of the product. Exceeding supported limits may cause unexpected results, significant decrease in performance, or other harmful effects.” This limit was determine by Microsoft testing and the point at which the saw performance become a problem.

In other terms if you have 8GB ram on your server, it’s a best practice to respect this limitation. But if you have 64GB ram you can override this without any problem.

Application Pool consolidation

Many websites can be hosted on one Application Pool, but many Application Pools cannot be used by a Web Application.
So the question can be how can I manage my Web Applications while keeping in mind the 12 Web Application Pools Limit?
Well, all the Application Pools should be combined together by usage or anything else and divided by authentication model (claims, anonymous …).

Recommendations

It’s always a good thing to follow the MSDN/TECHNET recommendations

Check the following references...

Microsoft Sharepoint forums

Windows networking