Tweaking a Windows Server for IIS performance

I love performance. In cars and servers and about everything. Call it a passion.

Today I am going to share a guideline I created for myself a long time ago.


(random Image)

Its called Tweaking IIS Web Server:

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 so you can optimize the security and performance of the box. For example, you might remove any applications that affect performance, such as File and Print services, UNIX services, or maybe even an Exchange or ISA server. Other services that are not needed on a stand-alone Web server include:

DHCP server
WINS server
Fax service
Internet Connection Sharing
Computer Browser
Tweaking the registry

Let’s talk about managing the Windows registry as it relates to IIS. The registry stores settings for all installed hardware and applications. For your OS to work effectively, the registry must not be corrupt.


Important note

Remember to back up your entire registry whenever you tweak it for performance.


You can access the registry by selecting Start | Run and typing regedt32. The registry is broken down into these five areas:

Let’s walk through the steps for tweaking the registry to make IIS purr like a kitten. The registry settings for IIS are stored in HKEY_LOCAL_MACHINE | SYSTEM | CURRENTCONTROLSET | SERVICES | INETINFO | PARAMETERS. You can work with following values:

Cachesecuritydescriptor—Enter 1 to enable security descriptors or 0 to disable. If you have this option enabled, IIS will not have to reaccess user access rights; it will be able to look in the cache. This tweak is recommended for authenticated users only.

Checkcertrevocation—If you enter a value of 1, IIS will check to see whether a client certificate has been revoked. This is recommended only 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, and it can range all the way up to 250.

Maxcachedfilesize—You can determine the maximum size of a file that can be placed in cache. The maximum setting is 256 KB.

Maxconcurrency—This setting 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).

IIS metabase settings

Along the same lines as performing registry edits is using the Metabase to optimize IIS performance. The metabase is essentially a private registry just for IIS configuration data. This Microsoft Q article provides a good introduction to the IIS metabase, and this Q article includes a useful example of how to maximize metabase settings to configure IIS to handle a high-traffic load.

Once you have installed your IIS Web server for maximum performance and tweaked it using the registry and the IIS metabase, you’re ready to read my article on monitoring and tuning IIS and take the next step toward achieving the most optimal performance.

As you can tell I spent some time compiling this info. It is not all my work. So if you feel there is a line or two that is yours please dispute and I will be happy to give credit.

This entry was posted in IIS, Interesting, Networking, Security. Bookmark the permalink.