Hi there We have a server running many ZEO clusters (many more than the number of CPUs, of course). Each cluster consists of a master and two clients.
Would it make sense to run both clients and spread requests across them? Or would it be better to just increase the number of threads of a single client, and only use the second client for './bin/zopectl debug', and for failover if the first client needs to be restarted? Would it ever make sense to have *more* than 2 clients per master, in this scenario (many more processes than CPUs)? So far, I've had the following response to my questions: """ [...] at every zope/plone conference there are people who claim that adding more threads makes no difference and that you should rather add more zeo clients, but my CS background says more threads can share memory and perform better. But for zope it seems that each threads maintains it's own cache anyway, so there is little memory sharing going on. You may as well run 10 clients with one thread each rather than one client with 10 threads, it would make little difference other than the overhead for the extra process, which is less than 100MB. I'm a little disappointed in zope's memory usage patterns. It doesn't really matter how much memory you have or what sorts of limits you impose, it seems zope always uses more and more until it consumes about 1GB of swap and starts killing the box. So you need to monitor RAM usage with nagios or something and restart the instance every so often. On some of our managed machines we restart zope about once an hour because of this. That just doesn't make good sense, you kill your cache every time. """ RTFM with pointers most appreciated. -- jean . .. .... //\\\oo///\\ _______________________________________________ Zope maillist - Zope@zope.org http://mail.zope.org/mailman/listinfo/zope ** No cross posts or HTML encoding! ** (Related lists - http://mail.zope.org/mailman/listinfo/zope-announce http://mail.zope.org/mailman/listinfo/zope-dev )