Vista SP1 or SP2 machine with a 1GB .iso and an .mp3 file stored locally.

Gigabit network (not sure if this matters but it amplifies the problem).

In general transferring files kicks butt. Copying the .iso from client to the server runs at Gigabit speeds and takes about 10 seconds. Nice.

If I open Windows Media Player (or any other media player) and play the local .mp3 file (or any other supported media file), and then copy the .iso to the server, speeds slow considerably. The file now takes 70 seconds.

Worse, in some cases this will completely take down the network connection of the client PC and can't be re-initiated via ipconfig or Vista's own Diagnose and Repair. Even Worse, when using Winamp to play the .mp3 the computer will completely blue screen and reboot. Turning off receive window auto-tuning fixes the disconnect and blue screen problems, which is great, but I'd still like to be able to reduce the bandwidth set aside for playing media files.

3 Answers
3

The slow down is likely caused by the multi media class scheduler. Brute force is to disable the service. Mark Russinovich's has a blog entry with info on how to tell if it's the multi media class scheduler by watching the number of ndis packets per second get throttled. Some sites say to increase the tcp window size so you get more data per packet.

This is about vista, but seems to give the registry entry to tweak for the throttling.

Tony. Thanks for the great answer! The KB article you linked to, support.microsoft.com/kb/948066, states the max one can change the NetworkThrottlingIndex to is 70 (decimal) which is 00000046 (Hexadecimal). After setting it to the max I turned back on receive window auto-tuning and everything is working perfectly. No dropped connections or blue screens. File copies are slightly throttled down to an acceptable 85MB/s.
–
GollyJerAug 5 '09 at 17:45

If Tony's answer worked; you should mark his answer as accepted :)
–
EvilChookieAug 5 '09 at 18:44

I had marked as accepted on serverfault.com. Not sure why that didn't come over when it was moved here.
–
GollyJerAug 5 '09 at 19:24

Either what Bcshort said or the first thing I thought of was hard drive I/O.

If you have multiple hard drives - or even a usb stick, try putting the mp3 on there, playing it and the copying the iso.

If speed does not improve, it is most likely what Bcshort said and to do with network card offloading to the CPU, however if it does3 improve, in my oppinion it is something to do with your hard drive not being able to keep up.

I can not speak for local, but I know that from streaming a mp3 from my nas that the whole song (despite being ~4MB) is not loaded in to memory but is streamed live, if I disconnect my network cable, I get about 3 seconds of audio before it drops. This basically means that there are a lot of reads going on at the same time.

To extend my theory - If I have two machines with a GB network and want to transfer 2 large files of the same size, it could easily say 10 minutes for one file. If I highlight both and transfer to the same folder it would say 20 minutes... however if I start a copy for the first one and then copy the second one in a separate process, both of them may go to around 30ish (sometimes more) minutes.

Seems to me that the network card hands off a fair amount of processing to the CPU - so when the CPU gets busy, the network card has less of a share to the CPU and is therefore being slowed by a processing constraint.

Also be aware windows 2008 and large packets have weird effects on some network hardware.We've found HP NC373 chipsets do not have processing grunt for Checksum & Large send offloading causing dropped packets, so have had to disable that feature.