[Zope] Unexpected Squid problems

Wankyu Choi wankyu@neoqst.com
Mon, 5 May 2003 04:25:38 +0900


Hi everyone,

I recently set up a Squid frontend before ZEO server + a single ZEO =
client.=20

Specs:

ZEO: 2.0.1
Zope: 2.6.1
Storage: DirectoryStorage 1.0.1
Platform: Redhat Linux 8 with all erratas applied up to this date
Kernel: 2.4.20 + aa1 patch
Squid: 2.4.STABLE7-4

I successfully set up a cache peer  thanks to Toby Dickenson's excellent
howto: http://www.zope.org/Members/htrd/howto/squid

After running Squid for about a week, I found something really annoying
about this setup: Squid gives up on the ZEO client for dead when Zope is
packing the ZODB. And the Squid manual says it'll query even a dead peer
from time to time to see if it came alive, but that never happens.

I'm running z2.py with --icp 3130. And the problem occurs only when =
packing
is in progress. It seems when packing is in progress, Zope's taking too =
long
to respond to queries sent from Squid. I tried adjusting timeout values =
as
high as 20 seconds to no avail. Going for higher values looks really =
stupid.


I have to restart Squid again and again. I even came up with a little =
shell
script to grep Squid's cache.log every 10 minutes and restart the daemon =
if
it finds a string containing 'Detected Dead Parent'  ( and, of course, =
empty
the log ). But it's so kludgy a solution :-(

It gets worse.

Last night, I added two more ZEO clients to this setup, and now I have =
three
clients in total. Whenever the packing script runs, all three ZEO =
clients
are pronounced dead by Squid and during this time no service is =
available.
The 10-minute cron job restarted Squid as many as 5 times. The packing
script is started by a single ZEO client.

Anyone experienced a simliar problem?

Here goes another. I haven't been able to track down the cause of this
problem but having three ZEO clients takes much longer to serve ZODB =
than
having a single ZEO client.=20

For example, it used to take an average 1 second rendering a CMF =
document
when I ran a single ZEO client, but it now takes an average 2.5 seconds =
with
three clients. Plus, it generates conflicts too often. The slow =
performance,
however, is not directly related to read conflicts since even with no
conflict, the overall performance is way too bad.

All three ZEO clients are 2-way/4-way Xeon servers with RAM to burn: 2G.
Nothing is hogging any of their resources. All three of them are hooked =
up
with ZEO server/Squid frontend in 100M bandwidth.

Any ideas?

Thanks in advance.

Wankyu Choi
---------------------------------------------------------------
  Wankyu Choi
  CEO/President
  NeoQuest Communications, Inc.
  http://www.zoper.net
  http://www.neoboard.net
---------------------------------------------------------------  =20