I just upgraded a client site from zope 2.6.2 to 2.8.1 (which I think has ZODB 3.4.1). After the upgrade I'm seeing very slow initial load times for objects from the zeo server (much slower than before). I understand that the objects need to be loaded from disk (and transfered to the client) but during the initial period (pre-cache) I see the CPU spike to 100%. This must mean it isn't a disk problem as much as a server to client transfer issue.

Here are some configuration parameters I have played with to try and improve things:

zodb_db cache-size - is this a per thread number as before or is it for all threads? I have never seen it reach my setting. Before the cache would get to the target number quickly. I assume this is active objects (ie doesn't include ghosts?)

zeoclient cache-size - how does this interact with the above setting? and how is it different (besides being in bytes).

zeo invalidation-queue-size - I cranked this up a bit hoping that restarts of zope would recover a reasonable speed quicker not sure if this is helping

Solaris 2.8, python 2.3.5, zope 2.8.1, box has 4GB memory which I want to use!

My database has around 350k objects. I have zodb_db cache-size set to 200k and zeoclient cache-size set to 500MB. zeo invalidation- queue-size is set to 1000.

After running for several hours I have only seen the total active objects in cache goto around 50k and size of process says in the 150MB range (before it would be in the 350MB range).

Any thoughts would be appreciated...


For more information about ZODB, see the ZODB Wiki:

ZODB-Dev mailing list  -  ZODB-Dev@zope.org

Reply via email to