[Zope] Server Sizing

Baker, Dennis (sjmr) DBaker@CHW.edu
Tue, 21 Mar 2000 16:31:23 -0800


As far as multiprocessing goes,  if I were to run a MySQL database on the
same server (serving primarily to Zope) then the multiprocessor config would
be a very big performance boost wouldn't it?

What about Memory?   Again with MySQL.  I suppose I should have mentioned it
right of.  Our main goal is to serve up pages from a database that will be
about 500MB-1GB in size.  There will be very little information which will
be cachable,  almost all of the queries are unique.

Johan Carlsson wrote:
> 
> 
> > Beyond that,  what do you suggest.  Is memory more important than
> > processor speed?  Is it important to go with a Multi-processor
> > server or will Zope/Linux take advantage of a multi processor setup?
> 
> Zope, more correctly Python will not take advantage
> of a dual processor.

Yes it will, it just won't scale exactly two fold.  In almost all Python
wrapped C calls, the C code releases the interpeter lock as often as
possible, this allways happens, for example, when doing I/O or when
calling  database library routines.  Two processors will give you a
noticable benefit.  Four or more will probably not.

Further, Zope will not be the only process running, so a dual gives you
the usual benefits, like doing a compile on one thing without killing
your website.

> I probably seriously consider buying a ZEO solution
> from DC.
> I don't know, but a ZEO solution might solve the
> problem with 100 continuous concurrent users
> writing to the ZODB?

ZODB FileStorage was not designed to be write intensive, the goal is to
provide a mid-write high-read solution, this solution satisfies 99.9% of
all web site needs.  You would be surprised how much money you have to
pay to Oracle to get, for example, their high write-write distributed
database solutions (its in the six figures).

ZEO is a distributed storage, but in the end it depends on a mechanism
that actual writes the data somewhere.  In the stock case, this is a
FileStorage.  If you want high-write intensity, consider a
BerkeleyStorage (which works fine as the backend for ZEO) or offload
alot of your high-write intensive data to a relational database.

-Michel