How To Disable TCP Chimney Offload, RSS and NetDMA in Windows 2008 R2
Currently ran into issues with Windows 2008 R2 with Exchange 2010 using DAG (Database Availability Group) and failovers of the database happening for no reason. One of the suggestions is to turn off TCP Chimney Offload as well as RSS and NetDMA.
How to disable TOE and RSS from the command prompt
•From a command prompt (open using “Run As Administrator”) run
netsh int tcp set global chimney=disabled
Run netsh int tcp show global to confirm that Chimney Offload State now shows as disabled
Run netsh int tcp set global rss=disabled to disable RSS (Receive Side Scaling State)
• Run netsh int tcp show global again to confirm that Receive Side Scaling State now shows as disabled
How to disable NetDMA
Click Start, click Run, type reged32, and then click OK.
Locate the following registry subkey, and then click it:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
Double-click the EnableTCPA registry entry. Note If this registry entry does not exist, right-click Parameters, point to New, click DWORD Value, type EnableTCPA, and then press ENTER.
To disable NetDMA, type 0 (zero) in the Value data box, and then click OK.
How to disable TOE and RSS in the Network Adapter Settings
Open the Device Manager Control panel Applet from command line with
mmc devmgmt.msc
You can also Open Control Panel and access it via Network and Sharing Center > Change adapter settings, right click on the adapter and select Properties and click the Configure button.
Now that we are in the properties for the adapter lets make the changes.
Switch to the Advanced Tab
Note : Not all the options below may be present for an adapter, they will depend on the adapter type but all possibilities have been listed.
- Locate Receive Side Scaling (RSS) and set the Value to Disabled
- Locate TCP Offload Engine (TOE) and set the Value to Disabled
- Locate TCP/UDP/IP Checksum Offload (IPv4) and set the Value to Disabled
- If this TCP/UDP/IP Checksum Offload (IPv4) property is present, it overrides and disables the TCP Checksum Offload (IPv4), UDP Checksum Offload (IPv4), and IPv4 Checksum Offload properties.
- Locate TCP Checksum Offload (IPv4) and set the Value to Disabled
- Locate IPv4 Giant TSO Offload and set value to Disabled
- Locate IPv4 TSO Offload and set value to Disabled
- Locate Offload IP Options and set value to Disabled
- Locate Offload IP Options and set value to Disabled
- Locate Offload TCP Options and set value to Disabled
- Locate TCP Checksum Offload (IPv6) and set the Value to Disabled
- Locate UDP Checksum Offload (IPv4) and set the Value to Disabled
- Locate UDP Checksum Offload (IPv6) and set the Value to Disabled
- Locate IPv4 Checksum Offload and set the Value to Disabled
Repeat the steps for any other Network Adapters until you have completed. Reboot the server.
So, did making those changes fix the problem you were experiencing?
It resolved the issue I was having. It was causing th network stack to disconnect and caused failures in the cluster.
Question for you…
Is your DAG environment virtualized ?
Yes it sure is.
This just makes it worse… I’ll go for teh fix: Disable remote differential compression
My spouse and I absolutely love your blog and find nearly all of your post’s to be exactly what I’m looking for.
Does one offer guest writers to write content to suit your needs?
I wouldn’t mind producing a post or elaborating on some of the subjects you write related to here. Again, awesome web log!
Glad the posts are of use, I post on items that are not so easy to find.Still thinking about guest writers.
I have been browsing online more than three hours today, yet I never
found any interesting article like yours. It is pretty
worth enough for me. Personally, if all site owners and bloggers made good content as
you did, the web will be a lot more useful than ever before.
I couldn’t agree with you more on finding good content. Part of my blogging philosophy is to make sure items get posted like this that is useful as good content is hard to find. Most times you only get part of the story and have to search many places to find what you need.
Hi, nice article. Right to the point. I am wondering though, is there a reason why you’re using a vmxnet3 Ethernet adapter instead of the recommended e1000 adapter?
Thanks Ed, I appreciate it! The reason for the vmxnet3 adapter is because this is on a VMWare 5.x farm and vmtools is installed on the servers which you get the benefits of the driver for speed, reliability and better integration with the hosts, always better to use the native driver if possible. Plus we have tested the e1000 and the vmxnet3 river on Linux and Windows systems and saw performance and reliability gains ourselves.
Is there any command available that will get Properties list from Advance Tab and its value set.
Performance gain at cost of cpu increased activity where offload might sometimes slowdown instead of speedup and there is the DisableTaksOffload key below the tcp/ip parameters to own desired boolean value 0 or 1,disabled, in your case 1 will speedpup probably.