After some deliberation, you have decided to go with Internet Information Services for your web server. What is your next step? How should you optimize IIS? In this blog, we will examine some of the optimization you need to make in order to improve and maximize your IIS performance.

Before you even decide to enable IIS, it is a good idea to evaluate the server you are going to install IIS on. What is this box running currently? Does it currently have sensitive information? These are all questions you need to ask yourself prior to opening up the box to the world for breakfast.

If the web server is going to be a stand alone box, it is important to strip away all services and programs that aren’t necessary; it also helps with optimizing the performance of the box. Some examples might include removing any applications that affect performance such as File and Print services, Unix services or maybe an Exchange or ISA server.  Other services that are not needed on a stand alone web server include:

  • DHCP Server
  • FAX Service
  • Messenger
  • Telnet
    Internet Connection Sharing
  • NetMeeting
  • Computer Browser
  • Clipbook

These are just some of the many services that aren’t necessary to run IIS. Next, let’s talk about managing your IIS registry.  The registry stores settings for all installed hardware and applications. In order for you OS to work effectively, the Registry must not be corrupt. Please backup your entire registry whenever you are going to tweak it for performance.

The registry is broken down into 5 areas: They are

  • HKEY_Classes_Root
  • HKEY_Current_Config
  • HKEY_Current_User
  • HKEY_Local_Machine
  • HKEY_Users

You can access the registry by selecting Start | Run and typing regedt32. Now that you have a basic understanding of how to access the registry, let’s walk you through how you can tweak the registry to make IIS purr like a cat.

The registry settings for IIS are stored in HKEY_LOCAL_MACHINE | SYSTEM | CURRENTCONTROLSET | SERVICES | INETINFO | PARAMETERS. You can work with following values:

  • 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.

These are just some of the registry settings you can tweak for better performance. For more information on how to tweak the IIS registry, see IIS Common Registry Parameters (Q143180).