Disabling the TCPChimney During IIS 6.0 Troubleshooting





I think the best advice (as of 2012) is found here: 









I've become quick to consider disabling the TCP off-loading engine features (or “TOE”) when trouble-shooting a problem involving IIS 6.0 and detecting the slightest hint of a "networking problem" or "communication problem."    With the right combination of NIC, NIC driver level, and OS level, TOE is a good thing which significantly improves the performance of TCP processing.  Windows can offload the TCP processing of some network streams to the network controller.   But under some circumstances (especially with outdated NIC drivers) strange networking problems can result.



The TOE features are enabled in Windows when either the earlier Scalable Networking Pack (kb 912222) or Service Pack 2 for Win2003 or are installed on a Windows 2003 server.  The TOE features are disabled whenever update 948496 is applied.   Here are three things you might consider checking:

(1)   If the file version of %windir%\system32\netsh.exe is 5.2.3790.2670 or higher it is possible that TOE is enabled.  If the version number is 5.2.3790.1860 (SP1) or lower the TOE features need not be worried about.   

(2)   Open the registry editor, navigate to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters and focus on the following values:  EnableTCPChimney, EnableTCPA, and EnableRSS.   If all three are set to a value of Zero, consider TOE disabled.  If they’re all set to 1, I’d recommend you consider disabling them during troubleshooting.

(3)   Try running “netstat –t” from the command prompt to attempt to see if any client connections are in the offloaded state



One of the three TOE features can be disabled ‘on the fly’ and may be the first place to start.  Disabling the TCPChimney (but not RSS or TCPA) is often sufficient to deal with problems related to TOE.   But not always.  To disable the TCPChimney, open a command prompt and run the following command on the server:  

C:\>Netsh int ip set chimney DISABLED

No reboot is needed.  No IISRESET is needed either. 

 A more thorough (and much more preferable) alternative to using the netsh command would be to open the registry, navigate to. . .


… and change the dword values to zero for the following three keys from 1 to 0: 

o    "EnableTCPChimney"=dword:00000000

o    "EnableTCPA"=dword:00000000

o    "EnableRSS"=dword:00000000

A reboot is needed for these registry value changes to take effect.


When troubleshooting what seems like a networking problem, the disabling of TOE features  should be done not just on the front end web servers but also on ISA servers, any middle tier web service servers, the back-end SQL servers, and perhaps even the domain controllers—any machine that is running Win2003 with SP2 might be a good candidate.  If you need to disable the TOE features on multiple servers, consider deploying update 948496.

If disabling the TCPChimney seems to fix the problem, leave it disabled at least long enough to update your NIC drivers and firmware.   If your NIC is a Broadcom NIC, I’d definitely recommend considering the updating drivers from http://www.broadcom.com/support/ethernet_nic/downloaddrivers.php.   The NIC driver version numbers need to be version 3.7.19 or higher.









Comments (0)

Skip to main content