Sep 28 2009
TCP Offload
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