RE: [Zope] Zope, performance and multithreading (beginner questions)
-----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 )
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?
The fork() call is unnecessary with Andrew Kuchling's mod_pcgi. As Michel (?) points out, even plain pcgi_wrapper is nothing to sneeze at. Gesundheit, -Jeff
participants (2)
-
Alexander Staubo -
Jeff Bauer