About Performance Tuning

IIS includes many property settings that make it easy for you to fine-tune site performance. If your site is not delivering the performance you expect from it, then you may want to make changes to the default settings of one or more performance tuning properties. This topic describes what some of the properties are and how adjusting them can improve performance. To decide how your site is performing and where potential bottlenecks are, see Performance Monitoring and Logging Web Site Activity.

These topics are covered:

Restricting Bandwidth

By throttling the connection bandwidth used by IIS, you can maintain available bandwidth for other applications, such as e-mail or news servers. If you are running more than one site on IIS, you can also throttle bandwidth on each of the sites individually. Throttling bandwidth on individual sites assures that bandwidth is available for all the sites sharing the network card. Bandwidth throttling limits only the bandwidth used by static HTML files.

To determine whether you should throttle the bandwidth of IIS, or of an individual site, use the tools described in Performance Monitoring. Keep in mind that while the total number of connection attempts in a day may give you an idea of the overall activity on your site, you also need to consider changes in the connection rate (connections per second) to see if you are having congestion problems at peak times. If you are regularly using more than 50 percent of your total connection bandwidth, you may need to consider upgrading your connection. For more information on connection types, see Choosing the Right Connection.

If you are just setting up your Web site and have no available data to analyze, but do plan on running multiple services such as a Web server, mail server, and news server, you may want to start by restricting your Web server to 50 percent of the available bandwidth. Once you have been in operation for a short time, you can analyze site performance and adjust bandwidth accordingly. To throttle bandwidth, see Throttling Bandwidth.

Limiting Connections

Limiting the number of simultaneous connections to a Web site is another approach to conserving resources for other services using the same connection, or other applications using the same computer. When limiting connections to individual Web sites, remember that most browsers typically make up to four simultaneous connections to download text and graphics from a page. All connection attempts beyond the connection limit are rejected. For instructions on how to limit connections, see Limiting Connections and Setting Timeout.

Balancing Memory Use Against Response Speed

Several performance properties can be used to adjust memory usage or improve request response speed. Generally, increasing request response speed means dedicating more memory or processor resources to individual connections, thereby reducing resources for other applications. Maximizing memory performance may mean slightly slower request responses for users visiting your site.

IIS includes a built-in adjustment to balance memory use against response time. By estimating the number of “hits,” or connections you anticipate having to your site, IIS automatically adjusts the amount of memory dedicated to listening for new requests. If the number is set just slightly higher than the actual number of connections, connection attempts are made faster. If the number is set much higher than the actual number of connection attempts, memory is wasted. For instructions on how to set the estimated number of connections, see Estimating Traffic.

Service and File Content Types

Equipment needs vary depending on the service provided. The FTP service uses less memory than the Web service. In addition, Active Server Pages (ASP) applications, Common Gateway Interface (CGI) scripts, database queries, and video files are more processor-intensive than static HTML pages. The number of simultaneous users your server can handle varies according to the type of session that is open and other factors.

RAM Usage

RAM is the memory space used by programs when they are running. Typically, when you start an application, the computer copies the necessary application files from the hard disk to RAM, and the application runs from RAM. RAM has much faster access time than the hard disk, so the less the computer accesses the hard disk, the faster applications can run. When IIS is running, it is using some portion of RAM, depending on a number of other factors, including:

When a request is received by IIS, the file IIS returns is usually cached in RAM. As subsequent requests are received for the same file, IIS uses the copy cached in RAM, rather than going back to the hard disk to retrieve the file again. This reduces the time IIS takes to fulfill a request and makes access faster for visitors. However, the amount of time a file is kept in cache is dependent on a number of other things.

As different files are requested from IIS, old requested files are purged to make room for the new files. This means that if you have a large number of files you are making available through IIS and you only have a small amount of RAM, access may be slowed while IIS gets the requested file from the hard disk. If you are using other applications on the same computer that also use RAM, cached copies of files are pushed out of RAM to make room for the new files. IIS may be unable to maintain cached files in RAM. Again, the result is slower IIS access as files are brought from the hard disk.

