The discovery of the consequences of Windows Vista’s so-called “Multimedia Class Scheduling Service” (MMCSS) is one of today’s big topics in all the computer news gazettes. I just verified the problem myself, and what can I say? It’s true! :)
I booted Vista, started a large (multi-gigabyte) FTP transfer via Gigabit Ethernet and played an MP3 file at the same time, and here’s what the Task Manager showed me:
I have to admit that the first part of the graph isn’t as nice and smooth as Mark Russinovich’s one, but I think that’s because I tested using a real disk-to-disk FTP transfer instead of artificially generated network traffic. However, the sudden decrease of network activity just as I pushed the “play” button in WinAMP can clearly be seen. While audio was playing, I got a quite steady 12% figure in the network graph.
Why 12%, you may ask? Well, MMCSS is said to limit the incoming (Rx) packet rate to 10000 packets per second. Each Ethernet packet may be up to 1500 bytes in size, and given the fact that I was doing a huge FTP file transfer, this limit was very likely in use all the time. 10000 packets per second of 1500 bytes each result in 15 MB/s (megabytes per second), or 120 Mbps (megabits per second) of traffic. This is 12% of the theoretical capacity of Gigabit Ethernet, so this figure makes perfect sense.
I conducted the same test under Windows XP, too. Unsurprisingly, audio had no effect on network performance there:
Unfortunately, it isn’t possible to disable the Multimedia Class Scheduler service easily: The Windows Audio service depends on it, so there will be no sound without it. However, I don’t think that disabling MMCSS would be a good idea anyway: Throttling the network is only one of the less significant things this service does. More importantly, it boosts the priority of the audio thread, which I can imagine is key for glitch-free audio playback under Vista’s complex and convoluted user-mode audio architecture. So the best solution is perhaps to wait until an official fix becomes available.