Re: [Zope] Tweaking Zope DB- and connection parameters

2005-06-28 Thread J Cameron Cooper

Apache is set to "MaxClients 50"
Zope.conf has set "zserver-threads 5" and 


  cache-size 500
  pool-size 25
...



I will note that a cache-size of 500 is ridiculously low. (Even though 
old versions of Zope shipped configured like this!)


It needs to be at least 5000. Frankly, 5 wouldn't be bad for a 
large, busy site.


To optimize your cache-size param, watch the ZODB read/write graph, and 
keep increasing the cache-size until (a) there's no more effect on reads 
or (b) you run into memory trouble.


Of course, the optimization will slip a little as site usage patterns 
change.


--jcc
--
"Building Websites with Plone"
http://plonebook.packtpub.com/

Enfold Systems, LLC
http://www.enfoldsystems.com
___
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 )


RE: [Zope] Tweaking Zope DB- and connection parameters

2005-06-28 Thread Germer, Carsten
Ahh, this clarifies so far, thanks. But about how many zserver-threads would 
one need for approx. 50 concurrent connections?
/Carsten

>-Original Message-
>From: Pascal Peregrina [mailto:[EMAIL PROTECTED] 
>Sent: Tuesday, June 28, 2005 11:54 AM
>To: Germer, Carsten; zope list user
>Subject: RE: [Zope] Tweaking Zope DB- and connection parameters
>
>
>zserver-threads and pool-size should be almost the same.
>
>Each HTTP request from Apache to Zope uses a Connection object 
>bound to a
>Transaction object.
>
>As each Connection object has its own cache, then if the 
>connection pool
>size is much higher than the number of zsever threads, you could end up
>using new connections with empty cache when it's not 
>necessary... This will
>make the request response time slower (cause the connection 
>will need to get
>all objects from ZODB) and will end up using unecessary memory 
>(cause all
>connection caches will be caching objects).
>
>I would recommend pool-size 8 if you keep zserver-threads to 5.
>(I don't know why pool-size must be a little higher than 
>threads, but the
>default configuration is 4 threads and 7 connections, so...)
>
>Then try increasing the cache size, because if you have lots 
>of different
>websites, caching 500 objects will probably cause each 
>connection to often
>load objects from ZODB (cache miss). To monitor that you can 
>use Control
>Panel -> Database Management -> Main -> Cache Parameters
>For each connection, if the number of active objects hits your 
>500 limit,
>then it may be a good idea to increase it.
>But of course this will depend oh the available memory you have.
>
>Hope this helps.
>
>Pascal
>
>
>
>-Message d'origine-
>De : [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] la part de
>Germer, Carsten
>Envoyé : mardi 28 juin 2005 11:32
>À : zope list user
>Objet : [Zope] Tweaking Zope DB- and connection parameters
>
>
>Hello everyone,
>
>I'm trying to figure out what I can set all (I know) Zope Parameters to
>to get a good overall performance on our "old" live installation.
>We have a new System with upgraded Zope and the like in the making but
>untill then I'm trying to keep what is up smooth and stable.
>
>Machine: Dual Pentium with 4Gig Ram running on Suse Linux. Zope 2.7.2
>with Python 2.3.4 and ZMS for the Sites. There's a recent Apache 1.3.x
>in Front for caching and like 25 Sites running on the system, some very
>rarely visited some more loaded.
>
>While running the system with out-of-the-box-parameters at 
>times of high
>load the RAM went full, the machine started swapping and spiraling down
>so I started to set limits in Apache and Zope. I was mostly just
>guessing!
>
>Apache is set to "MaxClients 50"
>Zope.conf has set "zserver-threads 5" and 
>
>cache-size 500
>pool-size 25
>...
>
>
>With this settings the machine tops at load around 1.8 - 2 and no
>swapping takes place *puuh* but still users sometimes, too often for
>users taste, get to wait a minute and longer for their page. For me it
>tastes like a garbage collection or whatnot because after 5-20 minutes
>everything is fine again for an hour or two...
>
>- Apaches "MaxClients" is set for general limit
>- zserver-threads: How many ppl, approx., can connect with this set to
>5? Would be good to synchronize this with the apache settings somehow?
>- cache-size: This is per DB connection (pool-size) as I have 
>learned, I
>did set this down to limit memory usage
>- pool-size: number of concurrent DB-Connections as I learned. Does
>every concurrent connection have to have it's own db-connection or do N
>zserver-threads share one?
>
>What I'm looking for is general advice how these parameters 
>work and can
>be set for best cooperation. Or if there are other Params that I have
>missed yet ;)
>
>E.g. "every zserver-thread uses one db-connection and can server one
>user so for 50 concurrent users you have to set everything to 50 and
>tweak cache-size according to 'Cache Parameters' in the Zope config and
>your RAM-load behaves" Which is nonsense I bet but something like that
>would help me great time.
>
>Thanks in Advance for any Help! /Carsten
>
>---
>-
>Carsten Germer Deutsches Elektronen Synchrotron 
>(Web-Office, IT)
>phone:  +49-40-8998-1661
>Notkestr. 85
>web: http://wof.desy.de
>22607 Hamburg
>e-mail: [EMAIL PROTECTED] 
>  Germany
>-

