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 (70)

  1. Ken Cox says:

    I’m thinking of Server 2008 as a workstation to get Hyper-V. Is there a better way?

  2. Keith Patrick says:

    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.

  3. Especially if you’re a developer. Larry Osterman wonders why people complain about issues with a server

  4. Ken Cox: As I understand it, if you have a high end video card, you’re going to have major issues with Hyper-V, so you may want to rethink that decision.

    And no, I don’t have any ideas on how to get Hyper-V without running a server SKU, I don’t do virtualization.

  5. Dan Davies Brackett says:

    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.

  6. Kevin Dente says:

    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.

  7. Andreas says:

    Larry, you are making a good point but you missed one crucial issue: There are people who wants a nice and clean UI (XP without themes style) and at the same time the new technologies in Vista / Windows 2008 server. For them, the server SKU is the better option, since Vista is so bloated, especially as a business use OS.

    And yes, there are people who wants to listen to music while working in a very stripped down UI environment, I’m one of them.

  8. 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.

  9. 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.

  10. Nathan Lewis says:

    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.

  11. Tyler Reddun says:

    There are people out there who think the "sever" is the real version of the OS. Somewhere along the line they decided that Microsoft dosn’t really care about the clint stuff and the only version of Windows that ‘works’ is the server version, so they will only run server on the home PC.

  12. Oli says:

    +1 for Sharepoint development, although Windows 2003 also offered software RAID (mirroring) when Windows XP Pro didn’t.

    Cheers,

    – Oli

  13. Ben Voigt [C++ MVP] says:

    <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).

  14. Jonathan says:

    There are many valid reasons to run a Server OS as a workstation. First, as many have mentioned, many people develop for server OS, and prefer not to maintain 2 separate machines (dev workstation + test server):

    • It’s more expensive to buy & maintain them. Virtualization could help – but then you would want Hyper-V (64-bit support, for one), which is only available on Server host OSs.

    • The single machine may be a laptop that you lug around. Carrying 2 laptops is a sub-optimal traveling proposition.

    • It’s more troublesome to develop and test on different machines, particularly in dev environments like Sharepoint.

    Another scenario where server OS is used as desktop is Terminal Server. But then you don’t expect cutting-edge multimedia experience anyways. You do expect desktop stuff to work though (Office, IE, etc).

    The sentiment that a server OS is inherently better than a workstation OS may have been true in 2003/XP, where 2003 was a different – and more advanced – codebase than XP. Now that 2008/Vista(SP1) are the same codebase, the differences are limited to tunings and defaults. Some people see 2008 as "Vista with a bunch of crap disabled", but IME you can disable stuff easily in Vista (for example, I’ve been running XP, and now Vista, with visual styles disabled for many years now).

    That said, I happen to run 2008 as my main work desktop, part out of coincidence, and part for Hyper-V. When I installed it, audio didn’t work at all. I was pleasantly surprised to find out that 2008 has a special off-by-default "Desktop Experience" Windows feature that includes most of what’s missing in 2008 vs. Vista – namely, audio. So it seems that Windows developers saw fit to invest in this scenario as well. I did have to install some "server roles" to get some features going though – like file server so that Outlook2007 instant search would work. But I haven’t found anything that I miss. Audio works well enough for my needs – the occasional music/YouTube video. My display (Radeon X600, connected to dual monitors) works well too – it does Google Earth on both screens quite well, and Hyper-V machines look good as well.

  15. JD says:

    Ever since NT 4.0 there have been a group of people who have insisted on running a solid workstation OS without consumer frills.

    And there were lists of people tryign to put games on NT. With Win2k these people had what they thought was the grail. The workstation version of Win2k would run the consumer apps and still be stable and realiable.

    With XP people either resisted ("Fisher Price" complaints about needless theming) or moved to the consumer platform instead of holding out for a real workstation.

    Server2k3 didn’t have a workstation version, so you were stuck with XP. So that group of people likely includes the people in your complaint.

    …that said, often people are just trying to get their stuff done on the box in front of them. Maybe it’s an IT tech in the lab using the server box in front of him. Maybe it’s a hand-me down box (I happen to have a 2k3 server I used for software development due to its stability, and ended up using it for personal use as time went on).

    Hope this gives you an idea of the motivation, Larry.

  16. Keith Patrick says:

    "How about a small business that uses a server to play audio for on hold music or perhaps for the overhead speakers?"

    That sounds like a job for a different server SKU, like the Home Server. Whether Home Server is tuned that way, though, is unknown to me; if I had to wager money, I’d put it on MS not having a "personality" for that particular use case (IIRC they at one point had a bunch of names of "users" on a wall to represent different customer archetypes and thus SKUs; please correct me if I’m wrong) and assume the scenario would be a server SKU paired with a Media Center.

    That being said, it should be possible to tune Server2008 to function in this manner, right?  That would be more suprising to me than it not working that way out of the box.

  17. Richard Berg says:

    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.

  18. Richard: That doesn’t answer my question.  My question was "Why do people think server SKUs should be tuned like client SKUs" not "why do people use server SKUs".  

    There are lots of reasons for people to use server SKUs on their desktop.  But they shouldn’t expect that their OS is anything other than a repurposed server OS.  In fact all of the "is neutered" you listed above are aspects of servers and not client OSs.

  19. ncgloy says:

    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.

  20. Instead of the numerious nonsense Vista SKUs, Microsoft should provide a _real_ high-end ‘Workstation’ SKU for professional users.

    And what about the Hypervisor concept? is it really a server-only story? IMHO no, not in the long-term.

  21. ncgloy: People also forget about how really fragile their audio experience was on that 300MHz Celeron box.  In 1998 there was only one app that could play audio on the system at a time (the mixer functionality was added in WIn98).  And if anyone did anything that vaguely stresed the CPU or disk, audio glitched like crazy.

    In fact, the server SKU degredation that you get is basically similar to what you had back in 1998, except that because we have the MMSS, the audio engine has been tuned to be more responsive to applications (it runs on a 10ms cadence not a 50ms cadence).

  22. Jon says:

    Under what situations does this setting matter? Is it only when the CPU is under heavy (100%) load?

  23. Jon: When MMCSS is disabled, the audio stack runs a priority 15 thread.  If anything on the system runs at a higher priority for more than 10ms at a time, it can and will preempt the audio stack.

    Unfortunately there’s a lot of stuff on the system that will run at higher than priority 15.

    So it’s not when it’s under heavy load, it’s when high priority stuff runs.

  24. Cheong says:

    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)

  25. Yuhong Bao says:

    "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"

  26. Yuhong Bao says:

    "The single machine may be a laptop that you lug around. Carrying 2 laptops is a sub-optimal traveling proposition."

    Unfortuately in this case, Hyper-V do not support suspend or hibernate.

    BTW, you could in theory mix workloads and run both a game and a  server app on a server OS. I am sure that that kind of stress test will expose many bugs and race conditions.

  27. Yuhong Bao says:

    Richard Berg: Add PAE to the list.

    I actually asked Larry Osterman about adding PAE to client versions of Windows and unfortunately he said it would take too much testing cost to add it as an update to client versions of Windows, in fact I recently sent another email to him about after a recent issue of the Windows Secret Newsletter shows how to enable PAE, I know it would not work but wished that it did.

    One reason I thought it would be a good idea was that if you are only running 32-bit apps, 64-bit offers little benefit over 32-bit+PAE, in exchange you lose 16-bit support and requires a reinstall, while enabling PAE requires a simple switch.

    Maybe, since there will be a 32-bit version of Windows 7 or Vista SP2, that full 36-bit PAE (not only 32-bit as in current client versions of Windows) can be added there, or a hotfix that has to be requested from MS that requires less testing than an update. Late, but better than nothing.

    Note that I was reluctant to post this comment.

  28. Yuhong Bao says:

    "People also forget about how really fragile their audio experience was on that 300MHz Celeron box.  In 1998 there was only one app that could play audio on the system at a time (the mixer functionality was added in WIn98).  And if anyone did anything that vaguely stresed the CPU or disk, audio glitched like crazy."

    It is still happening today, see this:

    http://www.virtualdub.org/blog/pivot/entry.php?id=219

  29. Yuhong: The VirtualDub example is a good of the kind of things that happened on XP (the post doesn’t say if it’s XP or Vista).

    The entire purpose of the MMCSS service is to avoid that kind of problem – essentially when a thread is managed by MMCSS it runs at an EXTREMELY high priority for a very small amount of time.

  30. Yuhong Bao says:

    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.

  31. 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.

  32. Phaeron says:

    The VirtualDub example was on a Windows XP machine. I doubt that MMCSS and Vista would have made a difference, as the video playback was running at a very high data rate (>20MB/sec) and wouldn’t have tolerated even moderate sharing of the disk.

    IMO, if audio is breaking up at any regular rate, the result should be called broken rather than degraded or prioritized. I’d say that if the user has sound enabled and is playing something, there is a reasonable expectation that the OS should try to keep it from breaking up, since otherwise the user could simply disable audio. I wouldn’t necessarily suggest retuning Server to remedy this given its primary intent, but I think it’s a valid complaint.

    As for why the breakups occur, my experience has been that sample rate conversion in Vista contributes to this problem since the higher quality converter takes more CPU time. I’ve recovered ~7% of a 2GHz P4 by matching output streams to the current mixing rate. I’d also suggest again the ability to trade off latency for resilience as I really don’t need 10ms latency when playing a music file.

  33. Torkell says:

    "People also forget about how really fragile their audio experience was on that 300MHz Celeron box.  In 1998 there was only one app that could play audio on the system at a time (the mixer functionality was added in WIn98).  And if anyone did anything that vaguely stresed the CPU or disk, audio glitched like crazy."

    Still happens today on my 4×2.4GHz desktop. A particular IDE controller card I’ve got seems to do a mix of hogging the PCI bus and spamming interrupts, causing the whole system to glitch (audio stutter, mouse driver dropping mouse movements, desktop freezing, the works).

  34. 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.

  35. David W says:

    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.

  36. Ryan says:

    Windows Server 2008 ships with audio completely disabled by default.  This should be your first hint that Server isn’t optimized for audio.

  37. Torkell says:

    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…

  38. anonymuos says:

    @ Richard Berg, how is Remote Desktop neutered? :) TS RemoteApp? And also software RAID or did you mean hardware RAID? How is web development neutered? IIS limitations? I would like to know.

  39. Koro says:

    People run server OSes as workstation simply because it comes with all the CPU/RAM gobbing, "user-friendly" crap OFF.

    Then we can manually turn back on what we need.

  40. 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.

  41. Igor Levicki says:

    One would think that today when 4GB of RAM is a commodity the system could prefetch entire audio file to memory.

    Furthermore, decoding mp3 and wma doesn’t even register on a CPU usage meter with today’s multicore CPUs.

    So if the I/O and decoding aren’t the bottlenecks for audio playback WHY IT DOESN’T WORK FLAWLESSLY ALREADY?!?

    And what is that nonsense about audio stack running at priority 15 and a lot of other processes running at higher priority?!? Audio stack should run with a real-time priority. Period. No other task should have higher priority. Not even video because you are more likely to notice dropped audio samples than dropped video frames.

    Finally, if the OS has so many higher priority tasks to begin with, then that is the sign that the priority system has been seriously abused. If everyone has high priority then nobody does. It is as simple as that.

  42. Paul M. Parks says:

    "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.

  43. 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.  

  44. Mike Paws :) says:

    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!

  45. Igor Levicki says:

    Larry,

    With all due respect for your knowledge and experience — THERE IS NO REASON NOT TO PROPERLY SUPPORT AUDIO ON A SERVER SKU.

    If you don’t play anything, and leave audio services disabled (as they are by default) it won’t affect the OS performance in any way, except that for those who want audio to work, it will work properly once they enable what needs to be enabled.

    Furthermore, going by that weird logic of yours, why don’t you rip out the GUI from server SKUs?

    After all, nobody looks at the console screen either, and we all know that video card DPCs take a lot of CPU time — much more than any audio card out there including the professional ones.

    Finally, going back to SERVER .vs. CLIENT — the only differences (even though Microsoft would like us to believe that there is more to it) are in scheduling quantums and priority boosts, security settings, and services configuration.

    There is no special SERVER kernel, no special files, no voodoo magic that differentiates SERVER from CLIENT OS. IT IS THE SAME PRODUCT CONFIGURED SLIGHTLY DIFFERENTLY.

    If you ask me, the biggest difference between SERVER and CLIENT is in the PRICE TAG.

    @Paul:

    If you are ignorant when it comes to Windows OS architecture, computer hardware and electronics in general that doesn’t mean everyone is. I beg to differ.

  46. Yuhong Bao says:

    "THERE IS NO REASON NOT TO PROPERLY SUPPORT AUDIO ON A SERVER SKU."

    Indeed server SKUs do properly support audio if you configure them properly, it is just not enabled by default.

    "Furthermore, going by that weird logic of yours, why don’t you rip out the GUI from server SKUs?"

    I actually once wished that you could rip out the GUI completely from NT just like you could with OS/2. When I thought about the "Windows=On" option on csrss’s command line, I thought about that. Larry Osterman, is that technically possible? Or is Windows Server 2008 Server Core the best Windows can do on ripping out the GUI?

  47. Yuhong Bao says:

    "Finally, going back to SERVER .vs. CLIENT — the only differences (even though Microsoft would like us to believe that there is more to it) are in scheduling quantums and priority boosts, security settings, and services configuration.

    There is no special SERVER kernel, no special files, no voodoo magic that differentiates SERVER from CLIENT OS. IT IS THE SAME PRODUCT CONFIGURED SLIGHTLY DIFFERENTLY."

    I once justified adding real PAE support to client OSes using this.

  48. BBQNinja says:

    Tell your idiots in the SharePoint team to make an SDK that runs on your consumer OS then.

    If random people can hack apart sharepoint to run on XP then you guys can do it in a dev-only supported way…

  49. Hendrik Hilken says:

    Hmm. Views of the average student home-user here, and I realize this might make me sound like a moron, but I’ll have a go anyway.

    I currently run the Win7 Beta as primary OS (and I like the experience so far), but previously I’ve always been an XP/Linux user. Primarily XP, due to gaming and various other doodads, Linux mostly for the heck of it.

    There’s two reasons I gave 2k3 a run as general purpose OS.

    1. Rapant curiosity. I heared that it was supposedly some sort of ‘miracle OS’ that was better than XP in every respect. And while that obviously is exaggerated, I wanted to see for myself. The free evaluation stuff for 2k3 made that easily possible, so I just gave it a go.

    2. 64-Bit LBA support. To my confusion, 64-Bit LBA support never trickled down to XP 32-Bit. Silly dumb me assumed it’d likely be an undocumented feature of SP2 (Don’t ask. For some reason it made sense to me at the time.) and I invested into a large-ish RAID array. Of course XP promptly gave me the "Only 2TB for you, fool." shtick. 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. Vista was a no-go, as there were no Vista/2k8 drivers for my Raid Controller at the time. (There are now.) Of course, there’s always Linux (which actually cooperated with the Raid controller without needing additional drivers), but it gave me another convenient excuse to check out 2k3.

    Also, there’s something about Vista that makes me feel uncomfortable about using it. I’ve never exactly been able to place what exactly causes this (and it’s likely some sort of irrational effect), but it definately irked me the wrong way. I’m happy that this seems to have gone with Win7.

    Anyway, I’m straying off the subject here.

    To my positive surprise 2k3 actually held up to what I was promised by word of mouth. Very fast out of the box, runs anything XP does just fine with an hour or two of tweaking, and that’s despite me giving the 64-Bit version a go. Luckily there were 64-Bit 2k3 drivers for every bit of hardware in my compy, so zero issues on that front as well.

    2k3 seemed to run faster with all the necessary-for-desktop-use stuff turned on than XP with not-necessary-stuff switched off. Especially the UI seemed amazingly responsive.

    Plus, 2k3 seemed virtually unkillable. I didn’t have a single crash or BSoD in the time I have used it. It still handled gracefully enough when (multiple) processes got caught in infinite loops, and allowed me to close them without major waits. Even doing ridiculous stuff like starting three taxing 3d games and alt-tabbing between them didn’t really faze it at all. Led to some paging, waits, and one of the games shot itself in the process, but 2k3 acted like nothing happened afterwards. Something I was not accustomed to from XP.

    I realize that most of this is possibly easy to accomplish on 64-Bit XP as well nowadays (now that driver issues are largely out of the way?) but I found it somewhat ironic that a slightly tweaked 2k3 seems to run (a lot?) better, faster and easier on the RAM than an out-of-the-box XP.

    If it weren’t for the prohibitive pricetag this would make it a very useable SKU for home use in my opinion. If it were half the price it was at the time, I’d have bought a license or two. Sadly it stayed with the trail. (Which killed itself a few months early when I had to reset CMOS due to memory voltage issues. It went "You naughty guy played with the system time!" and locked itself. Bummer.)

    Plus, there’s always the benefit of domain controller/active directory stuff, which, while not really useful for home use, is at least an interesting learning experience.

  50. Rosewood says:

    There are a lot of good comments here but there is one aspect that is completely overlooked.

    Vista and Server 2008 are split into a god awful number of SKUs.

    When you give a customer that many choices, there is bound to be a segment that is confused. More choices is not always better.

  51. Alexandre Grigoriev says:

    I don’t know, pre-Vista audio worked OK for me, in properly written software. I mean, the software written by people who understand what thread priorities are used for. If audio stack runs on thread priority 15, there should not be much possibility of it getting starved. Why there should be other CPU intensive threads running on 15? Isn’t MMCSS just a big kludge to plug a design weakness in scheduler? Maybe just change the scheduler to downgrade CPU intensive threads (those that routinely fully consume their time slice) in priority?

    It’s not a big secret that the (XP) round-robin scheduler just sucks; thanks to multiprocessors that this suckiness is somehow concealed. On a single processor, if IE7 gets stuck in an infinite loop (which it does very often, thanks to crappy JS engine or something), your whole UI gets so sluggish. It doesn’t even help that thread that owns a foreground window has a priority boost, ho help at all (or maybe it doesn’t really get it?).

  52. Alexandre, unfortunately there are lots of threads in the system that run at higher priority than Pri15.  XP would glitch like crazy whenever you did something even vaguely CPU intensive, there was a ton of work done in Vista and WIn7 to allow applications to render multimedia even when background processes were thrashing the system.

  53. Alexandre Grigoriev says:

    Larry,

    If there are CPU intensive threads with priority 15 (THREAD_PRIORITY_TIME_CRITICAL) , those who start them need a good knock in the head. I mean, if they think their _CPU intensive_ job is too important, they don’t understand the concept. NORMAL_PRIORITY_CLASS/THREAD_PRIORITY_NORMAL is 7 or 9, depending on whether this is a background or foreground thread. You only need 15 if starvation of those threads is completely unacceptable, which is pretty rare. The only valid case I see is realtime resampling, and even it is NOT that CPU intensive.

    Maybe instead of bothering with writing MMCSS, the scheduler just needed to reduce time slice to 1ms for high priority threads. With the high resolution interval timer present in modern chipsets it’s completely feasible. Then, even with a lot of threads of priority 15 running, their latency would still be somehow acceptable.

    PS. Somebody, please fix this blogs.msdn.com blog engine. It’s so unreliable. No, don’t fix, just replace it with the one that works. I don’t mind if it’s PHP based instead of aspx. Just  make it work.

  54. Alexandre Grigoriev says:

    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.

  55. Alexandre Grigoriev says:

    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.

  56. Alexandre Grigoriev says:

    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.

  57. Alexandre Grigoriev says:

    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.

  58. Kaenneth says:

    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.

  59. Yuhong Bao says:

    "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.

  60. G. stoynev says:

    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 :)

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

  62. Igor Levicki says:

    Larry, why don’t you answer these:

    1. Why there are so many threads with their priority way too high considering what they are doing is not important to the user?

    2. Why quantum isn’t down to 1, 2, or 5 ms depending on the CPU performance instead of default 20ms leftover from 8MHz CPU era?

    3. Why is it that when I set boot.ini switch (/TIMERES) to get 1ms timer resolution I still get 15.6ms?

    4. Why isn’t 32-bit XP using PAE and AWE to access and utilize unmanaged memory above 3GB? It is certainly doable (take a look at RamDisk Plus).

  63. Yuhong Bao says:

    "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)"

  64. Yuhong Bao says:

    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)

  65. Yuhong Bao says:

    BTW, sorry for posting part of a comment twice, the first one did not appear immediately.

  66. TheCPUWizard says:

    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"

  67. tstar21 says:

    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.

  68. Yuhong Bao says:

    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.

  69. Yuhong Bao says:

    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.

  70. Bogdan Maxim says:

    Hi,

    I would use a Windows Server to play audio, if I would have a Radio Station 😉