[Zope] Re. Zope Server Performance and Scalability

Jerry.Spicklemire@IFLYATA.COM Jerry.Spicklemire@IFLYATA.COM
Tue, 15 Feb 2000 16:08:24 -0500


"This server will be used by approximately 50 people who will mostly make
use of the document management abilities of Zope and run occasional database
queries."

I'm sure many folks will confirm that the configuration you mention will
easily be adequate for 50 users. One point to watch out for is the 2 GB file
size limit of current Linux (on 32 bit Intel), since the default ZODB
storage is all kept in a single disk file (data.fs).

As for scaling by an order of magnitude, one way to achieve higher
performance is to have multiple, identical, Zope installations acting as
clients to one (or more) standalone database(s), on one (or more) separate
computer(s). Typically this scenario requires another separate computer
acting as the load balancer, distributing requests for "URLs" among the Zope
servers. This scenario can boost performance, but introduces the need for a
sound synchronization process.

In the simplest case you'll have a minimum of four computers, two Zope
hosts, a database host, and a load balancer. The Zope and database hosts can
be incremented (units can be added) as load increases, to distribute the
"hits" and the growing datastore. Further, this "server farm" model itself
can be incremented, by spreading Zope folders across several such "farms" of
servers, with only the topmost folders common among all Zope installations.
In such a case separate domain names for each "server farm" would be useful
to designate the actual physical location of distributed content.

Another means of "spreading out" Web content is to host certain data types
(e.g. images, java script libraries, java "applets", large static HTML
files), in a file system of a conventional shared file server (e.g. Samba,
NFS). There are numerous methods described in user developed How-Tos on
Zope.org to serve conventional (external) data "through" Zope, usually to
enable "mix and match" finctionality within a Zope context. 

You can see there are options to explore before you will abolutely need ZEO,
but you should also make sure you are aware of the added features that ZEO
offers, that the above strategies lack.