In an effort to identify as many performance enhancing suggestions as possible, here are a few more ideas that are specific to Microsoft’s IIS web server. I will try to add to this post whenever I find new IIS performance improvement ideas.

Microsoft’s site says that Windows Server 2008 IIS 7.5 provides more control and more choices. I don’t have any personal experience with it, but I will be trying to learn as much as I can through other web developers that use the MS stack. Most of the ideas here will not be version specific, and many may be old in the sense that they apply to previous versions. I can’t keep up with all the changes MS makes.

Clean Up the Trash

Most of us developers have learned (usually the hard way) that less is more. I recommend that we all adopt the principal of removing any unneeded software from machines. If it isn’t contributing, get rid of it.

On a dedicated IIS machine, make sure you uninstall/delete all of the Microsoft schtuff that is always installed by default. Programs to look for include: Messenger, NetMeeting, Fax/print/file services, DHCP Server, Exchange, and ISA Server.

IIS Settings

Microsoft’s Support site recommends taking advantage of IIS’ controls for the overall performance based on the number of pages served each day, the network bandwidth that is available for the site, or the CPU time that is available for serving the site.

To set these parameters:

1. Log on to the Web server computer as an administrator. 2. Click Start, point to Settings, and then click Control Panel. 3. Double-click Administrative Tools, and then double-click Internet Services Manager. 4. Right-click the Web site that you want to configure in the left pane, and then click Properties. 5. Click the Performance tab. 6. Move the slider to the approximate number of pages you expect to serve each day. 7. To limit the bandwidth (transfer rate) for the Web site, click Enable Bandwidth Throttling, and then type a value for the maximum rate. 8. To limit the CPU usage for a site, click Enable Process Throttling. 9. If your Web site exceeds these values, an entry is logged to the Event Log. To enforce the limits so that processes are ended or new connections are refused until the current load is reduced, click Enforce Limits.

10. Click OK.

Registry Settings

Steven Warren provides some great info surrounding the registry settings. His post Tweak your IIS Web Server! specifically mentions these registry values as performance enhancing – if they are set correctly:

  • Cachesecuritydescriptor – Enter a 1 to enable security descriptors or 0 to disable. If you have this enabled, IIS will not have to reaccess access rights for users; it will be able to look in the cache. This tweak is recommended for authenticated users only.
  • Checkcertrevocation – By entering a value of 1, IIS will check to see if a client certificate has been revoked. This is only recommended if you have your own certificates.
  • Disablememorycache – This setting allows you to disable the memory cache. It is enabled by default and I see no need to disable it.
  • Listenbacklog – This registry setting specifies how many active connections IIS has in its queue. The default value is 15. It can range all the way up to 250.
  • Maxcachedfilesize – You can determine the maximum size of a file that can be place in cache. The max setting is 256 KB
  • Maxconcurrency – Specifies how many threads per processor can run at the same time. It defaults to 0.

Do you have any IIS performance improvement suggestions? Please share them with us.

Similar Posts