[1624] in Coldmud discussion meeting

root meeting help first previous next last

Cold efficiency

daemon@ATHENA.MIT.EDU (Tue Sep 19 12:53:43 2000 )

Message-ID: <39C7912F.29ABCE27@canada.com>
Date: Tue, 19 Sep 2000 12:15:43 -0400
From: Moses Moore <mozai@canada.com>
MIME-Version: 1.0
To: mpovoski@earthlink.net, coldstuff@cold.org
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Reply-To: coldstuff@cold.org

>also, are there any resources for MOO vs. Cold re functionality and/or
>efficiency?  Im talking server here, with a minimal db, rather than the
>standard cores out there.
>
>also, are there any benchmarks, or can anyone speak from experience,
>about Cold scalability in terms of connections, processor speed, code,
>data, etc?
>
>Im trying to figure out how many active connections can be managed
>efficiently (e.g. without server lag) given a fairly large 'driver' ( i
>think it is called ) on a Cold implementation running with a given
>amount of CPU and RAM.

I've been curious about this too, enough to borrow time on a friend's
Sun server (with 2 Gig of memory and it's underused) and try running
some tests with sending 100's of processes from one machine at the
Genesis server.

The only thing I've noticed related to efficiency is the configuation
setting during compile when it asks about the object cache width and
depth.  I set it to 997 objects wide by 8 deep (default is 31x10 at an
estimated 4Meg of memory), just for fun.  I'm assuming the object cache
is what might really bog down the server, since I/O is usually the
slowest part of any program (that, and O(n^2) loops when O(n logn) will
do).  Assuming a dozen base objects (root, system, generic container,
generic thingy, generic room, generic player, etc), and users/furnature
spread out to 2 per room, that's 328 users before the server starts
swapping out objects.  I'll run a test with a perl script that will
simulate 1000 users, and get a footprint of the server's memory.  I
figured something that would sign in to a clean ColdCore snap, create a
player, create a room and a thingy, teleport to the room and continually
pick up and put down the thingy while looking around and talking (for a
maxium reasonable object use) and record the number of iterations inside
of 2 minutes.  Any suggestions?

Hrm, 4*1024/(31*10) = 13.2kb per object, or therabouts (assuming no
overhead for the server itself).  13.2kb * (997*8) = 102Megabytes or
so.  Not bad, considering I know a commericial graphical MUD that uses
900 Megabytes of memory and pukes when 1000 users connect.  Ultima
Online and Everquest are annoyingly vauge about how many users a single
server can support ("thousands", but is that simultaneous or
aggregate?).  Quake III caps out at 32, but that's probably for
logicstics rather than performance (I mean, imagine a highschool
gymnasium with 32 people, rocket launchers and hand grenades).

I'll report more info as I find out more.