[Zope] ZServer lockups

Amos Latteier amos@aracnet.com
Thu, 12 Aug 1999 23:24:24 -0700


At 06:04 AM 8/13/99 +0000, Constantin Teodorescu  wrote:
>Amos Latteier wrote:
>> 
>> Usually it takes five requests to hang ZServer ;-) By default Zope uses 4
>> publishing threads. Each time you request a URL that put Zope in an
>> infinite loop, there goes one more publishing thread. So after 4 evil
>> requests you're locked up.
>
>DANG !!!
>
>That means that under a heavily used Zope server, some requests (N-4)
>are waiting for their turn to be executed?

Unlikely. It's more complex than this. In fact 4 is a reasonable number
under most circumstances since most of the time is spent receiving the
requests and sending back the responses which happens asynchronously. For
example, at any given time, you may have something like 30 requests being
received, another 30 responses being returned and 2 or 3 publishing threads
running. However, if you wish you can control how many publishing threads
run at once.

>It doesn't fork multiple processed on request as Apache for example?

Not at all. You may wish to read up on Medusa's async sockets architecture
which is actually quite efficient. Threading, forking and async approaches
all have tradeoffs, but Medusa is no slouch! Find out more at

  http://www.nightmare.com/medusa

>Let's put it in another way! Would it be Zope able to support (on a good
>and strong hardware) a Yahoo like server?

To host one of the say 10 most popular sites on the net you're going to
have to do a lot of special things. For one, you cannot serve a site like
this off a single machine no matter what app server your running ;-)

I think that the going wisdom is that you can expect to get about a million
hits a day from a reasonably cheap box running Zope. In any event
performance figures are a subjective and slippery subject...

-Amos

P.S. DC will probably be making an announcement fairly soon which should
significantly address scalability issues.