[Zope] Options for handling concurrency?

Martijn Pieters mj@digicool.com
Sun, 27 Feb 2000 09:43:20 +0100


From: "tony" <tony.mcdonald@ncl.ac.uk>
> Hi all,
> One of my Zope sites is used by classes of students - up to 60 or so at a
> time. When they use the site the response time is really slow - they could
> be waiting minutes between clicks. The site uses ZSQL methods
*extensively*
> and external methods. I realise that part of this problem is because of
our
> Sun iron (2400 pystones - my *iMac* does 4400, and a PIII 500MHz does
5500),
> but as I can't get this site onto another box in the near future, I'm
after
> other ideas.
>
> Can anyone give me some pointers (even just rule of thumb) to improve the
> response time? I was going to set the threads to be something like 32, but
> I've read other posts suggesting that wouldn't help too much. Is there
> someway I can profile what's going on for example?
>
> Any thought gratefully received.

- Have a look at /Control_Panel/manage_debug. It'll show you reference
counts and currenlty open connections, which can be very helpful in
targeting hotspots.

- Also, what DBMS are you using? If you are using a level 1 or 2 DA (see
http://www.zope.org/Members/petrilli/DARoadmap) then you can do only one DB
query at a time. It might be time to choose a different DB, or if you are
using the old MySQL DA, to upgrade.

- If you are using ZSQL a lot, do you use caching? Even a cache expiry of 1
second would help a  heavily hit site tremendously, noone will notice the
data returned being at most 1 second out of date.But all hits with equal
parameters on the same thread in Zope within that second need only one DB
query.

Martijn Pieters
| Software Engineer    mailto:mj@digicool.com
| Digital Creations  http://www.digicool.com/
| Creators of Zope       http://www.zope.org/
|   The Open Source Web Application Server
---------------------------------------------