Microsoft KB Archive/922733

= The performance of a Web application may decrease, and the network bandwidth may increase after you add a Web server that is running IIS 5.0 to a Web farm that uses network load balancing =

Article ID: 922733

Article Last Modified on 11/21/2006

-

APPLIES TO


 * Microsoft Internet Information Services 5.0

-



SYMPTOMS
Consider the following scenario. You add a Web server to a Web farm that uses network load balancing. A client Web browser sends a request to a Web server in the Web farm. This Web server is running Microsoft Internet Information Services (IIS) 5.0. In this scenario, the performance of a Web application may decrease, and the network bandwidth may increase.

This problem occurs if the Web servers in the Web farm are configured behind a load balancing mechanism. Microsoft Network Load Balancing and a third-party network load balancer are examples of load balancing mechanisms.

This problem may become worse if the request that is sent by the client Web browser is sent through a proxy server before the request reaches the Web server that is running IIS 5.0.



CAUSE
The HTTP request information that is sent by the client Web browser contains an ETag value. This problem occurs because the ETag value in the request does not match the ETag value of the requested resource on the Web server that is running IIS 5.0. If the request is sent through a proxy server first, this problem occurs because the ETag value in the request does not match the ETag value of the requested resource in the local cache of the proxy server.

If the ETag value in the request does not match the ETag value of the requested resource, IIS 5.0 must send a fresh version of the requested resource to the client Web browser. IIS 5.0 does this instead of sending the requested resource from the local cache of the proxy server or from the local cache of the client Web browser. If the requested resource is sent from a local cache, the results are displayed to the user faster than if the requested resource is sent from the Web server that is running IIS 5.0.

This performance problem may increase depending on the following items:
 * The number of Web servers that are in the Web farm that uses network load balancing
 * How much of the requested content already exists in the local cache of the client Web browser



RESOLUTION
To resolve this problem, synchronize the ETag values on all the Web servers that are running IIS 5.0 in the Web farm. To do this, use the Mdutil.exe tool to retrieve the ETag value from one of the Web servers. Then, set the same ETag value on all the other Web servers.

By default, the Mdutil.exe tool is installed together with Microsoft Windows 2000. The Mdutil.exe tool is located on the Windows 2000 CD in the I386 folder. The file is named Mdutil.ex_. You must expand the Mdutil.ex_ file before you can use the Mdutil.exe tool. To do this, follow these steps:  On the CD drive that contains the Windows 2000 CD, browse the I386 folder. Locate the Expand.exe file and the Mdutil.ex_ file. Click Start, click Run, type cmd, and then click OK. At a command prompt, type the following command, and then press ENTER:

Expand.exe -R Mdutil.ex_ c:\

This command expands the compressed Mdutil.ex_ file and copies the Mdutil.exe file to the C:\ folder.

Note In this command,  is a placeholder for the name of the folder to which the Mdutil.exe file is copied.

To retrieve the ETag value from one of the Web servers and to set the same ETag value on all the other Web servers, follow these steps:  Click Start, click Run, type cmd, and then click OK. At a command prompt, type the following command, and then press ENTER:

cd

</li> At a command prompt on one of the Web servers, type the following command, and then press ENTER:

Mdutil.exe get w3svc -prop 2039

This command retrieves the ETag value from the Web server.</li> At a command prompt on all the other Web servers, type the following command, and then press ENTER:

Mdutil.exe set w3svc -prop 2039 –value &quot; &quot;

Note In this command,  is a placeholder for the ETag value that you retrieved in step 3.

This command sets the same ETag value on all the other Web servers.</li> On all the Web servers that are running IIS 5.0 in the Web farm, restart IIS 5.0.</li></ol>

Note The Mdutil.exe tool is not a supported tool and is undocumented. If you need help using the Mdutil.exe tool, type mdutil.exe at a command prompt.

<div class="status_section">

STATUS
Microsoft has confirmed that this is a problem in the Microsoft products that are listed in the &quot;Applies to&quot; section.

<div class="moreinformation_section">

MORE INFORMATION
Entity tags (ETag values) are used to compare two or more entities from the same requested resource. An ETag value has two parts, the file time stamp and the change number. An ETag value appears in the following format:



When Microsoft Internet Explorer sends an HTTP GET request to a Web server, the HTTP GET request includes an If-None-Match header that has an ETag value that may resemble the following. HTTP: If-None-Match =&quot;0222d5bffcbc41:301a&quot; IIS 5.0 sends an HTTP 200 OK response that may have a slightly different ETag value. This ETag value may resemble the following. HTTP: ETag =&quot;0222d5bffcbc41:3246&quot; The file time stamp is the same in the request and in the response. Therefore, the Web server that is running IIS 5.0 evaluates the request as the current value for the requested resource. However, the change numbers are different. Therefore, the Web server that is running IIS 5.0 sends its current version of the file instead of instructing Internet Explorer to send its own cached copy of the file. This behavior occurs because IIS 5.0 sends an HTTP 200 OK response and not a 304 Not Modified response.

A proxy server may also behave the same way. The proxy server recognizes that the change numbers are different. Additionally, the proxy server evaluates the request as a resource that the proxy server does not already have in the local cache.

<div class="references_section">