Vista's Long Goodbye strikes again
OS networking buckles under single media file
New data documenting quirky networking characteristics in Vista have surfaced courtesy of Windows architecture guru Mark Russinovich, who confirms that simply by playing media files, users can bring throughput in Microsoft's new and improved operating system to a screeching halt.
The degradation is caused by a new feature known as Multimedia Class Scheduler Service (MMCSS), which has been baked in to the Vista kernel. Its mission is to automatically prioritize the playback of audio and video to prevent skipping, sputtering and other unseemly glitches. Unfortunately, it ends up fixing a problem that was largely non-existent and leaving in its place a major headache for many sysadmins.
According to various bloggers, including ZDNet's Adrian Kingsley-Hughes, the playing of seemingly insignificant media files - say the many beeps accompanied by Windows error messages - cut throughput on his local area network in half. The playing of games and files in iTunes or Real Player caused the same slow down.
As the self-appointed watchdogs of a glitch we dubbed Vista's Long Goodbye, we latched on to these reports like a pit bull on a poodle. Microsoft has yet to formally acknowledge the problem, which causes severe delays when using Vista to delete or move files on a network. More than seven months after first coming to light, the problem is still causing users grief, judging from this TechNet forum.
Russinovich didn't address whether the overly protective MMCSS is the cause of Vista's Long Goodbye, but his findings may provide important clues as to what is. (It may also shatter one popular conspiracy theory that digital rights management was at the root of the problem.)
According to Russinovich, Vista developers recognized that heavy network traffic can be draining on system resources, given that the arrival of each new packet triggers a CPU interrupt. So the good folks in Redmond built network throttling into MMCSS to limit the delivery of no more than 10,000 packets per second.
Normally, this limitation would only be noticeable on a 1Gb/s network and would then only amount to about a 15-percent drop in throughput. But it turns out there's a bug in the throttling code that magnifies the throttling with each network interface card installed. That means a system with both an Ethernet and wireless adapter will process at most 8,000 packets per second. And woe to those who might also have a Bluetooth adapter, for they shall digest no more than 6,000.
Russinovich documents how a throughput of about 20 percent on his 1Gb local area network dropped to about 6 percent simply by trying to pass the time by playing a tune in Windows Media Player. Effects like that will also be felt on 100MB networks.
The throttling won't affect traffic on even the fastest broadband net connections because the many hops between the Vista system and the destination already slows down the packet travel. In other words, TCP/IP reduces the transmission rate so Vista doesn't have to.
"The throttling rate Vista uses was derived from experiments that reliably achieved glitch-resistant playback on systems with one CPU on 100Mb networks with high packet receive rates," Russinovich writes. "The hard-coded limit was short-sighted with respect to today's systems that have faster CPUs, multiple cores and Gigabit networks."
Microsoft's networking people are now talking to its MMCSS people on how to fix the problem.
In the meantime, a Russinovich reader who goes by the user name Courtney has provided a simple workaround that's likely to work as well as anything. It involves modifying the key "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Audiosrv\Dep" to remove MMCS and set MMCS to disabled in services. Reboot, and presto.
"As soon as I rebooted," Courtney reports, "I was able to copy files at 40mb/s+ while listening to audio." ®