[Zope] Performance question

Toby Dickenson tdickenson@geminidataloggers.com
Sat, 15 Jun 2002 12:25:07 +0100


On Saturday 15 Jun 2002 9:08 am, Dirk Datzert wrote:
> Hi,
>
> I tested our Zope instance with httperf and wondered that our zope is
> probably not performant enough.
>
> We have the following Zope running:
>
> Hardware: Compaq DL360, 1.2GHz, 640MB RAM
> Software: SLES 7, Python 2.3.1, Zope 2.3.3, Apache 1.3.19 with
> ProxyPass/ProxyPassReverse
>
> I used the following httperf command:
>
> httperf --server web04  --uri http://web04/Technik/ --num-conn 30 --rat=
e
> 3 --timeout 10
>
> http://web04/Technik/ is normally a page which needs 3 sec to build. I
> get 29 client-timeoute out of 30 request.

Well, of course you do. If it takes 3s to calculate one page, then I gues=
s it=20
takes 12s to calculate 4 in parallel. That is longer than your 10s timeou=
t.

> In the monitor of web04 I see max 4 python processes running with 25%
> CPU usage but only 35MB RSS.

35MB is about what I expect for the default configuration.

Are you on linux? Do you know that 35MB is shared among your python=20
'processes' because those processes are actually threads. So your total=20
memory usage is 35MB, not 35*4.

> How can I give Python more memory ?

Is your benchmark touching many objects? Are you seeing alot of disk acti=
vity?=20
If you are not then I doubt extra caching in ZODB will help.

If you are, then increase the cache size in Control_Panel. You may also w=
ant=20
to upgrade to Zope 2.6alpha1 (or current cvs) which has better ZODB cache=
=20
management code.

> like 128MB for each python process

128MB total for Zope sounds about right.

If you were thinking that would be 128*4, 512MB total woulkd be too much.=
 Some=20
memory is needed for your operating system and front end proxy too, remem=
ber.

> How can I make Zope use a better caching ?

Is your benchmark covering pages that contain long calculations? you will=
 have=20
to cache the results yourself. That probably means writing code.

> I thing that the results of the request are not cached for next request

No, not by default. You will need to set caching headers if you want your=
=20
front end proxy to know that it is safe to do that. There are many detail=
s on=20
www.zope.org

> Is it better to use Apache with pcgi ?

If you dont already love Apache, then I recommend Squid. It has more thin=
gs to=20
tune, and better instrumentation for working out why things are not being=
=20
cached.