SharePoint – Intermittent Performance Issue

A while ago I had a SharePoint site that seemed to load up and perform just fine. However, whenever a user hit the refresh button the page would load real slowly. It would almost be like the page stopped loading for a couple of seconds half way through the load process. So, at first I thought there was some sort of css or js file causing this issue. I started to debug this, but I came to find out it was a different css or js having the pause each time.

At that point I called Microsoft Support to find out what could possibly be going on. After hours on the phone, the Microsoft Support technician had an epiphany – he asked me what kind of Network Adapter my server had. I explained to him it was a BroadCom NetXtreme II.At that point he knew what was going on. There is a known issue with a Windows Server 2003 service pack 2 machines that uses either the BroadCom NetXtreme II or the Hewlett-Packard NC373i Multifunction Gigabit Server Adapter. The issue has to with a concept called TCP Chimney, which was introduced in Windows Server 2003 service pack 2. TCP Chimney is supposed to increase the performance on a server; however, these particular network adapters don’t play nice with it.

The solution to my issue was to disable TCP Chimney through this command line: Netsh int ip set chimney DISABLED

Then after it was disabled, we made a few registry changes to make sure we didn’t hurt the performance of the machine by disabling TCP Chimney:

1. Click Start, click Run, type Regedit, and then click OK.
2. Locate the following registry subkey: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
3. Double-click the EnableTCPChimney registry entry.
4. In the Edit DWORD Value dialog box, type 0 in the Value data box, and then click OK.
5. Double-click the EnableRSS registry entry.
6. In the Edit DWORD Value dialog box, type 0 in the Value data box, and then click OK.
7. Double-click the EnableTCPA registry entry.
8. In the Edit DWORD Value dialog box, type 0 in the Value data box, and then click OK.
9. Restart the server.

After doing these simple steps, my long, grueling, performance issue was finally solved.

Side Note: Since this problem has been fixed I sent out an email to my company explaining it. 2 other projects have had the same issue. Plus, recently, another project had this issue, but different symptoms. Basically, their SharePoint site seemed to work fine on their local network, but anytime it was hit from outside their local network, they would have these same performance issues. It turned out they had one of the two network adapters described above.

For more information on this issue please look at the Microsoft Support link for TCP Chimney issues: http://support.microsoft.com/kb/942861. In this article they describe the situation as connecting to a SQL Server with TCP/IP and getting a specific error message. Well, SharePoint is connecting to its SQL Server backend with TCP/IP, so the issue described in the article does fit the SharePoint model.