Sep 28 2009

TCP Offload

Published by at 11:32 am under Windows




TCP Offload Engine (or TOE) transfers network processing load, from the CPU (software) to the network controller (hardware). The network card needs to support TOE such as the HP NC382T. This functionnality is disabled after the server installation.
 

Check if TOE is enabled

 
Windows 2003
The activation can only be checked with the registry key EnableTCPChimney under HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 
 
Windows 2008

C:\>netsh int tcp show global
Querying active state...

TCP Global Parameters
----------------------------------------------
Receive-Side Scaling State          : enabled
Chimney Offload State               : enabled
Receive Window Auto-Tuning Level    : disabled
Add-On Congestion Control Provider  : ctcp
ECN Capability                      : disabled
RFC 1323 Timestamps                 : disabled

 
The important line here is Chimney Offload State.
 

Enabling/Disabling

 
Windows 2003

netsh int ip set chimney ENABLED
netsh int ip set chimney DISABLED

 
Windows 2008

netsh int tcp set global chimney=enabled
netsh int tcp set global chimney=disabled

 

Linux

TCP Offload isn’t supported in Linux for different reasons described on the Linux Foundation website.
 

Improvements

It is stated that 1Gb of traffic roughly requires 1Ghz of CPU resource. In this matter, TCP Offload is only valuable for Gigabit interfaces, with an important traffic flow. It especially suits servers with iSCSI interfaces.
These are the numbers I’ve seen on servers and it’s quite impressive. CPU usage remains close to 0 during heavy traffic processing. I’ve had no problem so far since it’s been enabled.
 

Issues

It isn’t advised to enable TOE on servers running firewall, IPSEC and IPNAT applications. There are side effects: http://support.microsoft.com/kb/948496


No responses yet

Comments RSS

Leave a Reply