[Zope] Zope, performance and multithreading (beginner questions)

Alexander Staubo alex@mop.no
Fri, 9 Jul 1999 16:16:50 +0200


>-----Original Message-----
>From: zope-admin@zope.org [mailto:zope-admin@zope.org]On Behalf Of
>Michel Pelletier
>Sent: 9. juli 1999 16:03
>To: 'ex@uiah.fi'; Zope@Zope. Org
>Subject: RE: [Zope] Zope, performance and multithreading (beginner
>questions)
>
>
>
>
>> -----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.

Anybody know how well MySQL performs with multiple threads? Last I
heard, it serializes database calls, which isn't exactly promising.

>> 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.

I don't know PCGI except superficially, so could you explain why this is
even necessary? Is it necessary with mod_pcgi?

Can't you have a two-split architecture as is possible under NT with
IIS+ISAPI and the Zope service? I imagine you could have Zope running as
a daemon which would accept IPC calls from an Apache module (mod_zope?).
The idea of forking off a process for every request is, well, "stupid"
is one word that comes to mind. I know that UNIX process management is
faster than on NT, but it's still not good design.

>> 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.

Do you know of any plans in the Python community to improve this (in my
opinion, shoddy) design?

>> 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.

40 responses/sec for a single client, or multiple clients? It'll be
_very_ interesting to see how Zope2 scales with multiple clients.

(Anybody notice how PC Magazine awarded -- not altogether
surprisingly -- Editor's Choice to Windows NT Server in a web server
test than also included Netscape, Solaris, and Stronghold (Apache
hybrid) on Linux?)

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