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 --rate 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 guess it takes 12s to calculate 4 in parallel. That is longer than your 10s timeout.
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 'processes' because those processes are actually threads. So your total 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 activity? 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 want to upgrade to Zope 2.6alpha1 (or current cvs) which has better ZODB cache 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 memory is needed for your operating system and front end proxy too, remember.
How can I make Zope use a better caching ?
Is your benchmark covering pages that contain long calculations? you will have 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 front end proxy to know that it is safe to do that. There are many details on www.zope.org
Is it better to use Apache with pcgi ?
If you dont already love Apache, then I recommend Squid. It has more things to tune, and better instrumentation for working out why things are not being cached.