Why do people think that a server SKU works well as a general purpose operating system?

Sometimes the expectations of our customers mystify me.

 

One of the senior developers at Microsoft recently complained that the audio quality on his machine (running Windows Server 2008) was poor.

To me, it’s not surprising.  Server SKUs are tuned for high performance in server scenarios, they’re not configured for desktop scenarios.  That’s the entire POINT of having a server SKU – one of the major differences between server SKUs and client SKUs is that the client SKUs are tuned to balance the OS in favor of foreground responsiveness and the server SKUs are tuned in favor of background responsiveness (after all, its a server, there’s usually nobody sitting at the console, so there’s no point in optimizing for the console).

 

In this particular case, the documentation for the MMCSS service describes a large part of the root cause for the problem:  The MMCSS service (which is the service that provides glitch resilient services for Windows multimedia applications) is essentially disabled on server SKUs.  It’s just one of probably hundreds of other settings that are tweaked in favor of server responsiveness on server SKUs. 

 

Apparently we’ve got a bunch of support requests coming in from customers who are running server SKUs on their desktop and are upset that audio quality is poor.  And this mystifies me.  It’s a server operating system – if you want client operating system performance, use a client operating system.

 

 

PS: To change the MMCSS tuning options, you should follow the suggestions from the MSDN article I linked to above:

The MMCSS settings are stored in the following registry key:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile

This key contains a REG_DWORD value named SystemResponsiveness that determines the percentage of CPU resources that should be guaranteed to low-priority tasks. For example, if this value is 20, then 20% of CPU resources are reserved for low-priority tasks. Note that values that are not evenly divisible by 10 are rounded up to the nearest multiple of 10. A value of 0 is also treated as 10.

For Vista, this value is set to 20, for Server 2008 the value is set to 100 (which disables MMCSS).

