Networking

Improve performance on Windows systems by enabling the TCP Offload engine

The TCP offload engine (TOE) allows for higher performance on systems where a large amount of network traffic will take place. Basically, TOE-supporting systems shifts the processing requirements on the network transport to the interface. This can make a significant difference on systems where near line speed traffic occurs.

The TCP offload engine (TOE) allows for higher performance on systems where a large amount of network traffic will take place. Basically, TOE-supporting systems shift the processing requirements on the network transport to the interface. This can make a significant difference on systems where near line speed traffic occurs.

For many Windows-based systems, TOE is not enabled by default. Enabling TOE is not as easy as it may seem, however. There are no consistent requirements to get a system supporting TOE up to speed. The process to enable TOE can touch the Windows operating system, the NIC driver, and possibly the NIC BIOS. Here are some points to get TOE running in your environment.

To get started with TOE on Windows 2003 or XP, the Windows Scalable Network Pack is required to enable support. This download Windows Server 2003 Service Pack 1 or higher and Windows XP x64 edition. Windows Server 2008 systems do not have to download a similar update, but it is not enabled by default. To enable TOE on a Windows Server 2008 system, use the following netsh command to enable it quickly:

netsh interface tcp set global chimney=enabled

For those waiting for Windows Server 2008’s highly anticipated R2 release, TOE is supported by default and no intervention is required on the operating system.

Beyond the operating system there may be additional steps required on the properties of the network adapter, the network driver tools (Intel PROSet or Broadcom BASP), or possibly in the BIOS of the NIC.

This practice should be done only on physical servers. Operating systems like VMware’s ESX and Hyper-V for Windows Server 2008 should have it enabled. Virtual Machines should use the default configuration unless the synthetic driver installation (VMware Tools, Integration Services, etc.) configures otherwise.

About

Rick Vanover is a software strategy specialist for Veeam Software, based in Columbus, Ohio. Rick has years of IT experience and focuses on virtualization, Windows-based server administration, and system hardware.

6 comments
Michael Kassner
Michael Kassner

I've heard of this and would like to know what the advantages are? Can you expand on that? Better without details isn't going to get me to do it.

aloima
aloima

I was working for the govt and we tested TOE off and on for about a year. we had a 100mb lab environment with HP blade servers and we found negligble differences. there were no throughput differences noted, and little to no differences on CPU cycles, memory usage, and pages/sec. we set up 120 winxp Vm's running on four different physical servers on an isolated network, and then proceeded to bombard other servers on that network with scripted file transfers of different sizes. we ran this for days on end. as the technology progressed, and new bios updates came out for the cards, and much improved drivers from HP, we found it worked better in our windows server 2003 R2 environment, and ran smoother overall. but we couldn't reproduce the gains promised by industry leaders. later we installed a 1Gb network and began testing again. it seemed that at that point we were starting to approximate the kind of traffic flow that would be necessary for the TOE to become an enhancing factor. but for most people in the majority of networks, it is unlikely they will ever see the benefits of this technology unless they are running extremely heavy loads on high throughput. and given the cost of the cards themselves, it's something you want to consider carefully before handing over that kind of money.

b4real
b4real

Hey Michael. The main advantage is that the 'work' of transmitting near line speed is transferred from the CPU to the network interface card. There is not a faster network performance, just a big burden released from the host computer.

BFilmFan
BFilmFan

The last time I checked, TCP Offload wasn't directly supported by default in Linux (Jackie can correct me if I am wrong, I am most sure :) ). I have seen issues with some software running on Windows 2003, especially around a lack of support for the scalable network engine. The Wiki article covers it pretty generally at http://en.wikipedia.org/wiki/TCP_Offload_Engine. Good article on how to tell if it is working in Windows at http://blogs.technet.com/brad_rutkowski/archive/2007/08/10/how-to-know-if-tcp-offload-is-working.aspx I would recommend trying it on a test server before attempting it on a production server.

getablackdogupya
getablackdogupya

Having just experienced issues with the TOE, I back that comment about testing before production. I had a bit of a nightmare with the TOE patch and the HP Network Teaming stuff on a HP Blade. Needless to say, as soon as I rolled back the patch, things started to miraculously work again. As with all things, err on the side of caution! Cheers, Dave

Editor's Picks