"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. 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.). The elapsed time for ten requests was 1.3-1.4 seconds. This included connecting to Apache, which forked/fired up PCGI, which connected to Zope, which ran the requests and sent data back to PCGI, which read it off the domain socket and returned it to Apache, which returned it to my Python script. Just for grins I fired up a ZServer (Zope woven tightly with Medusa, no Apache). The elapsed time for ten requests dropped to 0.7 seconds! I'm just as surprised as the next guy by that. *If* it's true, it probably means that a mod_pcgi Apache module, or a switch to mod_fastcgi, is in the future. I did a test a while ago of our full-text search speed. On my laptop -- P166, 64 Mb, NT 4 -- I loaded a 24 Mb, 27,000 record copy of the Internet movie database into a Z Table (Tabula). I did a search that combined a keyword, year, and full-text searchterm (actor AND actress AND star). The search came back in under a second, formatting the first 20 of around a thousand matches. Anyway, none of these tests are rigorous. --Paul
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
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.
You're right, of course. But the numbers that you gave at least point out the order of magnitude, which is what I had hoped for. Thanks for doing the tests. Does anyone have similar numbers for other dynamic engines, such as ASP driven servers ? I am really only interested, if its 1 hit/second, 10 hits/second or 100 hits/second -- these comparisons aren't too accurate anyway, but they do give a feeling for the term "high performance". -- Marc-Andre Lemburg Y2000: 309 days left --------------------------------------------------------------------- : Python Pages >>> http://starship.skyport.net/~lemburg/ : ---------------------------------------------------------
participants (3)
-
Christopher G. Petrilli -
M.-A. Lemburg -
Paul Everitt