Advertisement

Stripping Down Puppy Linux For Server. Good Idea Or No?

Started by April 13, 2013 07:45 PM
5 comments, last by AgentC 11 years, 5 months ago

I have been recently working on a multiplayer game, and I had a great optimization idea. The game is based on client-server architecture, and the server software is provided with the actual game so that anybody can set up a server. It runs on Linux. Most of the components that bog down any modern operating system probably won't be needed in the server, so I was thinking that if I took a super-lightweight OS, like Puppy Linux with the Puppy Linux Kernel, and removed all functionality related to X Window Server, audio support, USB, CD/DVD, parallel programs, etc. that it would be a real advantage and make an already small OS into something microscopic. The server software would be provided in the new OS disk image from the game's website. Is this a good idea, and would this take too much time?

P.S: The optimization is brought about by two reasons:

1. To enable players with older computers to host servers

2. Because the amount of players hosted on the server can scale to the owner's specification (within the size of type int), it needs to run very fast.

C dominates the world of linear procedural computing, which won't advance. The future lies in MASSIVE parallelism.

I have a gut feeling that you are overthinking it a bit :/

Any linux server distribution would already have a X Window server and audio stack removed. Optimizing is ok, but there is a real limit of what you can do on old computer. I have a unusable old computer downstairs, I think 20 or more VM instances of the same thing on my current machine would still run faster than it. Maybe just host the server on a samsung galaxy, it has more juice :). And an OS image, just for one game? That is crazy :). Nevertheless, that does sound cool.

I think it would take too much time for a very small gain.

Advertisement
You can probably get more performance by using the time to optimize the game itself.

o3o

My friend the lifelong linux user recommends arch linux or debian as your starting OS rather than puppy.

I want to help design a "sandpark" MMO. Optional interactive story with quests and deeply characterized NPCs, plus sandbox elements like player-craftable housing and lots of other crafting. If you are starting a design of this type, please PM me. I also love pet-breeding games.

Linux with GNOME 3/KDE 4 and you get hardware requirements in the ballpark of Vista/Windows 7.

Linux with GNOME 3 fallback mode/GNOME 2/Xfce/LXDE and you get hardware requirements in the ballpark of Windows XP (ordered from highest to lowest, GNOME 3 fallback works with 300Mb of memory, LXDE with 100Mb of memory).

Linux without GUI and you can run it on anything already. No need to strip it down further (well, maybe removing cups because its a no-brainer :D ).

And this is talking about a Debian kernel, which are compiled for maximum compatibility. So no need to strip down the kernel either.

Just do a test. Download Debian 6 stable, or Debian 7 testing. Install it without GUI and check out how it works.

"I AM ZE EMPRAH OPENGL 3.3 THE CORE, I DEMAND FROM THEE ZE SHADERZ AND MATRIXEZ"

My journals: dustArtemis ECS framework and Making a Terrain Generator

Cutting that sort of stuff out isn't going to improve performance any more than just not running X and not running anything with audio and not running a DVD in the drive. You haven't said anything about profiling your code, so you can't really make wild guesses and expect them to mean anything relevant. You could be network-bound, for all you know right now.

However, there is a separate advantage: keeping disk usage low will mean you can virtualize more. The more VMs you start, the more an incremental savings in disk space saves you money.

[Formerly "capn_midnight". See some of my projects. Find me on twitter tumblr G+ Github.]

Advertisement

If the server is fairly portable code, and if the game client itself will also be provided for multiple platforms, I would rather suggest to spend the effort into making the server multiplatform too to allow people to run it conveniently from their existing OS, rather than providing OS disk images. Once the server executable is up and running, the OS itself should not make much difference to its execution speed, unless you are hitting the RAM limit and it's forced to page out memory.

This topic is closed to new replies.

Advertisement