Webfarm and IIS configuration tips/tricks

I was recently talking with some good friends about tips for performance and what an IIS Administrator could do on the server side.  I also see this question from time to time in the forums @ http://forums.iis.net.    Of course, you should test individual settings in a controlled environment while performing load testing before just implementing on your production farm. 




  • IIS Compression enabled (both static and dynamic if possible, set it to 9)  If you are running IIS 6, check this article out by Scott Forsyth.


  • Run FRT for long running pages (Failed Request Tracing)


  • Sql Connection pooling in code




  • Look at load testing using visual studio load testing tools


  • Log parser finding long running pages.  Here is a couple examples


  • Look at CPU, Memory and disk counters.  Make sure the server has enough resources.


  • Same machineKey account across all same nodes


  • Localize content vs. using UNC based content on a single server (My UNC tag with great posts)


  • Content expiration


  • ETAG’s the same across all web-farms


  • Disable Scalable Networking Pack


  • Use YSlow or Developer tools in Chrome to help measure the client experience improvements.

Additionally, some basic counters in for measuring applications is: I would recommend checking out the Chapter 17 in IIS 7 Resource kit. it was one of the chapters I authored. ?




  • Concurrent Connections, 


  • Request Per / Sec,


  • Request Queued. 

I strongly suggest testing one change at a time to see how it helps improve your performance.  Hopefully this post provides a few options to review in your environment.  


Cheers,


Steve Schofield
Windows Server MVP – IIS
http://weblogs.asp.net/steveschofield
 
http://www.IISLogs.com
Log archival solution
Install, Configure, Forget