Optimizing Thread Values

By default, the Internet Information Server process creates up to 10 threads per processor. Internet Information Server continually adjusts the number of threads in its process in response to server activity. For most systems, this tuning is sufficient to maintain the optimum number of threads, but you can change the maximum number of threads per processor, if your system requires it.

If the threads in the Internet Information Server process appear to be overworked or underutilized, consider these tuning strategies:

If nearly all of the threads of the Internet Information Server process are busy nearly all of the time, and the processors are at or near their maximum capacity, consider distributing the workload among more servers.

You can also add processors, but do so cautiously. Unnecessary or underused processors will degrade performance, not improve it.

If nearly all threads appear busy, but the processors are not always active, consider increasing the maximum number of threads per processor. Increasing the number of threads is typically an interim solution used while a bottleneck in another subsystem is being resolved.

Do not increase the maximum number of threads unless you have processors with excess capacity. More threads on the same number of processors cause more interrupts and context switches, and result in less processor time per thread.

If many threads are continuously idle, you might save processor time and memory by reducing the number of threads in the process.

To adjust the maximum number of threads in the IIS service process, use a Registry editor to add the MaxPoolThreads value entry to the Registry. MaxPoolThreads does not appear in the Registry unless it is added. It must be added to the following:

HKEY_LOCAL_MACHINE\System
\CurrentControlSet
\Services
\Inetinfo
\Parameters

MaxPoolThreads is calculated in units of threads-per-processor. If this value entry does not appear in the Registry, Internet Information Server allocates a maximum of 10 threads per processor. Do not set this value below 5 or above 20. For more information on MaxPoolThreads, see Regentry.hlp on the Windows NT Workstation Resource Guide 4.0 CD.

Continue monitoring the system carefully to make sure that changing the numbers of threads achieves the desired effect.