[Zope] Zope, performance and multithreading (beginner questio ns)

Michel Pelletier michel@digicool.com
Fri, 9 Jul 1999 10:01:33 -0400


> -----Original Message-----
> From: Samu Mielonen [mailto:ex@uiah.fi]
> Sent: Friday, July 09, 1999 5:36 AM
> To: Zope@Zope. Org
> Subject: [Zope] Zope, performance and multithreading (beginner
> questions)
> 
> 
> Hello,
> 
> another set of newbie questions from somebody who's just
> begun with Zope:
> 
> If I try to aim for moderately good (or beyond that) performance
> with Zope, what should I use for data storate (Z ODB3, MySql)?

That decision should be based purely on the structure of your data.  if
it's relational, go MySQL, if it's not, don't.  Performace comes from
good application design.

> 
> What about http-server, if perfomance needs to be fast for
> multiple concurrent dynamic pages with a lot of persistent
> storage access? Apache, Medusa, something else?

Apache might be a bit slower in terms of latency (total time to complete
request) due to a moderatly expensive fork() call that happens in PCGI
but we've seen PCGI do a million hits a day on modest hardware, nothing
to sneeze at.

> 
> Also, will I benefit (performance wise) from running
> Zope under Linux in a 2 CPU SMP configuration? (i.e. is
> it multithreaded properly to take advantage of more
> than one cpu)?

Sure.  Please note that Python has a global interpreter lock, which
means that even if the program is multi-threaded, only one thread can be
interpreting python code at at time.  This does not exclude, however,
computations and IO from happening simultaneously, and of course other
processes which are involved like Apache (if you use it) can take
advantage of the other processor.

> 
> Any other issues that I should consider when aiming
> for fast response times under a heavy load? (i.e.
> specific coding/design approaches, except doing
> most everything in C :)
> 

Zopes response time is good, I've been doing some informal benchmarks
and I can get about 40 responses per second, this is very impressive for
a dynamic system, I'd be interested in seeing how the other Java based
app servers compare (they probably don't).  Other than that, good design
is your friend.

-Michel

> Best regards,
> 	Samu Mielonen
> 
> --
> "Zone of proximal development - ...the conceptual space or 
> zone between what
> a [human] is capable of doing on his or her own and what [he/she] can
> achieve with assistance from ... a more capable peer." - The Penguin
> Dictionary of Psychology
> 
> 
> _______________________________________________
> Zope maillist  -  Zope@zope.org
> http://www.zope.org/mailman/listinfo/zope
> 
> (For developer-specific issues, use the companion list,
> zope-dev@zope.org - http://www.zope.org/mailman/listinfo/zope-dev )
>