Configuring IIS logging for Web Site Performance Analysis

One task that I’ve been working at Falafel on is performance tuning of a large ASP.NET 2.0 application running on Windows Server 2003 under IIS 6.0 which is load balanced across three machines using a SQL 2005 back end. I’ll post a series of entries related to the work I’ve been doing in my investigation.

Configuring IIS Logging for Performance Analysis

First, I wanted to dig into the IIS log files to get a good understanding what parts of the application were being used to most and start collecting performance metrics. Unfortunately the default configuration for IIS doesn’t include some of the more useful fields for log file analysis so correcting that was the first step. The default IIS settings don’t include some of the more useful fields for performance analysis so you’ll need/want to add them manually. You can do that by:

  • Launching Internet Information Services Manager from the Administrative Tools menu

    Internet Information Services Manager

  • Expand the treeview to Default Web Site, right click and select Properties
  • On the Properties dialog click the Web Site tab and check Enable Logging

    IIS logging

  • Click on the Properties button in the Enable Logging groupbox and make sure to check the additional fields indicated below (all of the one’s I’m interested in are in this screen shot:

    IIS logging properties

Note, the names following each option in parenthesis as they’ll be useful when we analyze the data.

Of course, after making these changes we need to wait for the log files to start accumulating useful data before we can go much further. In the mean time, be sure to download Microsoft Log Parser to help analyze the results. Log Parser is an incredibly powerful tool which brings the power of SQL to the task of analyzing plain text files as well as other data stores like the Windows Event log. Here is a link from my Google OPML search engine with lots of great Log Parser related posts. I tried Google’s recently added search support but it didn’t yield anything even remotely useful which left me scratching my head wondering what it’s really useful for.

Next, I’ll take a look at putting some of this new logging information to good use.