Question: I've read recommendations that we should create separate application pools for each asp.net application on our Win2008 server. 

We have about 20 apps that would be on the same server. I know this would create 20 separate worker processes which seems very wasteful.

Is it good practice to create separate application pools for each application?

Answer: 
Reposted from ServerFault, "[Why add additional application pools in IIS?](https://serverfault.com/questions/2106/why-add-additional-application-pools-in-iis)"

* 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.
yes, it is a good idea even for 20 applications.

1. Security. Different app pools running under different accounts.
2. Isolation. One crashing app won't take down other apps.
3. Memory (if you are running 32bit). Each app pool will have its own address space. Thus you can address much more memory than a maximum of approximately 2.7GB of usable space for 1 process.
4. You may choose to periodically restart one not-so-well behaving app without affecting other applications.