[Zope] debugging memory exhaustion

Dieter Maurer dieter at handshake.de
Fri Aug 10 13:52:50 EDT 2007


Chris Withers wrote at 2007-8-9 17:09 +0100:
> ...
>I'm suffering with an app server that keeps blowing through all its memory.
>
>I have a suspicion this is due to a dodgy python script or page template 
>pulling too many objects into memory. However, by the time I know to 
>look, the app server throws MemoryErrors for each and every request.

"ZODB.DB.DB" provides methods for detailed analysis of the 
cached objects. It is used for the "Extreme cache detail" ZMI page
but can also be used differently (e.g. from an "External Methode"
or via the "ZServer Monitor Server" interactively).

Thus, provided the memory blowup comes from objects cached in ZODB
caches, you have a good chance to find out at least what type
of objects are causing this behaviour.

>What're the best ways to go about debugging this? Would DeadlockDebugger 
>help or will it suffer from the same problem?

"DeadlockDebugger" would help you only when the activity eating your
memory would also considerably eat CPU resources (which may indeed be the
case).

>Of course, it'd be lovely if you could actually specify an upper memory 
>bound for a particular request to use, and/or Zope as a whole, but these 
>kinds of things always seem to stall at the development stage :-(

You should find the culprit. While a better cache management might
avoid the MemoryError, the observed bad behaviour would trash
your cache -- and following activities would be by several orders
slower than usual....



-- 
Dieter


More information about the Zope mailing list