Performance and Scalability Improvements

Applies To: Windows Server 2003, Windows Server 2003 with SP1

If you want to host many applications or Web sites on the same server or if you have applications that consume large amounts of system resources, such as bandwidth or CPU processing, you can host those applications on IIS 6.0 and still obtain good performance. IIS 6.0 architecture provides the foundation for a number of performance enhancements in the Web server. For example, Web gardens, processor affinity, idle timeout, bandwidth throttling, HTTP compression, and CPU monitoring are a few of the features that help you conserve system resources while optimizing performance.

When your Web server is running in worker process isolation mode, you can create Web gardens, which enable multiple worker processes to serve one application pool. Web gardens can improve performance because if one worker process in an application pool is busy processing a request, other worker processes can also accept and process requests for that application pool.

IIS 6.0 enables you to configure application pools to establish affinity between worker processes and specific processors in a multiprocessor computer. Processor affinity, when set, enables IIS to efficiently use the caches on multiprocessor servers. Also, you can configure an application pool to have its worker processes request a shutdown if the worker processes are idle for a configurable amount of time. Shutting down idle worker processes frees up unused resources, allowing CPU resources to be used where needed. For more information about idle timeout, see Running IIS 6.0 as an Application Server.

If the network or Internet connection that your Web server uses is also used by other services, such as e-mail or news, you can monitor (and limit) the CPU usage of individual worker processes so that a portion of CPU resources are available for those other services. If your Web server hosts more than one Web site, you can individually throttle the bandwidth used by each site. In turn, you can make best use of available bandwidth by enabling HTTP compression, which allows faster transmission of pages between the Web server and compression-enabled clients. Also, IIS 6.0 supports HTTP Keep-Alives, an HTTP specification that increases server efficiency by reducing server activity and resource consumption.

If your server hosts applications that have workloads requiring large amounts of cached data, you can configure IIS 6.0 to cache up to 64 gigabytes (GB) on an x86-based (or compatible processor) system. For more information about these features and how to improve Web server performance, see Optimizing IIS 6.0 Performance.

IIS supports Windows scalability solutions, such as clustering and network load balancing; however, IIS 6.0 also provides a number of specific changes that can improve Web server scalability. Scalability is particularly important for organizations that want to reduce overhead and maintenance costs by consolidating sites and applications on fewer servers.

Another way to extend a system is to store content in a remote location, such as on a UNC–based drive. IIS 6.0 provides caching, authentication, and administration changes that make it easier for you to create, secure, and manage centralized content storage.

For more information about these and other scalability features in IIS 6.0, see Web Server Scalability.