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