Comments

  • Anonymous
    January 08, 2009
    I'm thinking of Server 2008 as a workstation to get Hyper-V. Is there a better way?

  • Anonymous
    January 08, 2009
    Could have stemmed from the XP-WinServer2003 dichotomy. I know a few people who moved over to Server2003 as a client OS when it came out due to the rave reviews it got (stability, security) when it was released. I don't remember the chronology much any more, but IIRC there was a major security initiative going on around that timeframe that also included the Longhorn reboot and the XP security SP, and the uncertainty around when it would trickle down to clients led some folks to bypass the whole mess and go with the newest RTM. I did something similar ages ago when I ditched Win9x for NT5b2, as 9x instabilities were killing me & I wanted something more industrial-grade even if it meant running the poorly-supported (at the time) NT kernel.

  • Anonymous
    January 08, 2009
    Especially if you’re a developer. Larry Osterman wonders why people complain about issues with a server

  • Anonymous
    January 08, 2009
    The comment has been removed

  • Anonymous
    January 08, 2009
    Shut-up and Smile has the thought I had - I develop on a client SKU (XP Pro), and (1) I'm slightly nervous about the fact that I'm developing on a different release than I'm releasing on (2) IIS5.1 is not IIS6, so I don't get to see any of the nifty-keen new features that my clients might be taking advantage of. I'd take your point entirely if different SKUs were matters of tuning (and default setups, etc etc).  But they're also market segmentation, and as long as they are there'll be people who want to misuse their SKU.

  • Anonymous
    January 08, 2009
    I know lots of people you have gone this route. There's a couple of primary reasons

  1. Vista is bloated and slow. W2K8 feels much snappier. Maybe because it starts with a lot fewer services by default. But it's easier to figure out what to turn on in W2K8 than to figure out what you can turn off in Vista.
  2. Some developers are stuck developing for Sharepoint, and MS hasn't seen fit to provide a "developer" version that can run on Vista (the way it did for SQL Server). If you're doing full-time Sharepoint dev, it makes a lot of sense to run W2K8 as your primary OS.
  • Anonymous
    January 08, 2009
    The comment has been removed

  • Anonymous
    January 08, 2009
    To be clear: I don't have any issue with people running server SKUs day-to-day.  That's not a big deal, people need to do all sorts of things. My big issue is with people who run server OS's and then expect them to behave like client OS's.

  • Anonymous
    January 08, 2009
    Andreas: Running in classic mode gives you the "XP without themes style" without running a server SKU (actually it's Win2K's visuals). Server SKUs are for use in SERVERS.  People shouldn't get upset when the server OS works like a server.

  • Anonymous
    January 08, 2009
    How about a small business that uses a server to play audio for on hold music or perhaps for the overhead speakers?  Maybe not common, but it seems like a valid use for a server OS.  I wouldn't have expected that the audio subsystem would need to be tuned to play glitchless audio.

  • Anonymous
    January 08, 2009
    The comment has been removed

  • Anonymous
    January 08, 2009
    +1 for Sharepoint development, although Windows 2003 also offered software RAID (mirroring) when Windows XP Pro didn't. Cheers,

  • Oli
  • Anonymous
    January 08, 2009
    <quote>In this particular case, the documentation for the MMCSS service describes a large part of the root cause for the problem: The MMCSS service (which is the service that provides glitch resilient services for Windows multimedia applications) is essentially disabled on server SKUs.</quote> Actually the documentation indicates that the service isn't available pre-Vista.  I couldn't find it saying anything about client (Vista, Win7) vs server (2k8).

  • Anonymous
    January 08, 2009
    The comment has been removed

  • Anonymous
    January 08, 2009
    The comment has been removed

  • Anonymous
    January 08, 2009
    The comment has been removed

  • Anonymous
    January 08, 2009
    Where to begin?

  • remote desktop in client SKUs is neutered
  • software RAID in client SKUs is neutered
  • virtualization in client SKUs is neutered
  • web development in client SKUs is neutered
  • default start menu / quick launch icons / cmd.exe settings / explorer views / etc in client SKUs are annoying Fix that stuff first, then we can talk.
  • Anonymous
    January 08, 2009
    The comment has been removed

  • Anonymous
    January 08, 2009
    Why do people think server SKUs should be tuned like client SKUs ? Because they assume that a machine that is able to run Win Server 2008, with (most likely) multiple 2GHz+ cores should have enough horsepower to play an audio file ?  Maybe because they remember that they were able to play audio on their 300 MHz Celeron back in 1998 ?  But I guess those people have unrealistic expectations, those fools.  Because in 2009, playing audio is so difficult and demanding that it only works on a special client-tuned OS that devotes so many billions of cycles per second to audio that it has to slow down its network throughput to handle the monumental task of playing Burt Bacharach.

  • Anonymous
    January 08, 2009
    The comment has been removed

  • Anonymous
    January 08, 2009
    The comment has been removed

  • Anonymous
    January 08, 2009
    Under what situations does this setting matter? Is it only when the CPU is under heavy (100%) load?

  • Anonymous
    January 08, 2009
    The comment has been removed

  • Anonymous
    January 08, 2009
    Actually, the people are complaining there's too many places to tweak and there isn't any centralized information on what to tweak on the web. I think if there's some kind of centralized "Performance tweaks" applet in Control Panel, people won't complain that much... (Actually, I think people would still complain such panel should merge with "Power Management" settings, and people will also complain when you really merged it... so there have to be complaints anyway... :P)

  • Anonymous
    January 09, 2009
    "Why do people think that a server SKU works well as a general purpose operating system?" People using a server OS as a client OS should know about the caveats, "It’s just one of probably hundreds of other settings that are tweaked in favor of server responsiveness on server SKUs. " And most of them can be changed, if you know how, for example: "To change the MMCSS tuning options, you should follow the suggestions from the MSDN article I linked to above"

  • Anonymous
    January 09, 2009
    The comment has been removed

  • Anonymous
    January 09, 2009
    The comment has been removed

  • Anonymous
    January 09, 2009
    The comment has been removed

  • Anonymous
    January 09, 2009
    The comment has been removed

  • Anonymous
    January 09, 2009
    And I was not the only one wanting PAE on client versions of Windows, I visited the forum and seen some other people wanting the same thing as well. "64-bit offers little benefit over 32-bit+PAE" Other than increased kernel address space, which is sometimes important, such as Exchange, but more often not.

  • Anonymous
    January 09, 2009
    If you're an Office dev, you have to run server. Only work system I have that runs a client is my laptop. How is a dev supposed to actually work without good tunes? Don't you realize that not understanding your user base has impacted Microsoft dev productivity? <g> In the good old days (circa NT 3.51 and prior - I forget when that slider went away), there was a slider for how to tune your server. Maybe we should have a Win2k8 Developer's Edition.

  • Anonymous
    January 09, 2009
    The comment has been removed

  • Anonymous
    January 10, 2009
    The comment has been removed

  • Anonymous
    January 10, 2009
    Torkell: I'm willing to guess that the IDE controller is configured to run in PIO mode not DMA mode.  When a disk controller's in PIO mode, it has to transfer the entire disk read one byte at a time when processing the disk interrupt. That was fine back in 1984 with MS-DOS but not these days.  Unfortunately hardware manufactures don't always realize this.

  • Anonymous
    January 10, 2009
    This would be an acceptable answer if it weren't for the fact Microsoft distinguishes its product editions by arbitrarily disabling different parts of the operating system. It's not all that hard to see that there may be a customer somewhere who needs client-like multimedia support with server-like background tasks, perhaps, say, for running a display advertising system.

  • Anonymous
    January 10, 2009
    Windows Server 2008 ships with audio completely disabled by default.  This should be your first hint that Server isn't optimized for audio.

  • Anonymous
    January 11, 2009
    Larry: I'm pretty sure it's running in DMA, not PIO (it's a Promise 133TX2, if you're interested). Windows claims it's using DMA, and I can pull large files off it faster than PIO should handle. The odd thing I've noticed is that lots of small files (or working with lots of metadata) tends to be more of a problem than a few large files - I usually trigger it with a backup script that scans for new files. It's probably some weird firmware bug or implementation detail, as a different IDE card (Highpoint RocketRaid) never caused any problems. Speaking of DMA/PIO, last week's discovery is that a SATA drive can run in PIO mode. I did something or other to a SATA cable (probably bent it too much), and the result was an event log full of disk errors, followed by some strange bluescreens (i think one was session3 init failed) and eventually Windows dropping the drive down to PIO. My computer comes up with "interesting" ways to fail...

  • Anonymous
    January 11, 2009
    The comment has been removed

  • Anonymous
    January 13, 2009
    The comment has been removed

  • Anonymous
    January 14, 2009
    Koro: That's fine.  Read my article again - I NEVER said that I had a problem with people running server products day-to-day. I said that I was surprised that people expected that servers would be as responsive to the console as a client.

  • Anonymous
    January 14, 2009
    The comment has been removed

  • Anonymous
    January 14, 2009
    "It is as simple as that." Gosh, Larry... after all this time that you've been working on Windows audio, you still haven't realized just how simple all of this is. It's a good thing we have guys like Igor around to tell us how all of this should be done. Maybe you should hire him.

  • Anonymous
    January 14, 2009
    Igor: It's a SERVER.  The people who own and run servers tend to think that servers should spend their time doing things OTHER than rendering multimedia. And there are things that run at higher priority than user mode threads.  

  • Anonymous
    January 15, 2009
    Larry, you're preaching to the choir.  Well, to me anyway. <grin>   I tried and tried to get Media Player removed from the Desktop Experience Pack exactly because of the audio issue but someone who gets overpaid at multiples of what I do said "uh... no." Such is life!  I suppose that those "Server as Client" users on 2008 also disable UAC so that they can burn music CDs and such too.  Ah well, such is life!

  • Anonymous
    January 16, 2009
    The comment has been removed

  • Anonymous
    January 18, 2009
    The comment has been removed

  • Anonymous
    January 18, 2009
    The comment has been removed

  • Anonymous
    January 19, 2009
    The comment has been removed

  • Anonymous
    January 20, 2009
    The comment has been removed

  • Anonymous
    January 23, 2009
    The comment has been removed

  • Anonymous
    January 27, 2009
    The comment has been removed

  • Anonymous
    January 27, 2009
    The comment has been removed

  • Anonymous
    January 27, 2009
    The comment has been removed

  • Anonymous
    January 27, 2009
    Hendric Hilken, "Pretty much everyone I knew told me "Trust me, do not touch XP 64-Bit, friend." at the time, so 2k3 was pretty much the only Microsoft OS that did what I wanted". Big surprise for you. Windows XP x64 is just a client SKU of W2K3. The same stuff inside.

  • Anonymous
    January 27, 2009
    Hendric Hilken, "Pretty much everyone I knew told me "Trust me, do not touch XP 64-Bit, friend." at the time, so 2k3 was pretty much the only Microsoft OS that did what I wanted". Big surprise for you. Windows XP x64 is just a client SKU of W2K3. The same stuff inside.

  • Anonymous
    January 27, 2009
    Hendric Hilken, "Pretty much everyone I knew told me "Trust me, do not touch XP 64-Bit, friend." at the time, so 2k3 was pretty much the only Microsoft OS that did what I wanted". Big surprise for you. Windows XP x64 is just a client SKU of W2K3. The same stuff inside.

  • Anonymous
    January 27, 2009
    Hendric Hilken, "Pretty much everyone I knew told me "Trust me, do not touch XP 64-Bit, friend." at the time, so 2k3 was pretty much the only Microsoft OS that did what I wanted". Big surprise for you. Windows XP x64 is just a client SKU of W2K3. The same stuff inside.

  • Anonymous
    January 27, 2009
    If I recall correctly, one of the major issues fixed in Vista SP1 was very poor network performance while playing audio... something like the MMCSS service limiting the number of interrupts per second to a number that wouldn't matter to 10 mbit ethernet, would control 100mbit, but would cut gigabit networks to 100mbit speeds. ahh, here it is http://blogs.technet.com/markrussinovich/archive/2007/08/27/1833290.aspx So it's more than just percentages of CPU time, there are a lot of little things.

  • Anonymous
    January 29, 2009
    "Big surprise for you. Windows XP x64 is just a client SKU of W2K3. The same stuff inside." In fact, that is true of the previous "Windows XP 64-bit Edition Version 2003" for Itanium as well.

  • Anonymous
    February 01, 2009
    Well, I'll answer your question directly - because the server OS certainly seems capable of doing it (with the right hardware installed). So why not? I am a developer - I "live" in my OS. I'd rather live in a normal appartment, with video wall and a nice hi-fi thatn in a server room :)

  • Anonymous
    February 02, 2009
    G. stoynev: Why should a server be tuned in the same way a client is?  After all, they service different workloads.

  • Anonymous
    February 02, 2009
    The comment has been removed

  • Anonymous
    February 03, 2009
    "Why isn't 32-bit XP using PAE and AWE to access and utilize unmanaged memory above 3GB?" Because it has an official memory limit of 4GB. Pre-XP SP2, it was a physical memory limit, post-SP2 it is a physical address space limit. Anyway, copying from a comment I posted on Raymond Chen's blog: "BTW, I was told by Geoff Chappell that this page will be available in the future that will have more info on this issue: http://www.geoffchappell.com/notes/windows/license/memory.htm (currently it is a 404 page)"

  • Anonymous
    February 03, 2009
    BTW, Geoff Chappell told me this page will in the future have more info on PAE/NX and client versions of Windows: http://www.geoffchappell.com/notes/windows/license/memory.htm (currently it is a 404 page)

  • Anonymous
    February 03, 2009
    BTW, sorry for posting part of a comment twice, the first one did not appear immediately.

  • Anonymous
    February 05, 2009
    With Server 2008, you CAN rip the UI right off of the OS. Great for Hyper-V hosts and a multitude of dedicated machines. Not only does it reduce overhead, but it really reduces the "attach surface"

  • Anonymous
    February 08, 2009
    The server SKU does work well as a general purpose OS.  And yes I started doing so first with w2k pro.  I still run it to this day, still as stable as the day I installed it.  But to be clear, for me it is curiosity only. I currently quad booting w2k, xp pro, vista 64 ultimate and Windows 7 beta on one hard drive with Ubuntu and PClinux set to boot from the other drive. Why settle for just one OS when the computer can handle so much more than that?  I don't like virtual server or other virtual hosts, preferring to hard boot each and every OS. But really, seems kinda strange to me when I jump from one to the other that in client SKUs EVERYTHING is turned ON (including all those unsecure opened ports), whereas on Server SKUs most everything is turned off.   For a user who understands the difference between the two options, I would imagine that they aren't very worked up about the whole issue.  For others, maybe they're just confused because Windows Home Server is supposed to be a multimedia system for their home.  Who are they to know that Server 2008 is different from Home Server? My question though is what's with the question to begin with?  Are you a support person who is tired of all the calls about audio?  If so, maybe a change of jobs since the general users aren't going to change anytime soon.

  • Anonymous
    February 08, 2009
    I hope support for accessing more than 4 GB of RAM using PAE make it to at least 32-bit Windows 7, especially because there will be no 32-bit version of Windows Server 2008 R2. The memory limits for Windows 7 don't seem to be announced yet, so this would be a good time to ask for this, I am sure.

  • Anonymous
    February 11, 2009
    Geoff Chappell just posted a draft of "Licensed Memory in Windows Vista" at the URL I previously posted above. Larry Osterman and anyone else interested, you should read it.

  • Anonymous
    April 02, 2009
    Hi, I would use a Windows Server to play audio, if I would have a Radio Station ;)