I’ve always been rather neutral about the whole Windows versus Linux thing. For me, Windows was easier to manage, had better development tools, my games ran on it and I didn’t have to put up with all the half-baked solutions following a thousand different ideologies on how a program should interact with the user.
However, there’s one thing that makes me seriously think about switching my home server, currently running Windows Server 2008 (Beta3), to Linux. You can observe it on any LAN and, if you’re running a home server, you’ve most likely run into this issue more than once, too:
As soon as someone in the LAN downloads a big file from your windows machine, let’s say an .avi of a recorded TV show, your system is dead. Just opening the task manager to look what’s wrong takes literally minutes. Heck, it already takes that long to get the context menu to appear. The system becomes an upload slave and cannot be used anymore until you friend has finished his download… and by that time, the only sane thing to do is to reboot — if you have the patience to wait for the start menu to open.
This has hit Windows XP, it has hit Windows Server 2003 and it is hitting Windows Server 2008 right now as I’m writing this.
What can be observed in the task manager is that windows uses all available memory and then some for its disk cache. There is no sane limit on RAM, there is no stopping, windows will page out all running applications, the desktop, explorer, the start menu, your calculator, your clock, absolutely everything so it can fill the entire RAM with the never-again used contents of the file your friend is downloading.
This is hitting Microsoft’s server OS just as good as its workstation and home Windows packages. The holy file cache is allowed to use every bit of RAM in your system, all else becomes secondary to that. Sharing a large file is basically a way of asking for your system to be taken down, or more specifically, to take down itself.
For me that means: (File Server) == !(Microsoft OS), or in words, if you want a file server, you cannot use a Microsoft OS.
I wonder if there is a way to limit windows’ cache, or to disable caching of files on a specific partition or something else that prevents Windows from dying when it serves a file. Anything.
…or is Microsoft’s latest and greatest Server OS really such a miserable joke?
March 10th, 2008 at 1:25 am
Isn’t there a setting under the system properties control panel, under the advanced tab, the performance button. The advanced tab of that has a “memory usage” option. If you are running your server as a desktop too, then you probably want to adjust those two radio buttons over to Programs rather then background / system.
March 10th, 2008 at 9:00 am
Thanks, but that doesn’t seem to change the behavior. It’s already set to “Programs” on Windows XP and Vista, by default - and I observed this behavior there, too.
I’m not running my server as a desktop, just connecting to it via Remote Desktop to check on things, and occasionally to reboot when the DNS went up in smoke again. If this would only impede the server’s desktop I would say it’s highly unprofessional but as long as the clients are served, it’s okay with me, but that’s not the case. File shares hang (or take forever), TV streaming stops — the only thing that seems to keep working is NAT routing.
March 10th, 2008 at 9:21 am
[…] for or against Windows Server 2008. As I said in my previous post, resourcefully titled “Windows Server 2008“, I’m still running Beta 3, so things might have changed in the RTM build. I […]