[Zope] Re: Zope performance ?

Christopher G. Petrilli petrilli@amber.org
Thu, 25 Feb 1999 09:03:21 -0500


On Thu, Feb 25, 1999 at 06:49:34AM -0500, Paul Everitt wrote:
> 
> "M.-A. Lemburg" wrote:
> > 
> > With all this hype about Zope being high performance, I was wondering:
> > how well does Zope perform in hits/second using an average setup, e.g.
> > Apache, P266, Linux ?
> >
> > As reference I'd suggest using a page with some dynamic HTML
> > generation not too far down the site's path.
> 
> I've never been too good at test methodologies.  There are so many
> things to take into account: interference of the client, interference of
> the network, getting enough clients involved, etc.

One of the difficulties with situations like this is that web servers
are generally (ney always under SPECweb) benchmarked as "static" things
first, and then as CGI environments.  In many ways, Zope is neither, and
both, at the same time.  All documents go through a processor (say PHP
in a traditional model) for DTML, so you can't really say the site is
serving static pages... but it's also not starting subprocesses, so it's
not a CGI environment either :-)

Given a "snapshot" of the Zope site, you could run webstones (from SGI)
against it with a reasonable subset of pages, but again, it's all
hand-waving in it's relation to reality---but that's the joy of
benchmarks, they're only useful for proving that it's fast doing THAT.

> Just for grins I logged into the zope.org site which is a PII-350,
> RedHat 5.1, and Apache.  I ran a little Python script that requested a
> URL ten times in a row and measured the elapsed time.  The URL was two
> hops into the site and is pretty dynamic (standard header/footer,
> sidebar menu computed from a Folder property, etc.).

So it's really a CGI application :-)  This compares much better at that
point.

> [ Paul notices ZServer is 2x faster than Apache+PCGI ]

This is hardly surprising... regardless of how "small" your glue code
is, it's still a VERY VERY huge undertaking to spawn a new process.
Process creation under UNIX is especially heavy compared to many other
OSes (save VMS :-) and can require a sizable amount of time that, while
not noticable to the end user, becomes apparant as your hit rate
increases.  mod_pcgi is probably the best option for glueing into
Apache, in my opinion, and probably would reduce the problems 10 fold
with authentication, etc.  

I do know that in "rough" benchmarks of static information, Medusa is 2x
faster than the latest Apache, and compares favorably with Zeus.  The
bulk of this is gained from algorithm improvements (async sockets v.
process pooling).  Unfortunately, as with testing database systems, your
application workload is the biggest issue, the more dynamic yoru site,
the more time it takes, it's that simple :-)

Chris
-- 
| Christopher Petrilli                      ``Television is bubble-gum for
| petrilli@amber.org                          the mind.''-Frank Lloyd Wright