[Zope-dev] How to make Zope fail nicely under high load?

Bjorn Stabell bjorn at exoweb.net
Wed Feb 11 07:25:14 EST 2004


Toby wrote:
[...]
> Zope's ZServer manages a queue of requests that have been 
> recieved over http, 
> but not dispatched to the publisher. This is handled in 
> PubCore/ZRendezvous.py. I suspect this queue will be holding 
> your backlog. 
> 
> You might get some benefit from capping the length of that queue.

Thanks Toby.

It doesn't seem like that queue (the requests list) has a cap at all.
Have been stresstesting Zope for a few minutes and the queue is up to
300+ requests in the backlog queue.  Not sure how to force a 503 return
from within ZRendezvous.handle(), though; that's ZServer medusa magic.

300 requests at 1 request per 2 seconds yields a backlog of work of 10
minutes.  This is before we've started optimizing.

I wonder if Zope also processes requests that have been closed from the
client end?  I know Zope will continue processing a request even if it
times out at least (so you can do long-running requests, like packing,
through the web).  Many (all?) of these 300 requests would have been
closed by the time Zope got to process them, and so Zope shouldn't
bother with them.

Bye,
-- 
Bjorn



More information about the Zope-Dev mailing list