Thursday, June 21, 2007

Slow loading web pages with Vista

"Slow and low - that is the tempo!"

Ahh, yes, but Sir Beasties, not when it comes to my internet connection!

I've been having some issues with my internet connection since upgrading to Vista Business Edition last December. Web pages routinely take 8-10 seconds to load, and sometimes don't load at all. Or, sometimes they're fine (this blog input page loaded in .520 seconds - nice). By "slow loading" I mean, the pages display the "waiting for" in the status bar, but hang at that point. The domain name is getting resolved, so I don't suspect DNS problems (though I did try both Comcast's DNS servers and the OpenDNS servers, to no avail).

When this does happen, it is generally without a pattern. It doesn't always happen, and it doesn't always happen on the same sites. Clicking refresh multiple times will eventually "catch" and the page will load at it's proper speed. When I am unable to load a page, if I do a speed test on my connection, it's wide open, getting full bandwidth (I'm on cable and typically pull 8,000 - 12,000 mb/sec).

I tried troubleshooting all the usual suspects. Disabled all of my Firefox browser add-on's. Disabled my virus scanner (I use AVG - though I've read that McAfee Antivirus was causing page loading problems on some Toshiba and Gateway computers, and that removing McAffee fixed the problem). Ran a spyware check. Tried IE versus Firefox to see if this was browser related. None affected my intermittently slow internet connection, which for once didn't look like it was being caused by Comcast.

I found an article via Google that explains how Microsoft's new network stack in Vista is not RFC 1323 compliant. To quote the article:
In a nutshell, websites that don't fully support RFC 1323 or the default Windows Scaling factor of 8 will be very slow or even unaccessible.
See also: Microsoft Knowledge Base article 929868 on the topic, Specs of RFC1323

The article lists a couple options to try:

1. allow the autotuning level to grow beyond its default value when absolutely necessary

Start - Run - type cmd - CTRL-SHIFT-ENTER to bring up console with Administrator privileges. Type:
netsh interface tcp set global autotuninglevel=highlyrestricted
2. disable autotuning altogether.
netsh int tcp set global autotuninglevel=disable
If you need to set autotuning back to normal:
netsh interface tcp set global autotuninglevel=normal
Reboot to enable the changes.

I'm not sure this is the solution, but I'm trying it now. I'm a bit more optimistic than I was when reading the usual canned level 1 tech support answers of "check for spyware" and "disable virus scanners."


Guillermo said...

netsh int tcp set global autotuninglevel=disable

That did it for my problem.
Thank you very much it was really helpful.

I was sure it wasn't a virus or a spyware.


Shelly said...

Glad it helped!