How to Disable TCP Chimney, TCPIP Offload Engine and/or TCP Segmentation Offload

Article: 100031033
Last Published: 2020-10-26
Ratings: 1 2
Product(s): eDiscovery Platform

Problem

Intermittent communications interruptions ending with packet loss can cause processes to hang or fail. While intended to increase performance across the network, TCP Chimney, TCPIP Offload Engine, and TCP Segmentation Offload often cause more issues then they solve. It is always recommended to disable these technologies on the eDP/Clearwell server.

 

Known Issues with Offload Engines:

Limitations of hardware — because connections are buffered and processed on the TOE chip, resource limitations happen more often then they would if processed by the ample CPU and memory resources that are available to the operating system.  This limitation of resources on the TOE chip can cause communication issues.

Complexity — issues such as memory used by open connections are not available with TOE. TOE also requires very large changes to a networking stack in order to be supported properly, and even when that is done, features like Quality of Service and packet filtering typically do not work.

Proprietary — TOE is implemented differently by each hardware vendor. This means more code must be rewritten to deal with the various TOE implementations, at a cost of the aforementioned complexity and, possibly, security. Furthermore, TOE firmware cannot be easily modified since it is closed-source.

Performance — Each TOE NIC has a limited lifetime of usefulness, because system hardware rapidly catches up to TOE performance levels, and eventually exceeds TOE performance levels.  TOE does not  increase bandwidth on the network.  In simple terms, TOE  removes the responsibility of the protocol stack from the Server’s CPU allowing the server CPU to process information faster.  As hardware performance increases, processes can complete their task prior to TOEs acknowledgment of the receipt of transmission; thus causing communication issues.
 

Error Message

A transport-level error has occurred when sending the request to the server (provider: TCP Provider, error 0 - An existing connection was forcibly closed by the remote host.)
OR
INFO [common.filetransfer.transferError] (Client reader CLEARWELL1.cwlab.local/192.168.1.101:53826 D:\CW\V811\data\esadb_TestCase\dataStore_index_ara8sh1zsj_00101188\$12$expansionft -> /192.168.1.101:57156 D:\CW\V811\data\esadb_TestCase\dataStore_index_ara8sh1zsj_28587680\consolidation:) Client cancelled transfer

 

Cause

This issue can occur when either TCP Chimney Offload, TCP/IP Offload Engine (TOE) or TCP Segmentation Offload (TSO) are enabled.

TCP Chimney, TCPIP Offload Engine (TOE) and TCP Segmentation Offload (TSO) off loads the TCP protocol stack to a Network Interface Card (NIC).    
 

  • TCP Chimney is Microsoft's software enhancement.
  • TOE is the NIC manufacturer's hardware enhancement.
  • TSO is the equivalent to TOE for some virtual environment configurations.

The TCP Chimney Offload feature is enabled by default in the Windows Server 2003 Scalable Networking Pack.
This update is included in Windows Server 2003 Service Pack 2 and can also be installed on a server running Windows 2003 Service Pack 1.  
 

Solution

Important Note For Servers In A Clustered Environment Or That Use Network Interface Card Teaming

It is of vital importance to determine if a server is a member of a cluster BEFORE making any changes to the TCP Offload Engine settings described in this article. Examples include Windows Server Failover Cluster nodes and SQL Always On Availability Groups replicas. Some cluster applications require TCP Offload Engine to be enabled on each cluster node or replica for proper functionality. Disabling any TCP Offload Engine settings on cluster nodes or replicas could adversely affect network performance for cluster-aware applications and/or operating systems. As such, it is recommended not to edit any TCP Offload Engine settings for servers that are nodes or replicas in a clustered environment without first consulting the cluster application documentation. If the cluster documentation clearly confirms TCP Offload Engine settings can be changed without any negative effects, then proceed with the changes after creating a plan to roll back the changes if needed. When in doubt, do NOT make any changes to the TCP Offload Engine settings.

