Courtney Malone

If it ain’t broke, it doesn’t have enough features yet.

How To Fix the Vista Network Speed Issue While Playing Sound (Updated)

Filed under: Geekstuff — Courtney at 1:52 am on Tuesday, August 28, 2007

network performance
Most unexpected

So far I have been pleasantly surprised with my Vista install, a few things needed upgrading but no show stoppers. At least not until I copied a file from the media center machine. I was getting only a few mb/s despite the fact that both machines are connected via gigabit ethernet and have striped raid arrays. It only seemed to occur when playing audio…any audio, regardless of source. This wasn’t good at all.

Services
The culprit…I think
A quick search turned up others who were having this problem and it appears that no one had a solution yet, as a matter of fact, the issue appears to have really gained widespread attention only last weekend. Further research turned up Mark Russinovich’s excellent 3 part series on Vista kernel architecture. Upon reading about the Multimedia Class Scheduler Service it seemed like that would be culprit. Indeed Mark wrote a blog post on it just today.

useless
These are not the keys
you are looking for…
After reading this msdn article, I and many others thought that the answer lay in the MMCSS keys in the registry. Suffice to say it doesn’t. Tweaking the values in the 7 multimedia classes doesnt appear to have any effect.

wont stop
Not cool

At this point you are thinking “Ok Courtney, just stop and disable the service”. Well, this is what happens when you try. Hrm, Windows Audio huh…might need that.

Dependency list
Dependency List
It seems unlikely that Windows Audio Service has a legitimate dependency on MMCS, so I opted to manually modify the dependency list for the service in the registry.

editing key
Editing key
Just double-click on “DependOnService” and delete the line that says MMCSS. Hit ok, return to the services, and set Multimedia Class Scheduler Service to disabled (but do not try to stop it), then reboot.

good sign
excellent
Once Vista restarts, you should be able to check services and see that Multimedia Class Scheduler is disabled, and when you scroll down, Windows Audio is still running.

Success!
Success!
To give it a test, play some audio while copying a large file. Your performance should increase dramatically.

Good start
38 mb/s, not great, but much much better.

Digg!

Update: A lot of people have told me that this works for them, however I have had one or two reports of people having popping audio. Popping audio due to missed interrupts is exactly one of the things MMCSS is intended for. The beauty of the workaround is that you can still re-enable the MMCS service independently of Windows Audio, so all you would have to do is set it back to Manual or Automatic and hit start. Some people have indicated that they think this is some fundamental flaw of Windows, and I must disagree; having the ability to prioritize I/O, paging and memory blocks is an incredibly useful feature and a worthwhile addition to Vista. I just think Microsoft may have chosen some poor weighting parameters for it initially.

If disabling MMCSS doesnt solve the issue for you, you may want to try playing with the various parameters in the subkeys under HKLM\SOFTWARE\Microsoft\WindowsNT\CurrentVersion\Multimedia\SystemProfile\Tasks, though I had no luck with this method. You may also want to try using netsh to fiddle with Vista’s autotuning parameters too.

Also, looks like Larry Osterman (Windows Media team) has written a blog post on the issue.

Update 2: The Vista team put up a whitepaper on Service Pack 1 over at their blog. I noticed these two points:

“Improves the speed of copying and extracting files.”

“Addresses an issue in the current version of Windows Vista that makes browsing network file shares consume significant bandwidth and not perform as fast as expected.”

Hopefully they will change the defaults, and provide a user mechanism to adjust the weighting of I/O priorites.

Update 3 (3/18/8) : SP1(x86 x64) is officially available and Mark Russinovich has a post up explaining the file copy improvements.  From the release notes:

In SP1, PC administrators are able to modify the network throttling index value for the MMCSS (Multimedia Class Scheduling Service), allowing them to determine the appropriate balance between network performance and audio/video playback quality.

My network copy speed has risen dramatically to ~75mb/s on smb/cifs shares.

Upgrade Time (Updated)

Filed under: Geekstuff — Courtney at 11:26 pm on Monday, August 27, 2007

heck yeah
4 cores and 6 gb
of 64 bit goodness

I was regularly using more than 2gb of ram on my main desktop, and swapping was killing me. So I decided to decided to add more, however there was a problem; the 32 bit version of Windows XP i was using does not support more than 4gb. Even worse, due to the way memory ranges are allocated for device drivers, I would not be able to use more than 2.5gb on my machine (a lot of IO cards using mem ranges, and 2 256mb video cards). Windows XP used to support more than 4gb of address space by using a mode called Page Address Extension, however Mircrosoft removed this support in SP2! Apparently driver writers were not thorough in their assumptions about mappable ranges and this was causing a lot of issues with supporting larger ram configs. Keep in mind that 32 bit versions of 2000 and 2003 all support more than 4gb of ram.

This meant it was time to consider a 64 bit version of Windows. A quick look at Windows XP Pro 64 indicates that it breaks everything and drivers are hard to come by. So I opted for Vista Ultimate 64bit. I heartily recommend buying the OEM version from Newegg since its half the cost of retail. A quick check revealed that all of my hardware would have drivers.

Upgrade Parts
The goods
Of course, one of my problems is “If it ain’t broke, it doesn’t have enough features yet” so rather than just doubling the ram to 4gb, I opted to make it 6…oh and replace those aging Opteron 244s while I’m at it with 2 dual core 275s.

Before
Before the upgrade

The machine was a bit dirty before the upgrade, and I opted not to remove the bar in the photo since I have a ton of cables on the underside of it (scsi, power, fan speed, etc).

Socket #1
Socket 1 after install

All the slots filled by cpu 1, clearner, but not quite clean enough.

Bios
Good news
After flashing all the various bits of firmware, and installing everything it was time to cross my fingers and boot it up. Success, yes I know those RAM latencies wouldn’t be acceptable to an overclocker, but socket 940 requires registered/buffered ECC, so there isn’t any point in blowing money on OMG BLING RAM

Installer
Installer

The install of Vista was insanely easy; boot from the dvd, partition the disk, enter the key and let it go. It was pretty quick too, took less than an hour.

Old cpus
The old Opteron 244s (1.8 Ghz)

Drives
Drives
A vanity shot of the drives

Polar Challenge
Polar Challenge
Update:Bonus! I got a 20-30 degree celsius drop in cpu temps, an 8 percent drop in power load at the UPS and most importantly, I can play the 1080p h.264 version of Top Gear’s Polar Challenge.