Using Other Features to Enhance Performance
Updated: August 22, 2005
Applies To: Windows Server 2003, Windows Server 2003 with SP1
IIS 6.0, when running in worker process isolation mode, offers several features that you can use in addition to the QoS feature to better manage your systems resources:
Use Web gardens to enhance performance.
Conserve processor resources by using idle timeout.
Enable CPU monitoring to conserve processing time.
Assign processor affinity to better use CPU caching.
Using Web Gardens to Enhance Performance
If the server is running in worker process isolation mode, you can configure an application pool to be supported by multiple worker processes. An application pool that uses more than one worker process is called a Web garden. Creating a Web garden for an application pool enhances performance and reliability by providing the following enhancements:
Robust processing of requests. When a worker process in an application pool is tied up (for example, when a script engine stops responding), other worker processes can accept and process requests for the application pool.
Reduced contention for resources. When a Web garden reaches a steady state, each new TCP/IP connection is assigned, according to a round-robin scheme, to a worker process in the Web garden. The round-robin scheme smoothes out workloads and reduces contention for resources that are bound to a worker process.
For more information about Web gardens, including how to configure them, see Running IIS 6.0 as an Application Server.
Conserving Processor Resources by Using Idle Timeout
If the server is running in worker process isolation mode, you can conserve system resources by terminating idle worker processes; that is, you can configure an application pools worker process to shut down after a specified period of inactivity. Use this feature to better manage your resources when the processing load is heavy, when identified worker processes are consistently idle, or when new processing space is not available. If an application pool times out because the inactivity of its worker process exceeds a configured limit for idle timeout, and if HTTP.sys then receives a request for the idle application pool, the WWW service starts a new worker process to replace the one that timed out.
For more information about configuring idle timeout for a worker process, see Running IIS 6.0 as an Application Server.
Enabling CPU Monitoring to Conserve Processing Time
Through CPU monitoring of application pools, you can monitor the CPU usage of worker processes and, if you configure it to do so, automatically shut down worker processes that consume large amounts of CPU processing time. CPU monitoring logs and throttles only the applications that are isolated in a process that is separate from IIS; hence, this feature is only available when your server is running in worker process isolation mode.
When you configure CPU monitoring for an application pool, you can choose from two monitoring options:
Perform only event logging. When the CPU usage for an application pool exceeds the Maximum CPU use limit, the WWW service writes an error to the Windows event log. The log entry identifies the specific worker process and the application pool that exceeded the CPU limit.
Log events, and also shut down the unhealthy application pool. After an application pool reaches the configured Maximum CPU use limit, CPU monitoring writes an error to the event log and shuts down the application pool. The application pool remains down until the CPUResetInterval time limit expires, at which time the application pool restarts. If any requests are received while the application pool is stopped, HTTP.sys returns a 503 error (Server Too Busy).
For more information about CPU monitoring, including how to configure it, see Running IIS 6.0 as an Application Server.
Obtaining more detailed CPU monitoring
If your Web server is running the Windows Server 2003, Enterprise Edition, or Windows Server 2003, Datacenter Edition, operating system, you can use the Windows System Resource Manager to monitor different types of CPU activity more closely. With this feature, you can control how CPU and memory resources are allocated to applications, services, and processes. However, Windows System Resource Manager cannot manage system resources correctly if the computer is already being managed by another resource manager, such as IIS CPU monitoring. For best results, if you use Windows System Resource Manager, do not use any other resource manager on that computer.
For more information about Windows System Resource Manager, see Windows System Resource Manager — Fast Facts.