RE: [Zope] Tweaking Zope DB- and connection parameters

2005-06-28 Thread Pascal Peregrina
zserver-threads and pool-size should be almost the same.

Each HTTP request from Apache to Zope uses a Connection object bound to a
Transaction object.

As each Connection object has its own cache, then if the connection pool
size is much higher than the number of zsever threads, you could end up
using new connections with empty cache when it's not necessary... This will
make the request response time slower (cause the connection will need to get
all objects from ZODB) and will end up using unecessary memory (cause all
connection caches will be caching objects).

I would recommend pool-size 8 if you keep zserver-threads to 5.
(I don't know why pool-size must be a little higher than threads, but the
default configuration is 4 threads and 7 connections, so...)

Then try increasing the cache size, because if you have lots of different
websites, caching 500 objects will probably cause each connection to often
load objects from ZODB (cache miss). To monitor that you can use Control
Panel -> Database Management -> Main -> Cache Parameters
For each connection, if the number of active objects hits your 500 limit,
then it may be a good idea to increase it.
But of course this will depend oh the available memory you have.

Hope this helps.

Pascal



-Message d'origine-
De : [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] la part de
Germer, Carsten
Envoyé : mardi 28 juin 2005 11:32
À : zope list user
Objet : [Zope] Tweaking Zope DB- and connection parameters


Hello everyone,

I'm trying to figure out what I can set all (I know) Zope Parameters to
to get a good overall performance on our "old" live installation.
We have a new System with upgraded Zope and the like in the making but
untill then I'm trying to keep what is up smooth and stable.

Machine: Dual Pentium with 4Gig Ram running on Suse Linux. Zope 2.7.2
with Python 2.3.4 and ZMS for the Sites. There's a recent Apache 1.3.x
in Front for caching and like 25 Sites running on the system, some very
rarely visited some more loaded.

While running the system with out-of-the-box-parameters at times of high
load the RAM went full, the machine started swapping and spiraling down
so I started to set limits in Apache and Zope. I was mostly just
guessing!

Apache is set to "MaxClients 50"
Zope.conf has set "zserver-threads 5" and 

cache-size 500
pool-size 25
...


With this settings the machine tops at load around 1.8 - 2 and no
swapping takes place *puuh* but still users sometimes, too often for
users taste, get to wait a minute and longer for their page. For me it
tastes like a garbage collection or whatnot because after 5-20 minutes
everything is fine again for an hour or two...

- Apaches "MaxClients" is set for general limit
- zserver-threads: How many ppl, approx., can connect with this set to
5? Would be good to synchronize this with the apache settings somehow?
- cache-size: This is per DB connection (pool-size) as I have learned, I
did set this down to limit memory usage
- pool-size: number of concurrent DB-Connections as I learned. Does
every concurrent connection have to have it's own db-connection or do N
zserver-threads share one?

What I'm looking for is general advice how these parameters work and can
be set for best cooperation. Or if there are other Params that I have
missed yet ;)

E.g. "every zserver-thread uses one db-connection and can server one
user so for 50 concurrent users you have to set everything to 50 and
tweak cache-size according to 'Cache Parameters' in the Zope config and
your RAM-load behaves" Which is nonsense I bet but something like that
would help me great time.

Thanks in Advance for any Help! /Carsten


Carsten Germer Deutsches Elektronen Synchrotron (Web-Office, IT)
phone:  +49-40-8998-1661Notkestr. 85
web: http://wof.desy.de22607 Hamburg
e-mail: [EMAIL PROTECTED]   Germany

___
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 )


**
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the system manager.

This footnote also confirms that this email message has been swept by
MIMEsweeper for the presence of computer viruses.

www.mimesweeper.com
**

___
Zope maillist  -  Zope@zope.org
http://mail.zope.org/mailman/li