[Zope] Cut/copy/paste problems

Oleg Broytmann Oleg Broytmann <phd@mail2.phd.pp.ru>
Fri, 8 Dec 2000 13:46:07 +0300 (MSK)


Hi!

> i knew that!  :)  btw, there's currently sparse document on mod_pcgi2.  i'd
> like to change that, but i need info from you (the author ..straight from the
> horses mouth - so to speak) or snippets from your httpd.conf.  do i need to
> have Zope.cgi available?  i think i do since otherwise, there'll be no
> connection.  or am i missing something?

   You missed pcgi-wrapper :) If you look into Zope.cgi (it is just plain
text file) you'd found it is a script interpreted by pcgi-wrapper. That
very pcgi-wrapper is a binary file compiled from pcgi-wrapper.c during the
Zope installation process. The pcgi-wrapper binary is the program that
implements PCGI protocol.
   When I wrote mod_pcgi2, I borrowed a lot of code from pcgi-wrapper.c.
That way you do not need Zope.cgi or pcgi-wrapper - the PCGI code is
already in mod_pcgi2.

> how can i finetune the performance?  it seems that under heavy load, eg 100
> simultaneous apache connection, it'd get loger to contact the server.  in the
> browser, we'd see contacting the server, waiting for reply .. for about 3-4
> secs before we get any activity/reply from server.

   You'd need to finetune Zope, not the mod_pcgi2 module.
   When you connect to Zope-behind-Apache the process is going the
following path:
   1) browser sends a rquest to Apache
   2) Apache invokes the mod_pcgi2 handler
   3) the handler passes the request to Zope
   4) !!! here is the problem to finetune !!! If Zope's own pull
      requests handlers is empty - Zope does not handle the request, but
      queues the request and waits
   5) after Zope processes the request it passes the results back
   6) mod_pcgi2 passes the results to Apache
   7) Apache passess it back to browser.

   Ususally there are 4 threads in Zope, and 7 ZODB connections. The first
number - 4 threads - could be configured by passing parameter to z2.py. If
you raise the number much, you'd need to raise he seconf number somwhere
in the ZODB source code. These are points for finetuning.

   Actually you may need to tune more things, but these things are just
totally unrelated to mod_pcgi2. Tune ZODB cache, install and learn to use
cacheing Products (the are a number of caches for Zope), use squid, etc.

> when i do a packet dump, it seems that the machine needs a couple of SYN
> before getting and ACK from the server.  do you think it has anything to do
> with mod_pcgi2?  sorry  if it's not.

   I'm pretty sure it has nothing with mod_pcgi2. SYN/ACK are properties of
TCP/IP protocols, and PCGI protocol is much higher level.

Oleg.
----
     Oleg Broytmann     http://www.zope.org/Members/phd/     phd@phd.pp.ru
           Programmers don't die, they just GOSUB without RETURN.