[Zope] Ghost objects and memory usage

Etienne Labuschagne elabuschagne at gmail.com
Wed Feb 23 08:29:59 EST 2005


Hi all,

I have a very long running process which causes the Zope process to
eventually eat up all the RAM in my PC.  I have tried changing the
object cache sizes to no avail.  Zope sticks to the cache parameters
fairly well (it doesn't overshoot the target by much).  The number of
ghost objects do keep on increasing, however.  Does a ghost object use
the full amount of RAM (for that typical type of object) or is it only
an empty shell?  How do I get Zope to delete/unload these objects
manually?

B.t.w. I have tried numerous ways to do the long running process including:

One thread that get_transaction().commit() every now and again
Get new thread, do a few transactions, commit, close thread, wash,
rinse, repeat (yes, I know the pitfalls with opening new threads into
Zope - I end up reusing one connector from the pool over and over
again).

The above made no difference to the fact that eventually, memory will run out.

The process makes changes to many objects and creates many new
objects.  It takes a long time to complete (typically a day or more).

If I know the ghost objects does not use up memory, I can hunt for
memory leaks in my own code, but currently the only thing that
increases and increases is the number of ghost objects.

Thanks
Etienne


More information about the Zope mailing list