[JDEV] scaling a single server

Jacob O'Reilly jacob at clear.net.nz
Thu Feb 10 00:04:47 CST 2000


    
    -----Original Message-----
    From: temas <temas at box5.net>
    To: jdev at jabber.org <jdev at jabber.org>
    Date: Thursday, 10 February 2000 06:56
    Subject: Re: [JDEV] scaling a single server
    
    
    If you wanted multiple servers to be @singlehostname.com, there is no exact
    solution yet.  It really depends on how your setting it up, and is most likely
    a proprietary solution at this point.  We are looking at a few ideas for out of
    the box solutions, but I must say they aren't as friendly to a setup due to
    many facts.  One of the primary points is XML processing.  With any protocol
    you lose some time to the processing of the data stream, one of our ideas and
    goals when looking at proprietary setups, we remove the XML parser and put it
    in a seperate machine.  Then we look at adding a few boxes to handle the tons
    of connections (I'm thinking fairly high here on a Linux box, that can only
    be modded to a certain number of connections).  So at this point we've reduced
    the load in a decent amount on the primary engines.  There are a lot of other
    components to jabber that could run on it's own box for a solution of grand
    proportions.  But I digress.
That sounds like a good way of breaking it up.

    
    What kind of scaling do you need on a single box? We are looking at some pretty
    cool ideas.  One of the problems that we've sort of kept quite for a while
    (yeah we're bad) is that PTH does not play well with multiprocessor machines,
    because the threading is userland it can only use a single processor.  When
    jer and I met in NYC for the expo he proposed his solution on that and we
    refined it a bit.  What we're looking at is making the different processors
    do different parts, likein the multi box setup above.  Put the XML parser on a
    processor, TCP handler, Garbage collector, etc... That way we utilize the box
    more.  That should VASTLY increase single box scaling.  For single CPU systems
    (as with any server)  there will be a max point that'll be hit.
    
I find that on UNIX machines, the classic multiprocessing model (fork'n go) works best.  Especially on systems that support copy-on-write forking, this can be quite efficient.  It certainly works well with multiple processors.

I imagine that when scaled to a large number of users, the requirement for a large-scale database to provide the data store will be needed.  Has anyone experimented with this?  I would like to help in this area if there is any desire to provide this type of functionality.

-- Jacob.
    
    
    --temas
    

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://www.jabber.org/jdev/attachments/20000210/a6d03cd2/attachment-0002.htm>


More information about the JDev mailing list