I’ve been running Vista on my SBS network for a while, well since the January Action Pack, and have noticed resource access to the SBS box getting slower and slower over the last few days. At the same time I had issues like log on’s taking 2 minutes, explorer time outs and generally the whole system running like a dog.

The two symptoms have turned out to be seperate, but combined they are a ‘throw the sodding pc outa the window’ type scenario.

Slow networking is due to the auto tuning of TCP/IP in Vista which is turned on by default.

The following information was gleamed from Rob Garrett’s blog

Make sure you’re running as an Administrator (can open a command window as Administrator) and execute the following command at the prompt:

netsh interface tcp set global autotuning=disabled

Changing “disabled” to “normal” will re-enable this setting, should you want to turn it back on again.  The following command will list the status of the current TCP settings:

netsh interface tcp show global

http://support.microsoft.com/kb/224829 

It appears that some routers are having problems with “TCP Windows Scaling.”  Essentially, the TCP spec limits a TCP packet to 64KB, since faster networks allow for more data transfer, 64KB is a tad on the small side.  TCP windows scaling involves negotiating a larger packet size between the client and the server during connection by the client sending a special SYN packet and waiting for an acknowledgment.  Problem is, some routers (mine for example) strip the SYN acknowledgment packet.  The sever thinks that scaling is enabled and starts sending data back, meanwhile the client waits for it’s SYN acknowledgment that it never receives, and eventually times out.

By default Windows 2003 does not send Windows Scaling SYN ack packets unless the client requests scaling (known as auto-tuning). Vista, now uses auto-tuning in it’s TCP stack, where as XP did not.

So why does IE7 work? Windows scaling requires a scale factor to determine how much extra data can be squeezed into TCP packet (typically 64K * 2 ^ factor).  IE7 forces a scale factor of 2, which seems to work through my router, whereas other applications, such as FF2 use a default factor of 8.

Turning auto-tuning off on Vista is a quick fix but not ideal. Replacing my router with one that does not strip out the SYN packets is another quick fix.  Since other readers of my site may be using a buggy router and an installation of vista the only proper fix is to prevent the server from sending SYN packets.  The attached registry file will disable auto-tuning on a Windows 2003 server.

Note, turning off auto-tuning on the server will not produce undesirable performance.  Up to recently, most (if not all) clients connecting to Windows 2003 did so without requesting auto-tuning.  By default, Windows 2003 will not enable auto-tuning unless it is requested by the client - Vista!!  Disabling auto-tuning with this registry change will assume XP like behavior.

 

Save line below as tcp1323opt.reg en import the file in de registry:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"Tcp1323Opts"=dword:00000000

Slow local file access issue

The second issue was down to a backup utility I’d been testing. Genie Backup Manager is a nice auto backup util that’s easy to set up for novices and has powerfull features. It has an open file addon so users can backup pst’s etc, well even though the app supports Vista, Vista doesn’t like the Open File Manager it installs. I’m guessing it’s conflicting with shadow copies and haven’t really looked thast far into it.

Uninstalling the FAM addon resolved local file access issues. Beware of this if you or your clients use this utility.