Similar consideration should be given to servers using Network Interface Card (NIC) teaming. Some NIC teaming applications require TCP Offload Engine to be enabled on each NIC for proper functionality. Disabling any TCP Offload Engine settings on teamed NICs could adversely affect network performance for cluster-aware applications and/or operating systems. As such, it is recommended not to edit any TCP Offload Engine settings for servers that use NIC teaming without first consulting the NIC teaming documentation. If the NIC teaming documentation clearly confirms TCP Offload Engine settings can be changed without any negative effects, then proceed with the changes after creating a plan to roll back the changes if needed. When in doubt, do NOT make any changes to the TCP Offload Engine settings.

 
Implement the following actions and the below Workaround to better ensure resolution of the issue: 
  • Obtain the latest basic input/output system (BIOS) update for the server
  • Obtain the latest firmware update for the network adapter
  • Obtain the latest driver update for the network adapter

WORKAROUND:
The following changes are to be made on the Clearwell and Enterprise Vault servers.  
 
  • Disable TCP Chimney Offload feature

Windows 2003 Server:

 

If the operating system is Microsoft Windows Server 2003, perform the following steps:
 
Warning: Incorrect use of the Windows registry editor may prevent the operating system from functioning properly. Great care should be taken when making changes to a Windows registry.  Registry modifications should only be carried-out by persons experienced in the use of the registry editor application. It is recommended that a complete backup of the registry and workstation be made prior to making any registry changes.
 
1. Click Start, click Run, type Regedit, and then click OK.
 
2. Locate the following registry subkey:
 
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
 
*If any of the below keys are not present, create them.
 
3. Double-click the EnableTCPChimney registry entry.
 
4. In the Edit DWORD Value dialog box, type 0 in the Value data box, and then click OK.
 
5. Double-click the EnableRSS registry entry.
 
6. In the Edit DWORD Value dialog box, type 0 in the Value data box, and then click OK.
 
7. Double-click the EnableTCPA registry entry.
 
8. In the Edit DWORD Value dialog box, type 0 in the Value data box, and then click OK.
 
9. Restart the server.
 
 
Windows 2008/2012 Server:
If the operating system is Microsoft Windows Server 2008 or 2012, run the following from a Command prompt:
1. netsh int tcp set global chimney=disabled
 
2. netsh int tcp set global rss=disabled
 
3. netsh int tcp set global netdma=disabled
 
Note: To display current global TCP settings, use the net shell command:
netsh int tcp show global
 
4. Restart the server.
 
Note: Microsoft has identified an issue running the netsh command to set global TCP parameters on Windows Server 2008 and Vista machines.  Some global parameters, such as TCPTimedWaitDelay, can be changed from their default or manually set values to 0xffffffff.    

 

  • Disable TOE and Receive Side Scaling
Caution: The instructions in the following two sets of steps will cause the Network Interface Card (NIC) being changed to reset itself.  Such a reset will cause a momentary loss of communications through that NIC.  If the NIC is the only NIC on the system, or is the primary NIC through which remote connections are established, Veritas recommends scheduling a down time to implement these steps from the machine's console.  

1.  From the Control Panel, open Network Connections.
 
2.  Open the properties page for the network connection being used.
 
3.  Click Configure (See Figure 1)
 
Figure 1
 
 
 
4.  On the Advanced tab, change the Value of all 'Offload' and Receive Side Scaling settings to 0Disabled or Off (See Figure 2)
 
Figure 2
 
 
 
5.  Click OK to save changes.
 
 
  • Disable TSO (VM Nics only)
1.  From the Control Panel, open Network Connections.
 
2.  Open the properties page for the network connection being used.
 
3.  Click Configure (See Figure 3)
 
Figure 3
 
   
  
4.  On the Advanced tab, change the Value of TSOEnabled to 0. (See Figure 4)
 
Figure 4
 
 
 
5.  Click OK to save changes.
 

 
 
For more information see the following Microsoft knowledge base article
 
For More information for these setting in Windows 2008 see the following Microsoft knowledge base article

https://support.microsoft.com/kb/951037

 

 

Was this content helpful?