IIS Optimization
Even on large banks, I've rarely (can't remember when) done any optimizations on IIS that weren't just the addition of modules. I keep all the defaults.
- Dynamic and Static Compression
- Set Expires dates on Static content, images, JS, etc
Why would you consider using a single app pool per website as an optimization? Separating websites into different app pools should only be done if you have an explicit need for it like:
- Different .NET versions
- Different identity requirements
- Crashing websites
- Recycle schedules
- Etc
Lots of good articles on TechNet:
- Top Ten Ways To Pump Up IIS Performance
- Performance Tuning (IIS 6.0)
- Optimizing IIS 6.0 Performance (IIS 6.0)
- Performance Tuning Guidelines for Windows Server 2003 (covers IIS 6 as a workload)
- Performance Tuning Guidelines for Windows Server 2008 (covers IIS 7 as a workload)
You should see what your score is in YSlow. We run that on all sites before they deploy. A few tips:
- Minify your JS and combine it into one JS file (put that reference at the bottom of the html file).
- Combine your CSS into one file.
- Enable GZIP and deflate compression. Add .js and .css to the type of files it will compress. ZIPEnable is good for this.
- Set up content expiration for 1 year. Remember that if you modify a css/js/image file after you do this, you will need to rename that file and update references so clients pull the latest version.
- Disable E-Tags.