[ZODB-Dev] ZeoServer, multiple storages and open file handles

Jim Fulton jim at zope.com
Thu Oct 18 19:29:38 UTC 2012


On Thu, Oct 18, 2012 at 3:09 PM, Leonardo Rochael Almeida
<leorochael at gmail.com> wrote:

Thanks for pitching in with an answer!

> Having a single ZEO server handling more than one or two storages is
> not usually a good idea. ZEO does not handle each storage in a
> separate thread, so you're underusing multiple CPUs if you have them.

Nit pick: ZEO handles each client connection and storage in a separate thread.
(So 30 storages and 16 clients means 480 threads :)

It is Python's GIL that prevents effective use of multiple processors.

ZEO goes out if it's way to let I/O C code run concurrently (since I/O isn't
subject to the GIL) and I've seen ZEO storage servers use up to 200% CPU
on 4-core boxes (2 cores worth, IOW).

Jim

-- 
Jim Fulton
http://www.linkedin.com/in/jimfulton
Jerky is better than bacon! http://zo.pe/Kqm


More information about the ZODB-Dev mailing list