The performance and speed of your Web sites should always be a concern. This is actually the primary reason behind what must be the biggest change in the way IIS operates?the new execution model. We actually looked at this in greater detail in Chapter 2, "Architecture and Execution." We can summarize the key points as
Increased performance? The separation of the component that accepts requests and the one that processes them enables IIS 6 to more efficiently handle and respond to requests. This is especially true on systems that have multiple processors because individual CPUs can be used to handle specific sites or applications according to the configuration. This makes it more efficient to run multiple sites on a single machine.
Greater stability? By separating the worker process and request handler components, IIS 6 can control the worker processes without affecting how new requests are accepted. In fact, IIS 6 can be made to automatically restart worker processes at set intervals, memory, or CPU limits. It can even shut down and re-create worker processes if they are found to be using up too many resources or they have crashed. This helps keep your sites up and running without administrator intervention, improving the overall performance and throughput of the server.
Greater control? Because the system is split and responses are handled by application pools, we can control and limit applications and Web sites more easily. We can limit individual site capacity, give priority to specific sites, and allocate specific sites to a specific class or group of worker processes.
Improved scalability? Because resources for processing sites are allocated dynamically as they are needed, rather than the pre-IIS 6 method of pre-allocating resources for potential use, IIS 6 is capable of handling more Web sites. Not only can worker processes be generated dynamically because the HTTP.sys driver is separate from the processing system, but it can also be listening for requests even when worker processes aren't running.
However, this isn't the end of the new performance features built into IIS. To improve communication performance, IIS can compress responses back to clients. In IIS 6, we gain greater control over what items can be compressed.
IIS 6 also enables us to define quality of service (QoS) parameters to help us tune the performance of our Web site and dynamic components.
Caching information is just another way in which we can improve the performance of our Web sites. Caching is not new, but IIS 6 incorporates a number of improvements, both in the response mechanism and the way in which it caches information internally ready for supply to a client. In some instances, the content can be returned by the HTTP.sys kernel mode driver without having to use a worker process to handle the request.
We're going to be looking at all these issues in this chapter and also one that you might not associate with performance?the issue of patch management. Keeping your machine up and running is ultimately what performance is all about, and updating your machine is a task that can temporary disable your site, reducing its performance.