Chapter 6 - Preventing Processor
Bottlenecks

Servers running Internet Information Server (IIS) rely on the speed and efficiency of their processors. The Internet Information Server code is multithreaded for efficient scaling on single-processor and multiprocessor computers and is largely self-tuning. Nonetheless, processor bottlenecks are a potential problem on very active servers running Internet Information Server, even on servers with multiple processors.

A processor bottleneck occurs when one or more processes occupy nearly all of the processor time of all processors on the computer. In a bottleneck, the ready threads of processes must wait in a queue for processor time. All other activity comes to a halt until the queue is cleared. Processor bottlenecks can occur on multiprocessor computers when only a single processor is exhausted, if the work in the queue cannot be or is not distributed to the other processors. By definition, adding or improving other components of the computer, such as memory, disks, or network connections, does not overcome the performance problem.

This chapter discusses strategies for long-term monitoring of processor activity and processor queues. The chapter describes how Internet Information Server uses server processors, and how you can monitor and measure processor activity. The chapter concludes with suggestions for preventing processor bottlenecks.

The sections in this chapter are as follows:

"Monitoring Server Processors"

"Monitoring Connections"

"Monitoring Threads"

"Monitoring Interrupts and DPCs"

"Suggestions for Improving Processor Performance on an IIS Server"

This chapter focuses on issues specific to Windows NT 4.0 Servers running IIS services. For more general information on monitoring and tuning processors, see Microsoft Windows NT Workstation Resource Kit, Chapter 13, "Detecting Processor Bottlenecks" and Chapter 16, "Monitoring Multiple Processor Computers." For a detailed discussion of the challenges involved in monitoring volatile processes and threads, see the section "Monitoring Processes and Threads," in Chapter 10, "About Performance Monitor," in the Windows NT Workstation Resource Kit.

Warning

To add or modify a Registry value entry, use administrative tools such as Control Panel or System Policy Editor whenever possible. Using a Registry editor (Regedit or Regedt32) to change a value can have unforeseen effects, including changes that can prevent you from starting your system.