Oh, Sky Cake Windows. You really are a new toy every day, aren't you?
Readers with unusually long memories may remember that I shamelessly begged for money to buy a new computer. Against all reason, you actually gave me enough to make that possible, just before the end of the last financial year. Said new computer, replete with overclocked Core i7 920 CPU and 6Gb of RAM, has been happily buzzing away next to my desk ever since.
I'm not actually using the new computer yet, though, because I will not permit myself to start screwing around playing Fallout and GTA and such on it until I have actually finished writing a big review about it, like unto the piece I wrote about the Athlon X2 box in 2006, and the other piece I wrote about the Pentium 4 box that preceded it in 2003.
But every time I get back to working on that big review, the PC bang-per-buck goalposts have shifted again. There is, for example, not really much reason for most people to get an LGA 1366 Core i7 machine any more, now that functionally-no-slower, yet cheaper, LGA 1156 CPUs are available. And don't even start me on the graphics-card scene.
So this has turned into the longest PC-to-PC migration project in history, with the new machine being languidly updated with data and applications. It's on all day, but only actually running a BitTorrent and distributed.net client. (I think you can spot the moment in my stats when the new box came on line. Feel free to mess up the numbers by ascribing your own distributed.net work to dan@dansdata.com, too.)
So anyway, the new computer's running Windows Vista SP2 (the 64-bit version, so I'll be able to use all of the 6Gb of memory), and it behaved itself perfectly for weeks on end. As you'd expect it to, of course; Vista was something of an adventure in frustration when it was freshly birthed, all shiny and glistening, but the two service packs have burned away the more impudent of its tentacles.
But then, just the other day, the Vista box decided to stop moving data over its gigabit-Ethernet link to my old computer, the one I'm still using, at the tens of megabytes per second to which I'd become accustomed.
Instead, it's decided to send data at, oh, maybe half a megabyte per second. 1.5Mb/s, tops. Often quite a lot less.
That screen grab is of a transfer from the Vista machine to the XP machine, initiated and screenshotted at the Vista end. But speeds are the same if I start a transfer from the XP end.
It sped up to about 200 kilobytes per second after a few minutes. Sometimes, at random moments, it actually managed to sustain a whole couple of megabytes per second for a while. Whoopee.
Copying between all the other devices on the network works exactly as fast as it always did. The Vista box copies files between its own drives very quickly. The laptops get full bandwidth from their wireless adapters, the Vista box copies to the little Thecus N299 at its usual roughly 8Mb/s, and copying from the XP box to anything else on the network is also fine. And, get this, copying from the XP box to the Vista box is fine, too. Full gigabit speed. So this is a one-way problem.
And it's specific to the (Realtek) network adapter on the Vista box's Asus P6T motherboard. When I unplugged the Ethernet cable and plugged a USB wireless adapter into the Vista machine, I got full wireless bandwidth from Vista, via the access point and its own Ethernet hookup, to my XP PC. I presume a PCI Ethernet card or USB Ethernet adapter would work fine, too - though I wouldn't be at all surprised if the slow-transfer disease spread to the new adapter in due course.
I've plugged the Ethernet cable back into the Vista machine's built-in adapter for simplicity, now. Since the BitTorrent client is on the Vista box, this means that if I download something big on the Vista machine and want to move it to the XP one, I can either start it copying long before I want it, or plug a thumb drive into the Vista box, copy the file (at a perfectly normal speed) onto that, then plug the thumb drive into the XP machine.
This problem - or something very like it - was all the rage among Vista's early adopters back in 2007. I think the 2007 version of the problem usually had to with a well-meaning feature in Vista which is supposed to reserve network bandwidth for streaming multimedia content, so if you're watching an HD movie or something over a (suitably speedy) network from a Vista computer, you'll never have any frame-dropping or glitches when seeking, because any other file transfers from that computer will be heavily throttled even when they don't need to be.
This feature apparently often went haywire, especially in the original version of Vista. It either decided to operate all the time whether you were playing video or not, or it operated when the local user of the Vista computer was just playing music, or something, while someone else tried to get a file from his computer over the network. I think there was some kind of Copy Control Crap involvement here, too, but don't quote me.
This was meant to be fixed in SP1, and by all accounts a lot of it was. Vista Service Pack 2 has been out for some time now, and that's what my new computer is running. And as I said, for weeks on end, everything worked fine. I could play even HD movies from the Vista box over the network, A-OK.
Because this problem has such a long history, it's somewhat challenging to dig up information about fixing it on Vista SP2, as opposed to SP1 or the original extra-special Oh Dear God Why Did I Buy Vista v1.0 Edition. An inexpertly-crafted search string will thus turn up tons of people complaining about it back in 2007. The water is further muddied by different versions of the problem, in which copies from Vista to, say, Windows Server 2003 work OK, but copying stuff the other way is very slow and may even time out and die entirely. I don't think my problem is related to those ones, but who frickin' knows.
I have tried many things to fix this problem.
[UPDATE: In the original version of this post I forgot to mention that yes, I'm using a full-permissions administrator account, and yes, Vista's firewall is turned off.]
First up, I tried using a different copying program (like the aforementioned TeraCopy, or Vista's own Robocopy). No good.
I tried opening a DOS prompt (with admin permissions) and typing the voodoo chant "netsh int tcp set global autotuninglevel=disable"
. No good.
I tried Microsoft's automatic "Fix It" doodad for changing this same setting. No good.
I noticed that the Vista PC's hard-drive light is locked on for a couple of solid minutes after startup, even if I close all apps that could be expected to hit the drive. I don't remember whether it did this before the transfer problem. Perhaps it's SuperFetch-related. While I was fiddling with this, I completely disabled Windows Search. No good. Didn't even prevent the drive-flogging on startup.
(Good old lsass.exe was totting up I/O reads and writes at a great rate. I'm unconvinced that it had much to do with the startup disk-flogging, though, since it kept on reading and writing after the drive light had returned to normal occasional flashing.)
I've got Nero installed on the Vista machine; that installs some pointless services that can also hit the disk, so I killed them along with indexing. I also disabled Nero's system-startup tasks using MSConfig. No good.
I power-cycled the cheap and cheerful gigabit switch. No good.
I usually have a VNC view of the new computer's desktop open. I closed that. No good.
(VNC itself is subject to the slow-transfer problem; it updates very noticeably slower now, and of course becomes even more painful if I ignore the new limited bandwidth and force it to a high-bandwidth connection mode, like the "LAN" setting in the UltraVNC viewer.)
I ventured into the registry, and tried setting NetworkThrottlingIndex to FFFFFFFF. Then rebooted. No good.
In a moment of mad optimism, I tried telling Vista to "diagnose and repair" the network connection. It told me I needed to "turn on TCP performance improving settings", so I did. No good.
I turned off Quality of Service for the XP machine's network adapter. No good.
I turned off the same QoS Packet Scheduler and a couple of Link-Layer Topology Discovery doodads on the Vista box's network-adapter properties. No good.
I tried mapping a drive. No good.
I went on a rampage through Task Manager, killing every task that wasn't obviously necessary for Vista's continued operation. AnyDVD, audiodg, Daemon Tools, GoogleCrashHandler, jusched, nTuneService, PunkBuster, UpdateCenterService, Real Temp, PresentationFontCache, nvSCPAPISvr, MSASCui, two copies of nvvsvc.exe, Vuze and the VNC server all bit the dust.
No good.
But then there was SLsvc.exe, a Copy Control Crap process if ever I saw one. I killed it, and... No good.
I fiddled with "Remote Differential Compression". Windows said "Please wait while the features are configured. This might take several minutes", and for once it was not joking. It sat there for quite a while. But then it finished! No good!
I read through this page looking for things I hadn't yet tried. The only new one I found was disabling "Windows Meeting Space". So I did that. No good.
I said, "hang on a minute - why not just connect the XP and Vista boxes with a FireWire cable? That's fast!"
So I did. And although the XP machine was perfectly willing, it didn't work at all, because Microsoft has removed FireWire networking from Windows, as of Vista.
I noticed that Windows Update had a new driver for the motherboard's network adapter, which I hadn't installed with the other updates. So I installed that. No good.
I tried disabling "Large Send Offload" in the Vista machine's network-adapter properties. I even disabled the IPv6 one as well as the two IPv4 ones. No good.
While I was there, I tried disabling the IPv4 and IPv6 versions of TCP and UDP Checksum Offload, and an IPv4 Checksum Offload too. Each of them can be enabled for receiving, transmitting, both, or neither; I fully disabled all of 'em. No good.
I went to Device Manager and uninstalled the network adapter - and selected the "Delete driver software" option - then rebooted so it'd be redetected. No good.
Then I smote my forehead mightily, and tried a new Ethernet cable. I would actually have been slightly irritated if that had worked. It didn't. Actually, it made XP-box-to-Vista-box copies slow, just like Vista-box-to-XP-box ones. Both cables have all four pairs connected - well, unless there's a break in the middle somewhere. I cannot escape the feeling that this is trying to tell me something, but I'm too tired to figure out what it is.
I haven't yet tried starting the Vista box in Safe Mode with Networking, as this page suggests. I haven't tried connecting the two computers with a crossover cable, either. I also haven't yet tried just officially declaring the migration to be complete and starting to use the new box as my main computer.
But dammit, I want to fix this. I've gone too far to turn back now.
Perhaps there's something obvious that I'm missing, here. If any of the three people who've managed to read to the end of this post have any suggestions, I'm all ears.