Because large files take up more space in RAM than small files, requests for large files, such as audio or video files, may cause more turnover in cached files when the amount of RAM is small. If the documents you are publishing are large, if you are publishing a large number of documents, or if you are running other RAM-intensive applications on the computer hosting IIS, you can improve system performance by adding RAM. However, if you have a very small number of files to publish and the files are relatively small in size, adding RAM does not improve computer performance.

Hard Disk Access

How often IIS needs to access the hard disk is directly related to the amount of RAM and the number and size of requested files. If the amount of RAM is small and either a large number of different files are being requested, or the size of the requested files is large, IIS is unable to maintain copies of the files in RAM for faster access. In this case, IIS must access the files from the hard disk. The access speed and size of the hard disk determine how quickly IIS can locate a requested file. See Finding Hardware Bottlenecks for more information on recognizing hard disk subsystem bottlenecks.

CPU Utilization

The CPU does the actual processing of instructions received by the computer. Information moves between the various components of the computer, such as the CPU, hard disk, and RAM, depending on the clock speed of the CPU and the size of the data bus the CPU uses to move the information. Faster clock speeds mean more trips are made back and forth by the data bus during the same time interval. Clock speeds are usually express as megahertz (MHz). The data bus can carry 16, 32, or 64 bits of data on each trip, depending on the bus size. (How much data is carried is also a function of the operating system used and what transfer rate the application is based on.) For recommendations on when to upgrade your CPU, see Finding Hardware Bottlenecks.

Network Connection Capacity

In addition to the hardware inside your computer, the type of network connection you have can directly impact server performance. If your network connection cannot handle the amount of data being sent across it, then the performance of your server is slowed. The bandwidth available to IIS is also affected by other applications running on the computer that require network bandwidth, such as e-mail.

Different brands of network cards perform differently. The performance of network cards is also affected by the drivers and driver settings used when configuring the network card. Check with the maker of your network card to see if updated drivers are available. For information on the symptoms of network saturation, see Finding Hardware Bottlenecks.

Internet Connection Type

Your Internet bandwidth determines how fast data gets to your computer and also how many requests can be serviced simultaneously. If you do not have sufficient bandwidth for the number of requests coming to your site, delays or failures can occur. The amount of bandwidth you have is a function of the type of connection you select. This section discusses the various connection types and their corresponding capacities. To figure the amount of bandwidth you need for your site, see Choosing the Right Connection.

Your computer connects to the Internet through a network adapter card or other network device, such as a modem or ISDN card. The rate at which your connection transfers data is measured in bits per second (bps). The following table lists types of connections and the capacity of each. The connection types described represent typical levels of service for full Internet connections in North America and Japan. The Internet services offered through ISPs in your country might differ significantly.

Internet Connection Types
Connection Type Maximum Bandwidth
Dedicated PPP/SLIP Modem speed
56K (Frame Relay) 56,000 bps
ISDN (using PPP) 56,000–64,000 bps
T1 1,540,000 bps
Fractional T1 Varies as needed
T3 45,000,000 bps
ATM 155,000,000 bps

In addition to the number of simultaneous users you anticipate supporting, you should also consider the speed at which your files are sent to users. How fast your files are sent is a function of connection speed and file size. A general guideline is that it should take less than five seconds to send a page. This does not include external graphics, audio, or video. They typically load after the text loads. A general rule for external files is that they should load in less than 30 seconds.

Once you have determined the amount of bandwidth needed for your Web or FTP server, consider whether you will be offering other services that require bandwidth. These services can include electronic mail (e-mail), news, or audio or video streaming. Be sure to include enough bandwidth for these services.

Typically, your Internet connection comes to a router, and then a network card connects your computer to the router. You need a high-performance network card to prevent a bottleneck between your Internet connection and your computer. For example, if your connection to the Internet is a T1 line with a 1.54 Mbps bandwidth, then having your servers on an Ethernet LAN with a 10 Mbps bandwidth should be sufficient. However, if you have a T3 connection to the Internet, you should consider putting in a Fiber Distributed Data Interface (FDDI) LAN for your servers because the T3 bandwidth of 45 Mbps is much greater than the Ethernet bandwidth of 10 Mbps.


© 1997 by Microsoft Corporation. All rights reserved.