IIS7 Application Pools - share 1 pool for all Web Sites or split them up - Best Practice?

cwruck used Ask the Experts™
We have recently migrated to a new web server running Windows Server 2008 R2 and IIS7 and 8GB RAM. We host 50 or so DotNetNuke (ASPX) web sites on this new server and want to know what is the Application Pool best practice. Is it best to put all web sites in the same App Pool (ASP.NET v4.0 Integrated) to limit memory consumption, or split the web sites into groups, with each group using a different Application Pool.  Put application protection aside, I am mainly interested in performance benefits, and initial application load time afer inactivity.

We use a Keep Alive windows service which polls each web site every 5 minutes, but we are still getting long average page load times after inactivity.  We want to have page loads after inactivity to be as quick as possible.
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®

Create the Application pool as per .net versions only for e.g.



If you think any site have heavy traffic then you can move that website only in specific application pool. There is no need to create specific application pool for every website.

Shared Hosting  (Hosting Companies) runs on same environment.
If you value security, you should run every DNN application in its own application pool. If you set the application pool identity to the (new for IIS 7.5) ApplicationPoolIdentity, you can give application pool identities easy access to the application directory, by using "iis apppool\[APPLICATIONPOOLNAME]"
the performance overhead of the extra application pools is next to nothing. Every application needs to load all dlls anyway in its own app domain. You will not save much memory if you put everything in one pool. Also, if you value memory over security, you might wonder if you are in the right business.... Running every application in its own app pool means that applications cannot touch any other application
see this article over at iis.net for more info: http://learn.iis.net/page.aspx/624/application-pool-identities/
With respect to page load times: you can tweak the app pool recycle times. By default the app pool recycles after 20 minutes of inactivity. This is a problem for sites that do not get much traffic. What you can do is turn that feature off and recycle the apppool once per day for instance. Con: overal resource usage of the server will be up, Pro: your sites will respond faster. See this article for more info on app pool recycliing settings: http://www.iis.net/ConfigReference/system.applicationHost/applicationPools/add/recycling


Helpful information links...

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial