We are in the middle of addressing some production issues at my current client. One of them involves an ASP.NET application which is slow to respond at times and other times does not seem to respond at all. The fun part is that there is nothing from the application side which is giving us a clue as to what is going on. This has been going on for a while and people are starting to get frustrated, so it was decided to call the experts from Microsoft.
So we start having conference calls and the MS representatives start asking for information on our servers so that they can diagnose the problem. When they were sent the machine.config files there was a pause on the other end of the phone. Then they asked a question which in essence was why are the settings still as they came from the factory.
Now in larger companies roles tend to be segregated. For the most part developers can not see what is on the servers, much less change them. This being the case you tend to assume that the administrators know their job and how to optimally setup a machine. Evidently not!
This brings me to the point. The Patterns and Practices group produced a rather large tome some time ago titled “Improving .NET Application Performance and Scalability”. When it was originally published it was 1108 pages (good bed time reading). Now most .NET development teams know about P&P and we have been using the development suggestions from this document for some time. I don't think it is as well known in the administration community. I believe that Chapter 17 on tuning .NET application performance is a must read for anyone setting up an environment.
No I am not saying that this will fix all problems, or even the ones that we are encountering at my client. I do think that if these best practices are applied to standard machine builds I think all of our live would be just a little easier.