How to Resolve Performance Tuning and Connectivity Issues
While enabling network adapter offload features is typically beneficial, there are configurations where these advanced features are a detriment to overall performance.
In some cases the network adapter is not powerful enough to handle the offload capabilities at high throughput. For example, enabling segmentation offload can reduce the maximum sustainable throughput on some network adapters because of limited hardware resources.
Additionally, there are technologies used in Windows that are not compatible with offloading technologies.
The incompatible technologies are:
- Windows Firewall
- Internet Protocol security (IPsec)
- Internet Protocol Network Address Translation (IPNAT)
- Third-party firewalls
- NDIS 5.1 intermediate drivers
Because of this, disabling the advanced offloading features can greatly improve connectivity.
What to do:
- Disable Offloading technologies on all network adapters.
- Disable TOE in Windows
- Disable TOE in the Broadcom Advanced Control Suite
- Disable Receive Side Scaling
- Disable Large Send Offload
How to do it:
- Disable TOE in Windows
- Windows Server 2003
- Start à Run
- netsh int ip set chimney disabled
- OR Apply Microsoft update 948496
- http://support.microsoft.com/kb/948496
- Windows Server 2008
- Start à Run
- netsh int tcp set global chimney=disabled
- netsh interface tcp set global rss=disabled
- On each NIC inside the Broadcom Advanced Control Suite (BACS)
- Disable IPv4 Checksum Offload
- Disable IPv4 Large Send Offload (LSO)
- Disable Receive Side Scaling (RSS)
Disable TOE in the Broadcom Advanced Control Suite (BACS)
- Select the first NIC under System Devices
- Select the Configurations tab
- Expand the Resource Reservations section
- Uncheck the TCP Offload Engine (TOE) checkbox
- Click Apply
- Select Yes
- Repeat for the second NIC.
- Select Yes
Intel Configuration
- Open Device Manager
- On each Intel NIC in Device Manager, disable the following:
-
Note: Not every option is available or exist on the Advanced Tab.
- Offload Receive IP Checksum
- Offload Receive TCP Checksum
- Offload TCP Segmentation
- Offload Transmit IP Checksum
- Offload Transmit TCP Checksum
- IPV4 Checksum Offload
- Large Send Offload v2 (IPV4)
- Large Send Offload v2 (IPV6)
- Receive-Side Scaling
- TCP Checksum Offload (IPV4)
- TCP Checksum Offload (IPV6)
- UDP Checksum Offload (IPV4)
- UDP Checksum Offload (IPV6)
The screen looks similar to one of these two:
Windows Server 2003
Windows Server 2008
- If BACS is not installed, disable RSS in Windows
- Choose one of the two methods below
- In Server 2003 with Service Pack 2
- Start à Run à RegEdit
- Navigate to:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
- On the Edit menu, point to New, click DWORD Value.
- Type EnableRSS.
- Double-click EnableRSS
- Type 0
- Click OK.
- In Windows Server 2008
- Start à Run à CMD
- netsh interface tcp set global rss=disabled
- If BACS is not installed, disable IPV4 Large Send Offload (LSO) in Windows
- In Server 2003 with Service Pack 2
- Start à Run à RegEdit
- Navigate to:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
- On the Edit menu, point to New, click DWORD Value.
- Type DisableTaskOffload.
- Double-click DisableTaskOffload.
- Type 1
- Click OK.
- If BACS is not installed, Registry File method to Disable RSS and Large Send Offload
- Copy the text below to a notepad file called, "Disable RSS and LSO.Reg."
- Double-click the file to import the file into the Registry.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"EnableRSS"=dword:00000000
"DisableTaskOffload"=dword:00000001
- To update SNP,
- http://support.microsoft.com/kb/950224
- Scalable Networking Pack (SNP) hotfix rollup.
- Check TOE status
- Start à Run à CMD
- Windows Server 2003
- Type: netstat –ton
- Windows Server 2008
- netsh interface tcp show global
- If all connections are "InHost" then TOE is likely disabled
- If any connection shows "Offloaded" then TOE is enabled.
Note: Windows Server 2008 AutoTuning could also cause performance issues.
- netsh int tcp set global autotuninglevel=disable