You can adjust the following registry parameters for high throughput scenarios.
CountOperations
This parameter allows you to turn off system and process level I/O counters. This counter affects system and disk counting of disk and network I/O requests. Physical and logical disk counters—in addition to network interface, IP and TCP counters—are not affected by this parameter. It is useful to turn off the process and system counters by using this registry parameter on systems where there is a measurable cost associated with counting I/O at the process and system level but where I/O rates can still be analyzed at the physical, logical, network interface, IP and TCP levels. To turn off the process and system I/O counters, you need to create a registry value (and I/O System key if one doesn’t already exist) and set the value to 0 (REG_DWORD) in the following registry entry:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Session Manager\I/O System\CountOperations.
A reboot is required for this setting to take effect. Process and system counters can be turned on again either by setting CountOperations to 1 or by removing the CountOperations registry entry.
NumberOfRequests
This parameter allows you to specify the number of SRBs created for a given adapter. This improves performance and allows Windows to give more disk requests to a logical disk, which is most useful for HW RAID adapters that have concurrency capabilities since each logical disk consists of multiple physical disks. However, the default setting is often less than optimal for many high-speed HW RAID disk arrays. Overall disk array performance can be improved by setting NumberOfRequests to a value in the range of 32 to 96 (decimal). Set the following registry entry: HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\MINIPORT_ADAPTER\Parameters
\DeviceN\NumberOfRequests (REG_DWORD)
Replace miniport_adapter with the specific adapter name. Make an entry for each device, and in each entry replace DeviceN with Device1, Device2, and so forth, depending on the number of devices you are adding. A reboot is required for this setting to take effect. For example, for two Emulex LP9000 miniport adapters whose miniport driver name is lp6nds35, you would create the following registry entries set to 96:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\lp6nds35\Parameters\Device0\NumberOfRequests
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\lp6nds35\Parameters\Device1\NumberOfRequests
DontVerifyRandomDrivers
This parameter prevents the driver verifier from randomly verifying drivers for debugging. To disable the driver verifier set a value of 1 (REG_DWORD) for the following registry entry:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Session Manager\Memory Management\DontVerifyRandomDrivers.
Performance Tuning for IIS 6.0
It is important to select the right hardware to satisfy the expected Web load (keeping in mind average load, peak load, capacity, growth plans, and response times). Hardware bottlenecks limit the effectiveness of software tuning. Consider the issues in Table 7 when selecting hardware.
Table 7. Hardware Considerations for IIS 6.0
Issue
|
Considerations
|
Number, type, and speed of processors
| -
Scripts (ASP or ASP.NET) and encryption (SSL) are CPU intensive. Concurrent client load also drives up CPU usage. Consider this when selecting processor speeds and the number of processors in the system.
-
Larger L2 processor caches provide better performance.
-
Two CPUs are rarely as effective as one CPU that is twice as fast (as the slower CPUs).
|
Amount of physical memory (RAM)
|
Added memory will help as you add more sites, more dynamic content scripts (in particular ASP.NET scripts), and more application pools (or worker processes).
|
Number, type, and speed of network adapters
|
The network adapter should not be a bottleneck. Newer network cards can offload some server functions and help performance. For details, see Performance Tuning for Networking earlier in this document.
|
Type of disk controller, number and capacity of physical disk platters
| -
IIS caches frequently accessed files in memory. However, files that are not accessed frequently (the “cold set”) must be retrieved from the disk when needed. Handling large sites with a high number of requests from the cold set requires good disk performance (a RAID controller connected to a large number of disk platters).
-
IIS log file sizes and estimated growth under load should be taken into consideration.
|
Other servers on which the IIS server might depend
| -
A slow SQL Server may limit the response rate of the IIS server connected to it, even if the IIS server has good hardware components.
-
Putting both IIS server and SQL Server (or any other CPU-intensive component) on the same computer limits the resources available to each component and affects overall performance.
|
Operating System Practices -
If possible, do a clean install of the operating system software. Upgrading could leave outdated, unwanted, or sub-optimal registry settings as well as previously installed services and applications that consume resources if automatically started. If another operating system is installed and needs to be kept, install the new operating system on a different partition, otherwise the new installation will overwrite the settings under Program Files\Common Files.
-
To reduce disk-access interference, keep the system pagefile, operating system, Web data, ASP template cache, and IIS log on separate physical disks if possible.
-
Avoid installing unnecessary services and applications.
|