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 using PAL with performance counters ( http://blogs.iis.net/ganekar/archive/2009/08/12/pal-performance-analyzer-with-iis.aspx )
-
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