[MUD-Dev] Re: TECH: Distributed Muds

Derek Snider derek at idirect.com
Thu Apr 26 13:39:41 CEST 2001


>From J C Lawrence:
> On Wed, 25 Apr 2001 13:02:11 -0400 
> Derek Snider <derek at idirect.com> wrote:
 
>> Of course the list elements were tiny, but it wasn't to test how
>> well the virtual memory worked.
 
> Simple traversal is not really the problem.  The underlieing problem
> is fragmentation and resultant thrashing of the OS page cache.
 
> Translation: You're trying to keep N discrete objets in system
> memory, where the N objects are distributed across M virtual memory
> pages, where M approaches N in the pessimal case.  Given that your
> application is also trying to keep a whole bunch of other things in
> the page cache, as the sum of M + (rest of working set) grows the
> more your VM system will thrash.

It wasn't clear what the argument was, traversal, or VM thrashing.

Anyways... with a MMORPG, or any online multiplayer game, you really,
really don't want any part of the game to be paged out to disk.  The
only time you want to touch the disk is to load/save persistant data
(player files, persistant world data, etc) ... and only when
necessary.

RAM has gotten quite cheap, and you're going to have to load up your
servers with as much as it takes to keep everything in memory.

256Meg modules can be found under $70USD at the moment.

Here's the scoop: If you page out objects that aren't being used
currently to disk... guess what's going to happen when someone
encounters that object? -- LAG!

LAG is evil.  Netlag is bad enough.  Server lag is unacceptable.  It's
hard enough eliminating lag from manditory disk operations
(saving/loading pfiles) without worrying about Virtual Memory.

With the cheapness of RAM right now, it's time to turn VM off.  VM is
fine for desktop machines, not for servers.  Those days are long past.
Once your server starts swapping, performance goes down the toilet.

You say you have 10Gigs of game world data?  Looks like you've got to
spend $3000 on RAM spread over a few zone servers.  Big deal.

When you have a UNIX server paging out idle memory pages, the only way
to keep pages in memory is to access them regularily, and the only way
to do that is to have a regular periodic traversal of all objects in
memory.

_______________________________________________
MUD-Dev mailing list
MUD-Dev at kanga.nu
https://www.kanga.nu/lists/listinfo/mud-dev



More information about the mud-dev-archive mailing list